games.cavu.clientFrame

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

Repository @pardy.at did:plc:dp7v5b5kejmmzzpwmqyf5wj6 namespace authority
Details · object
Kindobject
Authoritycavu.games
Indexed
cid bafyreifocrc4kt5vkqcuqizwkj6mb3bsvieoljbu6mn7rkwunelc6pfmo4

Checks

Valid Lint pass
JSONDownload
{
  "$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
}