games.cavu.tier-madness.defs
Schema Diff
+76 -1
Compatibility Analysis
Breaking Changes Detected
8 breaking changes, 21 non-breaking changes.
Breaking Changes (8)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "games.cavu.tier-madness.defs#award", src: "games.cavu.tier-madness.defs#award", tgt: "games.cavu.tier-madness.defs#award.blurb", kind: "prop", name: Some("blurb") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "games.cavu.tier-madness.defs#award", src: "games.cavu.tier-madness.defs#award", tgt: "games.cavu.tier-madness.defs#award.id", kind: "prop", name: Some("id") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "games.cavu.tier-madness.defs#award", src: "games.cavu.tier-madness.defs#award", tgt: "games.cavu.tier-madness.defs#award.points", kind: "prop", name: Some("points") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "games.cavu.tier-madness.defs#award", src: "games.cavu.tier-madness.defs#award", tgt: "games.cavu.tier-madness.defs#award.title", kind: "prop", name: Some("title") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "games.cavu.tier-madness.defs#award", src: "games.cavu.tier-madness.defs#award", tgt: "games.cavu.tier-madness.defs#award.winners", kind: "prop", name: Some("winners") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "games.cavu.tier-madness.defs#rematch", src: "games.cavu.tier-madness.defs#rematch", tgt: "games.cavu.tier-madness.defs#rematch.code", kind: "prop", name: Some("code") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "games.cavu.tier-madness.defs#rematch", src: "games.cavu.tier-madness.defs#rematch", tgt: "games.cavu.tier-madness.defs#rematch.host", kind: "prop", name: Some("host") }
- ConstraintTightened ConstraintTightened { vertex_id: "games.cavu.tier-madness.defs#phase", sort: "knownValues", old_value: "[\"lobby\",\"vote\",\"pickCriteria\",\"deal\",\"swap\",\"double\",\"waiting\",\"reveal\",\"final\",\"scores\",\"gameover\"]", new_value: "[\"lobby\",\"vote\",\"pickCriteria\",\"deal\",\"swap\",\"double\",\"waiting\",\"reveal\",\"final\",\"scores\",\"bonus\",\"gameover\"]" }
Non-Breaking Changes (21)
- AddedVertex AddedVertex { vertex_id: "games.cavu.tier-madness.defs#award" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.tier-madness.defs#award.blurb" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.tier-madness.defs#award.id" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.tier-madness.defs#award.points" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.tier-madness.defs#award.title" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.tier-madness.defs#award.winners" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.tier-madness.defs#award.winners:items" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.tier-madness.defs#gameView.awards" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.tier-madness.defs#gameView.awards:items" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.tier-madness.defs#gameView.rematch" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.tier-madness.defs#player.bot" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.tier-madness.defs#rematch" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.tier-madness.defs#rematch.code" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.tier-madness.defs#rematch.host" }
- AddedEdge AddedEdge { src: "games.cavu.tier-madness.defs#award.winners", tgt: "games.cavu.tier-madness.defs#award.winners:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "games.cavu.tier-madness.defs#gameView", tgt: "games.cavu.tier-madness.defs#gameView.awards", kind: "prop", name: Some("awards") }
- AddedEdge AddedEdge { src: "games.cavu.tier-madness.defs#gameView", tgt: "games.cavu.tier-madness.defs#gameView.rematch", kind: "prop", name: Some("rematch") }
- AddedEdge AddedEdge { src: "games.cavu.tier-madness.defs#gameView.awards", tgt: "games.cavu.tier-madness.defs#gameView.awards:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "games.cavu.tier-madness.defs#gameView.awards:items", tgt: "games.cavu.tier-madness.defs#award", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "games.cavu.tier-madness.defs#gameView.rematch", tgt: "games.cavu.tier-madness.defs#rematch", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "games.cavu.tier-madness.defs#player", tgt: "games.cavu.tier-madness.defs#player.bot", kind: "prop", name: Some("bot") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "games.cavu.tier-madness.defs#award" }AddedVertex { vertex_id: "games.cavu.tier-madness.defs#award.blurb" }AddedVertex { vertex_id: "games.cavu.tier-madness.defs#award.id" }AddedVertex { vertex_id: "games.cavu.tier-madness.defs#award.points" }AddedVertex { vertex_id: "games.cavu.tier-madness.defs#award.title" }AddedVertex { vertex_id: "games.cavu.tier-madness.defs#award.winners" }AddedVertex { vertex_id: "games.cavu.tier-madness.defs#award.winners:items" }AddedVertex { vertex_id: "games.cavu.tier-madness.defs#gameView.awards" }AddedVertex { vertex_id: "games.cavu.tier-madness.defs#gameView.awards:items" }AddedVertex { vertex_id: "games.cavu.tier-madness.defs#gameView.rematch" }AddedVertex { vertex_id: "games.cavu.tier-madness.defs#player.bot" }AddedVertex { vertex_id: "games.cavu.tier-madness.defs#rematch" }AddedVertex { vertex_id: "games.cavu.tier-madness.defs#rematch.code" }AddedVertex { vertex_id: "games.cavu.tier-madness.defs#rematch.host" }
Constraint Changes
- ConstraintTightened ConstraintTightened { vertex_id: "games.cavu.tier-madness.defs#phase", sort: "knownValues", old_value: "[\"lobby\",\"vote\",\"pickCriteria\",\"deal\",\"swap\",\"double\",\"waiting\",\"reveal\",\"final\",\"scores\",\"gameover\"]", new_value: "[\"lobby\",\"vote\",\"pickCriteria\",\"deal\",\"swap\",\"double\",\"waiting\",\"reveal\",\"final\",\"scores\",\"bonus\",\"gameover\"]" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "games.cavu.tier-madness.defs#rematch", src: "games.cavu.tier-madness.defs#rematch", tgt: "games.cavu.tier-madness.defs#rematch.code", kind: "prop", name: Some("code") }
- Breaking: RequiredEdgeAdded { vertex_id: "games.cavu.tier-madness.defs#rematch", src: "games.cavu.tier-madness.defs#rematch", tgt: "games.cavu.tier-madness.defs#rematch.host", kind: "prop", name: Some("host") }
- Breaking: RequiredEdgeAdded { vertex_id: "games.cavu.tier-madness.defs#award", src: "games.cavu.tier-madness.defs#award", tgt: "games.cavu.tier-madness.defs#award.blurb", kind: "prop", name: Some("blurb") }
- Breaking: RequiredEdgeAdded { vertex_id: "games.cavu.tier-madness.defs#award", src: "games.cavu.tier-madness.defs#award", tgt: "games.cavu.tier-madness.defs#award.id", kind: "prop", name: Some("id") }
- Breaking: RequiredEdgeAdded { vertex_id: "games.cavu.tier-madness.defs#award", src: "games.cavu.tier-madness.defs#award", tgt: "games.cavu.tier-madness.defs#award.points", kind: "prop", name: Some("points") }
- Breaking: RequiredEdgeAdded { vertex_id: "games.cavu.tier-madness.defs#award", src: "games.cavu.tier-madness.defs#award", tgt: "games.cavu.tier-madness.defs#award.title", kind: "prop", name: Some("title") }
- Breaking: RequiredEdgeAdded { vertex_id: "games.cavu.tier-madness.defs#award", src: "games.cavu.tier-madness.defs#award", tgt: "games.cavu.tier-madness.defs#award.winners", kind: "prop", name: Some("winners") }
- Non-breaking: AddedEdge { src: "games.cavu.tier-madness.defs#award.winners", tgt: "games.cavu.tier-madness.defs#award.winners:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "games.cavu.tier-madness.defs#gameView", tgt: "games.cavu.tier-madness.defs#gameView.awards", kind: "prop", name: Some("awards") }
- Non-breaking: AddedEdge { src: "games.cavu.tier-madness.defs#gameView", tgt: "games.cavu.tier-madness.defs#gameView.rematch", kind: "prop", name: Some("rematch") }
- Non-breaking: AddedEdge { src: "games.cavu.tier-madness.defs#gameView.awards", tgt: "games.cavu.tier-madness.defs#gameView.awards:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "games.cavu.tier-madness.defs#gameView.awards:items", tgt: "games.cavu.tier-madness.defs#award", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "games.cavu.tier-madness.defs#gameView.rematch", tgt: "games.cavu.tier-madness.defs#rematch", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "games.cavu.tier-madness.defs#player", tgt: "games.cavu.tier-madness.defs#player.bot", kind: "prop", name: Some("bot") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
+
"award": {
5
+
"description": "An end-of-game superlative and the bonus points it paid.",
6
+
"properties": {
7
+
"blurb": {
8
+
"maxLength": 300,
9
+
"type": "string"
10
+
},
11
+
"id": {
12
+
"maxLength": 64,
13
+
"type": "string"
14
+
},
15
+
"points": {
16
+
"description": "Points to each winner.",
17
+
"minimum": 0,
18
+
"type": "integer"
19
+
},
20
+
"title": {
21
+
"maxLength": 100,
22
+
"type": "string"
23
+
},
24
+
"winners": {
25
+
"description": "Everyone tied for it.",
26
+
"items": {
27
+
"format": "did",
28
+
"type": "string"
29
+
},
30
+
"type": "array"
31
+
}
32
+
},
33
+
"required": [
34
+
"id",
35
+
"title",
36
+
"blurb",
37
+
"winners",
38
+
"points"
39
+
],
40
+
"type": "object"
41
+
},
4
42
"cardPoints": {
5
43
"description": "Points one card scored for the viewer against the other players.",
6
44
"properties": {
7
45
"item": {
8
46
"maxLength": 300,
9
47
"type": "string"
10
48
},
11
49
"points": {
12
50
"type": "integer"
13
51
}
14
52
},
15
53
"required": [
16
54
"item",
17
55
"points"
18
56
],
19
57
"type": "object"
20
58
},
21
59
"cardResult": {
22
60
"description": "How one card scored for the viewer.",
23
61
"properties": {
24
62
"doubled": {
25
63
"type": "boolean"
26
64
},
27
65
"fromPlayers": {
28
66
"description": "The part of `points` scored against the other players, already counted during the reveal.",
29
67
"type": "integer"
30
68
},
31
69
"group": {
32
70
"ref": "#tier",
33
71
"type": "ref"
34
72
},
35
73
"item": {
36
74
"maxLength": 300,
37
75
"type": "string"
38
76
},
39
77
"points": {
40
78
"type": "integer"
41
79
},
42
80
"yours": {
43
81
"ref": "#tier",
44
82
"type": "ref"
45
83
}
46
84
},
47
85
"required": [
48
86
"item",
49
87
"yours",
50
88
"group",
51
89
"points",
52
90
"fromPlayers"
53
91
],
54
92
"type": "object"
55
93
},
56
94
"gamePlayer": {
57
95
"properties": {
58
96
"did": {
59
97
"format": "did",
60
98
"type": "string"
61
99
},
62
100
"initials": {
63
101
"maxLength": 3,
64
102
"minLength": 3,
65
103
"type": "string"
66
104
}
67
105
},
68
106
"required": [
69
107
"did",
70
108
"initials"
71
109
],
72
110
"type": "object"
73
111
},
74
112
"gameView": {
75
113
"description": "The game as one viewer may see it. Secrets (other players' moves, items not yet dealt to this viewer) are left out until revealed.",
76
114
"properties": {
115
+
"awards": {
116
+
"description": "The end-of-game superlatives (bonus phase on): who won each, and the points it paid them.",
117
+
"items": {
118
+
"ref": "#award",
119
+
"type": "ref"
120
+
},
121
+
"type": "array"
122
+
},
77
123
"ballot": {
78
124
"description": "Categories to vote on (vote phase).",
79
125
"items": {
80
126
"maxLength": 300,
81
127
"type": "string"
82
128
},
83
129
"type": "array"
84
130
},
85
131
"category": {
86
132
"maxLength": 300,
87
133
"type": "string"
88
134
},
89
135
"code": {
90
136
"description": "The join code, for players and spectators (who already know it).",
91
137
"maxLength": 4,
92
138
"minLength": 4,
93
139
"type": "string"
94
140
},
95
141
"criteria": {
96
142
"maxLength": 300,
97
143
"type": "string"
98
144
},
99
145
"criteriaOptions": {
100
146
"items": {
101
147
"maxLength": 300,
102
148
"type": "string"
103
149
},
104
150
"type": "array"
105
151
},
106
152
"criteriaPicker": {
107
153
"format": "did",
108
154
"type": "string"
109
155
},
110
156
"deadline": {
111
157
"description": "When the server stops waiting on stalled players (ms since epoch), if it's counting down.",
112
158
"type": "integer"
113
159
},
114
160
"game": {
115
161
"maxLength": 64,
116
162
"type": "string"
117
163
},
118
164
"group": {
119
165
"description": "The group's median list (final phase).",
120
166
"items": {
121
167
"ref": "#placement",
122
168
"type": "ref"
123
169
},
124
170
"type": "array"
125
171
},
126
172
"hand": {
127
173
"description": "Cards this viewer may see: during the deal, a player's cards so far (the next is dealt once the previous placement is committed); from the reveal on, the whole round, for everyone.",
128
174
"items": {
129
175
"ref": "#item",
130
176
"type": "ref"
131
177
},
132
178
"type": "array"
133
179
},
134
180
"host": {
135
181
"format": "did",
136
182
"type": "string"
137
183
},
138
184
"joinable": {
139
185
"description": "Whether the lobby still takes players.",
140
186
"type": "boolean"
141
187
},
142
188
"mine": {
143
189
"ref": "#mine",
144
190
"type": "ref"
145
191
},
146
192
"phase": {
147
193
"ref": "#phase",
148
194
"type": "ref"
149
195
},
150
196
"players": {
151
197
"items": {
152
198
"ref": "#player",
153
199
"type": "ref"
154
200
},
155
201
"type": "array"
156
202
},
203
+
"rematch": {
204
+
"description": "Game over: the rematch someone started, while it still takes players.",
205
+
"ref": "#rematch",
206
+
"type": "ref"
207
+
},
157
208
"results": {
158
209
"description": "After the reveal: how each of the viewer's cards scored.",
159
210
"items": {
160
211
"ref": "#cardResult",
161
212
"type": "ref"
162
213
},
163
214
"type": "array"
164
215
},
165
216
"reveal": {
166
217
"ref": "#reveal",
167
218
"type": "ref"
168
219
},
169
220
"revealIndex": {
170
221
"description": "Reveal phase: which card (in deal order) is being revealed.",
171
222
"minimum": 0,
172
223
"type": "integer"
173
224
},
174
225
"revealPoints": {
175
226
"description": "Reveal phase: the viewer's points against the other players, for each card revealed so far.",
176
227
"items": {
177
228
"ref": "#cardPoints",
178
229
"type": "ref"
179
230
},
180
231
"type": "array"
181
232
},
182
233
"reveals": {
183
234
"description": "Spectators, once a round is revealed: every item's picks at once, so a spectator screen can play the reveal on timers instead of following the host.",
184
235
"items": {
185
236
"ref": "#reveal",
186
237
"type": "ref"
187
238
},
188
239
"type": "array"
189
240
},
190
241
"round": {
191
242
"minimum": 0,
192
243
"type": "integer"
193
244
},
194
245
"totalRounds": {
195
246
"minimum": 1,
196
247
"type": "integer"
197
248
},
198
249
"viewer": {
199
250
"ref": "#viewer",
200
251
"type": "ref"
201
252
}
202
253
},
203
254
"required": [
204
255
"game",
205
256
"phase",
206
257
"round",
207
258
"totalRounds",
208
259
"players",
209
260
"viewer"
210
261
],
211
262
"type": "object"
212
263
},
213
264
"item": {
214
265
"description": "A card, sourced from a Wikipedia article.",
215
266
"properties": {
216
267
"extract": {
217
268
"maxLength": 10000,
218
269
"type": "string"
219
270
},
220
271
"id": {
221
272
"maxLength": 300,
222
273
"type": "string"
223
274
},
224
275
"imageUrl": {
225
276
"format": "uri",
226
277
"type": "string"
227
278
},
228
279
"name": {
229
280
"maxLength": 300,
230
281
"type": "string"
231
282
},
232
283
"sourceUrl": {
233
284
"format": "uri",
234
285
"type": "string"
235
286
},
236
287
"summary": {
237
288
"maxLength": 1000,
238
289
"type": "string"
239
290
}
240
291
},
241
292
"required": [
242
293
"id",
243
294
"name",
244
295
"summary"
245
296
],
246
297
"type": "object"
247
298
},
248
299
"mine": {
249
300
"description": "The viewer's own round so far (only ever sent to that player).",
250
301
"properties": {
251
302
"double": {
252
303
"maxLength": 300,
253
304
"type": "string"
254
305
},
255
306
"doubleChosen": {
256
307
"type": "boolean"
257
308
},
258
309
"placements": {
259
310
"description": "As placed, before any swap.",
260
311
"items": {
261
312
"ref": "#placement",
262
313
"type": "ref"
263
314
},
264
315
"type": "array"
265
316
},
266
317
"swap": {
267
318
"description": "The swap, once chosen ([] = skipped).",
268
319
"items": {
269
320
"maxLength": 300,
270
321
"type": "string"
271
322
},
272
323
"maxLength": 2,
273
324
"type": "array"
274
325
},
275
326
"swapChosen": {
276
327
"type": "boolean"
277
328
}
278
329
},
279
330
"required": [
280
331
"placements"
281
332
],
282
333
"type": "object"
283
334
},
284
335
"phase": {
285
336
"knownValues": [
286
337
"lobby",
287
338
"vote",
288
339
"pickCriteria",
289
340
"deal",
290
341
"swap",
291
342
"double",
292
343
"waiting",
293
344
"reveal",
294
345
"final",
295
346
"scores",
347
+
"bonus",
296
348
"gameover"
297
349
],
298
350
"type": "string"
299
351
},
300
352
"placement": {
301
353
"properties": {
302
354
"item": {
303
355
"maxLength": 300,
304
356
"type": "string"
305
357
},
306
358
"tier": {
307
359
"ref": "#tier",
308
360
"type": "ref"
309
361
}
310
362
},
311
363
"required": [
312
364
"item",
313
365
"tier"
314
366
],
315
367
"type": "object"
316
368
},
317
369
"player": {
318
370
"properties": {
371
+
"bot": {
372
+
"description": "Played by the server (a Jev bot), not a person.",
373
+
"type": "boolean"
374
+
},
319
375
"connected": {
320
376
"type": "boolean"
321
377
},
322
378
"did": {
323
379
"format": "did",
324
380
"type": "string"
325
381
},
326
382
"forfeit": {
327
383
"description": "This round's moves didn't verify, so they don't count.",
328
384
"type": "boolean"
329
385
},
330
386
"host": {
331
387
"type": "boolean"
332
388
},
333
389
"initials": {
334
390
"maxLength": 3,
335
391
"type": "string"
336
392
},
337
393
"progress": {
338
394
"description": "Moves committed this phase, for 'waiting on…' indicators.",
339
395
"minimum": 0,
340
396
"type": "integer"
341
397
},
342
398
"roundPoints": {
343
399
"description": "Points from the last scored round (may be negative).",
344
400
"type": "integer"
345
401
},
346
402
"score": {
347
403
"minimum": 0,
348
404
"type": "integer"
349
405
},
350
406
"scoreAfter": {
351
-
"description": "While a round is being revealed: this player's total once it's banked, so a spectator screen can play the round out on its own clock.",
407
+
"description": "While a round or the end-of-game bonus is being revealed: this player's total once it's banked, so a spectator screen can play it out on its own clock.",
352
408
"type": "integer"
353
409
}
354
410
},
355
411
"required": [
356
412
"did",
357
413
"initials",
358
414
"score",
359
415
"progress"
360
416
],
361
417
"type": "object"
362
418
},
363
419
"prompt": {
364
420
"description": "What a rating answers, embedded rather than written as a garden.lexicon.dazzling-boarfish.rating.prompt record. Its scale is the game's.",
365
421
"properties": {
366
422
"langs": {
367
423
"items": {
368
424
"format": "language",
369
425
"type": "string"
370
426
},
371
427
"maxLength": 3,
372
428
"type": "array"
373
429
},
374
430
"text": {
375
431
"maxLength": 1024,
376
432
"type": "string"
377
433
}
378
434
},
379
435
"required": [
380
436
"text"
381
437
],
382
438
"type": "object"
383
439
},
440
+
"rematch": {
441
+
"description": "A rematch lobby for the same table.",
442
+
"properties": {
443
+
"code": {
444
+
"maxLength": 4,
445
+
"minLength": 4,
446
+
"type": "string"
447
+
},
448
+
"host": {
449
+
"format": "did",
450
+
"type": "string"
451
+
}
452
+
},
453
+
"required": [
454
+
"code",
455
+
"host"
456
+
],
457
+
"type": "object"
458
+
},
384
459
"reveal": {
385
460
"properties": {
386
461
"item": {
387
462
"ref": "#item",
388
463
"type": "ref"
389
464
},
390
465
"votes": {
391
466
"items": {
392
467
"ref": "#vote",
393
468
"type": "ref"
394
469
},
395
470
"type": "array"
396
471
}
397
472
},
398
473
"required": [
399
474
"item",
400
475
"votes"
401
476
],
402
477
"type": "object"
403
478
},
404
479
"scale": {
405
480
"description": "A rating scale, embedded rather than written as a garden.lexicon.dazzling-boarfish.rating.scale record: the same fields, minus record bookkeeping.",
406
481
"properties": {
407
482
"code": {
408
483
"refs": [
409
484
"garden.lexicon.dazzling-boarfish.rating.scale#nominal",
410
485
"garden.lexicon.dazzling-boarfish.rating.scale#ordinal",
411
486
"garden.lexicon.dazzling-boarfish.rating.scale#interval",
412
487
"garden.lexicon.dazzling-boarfish.rating.scale#ratio"
413
488
],
414
489
"type": "union"
415
490
},
416
491
"description": {
417
492
"maxLength": 1024,
418
493
"type": "string"
419
494
},
420
495
"langs": {
421
496
"items": {
422
497
"format": "language",
423
498
"type": "string"
424
499
},
425
500
"maxLength": 3,
426
501
"type": "array"
427
502
},
428
503
"name": {
429
504
"maxLength": 256,
430
505
"type": "string"
431
506
}
432
507
},
433
508
"required": [
434
509
"name",
435
510
"code"
436
511
],
437
512
"type": "object"
438
513
},
439
514
"tier": {
440
515
"knownValues": [
441
516
"S",
442
517
"A",
443
518
"B",
444
519
"C",
445
520
"D",
446
521
"F"
447
522
],
448
523
"type": "string"
449
524
},
450
525
"viewer": {
451
526
"properties": {
452
527
"did": {
453
528
"format": "did",
454
529
"type": "string"
455
530
},
456
531
"role": {
457
532
"knownValues": [
458
533
"host",
459
534
"player",
460
535
"spectator"
461
536
],
462
537
"type": "string"
463
538
}
464
539
},
465
540
"required": [
466
541
"role"
467
542
],
468
543
"type": "object"
469
544
},
470
545
"vote": {
471
546
"description": "Where one player put the item being revealed.",
472
547
"properties": {
473
548
"did": {
474
549
"format": "did",
475
550
"type": "string"
476
551
},
477
552
"tier": {
478
553
"ref": "#tier",
479
554
"type": "ref"
480
555
}
481
556
},
482
557
"required": [
483
558
"did",
484
559
"tier"
485
560
],
486
561
"type": "object"
487
562
}
488
563
},
489
564
"id": "games.cavu.tier-madness.defs",
490
565
"lexicon": 1
491
566
}