Skip to content

Deck Hub — operator state, loadout & Lambda slots

First-party on-device program #2 (ADR-0042). Status: Stub — design pending.

Charter stub. Deck Hub is canonical per ADR-0042; this doc is a placeholder until the full design lands. See the program roster.

The operator’s “character screen” as a terminal utility: Universal Deck State (handle, credits, reputation, cartridge history), loadout, and Lambda-slot management (ADR-0040 §loadout). Also the Blank Slate Deck surface — what a freshly-provisioned deck with no progress shows.

  • Read out Universal Deck State (UDS) — handle, credits, reputation, cartridge-history bits.
  • Present and manage the Lambda-slot loadout (full-swap semantics + coupled time↔exposure swap cost per ADR-0040).
  • Serve as the onboarding / empty-state surface (“Blank Slate Deck”).
  • Launched via (launch-app :deck-hub …) (NoshAPI Tier 1, ADR-0005). Draws on the cartridge/content rows per the canonical grid (Row 0 / Row 74 firmware-owned). Authored in KEC Lisp; source under runtime/programs/deck-hub/.
  • Reads UDS via the deck-state accessors; UDS is read-only to player code — Deck Hub displays it, it does not forge it (ADR-0040 three-tier state model). Loadout changes route through the sanctioned swap path, not raw UDS writes.
  • Where does loadout/Lambda-slot management sit relative to ADR-0029’s opaque (load-capability …) boundary? (ADR-0040 companion spec §16 reconciliation item.)
  • Is “Blank Slate Deck” a distinct mode or simply Deck Hub’s empty state?
  • Does Deck Hub own the swap-cost confirmation UX, or does the screen router?