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