At this level
games.cavu.tier-madness ยท 11- games.cavu.tier-madness.clientFrame object Frames a client sends up the games.cavu.tier-madness.subscribeGame socket. Intents only: the server validates each, records it in the player's own PDS (secret move + public commitment), and only then applies it.
- games.cavu.tier-madness.commitSpace space A Tier Madness game's shared table (one space per game, keyed by the game's TID): each move's commitment, the host's game record, and everyone's round records. Readable by the game's players.
- games.cavu.tier-madness.commitment record Public commitment to a secret games.cavu.tier-madness.move, written to the game's commitment space (readable by the game's players) under the same rkey as the move. Anyone can later check a revealed move hashes to this CID.
- games.cavu.tier-madness.defs defs An end-of-game superlative and the bonus points it paid.
- games.cavu.tier-madness.game record Declares a game: the roster in seat order and the ballot. Written by the host player, from their own PDS, to the game's commitment space (rkey = game id). With each player's round records and moves it is enough to replay the game: replay checks every player's records agree.
- games.cavu.tier-madness.lobby record Announces that a game exists and is taking players. Written by the host, from their own PDS, to their public repo (rkey = game id). Players join by giving the game server the game's 4-character code; the code itself is never published. codeHash is an HMAC of the code under the space host's secret key: unkeyed, all ~1M codes could be hashed in about a second. The server indexes lobbies by codeHash and hashes the code a player gives it.
- games.cavu.tier-madness.move record One secret move by a player, written (by the game server, on the player's behalf, or by the player) to the round's secret space (skey `{game}-r{round}`). Only the game server can read it until that round's reveal, when the game's players can too (round 0, the category vote, opens at game end). Its CID is published as a games.cavu.tier-madness.commitment (same rkey) in the game's commitment space, so the move can't be changed later. The nonce stops anyone from guessing a low-entropy move (e.g. a
- games.cavu.tier-madness.player record A player's Tier Madness profile, in their public repo.
- games.cavu.tier-madness.round record One player's account of a finished round, written by every player from their own PDS to the game's commitment space (rkey = `{game}-r{round}`) once the round's reveal starts. Written at the end rather than the start so it can't leak the deal order. Replay checks every player's round records agree.
- games.cavu.tier-madness.secretSpace space One player's secret moves for one round of a Tier Madness game (one space per round, keyed {game}-r{round}). Only the player can read it until the game server opens the round at its reveal.
- games.cavu.tier-madness.subscribeGame subscription A game's live channel. The socket is bidirectional: the client sends games.cavu.tier-madness.clientFrame frames (#auth then #create/#join to play, or just #spectate to watch); the server sends a #snapshot of the game as that viewer may see it whenever it changes.