Expand description
Planning a turn without performing it (spec §23 steps A–K).
An application migrating from another agent runs both paths on the same turns while
the old one stays authoritative. TurnPlanner::plan runs steps A through K — accept,
load and project, judge a card answer, issue tokens, understand, resolve, reduce and
police — and stops before step L: no card, no journal entry, no event, no replay
record is written. That is a property of the types: a planner holds
ReadOnlyStores and loaders, never an executor.
SeededTurnPlanner takes the case state as input instead of loading it, so a
recorded turn replays against the state that preceded it. Traffic routing and kill
switches belong to the application; crate::divergence names what two paths
disagreed about.
Structs§
- Planned
Turn - What a turn would have done, stopped before its first effect.
- Seeded
Case - A case handed to
SeededTurnPlanner::planinstead of being loaded: the state a recorded turn preceded, in the erased form the registry boundary uses. - Seeded
Turn Planner - Plans turns against state it is handed.
- Seeded
Turn Planner Builder - Collects everything a
SeededTurnPlannerneeds. - Turn
Planner - Plans turns against live, read-only stores.
- Turn
Planner Builder - Collects everything a
TurnPlannerneeds.