games.cavu.launchIntent

chris.pardy.family

Documentation

Ask a game's launch service for a signed launch grant. Called by the launcher (e.g. cavu.games) against the service named in the launch service's DID document. The service picks the room and the instance that owns it and returns their URL inside the signed grant.

main procedure

Ask a game's launch service for a signed launch grant. Called by the launcher (e.g. cavu.games) against the service named in the launch service's DID document. The service picks the room and the instance that owns it and returns their URL inside the signed grant.

Input

Encodingapplication/json
game stringat-uri Required

The games.cavu.game record to launch or join.

joinCode string Optional

Join an existing room. Omit to be placed by the service.

maxLength: 64 bytes
player stringdid Optional

Signed-in player. Omit for a guest launch.

Output

Encodingapplication/json

Errors

GameNotFound
GuestsNotAllowed The game does not declare guest play and no player was given.
InvalidJoinCode
PlayerNotAllowed
LaunchUnavailable No capacity, region, or upstream outage.
Try It

Requests are sent directly from your browser. Some servers may block requests due to CORS.

Base URL for XRPC calls (e.g., https://bsky.social)
Enter valid JSON for the request body
View raw schema
{
  "description": "Ask a game's launch service for a signed launch grant. Called by the launcher (e.g. cavu.games) against the service named in the launch service's DID document. The service picks the room and the instance that owns it and returns their URL inside the signed grant.",
  "errors": [
    {
      "name": "GameNotFound"
    },
    {
      "description": "The game does not declare guest play and no player was given.",
      "name": "GuestsNotAllowed"
    },
    {
      "name": "InvalidJoinCode"
    },
    {
      "name": "PlayerNotAllowed"
    },
    {
      "description": "No capacity, region, or upstream outage.",
      "name": "LaunchUnavailable"
    }
  ],
  "input": {
    "encoding": "application/json",
    "schema": {
      "properties": {
        "game": {
          "description": "The games.cavu.game record to launch or join.",
          "format": "at-uri",
          "type": "string"
        },
        "hostService": {
          "description": "The player's game host. Required with `player`.",
          "ref": "games.cavu.defs#hostService",
          "type": "ref"
        },
        "joinCode": {
          "description": "Join an existing room. Omit to be placed by the service.",
          "maxLength": 64,
          "type": "string"
        },
        "player": {
          "description": "Signed-in player. Omit for a guest launch.",
          "format": "did",
          "type": "string"
        }
      },
      "required": [
        "game"
      ],
      "type": "object"
    }
  },
  "output": {
    "encoding": "application/json",
    "schema": {
      "properties": {
        "attestation": {
          "ref": "games.cavu.defs#attestation",
          "type": "ref"
        },
        "grant": {
          "ref": "games.cavu.defs#grant",
          "type": "ref"
        }
      },
      "required": [
        "grant",
        "attestation"
      ],
      "type": "object"
    }
  },
  "type": "procedure"
}

Lexicon Garden

@