games.atplay.game.release

atplay.games

Schema Diff

+10 -348

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

Compare Other Versions

Lexicon Garden

@