games.cavu.tier-madness.clientFrame
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.
Details · object
| Kind | object |
|---|---|
| Authority | tier-madness.cavu.games |
| Indexed |
Object
object#addBot
objectHost only, in the lobby: seat a bot (Jev, TypeSafe's System One model) that plays like anyone else. One per game; remove it with #kick.
Properties
#advance
objectHost only: move the reveal along (next card, next screen).
Properties
#auth
objectSign in as a player: an atproto service-auth JWT from the player's PDS (com.atproto.server.getServiceAuth) with aud = the game server's DID and lxm = games.cavu.tier-madness.subscribeGame. Spectators don't sign in.
Properties
maxLength: 4096
#create
objectSigned in: host a new game. The server replies with #created (the join code, and the hash the host puts in its lobby record).
Properties
minLength: 3maxLength: 3
totalRounds
integerminimum: 1maximum: 20
#double
objectDouble down on one placed card, or none.
Properties
item
stringmaxLength: 300
#join
objectSigned in: join a game's lobby by its 4-character code (Crockford base32; case and separators don't matter). Attempts are rate limited.
#kick
objectHost only, in the lobby: remove a player.
Properties
#leave
objectLeave the lobby (before the game starts).
Properties
#pickCriteria
objectThe round's criteria picker chooses one of the offered criteria. Not secret.
Properties
maxLength: 300
#place
objectPlace the card dealt at `index` into a tier. Final once accepted; the next card is dealt.
Properties
minimum: 0maximum: 19
#rematch
objectSigned in, at game over: start a rematch with the same table, hosted by whoever asks first (with the same number of rounds, and the bot if there was one). If one's already started, join it. The old game's view points everyone at it (#rematch in gameView).
Properties
#setRounds
objectHost only, in the lobby: how many rounds the game will have.
Properties
minimum: 3maximum: 7
#skip
objectHost only: stop waiting on stalled players now (as if the deadline passed): unvoted players don't vote, an absent picker's criteria is picked for them, unfinished players sit the round out.
Properties
#spectate
objectWatch a game by its code, anonymously: no sign-in, and only what anyone may see. Attempts are rate limited.
Properties
minLength: 4maxLength: 9
#start
objectHost only: start the game.
Properties
#swap
objectThe round's one swap: two placed cards in different tiers, or none.
Properties
minLength: 0maxLength: 2
maxLength: 300
#vote
objectSecret pre-game vote: up to 3 categories from the ballot.
Properties
minLength: 1maxLength: 3
maxLength: 300
Similar lexicons
semantic matchLexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
games.cavu.clientFrame
objectFrames a client sends up the games.cavu.subscribeSession socket (DAG-CBOR event-stream framing: header {op:1, t:'#join'|'#intent'|'#ping'} + body).
-
games.cavu.tier-madness.subscribeGame
subscriptionA 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.
-
An end-of-game superlative and the bonus points it paid.