{"participant":"michel","role":"deterministic test-hook/accessibility reviewer","invariants":["Board, score, lines, piecesPlayed, bonus totals, sequence position, and gameOver persist across review transitions.","Only explicit restart and fixture seeding may reset persistent game state.","A no-line lock pauses play and advances review; submission resumes the same board with one next-sequence piece.","A line clear updates lines and score, then immediately activates one bonus piece on the same board without advancing review.","Summary appears only after the final earned turn ends or game over."],"patch_steps":["Remove board recreation from showReview() and startGameTurn().","Keep current cleared while reviewing, but retain locked cells and cumulative totals.","Add persistent pieceSequence and sequenceIndex initialized only at session start/restart; spawnPiece consumes exactly one entry.","Do not clear lastClearCount except when the next lock establishes its result or explicit restart occurs.","Keep createBoard() only for initial state, restart, and deterministic fixture setup."],"hook_requirements":["Expose getState with board, totals, sequence contents/index, current piece, phase, review index, bonus state, and gameOver.","seedPersistentState must install a recognizable board and known score, lines, piecesPlayed, bonus totals, and sequence/index.","finishNoLineTurn must lock without replacing the seeded board and synchronously reach the next review.","submitCurrentReview must select valid synthetic review data and resume gameplay without sleeps.","preparePersistentLineClear must modify only the minimum cells/current piece needed on the existing board.","hardDrop must synchronously prove score/line increment and immediate bonus-piece activation.","Disable or stop gravity inside deterministic hooks so assertions cannot race timers."],"edge_cases":["Final-question no-line lock must show summary only after that lock completes.","Bonus clear chains remain in game phase and consume sequence entries once per spawned piece.","Spawn collision preserves the board and totals, sets gameOver, and reaches game-over summary deterministically.","Repeated hook calls must reject invalid phases or return explicit state rather than silently resetting.","Review submission after gameOver must not resume play."],"preserve":["Declared Delores source foundation and visual direction.","Existing screens, controls, questions, scoring table, falling-block behavior, and restart boundary.","Keyboard controls, visible focus, disposition aria-pressed state, and status messaging.","On screen changes, move focus to the review heading, game instructions/control, or summary heading and announce turn/bonus/game-over status through an aria-live region."],"risks":["Current finishNoLineTurn and line-clear fixtures erase the board, invalidating persistence proof.","Math.random spawning cannot prove sequence-position persistence without explicit sequence state or deterministic injection.","Zero-delay timers still race browser assertions; hooks should complete transitions synchronously.","Removing resets without clearing pending timers can cause duplicate transitions or unexpected locks.","Focus may remain on a hidden control after screen changes, creating an accessibility regression."]}
