Expand description
The event log — the game state is this append-only stream.
Two principles from DESIGN.md §6 shape what gets recorded:
- Record resolved values, not raw inputs.
GameStartedcarries the generated world snapshot, not just the seed: if only the seed were stored and the world re-derived on load, any improvement to worldgen would silently corrupt every old save — the same failure mode as re-parsing raw LLM text. Worldgen is an edge producer whose output is the recorded input. - Record outcomes the fold consumes without re-running engines.
MatchPlayedcarries the result; replay folds over it and never re-simulates, so upgrading the match engine (Phase 2) can never rewrite history. Live play produces these events viastep; replay just eats them. This is exactly how recorded agentDecisions will enter in Phase 5 — human lineups (LineupSubmitted) already follow the pattern.