games.atplay.game.createTurn
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Publish a turn. The appview writes it to the caller's repo, from where the other players pick it up. Actions may be empty for the negotiation steps middleware drives (ADR 0028). The caller must have stored any secrets this turn depends on first (ADR 0030).",
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"actions": {
"description": "The actions taken by this player in this game, created & interpretable by the game logic (but ideally also human readable). May be empty: setup negotiation (commit/reveal, shuffles) advances the state without any human action.",
"items": {
"maxLength": 1024,
"type": "string"
},
"type": "array"
},
"follows": {
"description": "The record(s) that this new game state is based upon. This is usually the single previous turn (or the invitation, for the first turn), but for games where turns can be taken parallel for a given round, this may contain more than one record.",
"items": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"minLength": 1,
"type": "array"
},
"game": {
"ref": "games.atplay.game.release",
"type": "ref"
},
"invitation": {
"description": "Reference to the game invitation record",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"nextPlayers": {
"description": "Array of DIDs for the next player(s) to take a turn. Duplicates state.individual.[].player (where active is true) so appviews can answer 'whose turn is it' without deserialising the state. Absent means the game is over.",
"items": {
"format": "did",
"type": "string"
},
"minLength": 1,
"type": "array"
},
"state": {
"ref": "games.atplay.game.state",
"type": "ref"
}
},
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"cid": {
"maxLength": 256,
"type": "string"
},
"uri": {
"maxLength": 512,
"type": "string"
}
},
"required": [
"uri"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "games.atplay.game.createTurn",
"lexicon": 1
}
Metadata
- DID
-
did:plc:xawtkr77srkxlwhxjf7whbml - CID
-
bafyreieamoup6zgatn5f24gsfw6whoclpu7k72qujjm6jscdcsjzac4ohy - Indexed At
- 2026-07-25 07:03 UTC
- AT-URI
-
at://did:plc:xawtkr77srkxlwhxjf7whbml/com.atproto.lexicon.schema/games.atplay.game.createTurn
Referenced Schemas (2)
- games.atplay.game.release
- games.atplay.game.state
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
games.atplay.game.turn record
A turn
-
games.atplay.game.createInvitation procedure
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).
-
games.atplay.game.invitation record
An invitation to play a game, with everything needed to execute it