games.atplay.game.release
Schema Diff
+8 -346
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
}