games.atplay.game.release

atplay.games

{
  "id": "games.atplay.game.release",
  "defs": {
    "file": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "maxLength": 256,
          "minLength": 1,
          "description": "The path this file should be accessible at"
        },
        "contents": {
          "type": "blob",
          "maxSize": 2097152
        }
      }
    },
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "name",
          "id",
          "version",
          "gamelogic",
          "attributes"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "record-key",
            "description": "An ID for this game which will be used to refer to it in technical contexts. Must be the same as the ID of the release in 'replaces' if present, there can be one latestRelease record per ID"
          },
          "name": {
            "type": "string",
            "maxLength": 640,
            "description": "The name of the game being played. Must match what the blob returns",
            "maxGraphemes": 64,
            "minGraphemes": 1
          },
          "assets": {
            "type": "array",
            "items": {
              "ref": "#assets",
              "type": "ref"
            }
          },
          "version": {
            "type": "string",
            "maxLength": 32,
            "minLemgth": 3,
            "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."
          },
          "replaces": {
            "ref": "#replaces",
            "type": "ref"
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "When this version of this game was released"
          },
          "gamelogic": {
            "type": "blob",
            "accept": [
              "application/javascript"
            ],
            "description": "Javascript IIFE module containing game logic conforming to the AtPlay standard"
          },
          "attributes": {
            "ref": "#attributes",
            "type": "ref"
          },
          "parameters": {
            "ref": "#parameters",
            "type": "ref"
          },
          "description": {
            "type": "string",
            "maxLength": 3000,
            "description": "A description of this game, and why people might choose to play it",
            "maxGraphemes": 300,
            "minGraphemes": 1
          }
        }
      },
      "description": "A release of a playable game, and its logic"
    },
    "assets": {
      "type": "object",
      "required": [
        "intent",
        "files"
      ],
      "properties": {
        "files": {
          "type": "array",
          "items": {
            "ref": "#file",
            "type": "ref"
          },
          "minLength": 1
        },
        "intent": {
          "type": "string",
          "maxLength": 128,
          "minLength": 1,
          "description": "The intended purpose of these assets.",
          "knownValues": [
            "games.atplay.game.release#webDisplay"
          ]
        }
      }
    },
    "replaces": {
      "type": "object",
      "required": [
        "previous",
        "changeNotes"
      ],
      "properties": {
        "previous": {
          "ref": "com.atproto.repo.strongRef",
          "type": "ref"
        },
        "changeNotes": {
          "type": "string",
          "maxLength": 10000,
          "description": "A description of what changed between the referenced previous version, and this one. Supports markdown.",
          "maxGraphemes": 1000
        }
      },
      "description": "A statement that this game logic is intended to replace this previous version for new games"
    },
    "attributes": {
      "type": "object",
      "required": [
        "players",
        "complexity",
        "skill",
        "tags"
      ],
      "properties": {
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 128,
            "minLength": 1,
            "knownValues": [
              "games.atplay.taxonomy.mechanic#acting",
              "games.atplay.taxonomy.mechanic#actionEvent",
              "games.atplay.taxonomy.mechanic#actionDrafting",
              "games.atplay.taxonomy.mechanic#actionPoints",
              "games.atplay.taxonomy.mechanic#actionQueue",
              "games.atplay.taxonomy.mechanic#actionRetrieval",
              "games.atplay.taxonomy.mechanic#actionTimer",
              "games.atplay.taxonomy.mechanic#advantageToken",
              "games.atplay.taxonomy.mechanic#alliances",
              "games.atplay.taxonomy.mechanic#areaMajorityInfluence",
              "games.atplay.taxonomy.mechanic#areaMovement",
              "games.atplay.taxonomy.mechanic#areaImpulse",
              "games.atplay.taxonomy.mechanic#auctionBidding",
              "games.atplay.taxonomy.mechanic#auctionCompensation",
              "games.atplay.taxonomy.mechanic#auctionDexterity",
              "games.atplay.taxonomy.mechanic#auctionDutch",
              "games.atplay.taxonomy.mechanic#auctionDutchPriority",
              "games.atplay.taxonomy.mechanic#auctionEnglish",
              "games.atplay.taxonomy.mechanic#auctionFixedPlacement",
              "games.atplay.taxonomy.mechanic#auctionMultipleLot",
              "games.atplay.taxonomy.mechanic#auctionOnceAround",
              "games.atplay.taxonomy.mechanic#auctionSealedBid",
              "games.atplay.taxonomy.mechanic#auctionTurnOrderUntilPass",
              "games.atplay.taxonomy.mechanic#automaticResourceGrowth",
              "games.atplay.taxonomy.mechanic#bettingAndBluffing",
              "games.atplay.taxonomy.mechanic#bias",
              "games.atplay.taxonomy.mechanic#bidsAsWagers",
              "games.atplay.taxonomy.mechanic#bingo",
              "games.atplay.taxonomy.mechanic#bribery",
              "games.atplay.taxonomy.mechanic#campaignBattleCardDriven",
              "games.atplay.taxonomy.mechanic#cardPlayConflictResolution",
              "games.atplay.taxonomy.mechanic#catchTheLeader",
              "games.atplay.taxonomy.mechanic#chaining",
              "games.atplay.taxonomy.mechanic#chitPullSystem",
              "games.atplay.taxonomy.mechanic#closedDrafting",
              "games.atplay.taxonomy.mechanic#closedEconomyAuction",
              "games.atplay.taxonomy.mechanic#commandCards",
              "games.atplay.taxonomy.mechanic#commoditySpeculation",
              "games.atplay.taxonomy.mechanic#communicationLimits",
              "games.atplay.taxonomy.mechanic#connections",
              "games.atplay.taxonomy.mechanic#constrainedBidding",
              "games.atplay.taxonomy.mechanic#contracts",
              "games.atplay.taxonomy.mechanic#cooperativeGame",
              "games.atplay.taxonomy.mechanic#crayonRailSystem",
              "games.atplay.taxonomy.mechanic#criticalHitsAndFailures",
              "games.atplay.taxonomy.mechanic#cubeTower",
              "games.atplay.taxonomy.mechanic#deckConstruction",
              "games.atplay.taxonomy.mechanic#deckBagAndPoolBuilding",
              "games.atplay.taxonomy.mechanic#deduction",
              "games.atplay.taxonomy.mechanic#delayedPurchase",
              "games.atplay.taxonomy.mechanic#diceRolling",
              "games.atplay.taxonomy.mechanic#dieIconResolution",
              "games.atplay.taxonomy.mechanic#differentDiceMovement",
              "games.atplay.taxonomy.mechanic#drawing",
              "games.atplay.taxonomy.mechanic#elapsedRealTimeEnding",
              "games.atplay.taxonomy.mechanic#enclosure",
              "games.atplay.taxonomy.mechanic#endGameBonuses",
              "games.atplay.taxonomy.mechanic#events",
              "games.atplay.taxonomy.mechanic#finaleEnding",
              "games.atplay.taxonomy.mechanic#flicking",
              "games.atplay.taxonomy.mechanic#follow",
              "games.atplay.taxonomy.mechanic#forceCommitment",
              "games.atplay.taxonomy.mechanic#gridCoverage",
              "games.atplay.taxonomy.mechanic#gridMovement",
              "games.atplay.taxonomy.mechanic#handManagement",
              "games.atplay.taxonomy.mechanic#hexagonGrid",
              "games.atplay.taxonomy.mechanic#hiddenMovement",
              "games.atplay.taxonomy.mechanic#hiddenRoles",
              "games.atplay.taxonomy.mechanic#hiddenVictoryPoints",
              "games.atplay.taxonomy.mechanic#highestLowestScoring",
              "games.atplay.taxonomy.mechanic#hotPotato",
              "games.atplay.taxonomy.mechanic#iCutYouChoose",
              "games.atplay.taxonomy.mechanic#impulseMovement",
              "games.atplay.taxonomy.mechanic#income",
              "games.atplay.taxonomy.mechanic#increaseValueOfUnchosenResources",
              "games.atplay.taxonomy.mechanic#induction",
              "games.atplay.taxonomy.mechanic#interrupts",
              "games.atplay.taxonomy.mechanic#investment",
              "games.atplay.taxonomy.mechanic#killSteal",
              "games.atplay.taxonomy.mechanic#kingOfTheHill",
              "games.atplay.taxonomy.mechanic#ladderClimbing",
              "games.atplay.taxonomy.mechanic#layering",
              "games.atplay.taxonomy.mechanic#legacyGame",
              "games.atplay.taxonomy.mechanic#lineDrawing",
              "games.atplay.taxonomy.mechanic#lineOfSight",
              "games.atplay.taxonomy.mechanic#loans",
              "games.atplay.taxonomy.mechanic#loseATurn",
              "games.atplay.taxonomy.mechanic#mancala",
              "games.atplay.taxonomy.mechanic#mapAddition",
              "games.atplay.taxonomy.mechanic#mapDeformation",
              "games.atplay.taxonomy.mechanic#mapReduction",
              "games.atplay.taxonomy.mechanic#market",
              "games.atplay.taxonomy.mechanic#matching",
              "games.atplay.taxonomy.mechanic#measurementMovement",
              "games.atplay.taxonomy.mechanic#meldingAndSplaying",
              "games.atplay.taxonomy.mechanic#memory",
              "games.atplay.taxonomy.mechanic#minimapResolution",
              "games.atplay.taxonomy.mechanic#modularBoard",
              "games.atplay.taxonomy.mechanic#moveThroughDeck",
              "games.atplay.taxonomy.mechanic#movementPoints",
              "games.atplay.taxonomy.mechanic#movementTemplate",
              "games.atplay.taxonomy.mechanic#movingMultipleUnits",
              "games.atplay.taxonomy.mechanic#multiUseCards",
              "games.atplay.taxonomy.mechanic#multipleMaps",
              "games.atplay.taxonomy.mechanic#narrativeChoiceParagraph",
              "games.atplay.taxonomy.mechanic#negotiation",
              "games.atplay.taxonomy.mechanic#neighborScope",
              "games.atplay.taxonomy.mechanic#networkAndRouteBuilding",
              "games.atplay.taxonomy.mechanic#oncePerGameAbilities",
              "games.atplay.taxonomy.mechanic#openDrafting",
              "games.atplay.taxonomy.mechanic#orderCounters",
              "games.atplay.taxonomy.mechanic#ordering",
              "games.atplay.taxonomy.mechanic#ownership",
              "games.atplay.taxonomy.mechanic#paperAndPencil",
              "games.atplay.taxonomy.mechanic#passedActionToken",
              "games.atplay.taxonomy.mechanic#patternBuilding",
              "games.atplay.taxonomy.mechanic#patternMovement",
              "games.atplay.taxonomy.mechanic#patternRecognition",
              "games.atplay.taxonomy.mechanic#physicalRemoval",
              "games.atplay.taxonomy.mechanic#pickUpAndDeliver",
              "games.atplay.taxonomy.mechanic#piecesAsMap",
              "games.atplay.taxonomy.mechanic#playerElimination",
              "games.atplay.taxonomy.mechanic#playerJudge",
              "games.atplay.taxonomy.mechanic#pointToPointMovement",
              "games.atplay.taxonomy.mechanic#predictiveBid",
              "games.atplay.taxonomy.mechanic#prisonersDilemma",
              "games.atplay.taxonomy.mechanic#programmedMovement",
              "games.atplay.taxonomy.mechanic#pushYourLuck",
              "games.atplay.taxonomy.mechanic#questionsAndAnswers",
              "games.atplay.taxonomy.mechanic#race",
              "games.atplay.taxonomy.mechanic#randomProduction",
              "games.atplay.taxonomy.mechanic#ratioCombatResultsTable",
              "games.atplay.taxonomy.mechanic#reRollingAndLocking",
              "games.atplay.taxonomy.mechanic#realTime",
              "games.atplay.taxonomy.mechanic#relativeMovement",
              "games.atplay.taxonomy.mechanic#resourceQueue",
              "games.atplay.taxonomy.mechanic#resourceToMove",
              "games.atplay.taxonomy.mechanic#rockPaperScissors",
              "games.atplay.taxonomy.mechanic#rolePlaying",
              "games.atplay.taxonomy.mechanic#rolesWithAsymmetricInformation",
              "games.atplay.taxonomy.mechanic#rollSpinAndMove",
              "games.atplay.taxonomy.mechanic#rondel",
              "games.atplay.taxonomy.mechanic#scenarioMissionCampaignGame",
              "games.atplay.taxonomy.mechanic#scoreAndResetGame",
              "games.atplay.taxonomy.mechanic#secretUnitDeployment",
              "games.atplay.taxonomy.mechanic#selectionOrderBid",
              "games.atplay.taxonomy.mechanic#semiCooperativeGame",
              "games.atplay.taxonomy.mechanic#setCollection",
              "games.atplay.taxonomy.mechanic#simulation",
              "games.atplay.taxonomy.mechanic#simultaneousActionSelection",
              "games.atplay.taxonomy.mechanic#singing",
              "games.atplay.taxonomy.mechanic#singleLoserGame",
              "games.atplay.taxonomy.mechanic#slidePush",
              "games.atplay.taxonomy.mechanic#soloSolitaireGame",
              "games.atplay.taxonomy.mechanic#speedMatching",
              "games.atplay.taxonomy.mechanic#spelling",
              "games.atplay.taxonomy.mechanic#squareGrid",
              "games.atplay.taxonomy.mechanic#stackingAndBalancing",
              "games.atplay.taxonomy.mechanic#statCheckResolution",
              "games.atplay.taxonomy.mechanic#staticCapture",
              "games.atplay.taxonomy.mechanic#stockHolding",
              "games.atplay.taxonomy.mechanic#storytelling",
              "games.atplay.taxonomy.mechanic#suddenDeathEnding",
              "games.atplay.taxonomy.mechanic#tags",
              "games.atplay.taxonomy.mechanic#takeThat",
              "games.atplay.taxonomy.mechanic#targetedClues",
              "games.atplay.taxonomy.mechanic#teamBasedGame",
              "games.atplay.taxonomy.mechanic#techTreesTechTracks",
              "games.atplay.taxonomy.mechanic#threeDimensionalMovement",
              "games.atplay.taxonomy.mechanic#tilePlacement",
              "games.atplay.taxonomy.mechanic#trackMovement",
              "games.atplay.taxonomy.mechanic#trading",
              "games.atplay.taxonomy.mechanic#traitorGame",
              "games.atplay.taxonomy.mechanic#trickTaking",
              "games.atplay.taxonomy.mechanic#tugOfWar",
              "games.atplay.taxonomy.mechanic#turnOrderAuction",
              "games.atplay.taxonomy.mechanic#turnOrderClaimAction",
              "games.atplay.taxonomy.mechanic#turnOrderPassOrder",
              "games.atplay.taxonomy.mechanic#turnOrderProgressive",
              "games.atplay.taxonomy.mechanic#turnOrderRandom",
              "games.atplay.taxonomy.mechanic#turnOrderRoleOrder",
              "games.atplay.taxonomy.mechanic#turnOrderStatBased",
              "games.atplay.taxonomy.mechanic#turnOrderTimeTrack",
              "games.atplay.taxonomy.mechanic#variablePhaseOrder",
              "games.atplay.taxonomy.mechanic#variablePlayerPowers",
              "games.atplay.taxonomy.mechanic#variableSetUp",
              "games.atplay.taxonomy.mechanic#victoryPointsAsAResource",
              "games.atplay.taxonomy.mechanic#voting",
              "games.atplay.taxonomy.mechanic#workerPlacement",
              "games.atplay.taxonomy.mechanic#workerPlacementWithDiceWorkers",
              "games.atplay.taxonomy.mechanic#workerPlacementDifferentWorkerTypes",
              "games.atplay.taxonomy.mechanic#zoneOfControl",
              "games.atplay.taxonomy.category#abstractStrategy",
              "games.atplay.taxonomy.category#actionDexterity",
              "games.atplay.taxonomy.category#adventure",
              "games.atplay.taxonomy.category#ageOfReason",
              "games.atplay.taxonomy.category#americanCivilWar",
              "games.atplay.taxonomy.category#americanIndianWars",
              "games.atplay.taxonomy.category#americanRevolutionaryWar",
              "games.atplay.taxonomy.category#americanWest",
              "games.atplay.taxonomy.category#ancient",
              "games.atplay.taxonomy.category#animals",
              "games.atplay.taxonomy.category#arabian",
              "games.atplay.taxonomy.category#aviationFlight",
              "games.atplay.taxonomy.category#bluffing",
              "games.atplay.taxonomy.category#book",
              "games.atplay.taxonomy.category#cardGame",
              "games.atplay.taxonomy.category#childrensGame",
              "games.atplay.taxonomy.category#cityBuilding",
              "games.atplay.taxonomy.category#civilWar",
              "games.atplay.taxonomy.category#civilization",
              "games.atplay.taxonomy.category#collectibleComponents",
              "games.atplay.taxonomy.category#comicBookStrip",
              "games.atplay.taxonomy.category#deduction",
              "games.atplay.taxonomy.category#dice",
              "games.atplay.taxonomy.category#economic",
              "games.atplay.taxonomy.category#educational",
              "games.atplay.taxonomy.category#electronic",
              "games.atplay.taxonomy.category#environmental",
              "games.atplay.taxonomy.category#exploration",
              "games.atplay.taxonomy.category#fantasy",
              "games.atplay.taxonomy.category#farming",
              "games.atplay.taxonomy.category#fighting",
              "games.atplay.taxonomy.category#gameSystem",
              "games.atplay.taxonomy.category#horror",
              "games.atplay.taxonomy.category#humor",
              "games.atplay.taxonomy.category#industryManufacturing",
              "games.atplay.taxonomy.category#koreanWar",
              "games.atplay.taxonomy.category#mafia",
              "games.atplay.taxonomy.category#math",
              "games.atplay.taxonomy.category#matureAdult",
              "games.atplay.taxonomy.category#maze",
              "games.atplay.taxonomy.category#medical",
              "games.atplay.taxonomy.category#medieval",
              "games.atplay.taxonomy.category#memory",
              "games.atplay.taxonomy.category#miniatures",
              "games.atplay.taxonomy.category#modernWarfare",
              "games.atplay.taxonomy.category#moviesTvRadioTheme",
              "games.atplay.taxonomy.category#murderMystery",
              "games.atplay.taxonomy.category#music",
              "games.atplay.taxonomy.category#mythology",
              "games.atplay.taxonomy.category#napoleonic",
              "games.atplay.taxonomy.category#nautical",
              "games.atplay.taxonomy.category#negotiation",
              "games.atplay.taxonomy.category#novelBased",
              "games.atplay.taxonomy.category#number",
              "games.atplay.taxonomy.category#partyGame",
              "games.atplay.taxonomy.category#pikeAndShot",
              "games.atplay.taxonomy.category#pirates",
              "games.atplay.taxonomy.category#political",
              "games.atplay.taxonomy.category#postNapoleonic",
              "games.atplay.taxonomy.category#prehistoric",
              "games.atplay.taxonomy.category#printAndPlay",
              "games.atplay.taxonomy.category#puzzle",
              "games.atplay.taxonomy.category#racing",
              "games.atplay.taxonomy.category#realTime",
              "games.atplay.taxonomy.category#religious",
              "games.atplay.taxonomy.category#renaissance",
              "games.atplay.taxonomy.category#scienceFiction",
              "games.atplay.taxonomy.category#spaceExploration",
              "games.atplay.taxonomy.category#spiesSecretAgents",
              "games.atplay.taxonomy.category#sports",
              "games.atplay.taxonomy.category#territoryBuilding",
              "games.atplay.taxonomy.category#trains",
              "games.atplay.taxonomy.category#transportation",
              "games.atplay.taxonomy.category#travel",
              "games.atplay.taxonomy.category#trivia",
              "games.atplay.taxonomy.category#videoGameTheme",
              "games.atplay.taxonomy.category#vietnamWar",
              "games.atplay.taxonomy.category#wargame",
              "games.atplay.taxonomy.category#wordGame",
              "games.atplay.taxonomy.category#worldWarI",
              "games.atplay.taxonomy.category#worldWarII",
              "games.atplay.taxonomy.category#zombies"
            ]
          },
          "description": "Tags describing the game's style, theme, and mechanics."
        },
        "skill": {
          "type": "integer",
          "maximum": 10,
          "minimum": 0,
          "description": "How much of the outcome is determined by player skill rather than chance. 0 = pure luck (e.g. snakes and ladders), 10 = pure skill (e.g. chess, with no random elements)."
        },
        "players": {
          "type": "array",
          "items": {
            "type": "integer",
            "minimum": 1
          },
          "maxLength": 3,
          "minLength": 1,
          "description": "Supported player counts. One element means an exact count (e.g. [2] = exactly two players); two elements mean an inclusive range (e.g. [2, 4] = two to four players); three elements mean a range with the middle number being the recommended number (e.g. [2, 3, 5] = two to five players, plays best with three)."
        },
        "complexity": {
          "type": "integer",
          "maximum": 5,
          "minimum": 1,
          "description": "Rules and decision-space complexity, equivalent to BoardGameGeek's complexity weighting. 1 = trivial to learn and play, 5 = heavy ruleset with deep strategy."
        }
      },
      "description": "Static metadata about the game itself, surfaced to potential players when they're deciding whether to play it. Distinct from `parameters`, which configures gameplay."
    },
    "parameters": {
      "type": "object",
      "properties": {},
      "description": "The configurable parameters for this game. Their defaults when in a game.release, or their values for a given game elsewhere."
    },
    "webDisplay": {
      "type": "token",
      "description": "These assets are intended to display this game on the web."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against games.atplay.game.release

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:xawtkr77srkxlwhxjf7whbml
CID
bafyreiewdv7tfilkufzzo6hh47ec2l3ycweo3kd3t2dq5quew6oic6iq2q
Indexed At
2026-04-11 21:27 UTC
AT-URI
at://did:plc:xawtkr77srkxlwhxjf7whbml/com.atproto.lexicon.schema/games.atplay.game.release

Lexicon Garden

@