Interaction Model & Menu System ⚠️ CRITICAL — NOT OPTIONAL

The game is NOT just a hex grid with units. Every tile, unit, and node has nested menus. The full interaction tree is 4 levels deep. This is the core UX — the team MUST implement this.

L0  HEX GRID       — D-pad navigates, A selects hex
L1  TILE MENU      — unit summary + node summary. X→Unit Menu, Y→Node Menu
L2a UNIT MENU      — Status, Config, Trail, Access, History, Move, Interact
L2b NODE MENU      — Properties, Output, Edges, Config, History
L3                 — full detail screens for each L2 item
L4a                — expanded output section
L4b                — full output page (cross-device to Mac if too dense)
L4c                — routing action (Curate Context / Point Wholesale)

Key Interaction Patterns

Correction Interview (when output is wrong): Player selects “Correct” at interrupt. MC branching interview narrows problem: what’s wrong? → which section? → suggested fix direction. Agent echoes back interpretation. Player: Correct / Close / Not-at-all. All gamepad — no text input required.

Context Routing: From a completed node’s Output view → select Route → choose content scope (entire/section/curated) → choose method (Curate/Pointer) → return to grid in routing mode → select target hex → confirm.

Output Display: Every node produces two things: full output (wiki page on Pi) + summary (structured sections with header/body/status). RG displays summary. A expands section inline. Y opens full wiki page (on Mac if too dense).

Interactive Terminal: When a unit is active at a node, the terminal shows live agent output, chain of thought, and the interrupt prompt. Player can type corrections (fallback) or use MC interview (primary).

Live Prompt Injection: Player corrections accumulate per-node. On next turn, the node reads all prior corrections and restructures. Corrections never overwrite — they append via reducer.

Per-Unit Independence: Each unit has its own turn counter, config, trail, and access lists. Only one unit per hex. Cross-unit context sharing via access lists.

Gamepad Controls

Button Context Action
D-pad Grid Move cursor between hexes
D-pad Menu Navigate items
A Grid Open Tile Menu
A Menu Select / Confirm / Drill down
B Any Back one level
X Grid Cycle unit focus
X Tile Menu Open Unit Menu
Y Tile Menu Open Node Menu
Y Output Open full page (cross-device)
SELECT Grid Toggle phase color overlay
START Any Pause menu (save, quit, settings)
L1/R1 Grid Previous/next unit

Wiki Reference Pages (Read These)

Topic Wiki Page
Full menu system spec (L0→L4) wiki/concepts/menu-system-full-spec.md
Correction interview protocol wiki/research/correction-interview-protocol.md
Poller/stager pattern wiki/concepts/poller-stager-pattern.md
Context curation pattern wiki/concepts/langgraph-context-curation-pattern.md
Live prompt injection wiki/concepts/langgraph-live-prompt-injection.md
Output summary protocol wiki/concepts/output-summary-protocol.md
Routing submenu design wiki/research/routing-submenu-design.md
Edge case protocols wiki/research/edge-case-protocols.md
Gamepad input patterns (research) wiki/research/gamepad-input-patterns.md
Nested menu protocol wiki/concepts/nested-menu-protocol.md
Node config catalog (12 dimensions) wiki/concepts/langgraph-node-config-catalog.md
Soft mechanics (context/prompts/comms) wiki/concepts/langgraph-soft-mechanics.md