Tabletop OS

A modular rule architecture for tabletop games. Every game KAINYNE ships is a configuration of five pillars — Action, Resolution, Pressure, Resource, Victory — declared in a games/<slug>/os-config.json file alongside the game's engine. This page shows the framework at a glance and indexes every shipped game's pillar configuration.

The five pillars

1. Action System

What players are allowed to do each turn. sequential, BOGUS, real-time, draft, trick-take, slap, bid, claim-bluff, plus v1.1 board/RPG extensions.

2. Resolution Engine

How an action resolves. compare-rank, compare-trick, slap-priority, challenge, bid-target, matching-set, shedding, race-to-empty, score-threshold, elimination, deterministic-reveal, simultaneous-reveal, dice-roll, area-majority, round-end-tally.

3. Pressure System

What escalates over time unless actively controlled. time, uncertainty, social, spatial, economic, elimination, score-gap, terrain-change, resource-scarcity, cascading-failure.

4. Resource System

What players manage. Every resource must create a tradeoff. cards, tricks, score, tokens, hp, tiles, actions, communication, information, workers, territory, influence, buildings.

5. Victory System

How the game ends. first-to-empty-hand, score-target, elimination, objective-completion, race-to-extract, trick-target, knockout-by-score, co-op-completion, high-score-at-timer, area-control-victory, cumulative-progress, last-faction-standing, threshold-collapse.

Architecture

The framework's Core layer (Engine / Game Config / UI Config / UI Runtime) is what every game ships at runtime. The five pillars feed declarative configuration into the Engine; the Support layer (Sim / Observability / State Serialization / Tooling …) wraps Core for scale. Hand-authored SVG mirror of the Mermaid in docs/design/tabletop-os.md.

1. Action trick-take, slap, … 2. Resolution compare, dice-roll … 3. Pressure time, terrain, social 4. Resource cards, tokens, hp … 5. Victory score-target, elim … Game Config declarative data Engine rule loop UI Config markup UI Runtime Simulation Schema Observability State Serialization Tooling

Cross-game pillar matrix

Every directory under games/ ships a Tabletop OS config. The matrix below is regenerated by scripts/build-design-page.js from every games/<slug>/os-config.json — drift between the generator and this page fails CI. Click a game name to jump to its playable route.

Standard Playing Card Games

GameActionResolutionPressureResourceVictory
CHEATclaim-bluffchallengeuncertainty, socialcards, informationfirst-to-empty-hand
EGYPTIAN RAT SCREWslapslap-prioritytime, uncertaintycardselimination
EUCHREtrick-takecompare-trickscore-gap, socialtricks, scorescore-target
GIN RUMMYsequentialmatching-setscore-gap, uncertaintycards, informationscore-target
HEARTStrick-takecompare-trickscore-gapcards, informationknockout-by-score
NERTZreal-timerace-to-emptytime, spatialcards, actionsscore-target
PRESIDENTsequentialsheddingsocial, score-gapcards, informationfirst-to-empty-hand
SPADESbidbid-targetscore-gap, socialtricks, scorescore-target
SPEEDreal-timerace-to-emptytimecards, actionsfirst-to-empty-hand
WARsimultaneouscompare-rankuncertaintycardsfirst-to-empty-hand

Published Games

GameActionResolutionPressureResourceVictory
AZULdraftscore-thresholdspatial, economictiles, scorehigh-score-at-timer
CODENAMESsequentialdeterministic-revealuncertainty, socialinformation, communicationobjective-completion
COMPILEsequentialscore-thresholdspatial, uncertaintycards, actions, informationobjective-completion
COUPclaim-bluffchallengesocial, eliminationcards, tokens, informationelimination
THE CREWtrick-takecompare-trickuncertainty, socialtricks, communication, informationco-op-completion
EXPLODING KITTENSsequentialdeterministic-revealelimination, uncertaintycards, actionselimination
LOVE LETTERsequentialeliminationelimination, uncertaintycards, informationelimination
SPLENDORsequentialscore-thresholdeconomic, score-gaptokens, scorescore-target
STAR REALMSsequentialeliminationeconomic, eliminationcards, hp, actionselimination
THE RESISTANCEsequentialsimultaneous-revealsocial, uncertaintyinformation, communicationobjective-completion

Experimental Games

GameActionResolutionPressureResourceVictory
CORES OF CONQUESTarea-controleliminationspatial, economic, cascading-failuretokens, territory, actionselimination
DECK OF DESTINYsimultaneoussimultaneous-revealuncertainty, eliminationcards, hp, tokenselimination
DUNGEON PACTsequentialeliminationspatial, eliminationhp, actions, tokensrace-to-extract
GOBLIN GAUNTLETsequentialdice-rollspatial, elimination, time, ai-adaptationhp, scorehigh-score-at-timer
MERCHANT'S MARKETsequentialdeterministic-revealeconomic, timetokens, actionsscore-target
MIREBOUNDsequentialdice-rollspatial, elimination, terrain-changehp, tiles, actionsrace-to-extract
RELIC RUNsequentialdeterministic-revealspatial, time, terrain-changeactions, tiles, scorerace-to-extract
SHADOW COUNCILsimultaneoussimultaneous-revealsocial, score-gapinfluence, actions, informationscore-target
STRONGHOLD TABLEAUsequentialscore-thresholdspatial, timetiles, buildings, score, actionscumulative-progress
WEIGHT OF CROWNSsequentialscore-thresholdsocial, score-gap, eliminationinfluence, hp, actionsscore-target

Pillar co-occurrence heatmap

How Action × Victory pillar combinations cluster across the catalog. Cell intensity scales with the number of games sharing that combination; hover a cell to see the matching slugs. Regenerated by scripts/build-design-page.js alongside the matrix above.

Action ↓ / Victory →co-op-completioncumulative-progresseliminationfirst-to-empty-handhigh-score-at-timerknockout-by-scoreobjective-completionrace-to-extractscore-target
area-control··1······
bid········1
claim-bluff··11·····
draft····1····
real-time···1····1
sequential·1311·334
simultaneous··11····1
slap··1······
trick-take1····1··1

Designing a new game

Use the template to walk the five pillars + Core architecture for a new game. Then run node scripts/scaffold-game.js <slug> to generate the canonical CSCI shape with a schema-legal placeholder os-config.json already wired up. The validator (node scripts/check-tabletop-os.js) keeps the framework honest as the design fills in.

The full framework spec — including the Mermaid diagram of the Core-vs-Support layering — lives at docs/design/tabletop-os.md on GitHub (renders natively). The decision record is ADR-0012.