feat(tabletop): add free-interaction layer (layer 3)
Add the interaction half of the sandbox: a held part and dialog stack as UI state outside the game store, with pure helpers (interactionsFor, dropPaths, pickPath, partFacings, nextFacing). PartPlacement is now interactive (pick up, drag to move, click to cycle facing), and a drop on a path with a stack-dialog interaction opens the deck dialog instead of moving directly. DialogLayer renders the stack-inspector dialog whose insert button issues a move. Add the dialog role, Setup.interactions, and Package.dialogs to @tts/bgm, and declare the deck insert dialog in games/poker.
This commit is contained in:
@@ -5,9 +5,10 @@ with a bgm game that has no rules yet: a sandbox. It builds on the state model:
|
||||
see [`state-model.md`](./state-model.md) for components-vs-setup, path→stack ×
|
||||
facing, and the anchoring scope.
|
||||
|
||||
> **Status:** Design. Proposes the operation set, the command/dialog split, and
|
||||
> the deck-pick-up dialog before the interaction half of `@tts/tabletop` is
|
||||
> built.
|
||||
> **Status:** Implemented (layer 3, sandbox). The operation set, the
|
||||
> command/dialog split, and the deck-pick-up dialog are built in
|
||||
> `@tts/tabletop` (`interactions.ts`, `dialog.tsx`). Rule-enforced play (layer
|
||||
> 4) is not yet wired — the rule seam is a no-op filter over free interaction.
|
||||
|
||||
## 1. The operation set is closed and tiny
|
||||
|
||||
|
||||
Reference in New Issue
Block a user