feat(game): official first-move tile draw + admin step-by-step replay #89
Reference in New Issue
Block a user
Delete Branch "feature/first-move-draw"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Official first-move selection by tile draw, recorded with the game, plus a step-by-step admin board replay.
First-move draw (docs/ARCHITECTURE.md §6)
crypto/randentropy — not the deterministic bag seed — so the recorded draw, not a seed, is the only account of the outcome.game_setup_draws(migration00013) for future tournaments; modelled as a discrete "player N draws a tile" step.uuid.Nilopponent whose draw rows (NULLaccount_id) are back-filled on join — so the opener's seat is fixed up front and the existing open-game pre-move is preserved (no reseating, no play-gating). (This replaced an earlier "reseat at fill" approach that conflicted with the open-game pre-move — see the design-spec Update note.)Admin replay (
/_gm/games/:id)game.ReplayTimelinerebuilds the game from seed+journal, snapshotting racks/scores/turn/bag and the tiles drawn per move.Tests
drawnTiles/usedTiles,SetupBag.ReplayTimelinedeal+move; the admin page renders the draw + replay sections. Open-match tests reworked for the draw-at-open behaviour.Docs
ARCHITECTURE §6/§9, FUNCTIONAL (+ _ru), PRERELEASE (FM row), and a design spec under
docs/superpowers/specs/(say if you'd rather not keep that file).