PROMOTE
How it composes
Apps compose the stack at their boundary: Tabia holds the game data, Rabbit renders the board, Motif supplies the chess-aware UI, and Edge answers corpus-scale questions. OpenFile and Priyome extend Tabia’s foundation.
Status dashboard
Status is read from each project’s docs + code (2026-05-30) — a best-faith reading, not a self-report. Treat as inferred, confirm.
Active Real API, in use; evolving toward a stable surface.
The foundation most of the stack builds on. PGN parser, Game factory, ReplayEngine, a generic UCI engine client, and multi-source merge with attribution. Variant-agnostic, data-only — rendering and UI are left to consumers.
- PGN tokenize/serialize
- Game tree (variations, NAGs, comments, drawables)
- ReplayEngine + position hashing
- Generic UCI engine client + registry
- FEN parse + semantic validation
- Collection merge with attribution
- Slice-based reactive lifecycle
- API audit → stable surface
- PGN header editing
- NAG kit
- variant support
The visual identity and the chess-aware UI layer. Design tokens, a runtime theme switcher, eleven Lit web components (move list, engine panel, FEN/PGN areas, board editor, …), static reference data, and the cross-library Game / Renderer contracts.
- Design tokens + theme switcher
- 11 chess-aware Lit components
- ECO data (3641 positions) + 39 piece sets
- Game + Renderer contracts
- Component recipes + canonical keyboard map
- extract more components on consumer demand
- piece-set licensing follow-through
A pure-SVG chess board: small, fast, framework-free, variant-aware. A rendering substrate that any chess UI composes on — sibling to Tabia, wired together at the app boundary.
- Pure-SVG board (~15 kB gzipped)
- Drag/tap gestures → intent events
- Shapes: arrows, circles, fills, glow (+ PGN drawables)
- Variant geometries (Capablanca, holes/walls)
- Promotion UI, theming via CSS layer
- public-surface polish (in progress)
The high-performance batch tier: native-C tools that index and query corpora of millions of PGN games. Two engines over one corpus — a tree builder and a per-position scan engine with bitmap composition. A different runtime and shape from the JS projects; apps compose both at the boundary.
- Indexer (~1.9 s warm / 10 M games)
- Tree builder + header-only fast path (~7 ms / 10 M)
- Scan engine: position predicates + windows + Boolean composition
- Three reducer families (bitmaps, aggregations, position stream)
- Feature-complete query language
- predicate-vocabulary expansion
- packaging (libedge / daemon / WASM)