{
"id": "games.atplay.game.createInvitation",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"maxLength": 512,
"description": "The AT-URI this invitation should be written to. Only its record key is used, and the caller mints it so anything keyed to the invitation — its secrets, above all — can be stored before the game is published."
},
"game": {
"ref": "games.atplay.game.release",
"type": "ref"
},
"state": {
"ref": "games.atplay.game.state",
"type": "ref"
},
"parameters": {
"ref": "#parameters",
"type": "ref",
"description": "Any parameters of play used by the game logic"
},
"otherPlayers": {
"type": "array",
"items": {
"type": "string",
"format": "did"
},
"minLength": 1,
"description": "Array of DIDs for other players in the game"
}
}
},
"encoding": "application/json"
},
"output": {
"schema": {
"type": "object",
"required": [
"uri"
],
"properties": {
"cid": {
"type": "string",
"maxLength": 256
},
"uri": {
"type": "string",
"maxLength": 512
}
}
},
"encoding": "application/json"
},
"description": "Invite other players to a game. The appview writes the invitation to the caller's repo, where the invitees will find it. The state must already be the output of the initiator's own first resolve (see ADR 0006)."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}