from __future__ import annotations from dataclasses import dataclass from typing import Protocol from world_simulator.domain import WorldState @dataclass(frozen=True, slots=True) class AgentAction: actor_id: str kind: str payload: dict[str, object] class AgentPlanner(Protocol): def plan(self, world: WorldState, actor_id: str) -> AgentAction: """Return the next action an agent wants to take."""