games.atplay.game.release
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"assets": {
"properties": {
"files": {
"items": {
"ref": "#file",
"type": "ref"
},
"minLength": 1,
"type": "array"
},
"intent": {
"description": "The intended purpose of these assets.",
"knownValues": [
"games.atplay.game.release#webDisplay"
],
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
"required": [
"intent",
"files"
],
"type": "object"
},
"file": {
"properties": {
"contents": {
"maxSize": 2097152,
"type": "blob"
},
"path": {
"description": "The path this file should be accessible at",
"maxLength": 256,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"main": {
"description": "One published build of a game: its logic, its display, and what it replaces. Everything that doesn't change between builds lives on the game's title instead (ADR 0037).",
"key": "tid",
"record": {
"properties": {
"assets": {
"items": {
"ref": "#assets",
"type": "ref"
},
"type": "array"
},
"createdAt": {
"description": "When this version of this game was released",
"format": "datetime",
"type": "string"
},
"gamelogic": {
"accept": [
"application/javascript"
],
"description": "Javascript IIFE module containing game logic conforming to the AtPlay standard",
"type": "blob"
},
"replaces": {
"ref": "#replaces",
"type": "ref"
},
"title": {
"description": "The game this is a release of. A plain AT-URI rather than a strongRef, because a title's CID changes whenever its `latest` pointer moves and this names the game, not a version of the record. Must be in the same repo as this release; readers ignore releases that name a title belonging to another DID.",
"format": "at-uri",
"maxLength": 512,
"type": "string"
},
"version": {
"description": "The game logic's version number in the format 'X.Y' or 'X.Y-alpha'. An increment in X means gameplay is intentionally (likely incompatibly) different, an increment in Y means a compatible fix (players could and may wish to upgrade mid-game). The presence of a hyphen + alpha string means unstable game logic, which may or may not be compatible with the subsequently released game logic vX.Y.",
"maxLength": 32,
"minLength": 3,
"type": "string"
}
},
"required": [
"title",
"version",
"gamelogic"
],
"type": "object"
},
"type": "record"
},
"replaces": {
"description": "A statement that this game logic is intended to replace this previous version for new games",
"properties": {
"changeNotes": {
"description": "A description of what changed between the referenced previous version, and this one. Supports markdown.",
"maxGraphemes": 1000,
"maxLength": 10000,
"type": "string"
},
"previous": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
}
},
"required": [
"previous",
"changeNotes"
],
"type": "object"
},
"webDisplay": {
"description": "These assets are intended to display this game on the web.",
"type": "token"
}
},
"id": "games.atplay.game.release",
"lexicon": 1
}
Metadata
- DID
-
did:plc:xawtkr77srkxlwhxjf7whbml - CID
-
bafyreiggugwcu4hbbsg7kkdxfxwh3gwxqddbudes2cknky66m7uwgm5lvq - Indexed At
- 2026-07-25 07:03 UTC
- AT-URI
-
at://did:plc:xawtkr77srkxlwhxjf7whbml/com.atproto.lexicon.schema/games.atplay.game.release
Version History (3 versions)
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
A pointer to the latest release of a game
-
lol.folk.game record
A game, published by the developer that made it. One per repo: the record lives in the developer's own repository and is the canonical, self-asserted definition of the game. Player-side records reference it by AT-URI.
-
A game definition: what it is, what a player needs to play it, and what records it uses.
-
games.atplay.game.title record
A game, as distinct from any one release of it. There is one of these per game per developer, and its record key is the game's id — so its AT-URI is a permanent name for the game, which releases point back at (ADR 003…