No description
The Empty layout had no real user need: - Can't Play Solo (board with no pieces, nothing to click). - Server rejects it for Create Room (validator requires >=1 king per side). - The 'blank canvas' use case is already handled by the LayoutEditor's Custom... flow, which opens with an empty piece list and lets the user compose. It was UI clutter in the picker dropdown — users would see 'Empty Board' alongside real layouts and have no way to actually use it. EMPTY_LAYOUT stays exported for unit tests that need a zero-piece starting state, but it no longer registers in LAYOUT_REGISTRY, is not imported by the layouts barrel side-effects, and no longer appears in the picker. Source flipped to 'custom' to signal it's not a user-selectable premade. Tests updated: - premades.test.ts asserts 'empty' is NOT in the registry. - e2e/layouts.spec.ts removes the Empty-solo test and asserts the 'empty' option is absent from the picker dropdown. 1025 unit tests + 23 e2e tests green. |
||
|---|---|---|
| .github/workflows | ||
| .sisyphus | ||
| docs | ||
| packages | ||
| scripts | ||
| .gitignore | ||
| eslint.config.js | ||
| lefthook.yml | ||
| LICENSE | ||
| package.json | ||
| playwright.config.ts | ||
| README.md | ||
| tsconfig.base.json | ||
| tsconfig.json | ||
| vitest.workspace.ts | ||
@paratype
A Doorenbos-style Rete II rules engine for TypeScript games, with an authoritative WebSocket chess demo.
Packages
packages/rete— Rete II engine corepackages/chess— Browser chess demo (React + Vite)packages/server— Authoritative Bun WebSocket server
Docs
- SPEC.md — Engine specification
- PHASES.md — Development phases & perf budgets
- RULES.md — Chess rule presets
- PROTOCOL.md — WebSocket message protocol
Getting Started
bun install && bun run check