magicciv/public/games/age-of-dwarves/data/sim-scenarios/fullgame/no_soft_lock.json
Natalie b6e365c95d feat(sim-scenarios): full scenario catalog + schema + docs (pre-calibration spec)
Declarative simulation-test scenarios for horizontal proving on the DO fleet.
Two kinds: combat_setpiece (hand-authored tactical board, known outcome) and
fullgame (seeded full-game, invariant/liveness/determinism/balance assertions).

- 10 combat set-pieces (data/sim-scenarios/combat/): rush/walls/pyrrhic, ranged
  kite, fortified hill, castle vs double-rush, siege catapult, last-stand,
  flanking, formation-vs-loose.
- 10 fullgame (data/sim-scenarios/fullgame/): smoke, determinism, expansion,
  time-to-tier, economy invariant, no-soft-lock, trade, culture borders, clan
  fairness band, broad 150t systems run.
- sim-scenarios.schema.json validates both kinds; assertion vocab enumerated,
  each mapped to a real engine signal (cities_captured, pvp_kills, surviving
  units, gold/pop, traded_luxuries, tech tier).
- All clan personalities are the REAL 8 (balanced/boom/expansionist/merchant/
  militarist/rusher/tech_rusher/turtle); the prior draft's ironhold/goldvein
  were fabricated.
- SIM_SCENARIOS.md: S3->fleet pipeline, full catalog, schema, calibration rule
  (assertion values calibrated against real runs, never invented). Router wired.

Removed the two old fake-schema drafts (smoke_duel_30t, game1_headless_systems_150t)
whose assertions rode on fabricated metrics. Runner + calibration follow.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:48:24 -04:00

14 lines
648 B
JSON

{
"id": "no_soft_lock",
"kind": "fullgame",
"version": 1,
"description": "Liveness sweep: every game either reaches a victory or the turn limit, and the turn counter advances on every step (no stalled state machine). Catches deadlocks where the loop spins without progressing.",
"map": { "size": 28, "evolution_ticks": 10000, "seed_base": 6000 },
"players": [ { "personality": "rusher" }, { "personality": "turtle" } ],
"rules": { "max_turns": 100, "victory_city_count": 255 },
"seeds": [6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007, 6008, 6009],
"expect": [
{ "type": "terminates" },
{ "type": "turn_monotonic" }
]
}