games.cavu.launchIntent
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.
Details · procedure
| Kind | procedure |
|---|---|
| Authority | cavu.games |
| Indexed |
Checks
Valid Lint pass{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"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": "The waiting room is open only to some signed-in players; no player was given.",
"name": "SignInToJoin"
},
{
"description": "The waiting room is open to people its host follows.",
"name": "NotFollowed"
},
{
"description": "The waiting room is open to its host's mutuals.",
"name": "NotMutual"
},
{
"description": "The waiting room is open to players its host listed.",
"name": "NotListed"
},
{
"description": "Who the host follows couldn't be checked; try again.",
"name": "AccessCheckFailed"
},
{
"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"
}
},
"id": "games.cavu.launchIntent",
"lexicon": 1
}