games.cavu.clientFrame
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"intent": {
"description": "A game intent. The host stamps `viewer` and `serverTime` before the game's reduce() sees it; any client-sent values for those are overwritten.",
"properties": {
"intent": {
"description": "Typed by the game: games.cavu.<game>.defs#intent.",
"type": "unknown"
},
"seq": {
"description": "Client sequence number; echoed back as `ack` in snapshots so the client can drop confirmed predictions.",
"minimum": 1,
"type": "integer"
}
},
"required": [
"seq",
"intent"
],
"type": "object"
},
"join": {
"description": "Enter a game room. Rooms are chosen by the server for games that declare them (e.g. one room per UTC day).",
"properties": {
"game": {
"description": "Pack id, e.g. 'haiku-day'.",
"maxLength": 64,
"type": "string"
},
"room": {
"maxLength": 128,
"type": "string"
},
"viewer": {
"description": "Guest id. Superseded by the authenticated DID once atproto OAuth lands.",
"maxLength": 256,
"type": "string"
}
},
"required": [
"game",
"viewer"
],
"type": "object"
},
"main": {
"description": "Frames a client sends up the games.cavu.subscribeSession socket (DAG-CBOR event-stream framing: header {op:1, t:'#join'|'#intent'|'#ping'} + body).",
"properties": {
"frame": {
"refs": [
"#join",
"#intent",
"#ping"
],
"type": "union"
}
},
"required": [
"frame"
],
"type": "object"
},
"ping": {
"properties": {},
"type": "object"
}
},
"id": "games.cavu.clientFrame",
"lexicon": 1
}
Metadata
- DID
-
did:plc:dp7v5b5kejmmzzpwmqyf5wj6 - CID
-
bafyreifocrc4kt5vkqcuqizwkj6mb3bsvieoljbu6mn7rkwunelc6pfmo4 - Indexed At
- 2026-10-07 02:02 UTC
- AT-URI
-
at://did:plc:dp7v5b5kejmmzzpwmqyf5wj6/com.atproto.lexicon.schema/games.cavu.clientFrame
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
games.cavu.subscribeSession subscription
Bidirectional game session. Server->client messages are below; client->server frames are games.cavu.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.
-
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…