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.

Repository @pardy.at did:plc:dp7v5b5kejmmzzpwmqyf5wj6 namespace authority
Details · object
Kindobject
Authoritytier-madness.cavu.games
Indexed

Object

object

#addBot

object

Host 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

object

Host only: move the reveal along (next card, next screen).

Properties

#auth

object

Sign 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

token

requiredstring
  • maxLength: 4096

#create

object

Signed in: host a new game. The server replies with #created (the join code, and the hash the host puts in its lobby record).

Properties

initials

requiredstring
  • minLength: 3
  • maxLength: 3
  • minimum: 1
  • maximum: 20

#double

object

Double down on one placed card, or none.

Properties

item

string
  • maxLength: 300

#join

object

Signed in: join a game's lobby by its 4-character code (Crockford base32; case and separators don't matter). Attempts are rate limited.

Properties

code

requiredstring
  • minLength: 4
  • maxLength: 9

initials

requiredstring
  • minLength: 3
  • maxLength: 3

#kick

object

Host only, in the lobby: remove a player.

Properties

did

requiredstring · did

#leave

object

Leave the lobby (before the game starts).

Properties

#pickCriteria

object

The round's criteria picker chooses one of the offered criteria. Not secret.

Properties

criteria

requiredstring
  • maxLength: 300

#place

object

Place the card dealt at `index` into a tier. Final once accepted; the next card is dealt.

Properties

index

requiredinteger
  • minimum: 0
  • maximum: 19

#rematch

object

Signed 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

object

Host only, in the lobby: how many rounds the game will have.

Properties

totalRounds

requiredinteger
  • minimum: 3
  • maximum: 7

#skip

object

Host 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

object

Watch a game by its code, anonymously: no sign-in, and only what anyone may see. Attempts are rate limited.

Properties

code

requiredstring
  • minLength: 4
  • maxLength: 9

#start

object

Host only: start the game.

Properties

#swap

object

The round's one swap: two placed cards in different tiers, or none.

Properties

items

requiredarray
  • minLength: 0
  • maxLength: 2
itemsstring
  • maxLength: 300

#vote

object

Secret pre-game vote: up to 3 categories from the ballot.

Properties

categories

requiredarray
  • minLength: 1
  • maxLength: 3
itemsstring
  • maxLength: 300

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • Frames a client sends up the games.cavu.subscribeSession socket (DAG-CBOR event-stream framing: header {op:1, t:'#join'|'#intent'|'#ping'} + body).

  • 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.

  • An end-of-game superlative and the bonus points it paid.