games.atplay.game.release

atplay.games

Schema Diff

+8 -346

From

CID
bafyreic3kis7p2r...
Indexed At
2026-07-20 09:23 UTC
View this version

To

CID
bafyreiggugwcu4h...
Indexed At
2026-07-25 07:03 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

24 breaking changes, 1 non-breaking change.

Breaking Changes (24)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "games.atplay.game.release:body", src: "games.atplay.game.release:body", tgt: "games.atplay.game.release:body.title", kind: "prop", name: Some("title") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "games.atplay.game.release#attributes", src: "games.atplay.game.release#attributes", tgt: "games.atplay.game.release#attributes.players", kind: "prop", name: Some("players") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "games.atplay.game.release#attributes", src: "games.atplay.game.release#attributes", tgt: "games.atplay.game.release#attributes.skill", kind: "prop", name: Some("skill") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "games.atplay.game.release#attributes", src: "games.atplay.game.release#attributes", tgt: "games.atplay.game.release#attributes.tags", kind: "prop", name: Some("tags") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "games.atplay.game.release#attributes", src: "games.atplay.game.release#attributes", tgt: "games.atplay.game.release#attributes.complexity", kind: "prop", name: Some("complexity") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "games.atplay.game.release:body", src: "games.atplay.game.release:body", tgt: "games.atplay.game.release:body.id", kind: "prop", name: Some("id") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "games.atplay.game.release:body", src: "games.atplay.game.release:body", tgt: "games.atplay.game.release:body.attributes", kind: "prop", name: Some("attributes") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "games.atplay.game.release:body", src: "games.atplay.game.release:body", tgt: "games.atplay.game.release:body.name", kind: "prop", name: Some("name") }
  • RemovedVertex RemovedVertex { vertex_id: "games.atplay.game.release#attributes" }
  • RemovedVertex RemovedVertex { vertex_id: "games.atplay.game.release#attributes.complexity" }
  • RemovedVertex RemovedVertex { vertex_id: "games.atplay.game.release#attributes.players" }
  • RemovedVertex RemovedVertex { vertex_id: "games.atplay.game.release#attributes.players:items" }
  • RemovedVertex RemovedVertex { vertex_id: "games.atplay.game.release#attributes.skill" }
  • RemovedVertex RemovedVertex { vertex_id: "games.atplay.game.release#attributes.tags" }
  • RemovedVertex RemovedVertex { vertex_id: "games.atplay.game.release#attributes.tags:items" }
  • RemovedVertex RemovedVertex { vertex_id: "games.atplay.game.release:body.attributes" }
  • RemovedVertex RemovedVertex { vertex_id: "games.atplay.game.release:body.description" }
  • RemovedVertex RemovedVertex { vertex_id: "games.atplay.game.release:body.id" }
  • RemovedVertex RemovedVertex { vertex_id: "games.atplay.game.release:body.name" }
  • RemovedEdge RemovedEdge { src: "games.atplay.game.release#attributes.players", tgt: "games.atplay.game.release#attributes.players:items", kind: "items", name: None }
  • RemovedEdge RemovedEdge { src: "games.atplay.game.release#attributes.tags", tgt: "games.atplay.game.release#attributes.tags:items", kind: "items", name: None }
  • RemovedEdge RemovedEdge { src: "games.atplay.game.release:body", tgt: "games.atplay.game.release:body.description", kind: "prop", name: Some("description") }
  • RemovedEdge RemovedEdge { src: "games.atplay.game.release:body.attributes", tgt: "games.atplay.game.release#attributes", kind: "ref", name: None }
  • ConstraintAdded ConstraintAdded { vertex_id: "games.atplay.game.release:body.version", sort: "minLength", value: "3" }
Non-Breaking Changes (1)
  • AddedVertex AddedVertex { vertex_id: "games.atplay.game.release:body.title" }

Migration Guidance

Removed Elements

  • RemovedVertex { vertex_id: "games.atplay.game.release#attributes" }
  • RemovedVertex { vertex_id: "games.atplay.game.release#attributes.complexity" }
  • RemovedVertex { vertex_id: "games.atplay.game.release#attributes.players" }
  • RemovedVertex { vertex_id: "games.atplay.game.release#attributes.players:items" }
  • RemovedVertex { vertex_id: "games.atplay.game.release#attributes.skill" }
  • RemovedVertex { vertex_id: "games.atplay.game.release#attributes.tags" }
  • RemovedVertex { vertex_id: "games.atplay.game.release#attributes.tags:items" }
  • RemovedVertex { vertex_id: "games.atplay.game.release:body.attributes" }
  • RemovedVertex { vertex_id: "games.atplay.game.release:body.description" }
  • RemovedVertex { vertex_id: "games.atplay.game.release:body.id" }
  • RemovedVertex { vertex_id: "games.atplay.game.release:body.name" }

Added Elements

  • AddedVertex { vertex_id: "games.atplay.game.release:body.title" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "games.atplay.game.release:body.version", sort: "minLength", value: "3" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "games.atplay.game.release:body", src: "games.atplay.game.release:body", tgt: "games.atplay.game.release:body.title", kind: "prop", name: Some("title") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "games.atplay.game.release#attributes", src: "games.atplay.game.release#attributes", tgt: "games.atplay.game.release#attributes.players", kind: "prop", name: Some("players") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "games.atplay.game.release#attributes", src: "games.atplay.game.release#attributes", tgt: "games.atplay.game.release#attributes.skill", kind: "prop", name: Some("skill") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "games.atplay.game.release#attributes", src: "games.atplay.game.release#attributes", tgt: "games.atplay.game.release#attributes.tags", kind: "prop", name: Some("tags") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "games.atplay.game.release#attributes", src: "games.atplay.game.release#attributes", tgt: "games.atplay.game.release#attributes.complexity", kind: "prop", name: Some("complexity") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "games.atplay.game.release:body", src: "games.atplay.game.release:body", tgt: "games.atplay.game.release:body.id", kind: "prop", name: Some("id") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "games.atplay.game.release:body", src: "games.atplay.game.release:body", tgt: "games.atplay.game.release:body.attributes", kind: "prop", name: Some("attributes") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "games.atplay.game.release:body", src: "games.atplay.game.release:body", tgt: "games.atplay.game.release:body.name", kind: "prop", name: Some("name") }
  • Breaking: RemovedEdge { src: "games.atplay.game.release#attributes.players", tgt: "games.atplay.game.release#attributes.players:items", kind: "items", name: None }
  • Breaking: RemovedEdge { src: "games.atplay.game.release#attributes.tags", tgt: "games.atplay.game.release#attributes.tags:items", kind: "items", name: None }
  • Breaking: RemovedEdge { src: "games.atplay.game.release:body", tgt: "games.atplay.game.release:body.description", kind: "prop", name: Some("description") }
  • Breaking: RemovedEdge { src: "games.atplay.game.release:body.attributes", tgt: "games.atplay.game.release#attributes", kind: "ref", name: None }
1 1
{
2 2
  "id": "games.atplay.game.release",
3 3
  "defs": {
4 4
    "file": {
5 5
      "type": "object",
6 6
      "properties": {
7 7
        "path": {
8 8
          "type": "string",
9 9
          "maxLength": 256,
10 10
          "minLength": 1,
11 11
          "description": "The path this file should be accessible at"
12 12
        },
13 13
        "contents": {
14 14
          "type": "blob",
15 15
          "maxSize": 2097152
16 16
        }
17 17
      }
18 18
    },
19 19
    "main": {
20 20
      "key": "tid",
21 21
      "type": "record",
22 22
      "record": {
23 23
        "type": "object",
24 24
        "required": [
25 -
          "name",
26 -
          "id",
25 +
          "title",
27 26
          "version",
28 -
          "gamelogic",
29 -
          "attributes"
27 +
          "gamelogic"
30 28
        ],
31 29
        "properties": {
32 -
          "id": {
33 -
            "type": "string",
34 -
            "format": "record-key",
35 -
            "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"
36 -
          },
37 -
          "name": {
30 +
          "title": {
38 31
            "type": "string",
39 -
            "maxLength": 640,
40 -
            "description": "The name of the game being played. Must match what the blob returns",
41 -
            "maxGraphemes": 64,
42 -
            "minGraphemes": 1
32 +
            "format": "at-uri",
33 +
            "maxLength": 512,
34 +
            "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."
43 35
          },
44 36
          "assets": {
45 37
            "type": "array",
46 38
            "items": {
47 39
              "ref": "#assets",
48 40
              "type": "ref"
49 41
            }
50 42
          },
51 43
          "version": {
52 44
            "type": "string",
53 45
            "maxLength": 32,
54 -
            "minLemgth": 3,
46 +
            "minLength": 3,
55 47
            "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."
56 48
          },
57 49
          "replaces": {
58 50
            "ref": "#replaces",
59 51
            "type": "ref"
60 52
          },
61 53
          "createdAt": {
62 54
            "type": "string",
63 55
            "format": "datetime",
64 56
            "description": "When this version of this game was released"
65 57
          },
66 58
          "gamelogic": {
67 59
            "type": "blob",
68 60
            "accept": [
69 61
              "application/javascript"
70 62
            ],
71 63
            "description": "Javascript IIFE module containing game logic conforming to the AtPlay standard"
72 -
          },
73 -
          "attributes": {
74 -
            "ref": "#attributes",
75 -
            "type": "ref"
76 -
          },
77 -
          "description": {
78 -
            "type": "string",
79 -
            "maxLength": 3000,
80 -
            "description": "A description of this game, and why people might choose to play it",
81 -
            "maxGraphemes": 300,
82 -
            "minGraphemes": 1
83 64
          }
84 65
        }
85 66
      },
86 -
      "description": "A release of a playable game, and its logic"
67 +
      "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)."
87 68
    },
88 69
    "assets": {
89 70
      "type": "object",
90 71
      "required": [
91 72
        "intent",
92 73
        "files"
93 74
      ],
94 75
      "properties": {
95 76
        "files": {
96 77
          "type": "array",
97 78
          "items": {
98 79
            "ref": "#file",
99 80
            "type": "ref"
100 81
          },
101 82
          "minLength": 1
102 83
        },
103 84
        "intent": {
104 85
          "type": "string",
105 86
          "maxLength": 128,
106 87
          "minLength": 1,
107 88
          "description": "The intended purpose of these assets.",
108 89
          "knownValues": [
109 90
            "games.atplay.game.release#webDisplay"
110 91
          ]
111 92
        }
112 93
      }
113 94
    },
114 95
    "replaces": {
115 96
      "type": "object",
116 97
      "required": [
117 98
        "previous",
118 99
        "changeNotes"
119 100
      ],
120 101
      "properties": {
121 102
        "previous": {
122 103
          "ref": "com.atproto.repo.strongRef",
123 104
          "type": "ref"
124 105
        },
125 106
        "changeNotes": {
126 107
          "type": "string",
127 108
          "maxLength": 10000,
128 109
          "description": "A description of what changed between the referenced previous version, and this one. Supports markdown.",
129 110
          "maxGraphemes": 1000
130 111
        }
131 112
      },
132 113
      "description": "A statement that this game logic is intended to replace this previous version for new games"
133 -
    },
134 -
    "attributes": {
135 -
      "type": "object",
136 -
      "required": [
137 -
        "players",
138 -
        "complexity",
139 -
        "skill",
140 -
        "tags"
141 -
      ],
142 -
      "properties": {
143 -
        "tags": {
144 -
          "type": "array",
145 -
          "items": {
146 -
            "type": "string",
147 -
            "maxLength": 128,
148 -
            "minLength": 1,
149 -
            "knownValues": [
150 -
              "games.atplay.taxonomy.mechanic#acting",
151 -
              "games.atplay.taxonomy.mechanic#actionEvent",
152 -
              "games.atplay.taxonomy.mechanic#actionDrafting",
153 -
              "games.atplay.taxonomy.mechanic#actionPoints",
154 -
              "games.atplay.taxonomy.mechanic#actionQueue",
155 -
              "games.atplay.taxonomy.mechanic#actionRetrieval",
156 -
              "games.atplay.taxonomy.mechanic#actionTimer",
157 -
              "games.atplay.taxonomy.mechanic#advantageToken",
158 -
              "games.atplay.taxonomy.mechanic#alliances",
159 -
              "games.atplay.taxonomy.mechanic#areaMajorityInfluence",
160 -
              "games.atplay.taxonomy.mechanic#areaMovement",
161 -
              "games.atplay.taxonomy.mechanic#areaImpulse",
162 -
              "games.atplay.taxonomy.mechanic#auctionBidding",
163 -
              "games.atplay.taxonomy.mechanic#auctionCompensation",
164 -
              "games.atplay.taxonomy.mechanic#auctionDexterity",
165 -
              "games.atplay.taxonomy.mechanic#auctionDutch",
166 -
              "games.atplay.taxonomy.mechanic#auctionDutchPriority",
167 -
              "games.atplay.taxonomy.mechanic#auctionEnglish",
168 -
              "games.atplay.taxonomy.mechanic#auctionFixedPlacement",
169 -
              "games.atplay.taxonomy.mechanic#auctionMultipleLot",
170 -
              "games.atplay.taxonomy.mechanic#auctionOnceAround",
171 -
              "games.atplay.taxonomy.mechanic#auctionSealedBid",
172 -
              "games.atplay.taxonomy.mechanic#auctionTurnOrderUntilPass",
173 -
              "games.atplay.taxonomy.mechanic#automaticResourceGrowth",
174 -
              "games.atplay.taxonomy.mechanic#bettingAndBluffing",
175 -
              "games.atplay.taxonomy.mechanic#bias",
176 -
              "games.atplay.taxonomy.mechanic#bidsAsWagers",
177 -
              "games.atplay.taxonomy.mechanic#bingo",
178 -
              "games.atplay.taxonomy.mechanic#bribery",
179 -
              "games.atplay.taxonomy.mechanic#campaignBattleCardDriven",
180 -
              "games.atplay.taxonomy.mechanic#cardPlayConflictResolution",
181 -
              "games.atplay.taxonomy.mechanic#catchTheLeader",
182 -
              "games.atplay.taxonomy.mechanic#chaining",
183 -
              "games.atplay.taxonomy.mechanic#chitPullSystem",
184 -
              "games.atplay.taxonomy.mechanic#closedDrafting",
185 -
              "games.atplay.taxonomy.mechanic#closedEconomyAuction",
186 -
              "games.atplay.taxonomy.mechanic#commandCards",
187 -
              "games.atplay.taxonomy.mechanic#commoditySpeculation",
188 -
              "games.atplay.taxonomy.mechanic#communicationLimits",
189 -
              "games.atplay.taxonomy.mechanic#connections",
190 -
              "games.atplay.taxonomy.mechanic#constrainedBidding",
191 -
              "games.atplay.taxonomy.mechanic#contracts",
192 -
              "games.atplay.taxonomy.mechanic#cooperativeGame",
193 -
              "games.atplay.taxonomy.mechanic#crayonRailSystem",
194 -
              "games.atplay.taxonomy.mechanic#criticalHitsAndFailures",
195 -
              "games.atplay.taxonomy.mechanic#cubeTower",
196 -
              "games.atplay.taxonomy.mechanic#deckConstruction",
197 -
              "games.atplay.taxonomy.mechanic#deckBagAndPoolBuilding",
198 -
              "games.atplay.taxonomy.mechanic#deduction",
199 -
              "games.atplay.taxonomy.mechanic#delayedPurchase",
200 -
              "games.atplay.taxonomy.mechanic#diceRolling",
201 -
              "games.atplay.taxonomy.mechanic#dieIconResolution",
202 -
              "games.atplay.taxonomy.mechanic#differentDiceMovement",
203 -
              "games.atplay.taxonomy.mechanic#drawing",
204 -
              "games.atplay.taxonomy.mechanic#elapsedRealTimeEnding",
205 -
              "games.atplay.taxonomy.mechanic#enclosure",
206 -
              "games.atplay.taxonomy.mechanic#endGameBonuses",
207 -
              "games.atplay.taxonomy.mechanic#events",
208 -
              "games.atplay.taxonomy.mechanic#finaleEnding",
209 -
              "games.atplay.taxonomy.mechanic#flicking",
210 -
              "games.atplay.taxonomy.mechanic#follow",
211 -
              "games.atplay.taxonomy.mechanic#forceCommitment",
212 -
              "games.atplay.taxonomy.mechanic#gridCoverage",
213 -
              "games.atplay.taxonomy.mechanic#gridMovement",
214 -
              "games.atplay.taxonomy.mechanic#handManagement",
215 -
              "games.atplay.taxonomy.mechanic#hexagonGrid",
216 -
              "games.atplay.taxonomy.mechanic#hiddenMovement",
217 -
              "games.atplay.taxonomy.mechanic#hiddenRoles",
218 -
              "games.atplay.taxonomy.mechanic#hiddenVictoryPoints",
219 -
              "games.atplay.taxonomy.mechanic#highestLowestScoring",
220 -
              "games.atplay.taxonomy.mechanic#hotPotato",
221 -
              "games.atplay.taxonomy.mechanic#iCutYouChoose",
222 -
              "games.atplay.taxonomy.mechanic#impulseMovement",
223 -
              "games.atplay.taxonomy.mechanic#income",
224 -
              "games.atplay.taxonomy.mechanic#increaseValueOfUnchosenResources",
225 -
              "games.atplay.taxonomy.mechanic#induction",
226 -
              "games.atplay.taxonomy.mechanic#interrupts",
227 -
              "games.atplay.taxonomy.mechanic#investment",
228 -
              "games.atplay.taxonomy.mechanic#killSteal",
229 -
              "games.atplay.taxonomy.mechanic#kingOfTheHill",
230 -
              "games.atplay.taxonomy.mechanic#ladderClimbing",
231 -
              "games.atplay.taxonomy.mechanic#layering",
232 -
              "games.atplay.taxonomy.mechanic#legacyGame",
233 -
              "games.atplay.taxonomy.mechanic#lineDrawing",
234 -
              "games.atplay.taxonomy.mechanic#lineOfSight",
235 -
              "games.atplay.taxonomy.mechanic#loans",
236 -
              "games.atplay.taxonomy.mechanic#loseATurn",
237 -
              "games.atplay.taxonomy.mechanic#mancala",
238 -
              "games.atplay.taxonomy.mechanic#mapAddition",
239 -
              "games.atplay.taxonomy.mechanic#mapDeformation",
240 -
              "games.atplay.taxonomy.mechanic#mapReduction",
241 -
              "games.atplay.taxonomy.mechanic#market",
242 -
              "games.atplay.taxonomy.mechanic#matching",
243 -
              "games.atplay.taxonomy.mechanic#measurementMovement",
244 -
              "games.atplay.taxonomy.mechanic#meldingAndSplaying",
245 -
              "games.atplay.taxonomy.mechanic#memory",
246 -
              "games.atplay.taxonomy.mechanic#minimapResolution",
247 -
              "games.atplay.taxonomy.mechanic#modularBoard",
248 -
              "games.atplay.taxonomy.mechanic#moveThroughDeck",
249 -
              "games.atplay.taxonomy.mechanic#movementPoints",
250 -
              "games.atplay.taxonomy.mechanic#movementTemplate",
251 -
              "games.atplay.taxonomy.mechanic#movingMultipleUnits",
252 -
              "games.atplay.taxonomy.mechanic#multiUseCards",
253 -
              "games.atplay.taxonomy.mechanic#multipleMaps",
254 -
              "games.atplay.taxonomy.mechanic#narrativeChoiceParagraph",
255 -
              "games.atplay.taxonomy.mechanic#negotiation",
256 -
              "games.atplay.taxonomy.mechanic#neighborScope",
257 -
              "games.atplay.taxonomy.mechanic#networkAndRouteBuilding",
258 -
              "games.atplay.taxonomy.mechanic#oncePerGameAbilities",
259 -
              "games.atplay.taxonomy.mechanic#openDrafting",
260 -
              "games.atplay.taxonomy.mechanic#orderCounters",
261 -
              "games.atplay.taxonomy.mechanic#ordering",
262 -
              "games.atplay.taxonomy.mechanic#ownership",
263 -
              "games.atplay.taxonomy.mechanic#paperAndPencil",
264 -
              "games.atplay.taxonomy.mechanic#passedActionToken",
265 -
              "games.atplay.taxonomy.mechanic#patternBuilding",
266 -
              "games.atplay.taxonomy.mechanic#patternMovement",
267 -
              "games.atplay.taxonomy.mechanic#patternRecognition",
268 -
              "games.atplay.taxonomy.mechanic#physicalRemoval",
269 -
              "games.atplay.taxonomy.mechanic#pickUpAndDeliver",
270 -
              "games.atplay.taxonomy.mechanic#piecesAsMap",
271 -
              "games.atplay.taxonomy.mechanic#playerElimination",
272 -
              "games.atplay.taxonomy.mechanic#playerJudge",
273 -
              "games.atplay.taxonomy.mechanic#pointToPointMovement",
274 -
              "games.atplay.taxonomy.mechanic#predictiveBid",
275 -
              "games.atplay.taxonomy.mechanic#prisonersDilemma",
276 -
              "games.atplay.taxonomy.mechanic#programmedMovement",
277 -
              "games.atplay.taxonomy.mechanic#pushYourLuck",
278 -
              "games.atplay.taxonomy.mechanic#questionsAndAnswers",
279 -
              "games.atplay.taxonomy.mechanic#race",
280 -
              "games.atplay.taxonomy.mechanic#randomProduction",
281 -
              "games.atplay.taxonomy.mechanic#ratioCombatResultsTable",
282 -
              "games.atplay.taxonomy.mechanic#reRollingAndLocking",
283 -
              "games.atplay.taxonomy.mechanic#realTime",
284 -
              "games.atplay.taxonomy.mechanic#relativeMovement",
285 -
              "games.atplay.taxonomy.mechanic#resourceQueue",
286 -
              "games.atplay.taxonomy.mechanic#resourceToMove",
287 -
              "games.atplay.taxonomy.mechanic#rockPaperScissors",
288 -
              "games.atplay.taxonomy.mechanic#rolePlaying",
289 -
              "games.atplay.taxonomy.mechanic#rolesWithAsymmetricInformation",
290 -
              "games.atplay.taxonomy.mechanic#rollSpinAndMove",
291 -
              "games.atplay.taxonomy.mechanic#rondel",
292 -
              "games.atplay.taxonomy.mechanic#scenarioMissionCampaignGame",
293 -
              "games.atplay.taxonomy.mechanic#scoreAndResetGame",
294 -
              "games.atplay.taxonomy.mechanic#secretUnitDeployment",
295 -
              "games.atplay.taxonomy.mechanic#selectionOrderBid",
296 -
              "games.atplay.taxonomy.mechanic#semiCooperativeGame",
297 -
              "games.atplay.taxonomy.mechanic#setCollection",
298 -
              "games.atplay.taxonomy.mechanic#simulation",
299 -
              "games.atplay.taxonomy.mechanic#simultaneousActionSelection",
300 -
              "games.atplay.taxonomy.mechanic#singing",
301 -
              "games.atplay.taxonomy.mechanic#singleLoserGame",
302 -
              "games.atplay.taxonomy.mechanic#slidePush",
303 -
              "games.atplay.taxonomy.mechanic#soloSolitaireGame",
304 -
              "games.atplay.taxonomy.mechanic#speedMatching",
305 -
              "games.atplay.taxonomy.mechanic#spelling",
306 -
              "games.atplay.taxonomy.mechanic#squareGrid",
307 -
              "games.atplay.taxonomy.mechanic#stackingAndBalancing",
308 -
              "games.atplay.taxonomy.mechanic#statCheckResolution",
309 -
              "games.atplay.taxonomy.mechanic#staticCapture",
310 -
              "games.atplay.taxonomy.mechanic#stockHolding",
311 -
              "games.atplay.taxonomy.mechanic#storytelling",
312 -
              "games.atplay.taxonomy.mechanic#suddenDeathEnding",
313 -
              "games.atplay.taxonomy.mechanic#tags",
314 -
              "games.atplay.taxonomy.mechanic#takeThat",
315 -
              "games.atplay.taxonomy.mechanic#targetedClues",
316 -
              "games.atplay.taxonomy.mechanic#teamBasedGame",
317 -
              "games.atplay.taxonomy.mechanic#techTreesTechTracks",
318 -
              "games.atplay.taxonomy.mechanic#threeDimensionalMovement",
319 -
              "games.atplay.taxonomy.mechanic#tilePlacement",
320 -
              "games.atplay.taxonomy.mechanic#trackMovement",
321 -
              "games.atplay.taxonomy.mechanic#trading",
322 -
              "games.atplay.taxonomy.mechanic#traitorGame",
323 -
              "games.atplay.taxonomy.mechanic#trickTaking",
324 -
              "games.atplay.taxonomy.mechanic#tugOfWar",
325 -
              "games.atplay.taxonomy.mechanic#turnOrderAuction",
326 -
              "games.atplay.taxonomy.mechanic#turnOrderClaimAction",
327 -
              "games.atplay.taxonomy.mechanic#turnOrderPassOrder",
328 -
              "games.atplay.taxonomy.mechanic#turnOrderProgressive",
329 -
              "games.atplay.taxonomy.mechanic#turnOrderRandom",
330 -
              "games.atplay.taxonomy.mechanic#turnOrderRoleOrder",
331 -
              "games.atplay.taxonomy.mechanic#turnOrderStatBased",
332 -
              "games.atplay.taxonomy.mechanic#turnOrderTimeTrack",
333 -
              "games.atplay.taxonomy.mechanic#variablePhaseOrder",
334 -
              "games.atplay.taxonomy.mechanic#variablePlayerPowers",
335 -
              "games.atplay.taxonomy.mechanic#variableSetUp",
336 -
              "games.atplay.taxonomy.mechanic#victoryPointsAsAResource",
337 -
              "games.atplay.taxonomy.mechanic#voting",
338 -
              "games.atplay.taxonomy.mechanic#workerPlacement",
339 -
              "games.atplay.taxonomy.mechanic#workerPlacementWithDiceWorkers",
340 -
              "games.atplay.taxonomy.mechanic#workerPlacementDifferentWorkerTypes",
341 -
              "games.atplay.taxonomy.mechanic#zoneOfControl",
342 -
              "games.atplay.taxonomy.category#abstractStrategy",
343 -
              "games.atplay.taxonomy.category#actionDexterity",
344 -
              "games.atplay.taxonomy.category#adventure",
345 -
              "games.atplay.taxonomy.category#ageOfReason",
346 -
              "games.atplay.taxonomy.category#americanCivilWar",
347 -
              "games.atplay.taxonomy.category#americanIndianWars",
348 -
              "games.atplay.taxonomy.category#americanRevolutionaryWar",
349 -
              "games.atplay.taxonomy.category#americanWest",
350 -
              "games.atplay.taxonomy.category#ancient",
351 -
              "games.atplay.taxonomy.category#animals",
352 -
              "games.atplay.taxonomy.category#arabian",
353 -
              "games.atplay.taxonomy.category#aviationFlight",
354 -
              "games.atplay.taxonomy.category#bluffing",
355 -
              "games.atplay.taxonomy.category#book",
356 -
              "games.atplay.taxonomy.category#cardGame",
357 -
              "games.atplay.taxonomy.category#childrensGame",
358 -
              "games.atplay.taxonomy.category#cityBuilding",
359 -
              "games.atplay.taxonomy.category#civilWar",
360 -
              "games.atplay.taxonomy.category#civilization",
361 -
              "games.atplay.taxonomy.category#collectibleComponents",
362 -
              "games.atplay.taxonomy.category#comicBookStrip",
363 -
              "games.atplay.taxonomy.category#deduction",
364 -
              "games.atplay.taxonomy.category#dice",
365 -
              "games.atplay.taxonomy.category#economic",
366 -
              "games.atplay.taxonomy.category#educational",
367 -
              "games.atplay.taxonomy.category#electronic",
368 -
              "games.atplay.taxonomy.category#environmental",
369 -
              "games.atplay.taxonomy.category#exploration",
370 -
              "games.atplay.taxonomy.category#fantasy",
371 -
              "games.atplay.taxonomy.category#farming",
372 -
              "games.atplay.taxonomy.category#fighting",
373 -
              "games.atplay.taxonomy.category#gameSystem",
374 -
              "games.atplay.taxonomy.category#horror",
375 -
              "games.atplay.taxonomy.category#humor",
376 -
              "games.atplay.taxonomy.category#industryManufacturing",
377 -
              "games.atplay.taxonomy.category#koreanWar",
378 -
              "games.atplay.taxonomy.category#mafia",
379 -
              "games.atplay.taxonomy.category#math",
380 -
              "games.atplay.taxonomy.category#matureAdult",
381 -
              "games.atplay.taxonomy.category#maze",
382 -
              "games.atplay.taxonomy.category#medical",
383 -
              "games.atplay.taxonomy.category#medieval",
384 -
              "games.atplay.taxonomy.category#memory",
385 -
              "games.atplay.taxonomy.category#miniatures",
386 -
              "games.atplay.taxonomy.category#modernWarfare",
387 -
              "games.atplay.taxonomy.category#moviesTvRadioTheme",
388 -
              "games.atplay.taxonomy.category#murderMystery",
389 -
              "games.atplay.taxonomy.category#music",
390 -
              "games.atplay.taxonomy.category#mythology",
391 -
              "games.atplay.taxonomy.category#napoleonic",
392 -
              "games.atplay.taxonomy.category#nautical",
393 -
              "games.atplay.taxonomy.category#negotiation",
394 -
              "games.atplay.taxonomy.category#novelBased",
395 -
              "games.atplay.taxonomy.category#number",
396 -
              "games.atplay.taxonomy.category#partyGame",
397 -
              "games.atplay.taxonomy.category#pikeAndShot",
398 -
              "games.atplay.taxonomy.category#pirates",
399 -
              "games.atplay.taxonomy.category#political",
400 -
              "games.atplay.taxonomy.category#postNapoleonic",
401 -
              "games.atplay.taxonomy.category#prehistoric",
402 -
              "games.atplay.taxonomy.category#printAndPlay",
403 -
              "games.atplay.taxonomy.category#puzzle",
404 -
              "games.atplay.taxonomy.category#racing",
405 -
              "games.atplay.taxonomy.category#realTime",
406 -
              "games.atplay.taxonomy.category#religious",
407 -
              "games.atplay.taxonomy.category#renaissance",
408 -
              "games.atplay.taxonomy.category#scienceFiction",
409 -
              "games.atplay.taxonomy.category#spaceExploration",
410 -
              "games.atplay.taxonomy.category#spiesSecretAgents",
411 -
              "games.atplay.taxonomy.category#sports",
412 -
              "games.atplay.taxonomy.category#territoryBuilding",
413 -
              "games.atplay.taxonomy.category#trains",
414 -
              "games.atplay.taxonomy.category#transportation",
415 -
              "games.atplay.taxonomy.category#travel",
416 -
              "games.atplay.taxonomy.category#trivia",
417 -
              "games.atplay.taxonomy.category#videoGameTheme",
418 -
              "games.atplay.taxonomy.category#vietnamWar",
419 -
              "games.atplay.taxonomy.category#wargame",
420 -
              "games.atplay.taxonomy.category#wordGame",
421 -
              "games.atplay.taxonomy.category#worldWarI",
422 -
              "games.atplay.taxonomy.category#worldWarII",
423 -
              "games.atplay.taxonomy.category#zombies"
424 -
            ]
425 -
          },
426 -
          "description": "Tags describing the game's style, theme, and mechanics."
427 -
        },
428 -
        "skill": {
429 -
          "type": "integer",
430 -
          "maximum": 10,
431 -
          "minimum": 0,
432 -
          "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)."
433 -
        },
434 -
        "players": {
435 -
          "type": "array",
436 -
          "items": {
437 -
            "type": "integer",
438 -
            "minimum": 1
439 -
          },
440 -
          "maxLength": 3,
441 -
          "minLength": 1,
442 -
          "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)."
443 -
        },
444 -
        "complexity": {
445 -
          "type": "integer",
446 -
          "maximum": 5,
447 -
          "minimum": 1,
448 -
          "description": "Rules and decision-space complexity, equivalent to BoardGameGeek's complexity weighting. 1 = trivial to learn and play, 5 = heavy ruleset with deep strategy."
449 -
        }
450 -
      },
451 -
      "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."
452 114
    },
453 115
    "webDisplay": {
454 116
      "type": "token",
455 117
      "description": "These assets are intended to display this game on the web."
456 118
    }
457 119
  },
458 120
  "$type": "com.atproto.lexicon.schema",
459 121
  "lexicon": 1
460 122
}

Compare Other Versions

Lexicon Garden

@