review document tier

Game Rules Inventory Review

Alignment date: 2026-07-01 · Product path: unthinkable · Source artifact: research/unthinkable/game-rules-inventory.md

This review page renders the Omega War game rules inventory directly for approval, revision, or targeted feedback. The register remains a working inventory and does not supersede canonical or review-approved source documents.

Review Status

Status: review. This page asks whether the rules inventory accurately captures current tactical-battle rules, source authority, experiment coverage wording, deferrals, and the next route for keeping the register current.

Continuation command: $create-alignment-page research/unthinkable/game-rules-inventory.md

Artifact Overview

Purpose

The inventory collects approved, provisional, experiment-needed, deferred, and superseded tactical-battle rules in one working register for the unthinkable product path.

Authority Boundary

The register is a routing and maintenance aid. Canonical decisions remain in their owning specs, alignment pages, state models, and prototype artifacts until a later approved update changes that authority.

Maintenance Rule

Append or update entries when experiments prove, change, defer, or supersede a mechanic. Each entry must preserve rule ID, status, source, experiment coverage, open questions, and implementation notes.

Review Target

Approve the page only if the source register should stand as the current working rules inventory and if its caveats are visible enough for future experiment work.

Source Coverage

SourceCoverage RoleReview Note
research/unthinkable/tactical-vertical-slice-spec.mdPrimary slice rules, battle systems, phase gates, unit and wonder expectations.Most entries cite this as the current canonical or review-approved rule source.
research/unthinkable/tactical-battle-experiment-plan.mdExperiment roadmap and proof coverage.Coverage labels should stay aligned as EXP-00 through EXP-14 evolve.
docs/decklist-rules-alignment.mdDeck, decklist, card, category, wonder, and phase-comeback boundaries.Inventory should not override this document's canonical terminology.
design/unthinkable/deployment-plan-state-model.mdPlanner state model, transport binding, build-order import/export, and runtime boundary.Inventory preserves the planner-vs-runtime separation.
prototypes/unthinkable/tactical-battle/deployment-plan-first/Prototype behavior and fixture pressure.Referenced as implementation evidence, not as a permanent production schema authority.

Rule Inventory Summary

39Total rule entries
23Approved entries
5Provisional entries
6Experiment-needed entries
5Deferred entries
0Superseded entries in this snapshot

The status mix is intentionally uneven: most foundational boundaries are already approved, while combat runtime, AI, save/reload, performance, HUD, and wonder counterplay remain experiment-needed.

Subsystem Sections

SubsystemRule CountReview Focus
Battle Contract And Win/Loss3Fixed Conquest slice, victory/defeat, battle-session features.
Deck, Decklist, Card, And Fixture Rules5Decklist authority, card/category boundaries, fixed slice decks, display stats, build-order compatibility.
Deployment Plan And Build-Order Compatibility3Planner-owned pre-battle state and planner/runtime boundary.
Tactical Phases And Comeback Rule3Phase storage, timer transitions, command-post-gated availability, and comeback awards.
Command-Post And Facility Availability Gates3Battlefield base surfaces, locked unit gate visibility, and economy categories.
Transport, Mount/Dismount, And Organic-Crew Vehicle Rules3Transport lift, organic vehicles, eligibility, tactical dismount and remount boundaries.
Cover, Suppression, Capture, Resources, And Tactical Charges4Cover, suppression, capture points, and per-unit resource charges.
Combat, Abilities, Smoke/WP, Minimum Range, TOT, And Burst Deferrals6Core combat proof and explicit ability/model deferrals.
AI, Save/Reload, Performance, HUD, And Wonder Rules6Runtime feasibility, AI, save/reload, HUD, and wonder governance/counterplay.
Explicit Deferrals And Experiment Intake3Scope exclusions, promotion discipline, and future inventory entry format.

Rendered Inventory

The cards below are generated from the embedded source Markdown in this page so every rule entry remains traceable to the exact register text under review.

Evidence Matrix

ClaimEvidenceInferenceConfidenceAssumption StatusDecision Impact
The inventory is a working register, not a superseding canonical spec.Source header says status is living working register and authority does not supersede canonical or review-approved docs.Future agents should route final authority back to owning docs.HighEvidence-backed.Approval should preserve the authority caveat.
All 39 current rule entries are represented.Embedded source contains Rule ID entries BTL-001 through DEF-003; rendered inventory is generated from those entries.The review surface covers the complete source artifact snapshot.HighEvidence-backed by source count.Approval can focus on accuracy, not missing page coverage.
Runtime proof remains open for multiple systems.Status counts include 6 experiment-needed entries and 5 provisional entries; experiment-needed entries cluster around combat, AI, save/reload, performance, HUD, and wonder counterplay.The register should remain connected to the tactical experiment plan.HighEvidence-backed; exact proof will change after experiments.Approval should not freeze unproven implementation details.
Deferrals are explicit enough to prevent scope creep.DEF-001 and CBT-003 through CBT-006 list out-of-scope systems and deferred abilities/models.Localized tactical experiments have guardrails for what not to reopen.Medium-highDepends on future experiment discipline.Approval gate asks whether deferral handling is clear enough.

Confidence And Assumption Register

BucketConfidenceAssumption Or CaveatWhat Would Change It
Approved entriesHigh for current slice direction.Approved here means accepted by cited source, not necessarily production-final balance.Later alignment approval amending the owning source artifact.
Provisional entriesMedium.Values and specific magnitudes are intentionally tunable for prototype work.Runtime experiment results and updated canonical specs.
Experiment-needed entriesMedium-low until proved.Contracts and desired behavior are documented, but browser/runtime proof is still pending.Successful EXP implementation, test notes, and save/performance evidence.
Deferred entriesHigh as scope exclusions.Deferred does not mean rejected; it means out of current playable-slice scope.A later approved roadmap or slice expansion decision.

Alternatives And Gaps

Alternative: Promote To Canonical Spec

Rejected for this page. The source explicitly defines itself as a working register, so approval should not silently promote it above the cited canonical artifacts.

Alternative: Keep Only Experiment-Needed Rules

Rejected. The register is useful because it keeps approved, provisional, deferred, and experiment-needed rules together for change tracking.

Coverage Gap: Exact Tuning Values

Command-score values, drain rates, income, costs, threshold tuning, weapon modeling, save migration, and performance ceilings remain open or provisional.

Coverage Gap: Future Remount And Ability Models

Arbitrary free remount, manual engineering abilities, manual grenade throws, smoke/WP details, minimum range, TOT, and burst behavior require later research or experiments.

File Changes

PathChangeReason
alignment/create-alignment-page-game-rules-inventory.htmlCreate new review page.Document-tier alignment review for the game rules inventory.
alignment/index.htmlAdd Product Design & Spec entry.Expose the page in the central alignment index with date, tier, status, product path, and source metadata.
research/unthinkable/game-rules-inventory.mdNo source edit proposed by this page.The page reviews the existing artifact and embeds its complete Markdown.

Approval Gates

Gate 1: Page and artifact approval
Gate 2: Working-register authority
Gate 3: Source coverage
Gate 4: Experiment-coverage wording
Gate 5: Deferral handling
Gate 6: Next-step route

Source Markdown

The complete source artifact is embedded below for source-level review.

# Omega War Game Rules Inventory

Date: 2026-07-01
Product path: `unthinkable`
Status: living working register
Authority: working register; does not supersede canonical or review-approved source docs
Source docs:
- `research/unthinkable/tactical-vertical-slice-spec.md`
- `research/unthinkable/tactical-battle-experiment-plan.md`
- `docs/decklist-rules-alignment.md`
- `design/unthinkable/deployment-plan-state-model.md`
- `prototypes/unthinkable/tactical-battle/deployment-plan-first/`
Maintenance rule: update or append a rule entry when an experiment changes, graduates, defers, or supersedes a mechanic. Keep canonical decisions in their owning spec/review document and cite them here.

## Purpose

This register collects approved, provisional, experiment-needed, deferred, and superseded tactical-battle rules in one place for the Omega War `unthinkable` path. It complements `research/unthinkable/tactical-battle-experiment-plan.md` by giving experiments a stable place to report what rule they proved, changed, or left open.

Statuses:

- `approved`: accepted by a canonical or review-approved source.
- `provisional`: usable for prototype work, with values or details still tunable.
- `experiment-needed`: required or likely, but not yet proven in runtime.
- `deferred`: explicitly out of current slice scope.
- `superseded`: retained only to preserve context for replaced wording or behavior.

## Battle Contract And Win/Loss

### Rule ID: BTL-001
Name: Fixed first battle contract
Status: approved
Rule: The first playable tactical slice is a single-player browser-first Conquest battle, UK/Commonwealth 11th Armoured Division vs Soviet 2nd Guards Tank Army, on one fixed tactical map titled `Conquest of Helmstedt`.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` sections 1, 2, and 2.1; `research/unthinkable/tactical-battle-experiment-plan.md` Purpose.
Experiment coverage: EXP-00, EXP-13, EXP-14.
Open questions: none for the first slice.
Implementation notes: Assault and Raid naming patterns are future mode patterns, not selectable variants in the current prototype.

### Rule ID: BTL-002
Name: Conquest victory and defeat
Status: approved
Rule: Win by holding enough capture-point value to drain enemy command score, or by destroying the enemy Advance Command Post after Phase C opens. Lose if player command score reaches zero, all deployable combat groups are wiped, or the Forward Command Post chain is destroyed with no recovery path.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 2.
Experiment coverage: EXP-04, EXP-06, EXP-13, EXP-14.
Open questions: exact command-score values and drain rates.
Implementation notes: The Forward Command Post loss should create a recovery objective rather than instant defeat unless no combat force remains.

### Rule ID: BTL-003
Name: Battle session features
Status: approved
Rule: The playable battle must support pause, manual save, autosave on tab visibility loss, restart scenario, and completion from start to win/loss.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` sections 2, 9, and 14; `research/unthinkable/tactical-battle-experiment-plan.md` EXP-10 and EXP-14.
Experiment coverage: EXP-10, EXP-13, EXP-14.
Open questions: final storage format and migration policy are deferred.
Implementation notes: Use `serializeBattleState()` and `restoreBattleState(snapshot)` only as planned contracts until EXP-10 proves them.

## Deck, Decklist, Card, And Fixture Rules

### Rule ID: DCK-001
Name: Decklist owns configured entries
Status: approved
Rule: An army organization is the historical force pool; a deck is a reusable playable force package; a decklist is the configured scenario/player/AI/saved fixture. `DecklistUnitEntry` owns phase, loadout, transport/passenger/equipment choices, `cardCost`, `cardCount`, `unitRequisitionCost`, wonder eligibility, and command-post availability metadata.
Source: `docs/decklist-rules-alignment.md` Terminology and Organization, Deck, And Builder Contract.
Experiment coverage: EXP-05, EXP-06, EXP-13, EXP-14.
Open questions: production deck-builder UX and campaign-wide deck management.
Implementation notes: Authored card identity must not own per-decklist availability or cost choices.

### Rule ID: DCK-002
Name: Card, category, type, and roster boundaries
Status: approved
Rule: A card appears in one primary category only. Category drives roster tabs; unit `type` drives tactical/popover rendering and rules class. Roster maps are derived UI projections, not persisted production schema objects.
Source: `docs/decklist-rules-alignment.md` Terminology, Categories, Phases, And Configurations, and Single Source Fixture Data; `design/unthinkable/deployment-plan-state-model.md` Unit Type Axis And Transport Model.
Experiment coverage: EXP-05, EXP-09.
Open questions: final production schema naming.
Implementation notes: Do not treat `roster` as a persisted domain object except when describing current prototype derived views.

### Rule ID: DCK-003
Name: Fixed slice decks and provisional fixtures
Status: provisional
Rule: The first slice uses fixed UK 11th Armoured and Soviet 2nd Guards Tank Army decks with Phase A/B/C rows from the vertical-slice spec. Fixture values such as damage, penetration, suppression, cost, build time, cooldown, resource income, and trait magnitudes are prototype tuning values.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` sections 3.1, 3.2, and 3.3.
Experiment coverage: EXP-05, EXP-06, EXP-13, EXP-14.
Open questions: final balance, exact card counts, exact costs, and full deck expansion.
Implementation notes: Fixture data should conform to `research/unthinkable/unit-data-schema.md`; runtime exceptions must be recorded rather than silently normalized.

### Rule ID: DCK-004
Name: Historical display stats are not balance knobs
Status: approved
Rule: Vehicle, tank, aircraft, and support-transport display stats such as speed labels, operational range/Fuel rows, armor facings, health, and ammunition display should derive from sourced `realWorldStats` through a fixed conversion rule. Balance through `cardCost`, `cardCount`, `unitRequisitionCost`, phase/band placement, facility gates, unlocks, and availability.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 3.3; `docs/decklist-rules-alignment.md` Categories, Phases, And Configurations.
Experiment coverage: EXP-05, EXP-07.
Open questions: exact conversion rules and balance values.
Implementation notes: Do not adjust historical display rows to tune tactical strength.

### Rule ID: DCK-005
Name: Build-order compatibility
Status: approved
Rule: A build order is attached to a decklist and must encode compatible scenario and deck/decklist identity. Import rejects incompatible versions, scenario ids, deck ids, unknown units, unknown transport/passenger/loadout/configuration values, malformed phase data, or unsupported configuration values.
Source: `docs/decklist-rules-alignment.md` Build-Order Compatibility; `design/unthinkable/deployment-plan-state-model.md` Scenario Naming Rule and Canonical State Shape.
Experiment coverage: EXP-05, EXP-10.
Open questions: later payload migration from prototype aliases.
Implementation notes: `OWBO1`, `conquest-of-helmstedt`, and `deckFixtureId` are current prototype-compatible identifiers.

## Deployment Plan And Build-Order Compatibility

### Rule ID: PLN-001
Name: Deployment Plan owns pre-battle queue state
Status: approved
Rule: The Deployment Plan flow owns editable pre-battle planning state: selected phase, selected tab, add mode, queue, overlays, modals, build-order import/export status, and confirmation. After confirmation, tactical entry consumes a frozen queue.
Source: `design/unthinkable/deployment-plan-state-model.md` Purpose, State Vocabulary, Canonical State Shape, and Events And Transitions.
Experiment coverage: EXP-05, EXP-09.
Open questions: production refactor timing.
Implementation notes: Current mutable globals are acceptable prototype implementation details; future work should preserve the documented state relationships.

### Rule ID: PLN-002
Name: Planner transport binding is initial-only
Status: approved
Rule: In decklist and Deployment Plan screens, a transport stays bound to its infantry/gun card as a per-card companion plus display-only cost delta. There are no independent transport queue or roster units in the planner.
Source: `design/unthinkable/deployment-plan-state-model.md` Transport-binding boundary; `research/unthinkable/tactical-vertical-slice-spec.md` sections 3.4 and 4.1.
Experiment coverage: EXP-05.
Open questions: full tactical remount behavior remains separate.
Implementation notes: Do not mutate planner queue, imported build-order payloads, deck identity, or roster data when tactical runtime dismount/remount behavior changes.

### Rule ID: PLN-003
Name: Deployment Plan does not run comeback logic
Status: approved
Rule: Phase progression comeback awards are tactical-battle behavior only. The Deployment Plan must not compute score pressure, award command-structure upgrades, alter build-order strings, or add deck cards.
Source: `design/unthinkable/deployment-plan-state-model.md` Phase Progression Comeback Boundary; `docs/decklist-rules-alignment.md` Phase Progression Comeback Rule.
Experiment coverage: EXP-06, EXP-10.
Open questions: exact pressure threshold tuning.
Implementation notes: Tactical runtime owns the pre-transition score-pressure snapshot and resulting command-structure state.

## Tactical Phases And Comeback Rule

### Rule ID: PHS-001
Name: Phase storage and player-facing labels
Status: approved
Rule: Store phase values as `A`, `B`, and `C`. Show Phase A/B/C in deck building and deployment planning. Tactical battle announces phase starts with short newsreel-style popup labels: Phase A/Vanguard, Phase B/Main Body, and a dynamic Phase C label such as `[Nationality] Breakthrough`, `[Nationality] Commitment`, or `Stalemate`.
Source: `docs/decklist-rules-alignment.md` Phases; `research/unthinkable/tactical-vertical-slice-spec.md` section 11.
Experiment coverage: EXP-06, EXP-09, EXP-14.
Open questions: final scenario-specific copy variations.
Implementation notes: Tactical phases are continuous real-time windows, not turns.

### Rule ID: PHS-002
Name: Command-post-gated availability with timer phase transitions
Status: approved
Rule: Phase B and Phase C may arrive on timers with warnings and transition popups, but deployable unit availability remains gated by built command posts and facilities unless later approval changes the core spec.
Source: `research/unthinkable/tactical-battle-experiment-plan.md` Tactical Battle Sequence Map; `research/unthinkable/tactical-vertical-slice-spec.md` section 6.
Experiment coverage: EXP-06, EXP-09, EXP-14.
Open questions: exact transition timing and warning cadence.
Implementation notes: Timer transition events should refresh availability through `availableCards(deck, commandPostState)`, not through deck mutation.

### Rule ID: PHS-003
Name: Phase progression comeback award
Status: approved
Rule: On Phase A to B and Phase B to C, the tactical runtime snapshots score pressure before advancing. If exactly one side is meaningfully behind, that side receives one automatic free command-structure upgrade. It must not grant score, units, wonders, requisition, income, resource stockpile, facility, or combat effect.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 6.1; `docs/decklist-rules-alignment.md` Phase Progression Comeback Rule.
Experiment coverage: EXP-06, EXP-10, EXP-14.
Open questions: threshold tuning, with 20% of victory target as provisional starting point.
Implementation notes: Player-facing copy should be pressure-relief wording such as `Emergency command upgrade granted`; debug output may include transition, pressure values, gap, threshold, and award result.

## Command-Post And Facility Availability Gates

### Rule ID: CPF-001
Name: Battlefield base surfaces
Status: approved
Rule: The command-post system is a small battlefield base. Forward Command Post starts Phase A; Assembly Area supports infantry depth; Motor Pool/Tank Park unlocks Phase B armor and recovery; Artillery Battery/Fire Direction Center unlocks artillery and smoke; Air Liaison unlocks air cards and air recon; Advance Command Post unlocks Phase C and the wonder slot.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 6; `docs/decklist-rules-alignment.md` Unit Availability Gates.
Experiment coverage: EXP-06, EXP-09, EXP-13, EXP-14.
Open questions: exact facility gate matrix and faction-specific display names.
Implementation notes: Use planned `CommandPostState`, `buildCommandPost(kind)`, `commandPostTick(dt)`, and related contracts only after EXP-06 proves them.

### Rule ID: CPF-002
Name: Locked units must expose their facility gate
Status: approved
Rule: A locked unit must name or derive the facility surface that unlocks it. The facility unlocks unit availability; it does not imply deck editing.
Source: `docs/decklist-rules-alignment.md` Unit Availability Gates and Current Prototype Audit Notes.
Experiment coverage: EXP-06, EXP-09.
Open questions: whether enemy inspection cards derive gates from AI build model or display explicit hints.
Implementation notes: Current UK Phase B/C cards with missing `Requires` detail need scoped audit before fixture edits.

### Rule ID: CPF-003
Name: Battle economy resource categories
Status: provisional
Rule: Battle economy uses manpower for baseline deployment and infantry reinforcement, fuel for armor and Motor Pool/Tank Park escalation, and munitions for artillery, smoke, air, and wonder activation.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 6.
Experiment coverage: EXP-04, EXP-06, EXP-09, EXP-13, EXP-14.
Open questions: exact income, stockpile, and cost numbers.
Implementation notes: These economy resources are separate from per-unit tactical charges.

## Transport, Mount/Dismount, And Organic-Crew Vehicle Rules

### Rule ID: TRN-001
Name: Transport-lift vs organic-crew vehicle
Status: approved
Rule: Transport-lifts are detachable carriers or tractors with their own driver and can carry/tow eligible units. Organic-crew vehicles are deployed units whose crew is the unit; they cannot be mounted, dismounted, or re-crewed by other infantry.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 4.1; `design/unthinkable/deployment-plan-state-model.md` Organic-crew vs transport-lift.
Experiment coverage: EXP-05, EXP-13, EXP-14.
Open questions: per-vehicle audit of all edge cases.
Implementation notes: Recce Carrier is organic-crew; Recce Patrol is infantry with a small-lift default.

### Rule ID: TRN-002
Name: Transport eligibility model
Status: approved
Rule: Infantry carry if lift capacity is greater than or equal to squad size. Weapon teams and guns tow if the lift tow class matches the gun class. Per-card overrides supply defaults or ordering only.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 4.1; `design/unthinkable/deployment-plan-state-model.md` Organic-crew vs transport-lift.
Experiment coverage: EXP-05.
Open questions: final capacity, size, and tow-class magnitudes.
Implementation notes: `On foot` and `Static` remain valid zero-delta baselines for comparison and exceptional deployment states.

### Rule ID: TRN-003
Name: Tactical dismount and free remount boundary
Status: provisional
Rule: Initial pairing comes from the decklist. In tactical runtime, deployed carried infantry may dismount, leaving the transport as a free battlefield asset. Any eligible infantry may later mount any free transport using the same eligibility model, but arbitrary free remount may be deferred from the first playable slice.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 4.1 and section 13.
Experiment coverage: EXP-05, EXP-13, EXP-14 for initial pairing and basic dismount; none yet for arbitrary free remount.
Open questions: whether free remount ships in the first playable.
Implementation notes: A transport's mounted-passenger reference belongs to runtime `UnitInstance` state, not card rows.

## Cover, Suppression, Capture, Resources, And Tactical Charges

### Rule ID: CSC-001
Name: Cover states
Status: approved
Rule: Cover has open, light cover, and heavy cover states. Open applies full incoming suppression and damage; light cover reduces suppression and small-arms damage; heavy cover gives stronger small-arms mitigation but remains vulnerable to artillery, flame, and close assault.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 5.1.
Experiment coverage: EXP-03, EXP-07, EXP-13, EXP-14.
Open questions: directional cover implementation details.
Implementation notes: The prototype must show why an infantry unit survived or broke.

### Rule ID: CSC-002
Name: Suppression states
Status: approved
Rule: Infantry-like units use normal, pressured, suppressed, and pinned states. Vehicles may receive a lighter shaken equivalent for artillery or air shock, but do not use infantry pinning in the first slice.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 5.2.
Experiment coverage: EXP-03, EXP-07, EXP-13, EXP-14.
Open questions: exact thresholds and recovery curves.
Implementation notes: Suppression states should alter movement/fire intent through a state machine such as `suppressionTick(unit, incomingPressure, dt)`.

### Rule ID: CSC-003
Name: Five capture points
Status: approved
Rule: The Conquest map uses five capture points: two resource points near the player, two near the AI, and one central command point with strongest command-score pressure. Ownership controls resource rate and command-score drain; center matters without making side points irrelevant.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 5.3; `research/unthinkable/tactical-battle-experiment-plan.md` EXP-04.
Experiment coverage: EXP-04, EXP-13, EXP-14.
Open questions: exact contest, income, and drain math.
Implementation notes: Planned runtime contracts include `CapturePointState`, `incomeTick(state, dt)`, and `victoryPressureTick(state, dt)`.

### Rule ID: CSC-004
Name: Per-unit tactical munitions and fuel charges
Status: provisional
Rule: Armed units carry `munitions` charges and firing spends one charge. Vehicles, tanks, and aircraft carry `fuel` charges and moving or relocating spends one charge. Logistics cards have one `logisticsKind`, either `munitions` or `fuel`, plus finite `cargoCharges`. Resupply/refuel restores up to two matching charges and spends one cargo charge.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 4.2; `docs/decklist-rules-alignment.md` Categories, Phases, And Configurations.
Experiment coverage: EXP-05, EXP-07, EXP-09, EXP-13, EXP-14.
Open questions: final charge counts and UI affordances.
Implementation notes: Wrong-resource restoration is disallowed; non-combat abilities cost zero unless authored ability definitions add `resourceKind` and `cost`.

## Combat, Abilities, Smoke/WP, Minimum Range, TOT, And Burst Deferrals

### Rule ID: CBT-001
Name: Basic combat resolution
Status: experiment-needed
Rule: Runtime combat must cover weapon range, target selection, health, damage, suppression consumption, destroyed/retreat states, and visible loss explanation.
Source: `research/unthinkable/tactical-battle-experiment-plan.md` EXP-07; `research/unthinkable/tactical-vertical-slice-spec.md` section 14.
Experiment coverage: EXP-07, EXP-13, EXP-14.
Open questions: final penetration tables, weapon catalog, fog of war, and balance.
Implementation notes: Planned contract is `combatTick({ units, weapons, coverQuery, dt })`.

### Rule ID: CBT-002
Name: Observer, air, and area-targeting abilities
Status: provisional
Rule: FOO improves friendly artillery attacks against targets in the observer's vision. Q Observe improves detection while holding weapons. W Strike Ground targets a ground point with ground-capable weapons, unavailable on unarmed Auster. E Area Patrol focuses aircraft around a selected area with role/weapon-based priority.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 6.2.
Experiment coverage: EXP-07, EXP-09, EXP-13, EXP-14.
Open questions: final FOO eligibility and exact accuracy/scatter benefits.
Implementation notes: Deployment Plan may show compact metadata, but should not add a full ability-documentation panel to the pre-battle screen.

### Rule ID: CBT-003
Name: Manual infantry engineering abilities
Status: deferred
Rule: Plant Demolition, Lay Mines, Bangalore Breach, and Lay Smoke are deferred manual abilities. They require future research on plant/lay/breach times, cooldowns, blast/mine-field magnitudes, detection, trigger models, smoke radius/duration, and LoS blocking.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` sections 6.2 and 13.
Experiment coverage: none yet.
Open questions: ability timing, costs, penalties, detection, and trigger models.
Implementation notes: Sappers may plant faster through `Demolitions Expert`; magnitudes remain deferred.

### Rule ID: CBT-004
Name: Grenade auto-fire vs manual throw
Status: deferred
Rule: Current slice rule treats infantry grenades as auto-resolved weapon fire that spends a munitions charge and is range/target driven. A Company-of-Heroes-style manual grenade throw ability is an open experiment and deferred.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` sections 4.2 and 13.
Experiment coverage: none yet.
Open questions: whether manual grenade becomes a later ability.
Implementation notes: Demolition charges and mines are not auto-fire weapons.

### Rule ID: CBT-005
Name: Smoke and WP separation
Status: deferred
Rule: Lay Smoke is a non-damaging targeted utility smokescreen that blocks line of sight. White phosphorus is a separate incendiary weapon that screens and burns/suppresses with damaging stats. Aircraft smoke-laying and multiple smoke/WP fitment audits are deferred.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` sections 6.2 and 13.
Experiment coverage: none yet.
Open questions: LoS block model, delivery methods, fitment accuracy, and WP damage/suppression resolution.
Implementation notes: Do not collapse WP into the utility smoke ability.

### Rule ID: CBT-006
Name: Minimum range, TOT, and burst models
Status: deferred
Rule: Weapon `rngMin`, display-only derived `TOT`, and averaged `rof` exist as provisional/tunable display values. Runtime minimum-range dead zones, aircraft release/arming geometry, real crew-lay timing, first-round accuracy curves, per-shot traverse geometry, and burst-length/sustained-fire modeling are deferred.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 13.
Experiment coverage: none yet.
Open questions: future sim model details.
Implementation notes: Current burst behavior approximates sustained-fire differences statically, including water-cooled gun advantages.

## AI, Save/Reload, Performance, HUD, And Wonder Rules

### Rule ID: SYS-001
Name: Baseline tactical AI
Status: experiment-needed
Rule: AI must capture nearby points, contest center, build Phase B/C surfaces, preserve some units, use artillery/air/wonders only after prerequisites, defend damaged command-post surfaces, avoid cheating visibility for baseline decisions, and be able to lose.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 8; `research/unthinkable/tactical-battle-experiment-plan.md` EXP-08.
Experiment coverage: EXP-08, EXP-13, EXP-14.
Open questions: final difficulty tuning and production-grade tactical AI.
Implementation notes: Planned serializable contract is `AiIntentState`.

### Rule ID: SYS-002
Name: Save, pause, autosave, reload, and restart
Status: experiment-needed
Rule: Pause stops simulation while camera/UI remain usable; manual save and autosave produce a recoverable state; restart resets the scenario without reloading the whole app; restore preserves unit positions, health, suppression, captures, build queues, resources, AI plan state, cooldowns, and orders.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 9; `research/unthinkable/tactical-battle-experiment-plan.md` EXP-10.
Experiment coverage: EXP-10, EXP-14.
Open questions: schema versioning and validation details.
Implementation notes: Planned contracts are `serializeBattleState()` and `restoreBattleState(snapshot)` with deterministic entity ids and validation errors.

### Rule ID: SYS-003
Name: Performance ceiling and browser feasibility
Status: experiment-needed
Rule: The first playable prototype targets 60 fps on modern desktop browser, provisional draw calls under 100, representative ceiling starting around 40-60 active unit groups, no visible simultaneous-movement hitches, and save/restore without duplicate entities or corrupted command-post/capture state.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 10; `research/unthinkable/tactical-battle-experiment-plan.md` EXP-11.
Experiment coverage: EXP-11, EXP-14.
Open questions: actual ceiling and worst-frame sources.
Implementation notes: If browser cannot meet the ceiling, desktop-wrapper fallback is packaging, not gameplay rewrite.

### Rule ID: SYS-004
Name: Tactical HUD projection
Status: experiment-needed
Rule: In-battle UI must project selected unit state, health, suppression, veterancy, traits, current order, cover preview, capture ownership, command-post surfaces, build progress, damage, unlocked phases, deployable roster, resources, wonder checklist/telegraph, pause/save/autosave status, and AI pressure without exposing hidden AI state.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 11; `research/unthinkable/tactical-battle-experiment-plan.md` EXP-09.
Experiment coverage: EXP-09, EXP-13, EXP-14.
Open questions: final visual design and card-detail parity.
Implementation notes: Planned contract is `projectBattleUi(state)` returning read-only projections.

### Rule ID: SYS-005
Name: Wonder slot governance
Status: approved
Rule: Each side has exactly one active wonder slot in the slice. Future decklists may choose zero, but never more than one active `DecklistUnitEntry` wonder candidate. Active wonders must be Phase C, require Advance Command Post and battlefield-control prerequisites, telegraph before effect, be one-use or long-cooldown, and show source caveat for stretch or what-if content.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 7; `docs/decklist-rules-alignment.md` Wonder Governance.
Experiment coverage: EXP-12, EXP-14.
Open questions: final balance and alternate wonder roster.
Implementation notes: Preferred slice wonders are Trial Centurion Mk1 and IS-3 Guards Shock Group.

### Rule ID: SYS-006
Name: Wonder telegraph and counterplay
Status: experiment-needed
Rule: UK Centurion and Soviet IS-3 commitments must be gated, declared to all players, telegraphed, and answerable. They cannot appear before Advance Command Post and battlefield-control prerequisites.
Source: `research/unthinkable/tactical-battle-experiment-plan.md` EXP-12; `research/unthinkable/tactical-vertical-slice-spec.md` sections 3.1, 3.2, and 7.
Experiment coverage: EXP-12, EXP-14.
Open questions: counterplay timing and exact activation route.
Implementation notes: Planned contract is `WonderState` with brought commitment, prerequisites, source caveat, declaration, warning, activation, cooldown/use count, arrival route, and counterplay status.

## Explicit Deferrals And Experiment Intake

### Rule ID: DEF-001
Name: Out-of-scope systems
Status: deferred
Rule: Current slice excludes campaign map, formation-token movement, auto-resolve, strategic AI, refit economy, multiplayer, netcode, matchmaking, accounts, payments, analytics infrastructure, production observability, full deck builder, all Central Germany decks, re-armed German campaign unlock, all expansion fronts, final art/audio, production content tooling, and durable database/storage decisions.
Source: `research/unthinkable/tactical-vertical-slice-spec.md` section 13; `research/unthinkable/tactical-battle-experiment-plan.md` Purpose and Experiment Rules.
Experiment coverage: none yet.
Open questions: future roadmap sequencing.
Implementation notes: Do not reopen these during localized tactical experiments unless a later approval changes scope.

### Rule ID: DEF-002
Name: Runtime contract promotion discipline
Status: approved
Rule: Experiments should isolate one risky mechanic. Runtime state remains separate from authored card data. Promote runtime structures such as `UnitInstance`, `CommandPostState`, `WonderState`, AI intent, and battle snapshots only when their contracts are stable enough for save/reload.
Source: `research/unthinkable/tactical-battle-experiment-plan.md` Experiment Rules; `research/unthinkable/tactical-vertical-slice-spec.md` section 12.
Experiment coverage: EXP-01 through EXP-14.
Open questions: none for the experiment plan.
Implementation notes: Throwaway DOM, styling, debug controls, and fake fixtures should stay behind unless explicitly compiled forward.

### Rule ID: DEF-003
Name: Experiment intake entry format
Status: approved
Rule: When an experiment proves, changes, defers, or supersedes a mechanic, update this register by editing the existing rule entry or adding a new one with Rule ID, Name, Status, Rule, Source, Experiment coverage, Open questions, and Implementation notes.
Source: this register; `research/unthinkable/tactical-battle-experiment-plan.md` Experiment Rules and Test Plan.
Experiment coverage: EXP-00 through EXP-14.
Open questions: none.
Implementation notes: New entries should cite the experiment path and any promoted compiled-battle contract once implementation exists.

Compile Responses

Answer any gate question or select section feedback, then compile YAML to send back to the agent. Complete approval requires every gate answered with no unresolved negative or clarification feedback.