Batch 31 · Stage, enemy, encounter and event contract¶
2026-10-26. One bounded R0 planning/source-audit batch. No gameplay/source/scene/prefab/package/settings changes, Unity/player run, commit or push. Preserve batch-30 planning, current one/two-player behavior, unrelated audio deletions/generated metadata and local recovery data. Tutorial and dedicated GAME-01 work stay parked.
Delivered¶
The stage/enemy/encounter/event contract defines shared scene/definition/environment/runtime ownership; enemy assembly/capability/state/attack/death/drop boundaries; current clock/schedule/boss semantics; scoped events and compatibility; enemy/stage authoring recipes; F4 scenarios, ordered migration and SE-01–SE-06 follow-ups. It remains design, not implemented systems or measured optimization.
Ten evidence CSVs record six stage assets/26 difficulty rows, 41 schedules/1,854 spawn entries, 135 enemy prefabs, 518 state/mechanic components, 69 source-reference category rows across 61 scripts, four scene summaries/45 selected component records, 84 C# event occurrences, 93 persistent callback edges and 24 source-derived cases. The contract links each map and explains its limits. The serialized scope includes 1,256 asset/prefab/scene files; a separate scan of 356 animation clips finds no functionName entries. Empty scan output is recorded here rather than retaining an empty map.
Three stages are in the boot catalog. Direct schedule/boss references are distinguished from complete production reachability; summons, variants, prefab overrides and all special/boss method semantics still need slice-specific closure. Source/callback scans include declarations, tests, Tutorial, recovery and prototype content where applicable. They are not runtime traces, a compiled call graph or proof every listed asset is released.
Concrete shared-scene differences include distinct RuleTiles/ornament data, spacing 95/97/98 and ornament counts 11/13, 7/8, 7/10 for the three arenas. Stage 1's direct migrated MenuController is absent from the Stage 2/3 wiring map. These differences must migrate before scene copies retire. Existing stable stage/difficulty IDs and save/reward identity remain protected.
GAME-06 wording was corrected from matching an active special event to what the source actually does: matching any special-schedule killId, without live-instance/isActive correlation. The contract also records pending-spawn, boss-admission, first-state reuse and defeat-versus-off-screen-despawn risks as comparison/disposition work. The in-run suppression timer remains separate from the deferred menu symptom; no freeze investigation or bug fix was performed.
Validation boundary¶
Verify all 608 prior source pins and the 2,819-file source/data/settings/package snapshot; unchanged runtime workspace status and HEAD; source/asset/component identity and values for the generated maps; current event/callback lines and targets; 24 unique source-derived cases and arithmetic examples; local documentation links, whitespace, and all 52 issue IDs routed once. Validating a map means it matches source, not that its authored wiring or gameplay passes. No normal-profile or player-build test is claimed.
Next¶
Plan rewards, pickups and progression: XP/level admission, queue/selection/application, death/revive/slot eligibility, result/payout/unlock handoffs, and explicit P3/P4 participation. Preserve the existing reward-pause/selection fixes and connect the player/combat/stage contracts. Persistence/input schema, UI/service integration and the exact first implementation slice still follow before R0 closes. Existing stage/event import/migration follow-ups remain assigned to their affected slices.
Validation passed: all 2,819 snapshotted source/data/settings/package files and 608 prior gameplay pins are unchanged; runtime workspace status and HEAD are preserved. Generated identities/values/line references match source, including all 93 persistent local target components. The 24 cases have unique IDs and valid source paths; arithmetic examples pass. All 546 local documentation links, new-file whitespace and all 52 issue IDs routed once pass. No Unity/import/player result is claimed. Documentation remains uncommitted.