houserules/packages/chess/src
Joey Yakimowich-Payne f37c0934aa
feat(server): add authoritative game session per room (P4.5)
Each room owns a ChessEngine wrapped in a GameSession; only the server
calls insert/retract/fireRules and all EntityIds are minted server-side.
GameSessionRegistry keys sessions by room code so two rooms cannot
observe or collide with each other's working-memory state.

GameSession.applyMove validates algebraic inputs, finds the matching
legal move via ChessEngine.findMove, applies it, and returns a fact-
level diff (inserted/retracted) plus the new turn and terminal state.
Terminal states are sticky: further moves after checkmate/draw return
GAME_OVER rather than silently mutating a dead session.

Exposes @paratype/chess's headless surface (ChessEngine, coord helpers,
schema types) via a new package entry point; the React app continues to
import concrete modules directly.
2026-04-16 17:17:42 -06:00
..
app feat(chess): add localStorage auto-save and restore (P3.14) 2026-04-16 16:24:49 -06:00
hooks feat(chess): add localStorage auto-save and restore (P3.14) 2026-04-16 16:24:49 -06:00
persist feat(chess): add localStorage auto-save and restore (P3.14) 2026-04-16 16:24:49 -06:00
presets feat(chess): add all 15 preset custom rules P3.4-P3.8 2026-04-16 15:32:18 -06:00
rules feat(chess): add checkmate detection (P2.19) 2026-04-16 15:06:27 -06:00
ui feat(chess): add JSON export/import with validation (P3.13) 2026-04-16 16:14:46 -06:00
coord.test.ts feat(chess): add coordinate + color helpers (P2.7) 2026-04-16 14:47:04 -06:00
coord.ts feat(chess): add coordinate + color helpers (P2.7) 2026-04-16 14:47:04 -06:00
engine.ts test(chess): replay 5 classic FIDE games; Phase 2 acceptance gate (P2.23) 2026-04-16 15:18:57 -06:00
index.ts feat(server): add authoritative game session per room (P4.5) 2026-04-16 17:17:42 -06:00
pgn.ts test(chess): replay 5 classic FIDE games; Phase 2 acceptance gate (P2.23) 2026-04-16 15:18:57 -06:00
schema.test.ts feat(chess): add attribute schema and piece fact shape (P2.5) 2026-04-16 14:46:27 -06:00
schema.ts feat(chess): add attribute schema and piece fact shape (P2.5) 2026-04-16 14:46:27 -06:00
starting-position.test.ts feat(chess): add starting-position fact generator (P2.6) 2026-04-16 14:46:34 -06:00
starting-position.ts feat(chess): add starting-position fact generator (P2.6) 2026-04-16 14:46:34 -06:00