@hyprune/schema 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/package.json +2 -2
  2. package/v0/common.schema.json +85 -0
  3. package/v0/extension.schema.json +121 -0
  4. package/v0/ipc.schema.json +1725 -0
  5. package/v0/screen-type.schema.json +115 -0
  6. package/v0/world.schema.json +363 -0
  7. package/v0.10/ipc.schema.json +8811 -0
  8. package/v0.11/ipc.schema.json +8863 -0
  9. package/v0.12/ipc.schema.json +9541 -0
  10. package/v0.13/ipc.schema.json +10032 -0
  11. package/v0.14/ipc.schema.json +10127 -0
  12. package/v0.15/ipc.schema.json +10534 -0
  13. package/v0.16/ipc.schema.json +10550 -0
  14. package/v0.17/ipc.schema.json +10703 -0
  15. package/v0.18/ipc.schema.json +10801 -0
  16. package/v0.19/ipc.schema.json +11587 -0
  17. package/v0.2/common.schema.json +86 -0
  18. package/v0.2/ipc.schema.json +3570 -0
  19. package/v0.2/world.schema.json +363 -0
  20. package/v0.3/common.schema.json +477 -0
  21. package/v0.3/ipc.schema.json +4044 -0
  22. package/v0.3/world.schema.json +390 -0
  23. package/v0.4/common.schema.json +477 -0
  24. package/v0.4/ipc.schema.json +5561 -0
  25. package/v0.4/world.schema.json +496 -0
  26. package/v0.5/common.schema.json +477 -0
  27. package/v0.5/ipc.schema.json +5781 -0
  28. package/v0.5/world.schema.json +790 -0
  29. package/v0.6/common.schema.json +478 -0
  30. package/v0.6/input.schema.json +519 -0
  31. package/v0.6/ipc.schema.json +7375 -0
  32. package/v0.6/world.schema.json +1062 -0
  33. package/v0.7/common.schema.json +478 -0
  34. package/v0.7/ipc.schema.json +7905 -0
  35. package/v0.7/world.schema.json +1062 -0
  36. package/v0.8/ipc.schema.json +7945 -0
  37. package/v0.9/input.schema.json +518 -0
  38. package/v0.9/ipc.schema.json +8613 -0
@@ -0,0 +1,1062 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://hyprune.com/schema/v0.6/world.schema.json",
4
+ "title": "Hyprune world 0.6: playable bounds and backdrop declarations",
5
+ "type": "object",
6
+ "properties": {
7
+ "formatVersion": {
8
+ "const": "0.6"
9
+ },
10
+ "id": {
11
+ "$ref": "common.schema.json#/$defs/id"
12
+ },
13
+ "version": {
14
+ "$ref": "common.schema.json#/$defs/version"
15
+ },
16
+ "name": {
17
+ "type": "string",
18
+ "minLength": 1,
19
+ "maxLength": 256
20
+ },
21
+ "description": {
22
+ "type": "string",
23
+ "minLength": 0,
24
+ "maxLength": 4096
25
+ },
26
+ "license": {
27
+ "type": "string",
28
+ "minLength": 1,
29
+ "maxLength": 256
30
+ },
31
+ "scene": {
32
+ "allOf": [
33
+ {
34
+ "$ref": "common.schema.json#/$defs/path"
35
+ },
36
+ {
37
+ "pattern": "\\.(gltf|glb)$",
38
+ "type": "string"
39
+ }
40
+ ]
41
+ },
42
+ "preview": {
43
+ "$ref": "common.schema.json#/$defs/path"
44
+ },
45
+ "defaultSpawn": {
46
+ "$ref": "common.schema.json#/$defs/slug"
47
+ },
48
+ "spawns": {
49
+ "type": "array",
50
+ "items": {
51
+ "type": "object",
52
+ "properties": {
53
+ "id": {
54
+ "$ref": "common.schema.json#/$defs/slug"
55
+ },
56
+ "pose": {
57
+ "$ref": "common.schema.json#/$defs/pose"
58
+ },
59
+ "node": {
60
+ "$ref": "common.schema.json#/$defs/index"
61
+ }
62
+ },
63
+ "required": [
64
+ "id",
65
+ "pose"
66
+ ],
67
+ "additionalProperties": false
68
+ },
69
+ "minItems": 1
70
+ },
71
+ "attribution": {
72
+ "type": "array",
73
+ "items": {
74
+ "type": "object",
75
+ "properties": {
76
+ "path": {
77
+ "anyOf": [
78
+ {
79
+ "$ref": "common.schema.json#/$defs/path"
80
+ },
81
+ {
82
+ "const": "."
83
+ }
84
+ ]
85
+ },
86
+ "author": {
87
+ "type": "string",
88
+ "minLength": 1,
89
+ "maxLength": 256
90
+ },
91
+ "license": {
92
+ "type": "string",
93
+ "minLength": 1,
94
+ "maxLength": 256
95
+ },
96
+ "source": {
97
+ "type": "string",
98
+ "minLength": 1,
99
+ "maxLength": 2048,
100
+ "pattern": "^https://"
101
+ }
102
+ },
103
+ "required": [
104
+ "path",
105
+ "author",
106
+ "license"
107
+ ],
108
+ "additionalProperties": false
109
+ },
110
+ "minItems": 1
111
+ },
112
+ "zones": {
113
+ "type": "array",
114
+ "items": {
115
+ "type": "object",
116
+ "properties": {
117
+ "id": {
118
+ "$ref": "common.schema.json#/$defs/slug"
119
+ },
120
+ "name": {
121
+ "type": "string",
122
+ "minLength": 1,
123
+ "maxLength": 256
124
+ },
125
+ "bounds": {
126
+ "type": "object",
127
+ "properties": {
128
+ "min": {
129
+ "type": "array",
130
+ "items": {
131
+ "type": "number"
132
+ },
133
+ "minItems": 3,
134
+ "maxItems": 3
135
+ },
136
+ "max": {
137
+ "type": "array",
138
+ "items": {
139
+ "type": "number"
140
+ },
141
+ "minItems": 3,
142
+ "maxItems": 3
143
+ }
144
+ },
145
+ "required": [
146
+ "min",
147
+ "max"
148
+ ],
149
+ "additionalProperties": false
150
+ }
151
+ },
152
+ "required": [
153
+ "id",
154
+ "name",
155
+ "bounds"
156
+ ],
157
+ "additionalProperties": false
158
+ },
159
+ "minItems": 0
160
+ },
161
+ "anchors": {
162
+ "type": "array",
163
+ "items": {
164
+ "type": "object",
165
+ "properties": {
166
+ "id": {
167
+ "$ref": "common.schema.json#/$defs/slug"
168
+ },
169
+ "pose": {
170
+ "$ref": "common.schema.json#/$defs/pose"
171
+ },
172
+ "size": {
173
+ "type": "array",
174
+ "items": {
175
+ "type": "number",
176
+ "exclusiveMinimum": 0
177
+ },
178
+ "minItems": 2,
179
+ "maxItems": 2
180
+ },
181
+ "screenType": {
182
+ "$ref": "common.schema.json#/$defs/id"
183
+ },
184
+ "node": {
185
+ "$ref": "common.schema.json#/$defs/index"
186
+ },
187
+ "mount": {
188
+ "$ref": "common.schema.json#/$defs/mount"
189
+ }
190
+ },
191
+ "required": [
192
+ "id",
193
+ "pose",
194
+ "size",
195
+ "screenType"
196
+ ],
197
+ "additionalProperties": false
198
+ },
199
+ "minItems": 0
200
+ },
201
+ "navigation": {
202
+ "type": "object",
203
+ "properties": {
204
+ "kind": {
205
+ "const": "mesh"
206
+ },
207
+ "node": {
208
+ "$ref": "common.schema.json#/$defs/index"
209
+ },
210
+ "agentRadius": {
211
+ "type": "number",
212
+ "exclusiveMinimum": 0
213
+ },
214
+ "agentHeight": {
215
+ "type": "number",
216
+ "exclusiveMinimum": 0
217
+ }
218
+ },
219
+ "required": [
220
+ "kind",
221
+ "node",
222
+ "agentRadius",
223
+ "agentHeight"
224
+ ],
225
+ "additionalProperties": false
226
+ },
227
+ "collision": {
228
+ "type": "array",
229
+ "items": {
230
+ "type": "object",
231
+ "properties": {
232
+ "node": {
233
+ "$ref": "common.schema.json#/$defs/index"
234
+ },
235
+ "shape": {
236
+ "enum": [
237
+ "mesh",
238
+ "convex"
239
+ ]
240
+ },
241
+ "layer": {
242
+ "const": "static"
243
+ }
244
+ },
245
+ "required": [
246
+ "node",
247
+ "shape",
248
+ "layer"
249
+ ],
250
+ "additionalProperties": false
251
+ },
252
+ "minItems": 0
253
+ },
254
+ "audio": {
255
+ "type": "array",
256
+ "items": {
257
+ "type": "object",
258
+ "properties": {
259
+ "id": {
260
+ "$ref": "common.schema.json#/$defs/slug"
261
+ },
262
+ "path": {
263
+ "allOf": [
264
+ {
265
+ "$ref": "common.schema.json#/$defs/path"
266
+ },
267
+ {
268
+ "pattern": "\\.(ogg|wav)$",
269
+ "type": "string"
270
+ }
271
+ ]
272
+ },
273
+ "position": {
274
+ "type": "array",
275
+ "items": {
276
+ "type": "number"
277
+ },
278
+ "minItems": 3,
279
+ "maxItems": 3
280
+ },
281
+ "radius": {
282
+ "type": "number",
283
+ "exclusiveMinimum": 0
284
+ },
285
+ "gain": {
286
+ "type": "number",
287
+ "minimum": 0,
288
+ "maximum": 1
289
+ },
290
+ "loop": {
291
+ "type": "boolean"
292
+ }
293
+ },
294
+ "required": [
295
+ "id",
296
+ "path",
297
+ "position",
298
+ "radius",
299
+ "gain",
300
+ "loop"
301
+ ],
302
+ "additionalProperties": false
303
+ },
304
+ "minItems": 0
305
+ },
306
+ "lightmaps": {
307
+ "type": "array",
308
+ "items": {
309
+ "type": "object",
310
+ "properties": {
311
+ "material": {
312
+ "$ref": "common.schema.json#/$defs/index"
313
+ },
314
+ "texture": {
315
+ "$ref": "common.schema.json#/$defs/index"
316
+ },
317
+ "texCoord": {
318
+ "const": 1
319
+ },
320
+ "encoding": {
321
+ "enum": [
322
+ "linear",
323
+ "srgb"
324
+ ]
325
+ },
326
+ "intensity": {
327
+ "type": "number",
328
+ "minimum": 0
329
+ }
330
+ },
331
+ "required": [
332
+ "material",
333
+ "texture",
334
+ "texCoord",
335
+ "encoding",
336
+ "intensity"
337
+ ],
338
+ "additionalProperties": false
339
+ },
340
+ "minItems": 0
341
+ },
342
+ "extensions": {
343
+ "$ref": "common.schema.json#/$defs/extensions"
344
+ },
345
+ "requiredExtensions": {
346
+ "type": "array",
347
+ "items": {
348
+ "$ref": "common.schema.json#/$defs/id"
349
+ },
350
+ "minItems": 0,
351
+ "uniqueItems": true
352
+ },
353
+ "areas": {
354
+ "type": "array",
355
+ "items": {
356
+ "type": "object",
357
+ "properties": {
358
+ "id": {
359
+ "$ref": "common.schema.json#/$defs/slug"
360
+ },
361
+ "workspaceSlot": {
362
+ "type": "string",
363
+ "pattern": "^[0-9]{2,4}$"
364
+ },
365
+ "primaryAnchor": {
366
+ "$ref": "common.schema.json#/$defs/slug"
367
+ },
368
+ "toolAnchors": {
369
+ "type": "array",
370
+ "items": {
371
+ "$ref": "common.schema.json#/$defs/slug"
372
+ },
373
+ "maxItems": 128
374
+ },
375
+ "dataAnchors": {
376
+ "type": "array",
377
+ "items": {
378
+ "$ref": "common.schema.json#/$defs/slug"
379
+ },
380
+ "maxItems": 128
381
+ },
382
+ "theme": {
383
+ "type": "string",
384
+ "maxLength": 256
385
+ },
386
+ "spawnId": {
387
+ "$ref": "common.schema.json#/$defs/slug"
388
+ },
389
+ "freePlacementZones": {
390
+ "type": "array",
391
+ "items": {
392
+ "$ref": "common.schema.json#/$defs/slug"
393
+ },
394
+ "maxItems": 32
395
+ },
396
+ "playable": {
397
+ "type": "object",
398
+ "additionalProperties": false,
399
+ "anyOf": [
400
+ {
401
+ "required": [
402
+ "volumes"
403
+ ],
404
+ "properties": {
405
+ "volumes": {}
406
+ }
407
+ },
408
+ {
409
+ "required": [
410
+ "maxFlyHeight"
411
+ ],
412
+ "properties": {
413
+ "maxFlyHeight": {}
414
+ }
415
+ }
416
+ ],
417
+ "properties": {
418
+ "volumes": {
419
+ "type": "array",
420
+ "minItems": 1,
421
+ "maxItems": 8,
422
+ "items": {
423
+ "anyOf": [
424
+ {
425
+ "type": "object",
426
+ "required": [
427
+ "type",
428
+ "min",
429
+ "max"
430
+ ],
431
+ "additionalProperties": false,
432
+ "properties": {
433
+ "type": {
434
+ "const": "box"
435
+ },
436
+ "min": {
437
+ "type": "array",
438
+ "minItems": 3,
439
+ "maxItems": 3,
440
+ "items": {
441
+ "type": "number",
442
+ "minimum": -100000,
443
+ "maximum": 100000
444
+ }
445
+ },
446
+ "max": {
447
+ "type": "array",
448
+ "minItems": 3,
449
+ "maxItems": 3,
450
+ "items": {
451
+ "type": "number",
452
+ "minimum": -100000,
453
+ "maximum": 100000
454
+ }
455
+ }
456
+ }
457
+ },
458
+ {
459
+ "type": "object",
460
+ "required": [
461
+ "type",
462
+ "points"
463
+ ],
464
+ "additionalProperties": false,
465
+ "properties": {
466
+ "type": {
467
+ "const": "convex"
468
+ },
469
+ "points": {
470
+ "type": "array",
471
+ "minItems": 4,
472
+ "maxItems": 16,
473
+ "uniqueItems": true,
474
+ "items": {
475
+ "type": "array",
476
+ "minItems": 3,
477
+ "maxItems": 3,
478
+ "items": {
479
+ "type": "number",
480
+ "minimum": -100000,
481
+ "maximum": 100000
482
+ }
483
+ }
484
+ }
485
+ }
486
+ }
487
+ ]
488
+ }
489
+ },
490
+ "maxFlyHeight": {
491
+ "type": "number",
492
+ "minimum": -100000,
493
+ "maximum": 100000
494
+ }
495
+ },
496
+ "required": [
497
+ "volumes"
498
+ ]
499
+ }
500
+ },
501
+ "required": [
502
+ "id",
503
+ "workspaceSlot",
504
+ "primaryAnchor",
505
+ "toolAnchors",
506
+ "dataAnchors",
507
+ "theme"
508
+ ],
509
+ "additionalProperties": false
510
+ },
511
+ "maxItems": 32
512
+ },
513
+ "atmosphere": {
514
+ "type": "object",
515
+ "properties": {
516
+ "fog": {
517
+ "type": "object",
518
+ "properties": {
519
+ "color": {
520
+ "$ref": "common.schema.json#/$defs/vec3"
521
+ },
522
+ "density": {
523
+ "type": "number",
524
+ "minimum": 0,
525
+ "maximum": 1
526
+ },
527
+ "heightFalloff": {
528
+ "type": "number",
529
+ "minimum": 0,
530
+ "maximum": 10
531
+ },
532
+ "baseHeight": {
533
+ "type": "number",
534
+ "minimum": -10000,
535
+ "maximum": 10000
536
+ },
537
+ "excludeUnlit": {
538
+ "type": "boolean"
539
+ }
540
+ },
541
+ "required": [
542
+ "color",
543
+ "density",
544
+ "heightFalloff",
545
+ "baseHeight",
546
+ "excludeUnlit"
547
+ ],
548
+ "additionalProperties": false
549
+ },
550
+ "sky": {
551
+ "type": "object",
552
+ "properties": {
553
+ "zenith": {
554
+ "$ref": "common.schema.json#/$defs/vec3"
555
+ },
556
+ "horizon": {
557
+ "$ref": "common.schema.json#/$defs/vec3"
558
+ },
559
+ "ground": {
560
+ "$ref": "common.schema.json#/$defs/vec3"
561
+ },
562
+ "sun": {
563
+ "type": "object",
564
+ "properties": {
565
+ "direction": {
566
+ "$ref": "common.schema.json#/$defs/vec3"
567
+ },
568
+ "color": {
569
+ "$ref": "common.schema.json#/$defs/vec3"
570
+ },
571
+ "intensity": {
572
+ "type": "number",
573
+ "minimum": 0,
574
+ "maximum": 10000
575
+ },
576
+ "angularRadius": {
577
+ "type": "number",
578
+ "minimum": 0.001,
579
+ "maximum": 1
580
+ }
581
+ },
582
+ "required": [
583
+ "direction",
584
+ "color",
585
+ "intensity",
586
+ "angularRadius"
587
+ ],
588
+ "additionalProperties": false
589
+ }
590
+ },
591
+ "required": [
592
+ "zenith",
593
+ "horizon",
594
+ "ground",
595
+ "sun"
596
+ ],
597
+ "additionalProperties": false
598
+ },
599
+ "environment": {
600
+ "type": "object",
601
+ "properties": {
602
+ "faces": {
603
+ "type": "array",
604
+ "items": {
605
+ "$ref": "common.schema.json#/$defs/path"
606
+ },
607
+ "minItems": 6,
608
+ "maxItems": 6
609
+ },
610
+ "encoding": {
611
+ "enum": [
612
+ "srgb",
613
+ "linear"
614
+ ]
615
+ },
616
+ "intensity": {
617
+ "type": "number",
618
+ "minimum": 0,
619
+ "maximum": 10000
620
+ },
621
+ "rotation": {
622
+ "type": "number",
623
+ "minimum": -6.283186,
624
+ "maximum": 6.283186
625
+ },
626
+ "maxResolution": {
627
+ "type": "integer",
628
+ "minimum": 16,
629
+ "maximum": 512
630
+ }
631
+ },
632
+ "required": [
633
+ "faces",
634
+ "encoding",
635
+ "intensity",
636
+ "rotation",
637
+ "maxResolution"
638
+ ],
639
+ "additionalProperties": false
640
+ },
641
+ "exposure": {
642
+ "type": "number",
643
+ "minimum": 0.01,
644
+ "maximum": 100
645
+ },
646
+ "toneMapping": {
647
+ "enum": [
648
+ "aces",
649
+ "reinhard",
650
+ "linear"
651
+ ]
652
+ },
653
+ "bloom": {
654
+ "type": "object",
655
+ "properties": {
656
+ "strength": {
657
+ "type": "number",
658
+ "minimum": 0,
659
+ "maximum": 2
660
+ },
661
+ "threshold": {
662
+ "type": "number",
663
+ "minimum": 0,
664
+ "maximum": 100
665
+ },
666
+ "radius": {
667
+ "type": "number",
668
+ "minimum": 1,
669
+ "maximum": 8
670
+ }
671
+ },
672
+ "required": [
673
+ "strength",
674
+ "threshold",
675
+ "radius"
676
+ ],
677
+ "additionalProperties": false
678
+ },
679
+ "outline": {
680
+ "type": "object",
681
+ "properties": {
682
+ "enabled": {
683
+ "type": "boolean"
684
+ },
685
+ "colour": {
686
+ "type": "array",
687
+ "items": {
688
+ "type": "number",
689
+ "minimum": 0,
690
+ "maximum": 1
691
+ },
692
+ "minItems": 3,
693
+ "maxItems": 3
694
+ },
695
+ "widthPx": {
696
+ "type": "number",
697
+ "minimum": 1,
698
+ "maximum": 4
699
+ },
700
+ "depthThreshold": {
701
+ "type": "number",
702
+ "minimum": 0.0001,
703
+ "maximum": 1
704
+ },
705
+ "normalThreshold": {
706
+ "type": "number",
707
+ "minimum": 0.001,
708
+ "maximum": 2
709
+ }
710
+ },
711
+ "required": [
712
+ "enabled",
713
+ "colour",
714
+ "widthPx",
715
+ "depthThreshold",
716
+ "normalThreshold"
717
+ ],
718
+ "additionalProperties": false
719
+ }
720
+ },
721
+ "required": [
722
+ "fog",
723
+ "sky",
724
+ "exposure",
725
+ "toneMapping",
726
+ "bloom"
727
+ ],
728
+ "additionalProperties": false
729
+ },
730
+ "placementZones": {
731
+ "type": "array",
732
+ "items": {
733
+ "$ref": "common.schema.json#/$defs/placementZone"
734
+ },
735
+ "maxItems": 32
736
+ },
737
+ "dataObjects": {
738
+ "type": "array",
739
+ "maxItems": 128,
740
+ "items": {
741
+ "$ref": "common.schema.json#/$defs/dataObject"
742
+ }
743
+ },
744
+ "climbables": {
745
+ "type": "array",
746
+ "maxItems": 128,
747
+ "items": {
748
+ "type": "object",
749
+ "properties": {
750
+ "id": {
751
+ "$ref": "common.schema.json#/$defs/slug"
752
+ },
753
+ "type": {
754
+ "enum": [
755
+ "ladder",
756
+ "rope",
757
+ "vines",
758
+ "chain-link"
759
+ ]
760
+ },
761
+ "bottom": {
762
+ "type": "array",
763
+ "items": {
764
+ "type": "number",
765
+ "minimum": -10000,
766
+ "maximum": 10000
767
+ },
768
+ "minItems": 3,
769
+ "maxItems": 3
770
+ },
771
+ "top": {
772
+ "type": "array",
773
+ "items": {
774
+ "type": "number",
775
+ "minimum": -10000,
776
+ "maximum": 10000
777
+ },
778
+ "minItems": 3,
779
+ "maxItems": 3
780
+ },
781
+ "facing": {
782
+ "type": "array",
783
+ "items": {
784
+ "type": "number",
785
+ "minimum": -10000,
786
+ "maximum": 10000
787
+ },
788
+ "minItems": 3,
789
+ "maxItems": 3
790
+ },
791
+ "width": {
792
+ "type": "number",
793
+ "minimum": 0.6,
794
+ "maximum": 32
795
+ },
796
+ "depth": {
797
+ "type": "number",
798
+ "minimum": 0.1,
799
+ "maximum": 2
800
+ },
801
+ "speed": {
802
+ "type": "number",
803
+ "minimum": 0.1,
804
+ "maximum": 8
805
+ },
806
+ "exits": {
807
+ "type": "object",
808
+ "properties": {
809
+ "top": {
810
+ "type": "array",
811
+ "items": {
812
+ "type": "number",
813
+ "minimum": -10000,
814
+ "maximum": 10000
815
+ },
816
+ "minItems": 3,
817
+ "maxItems": 3
818
+ },
819
+ "bottom": {
820
+ "type": "array",
821
+ "items": {
822
+ "type": "number",
823
+ "minimum": -10000,
824
+ "maximum": 10000
825
+ },
826
+ "minItems": 3,
827
+ "maxItems": 3
828
+ }
829
+ },
830
+ "required": [
831
+ "top",
832
+ "bottom"
833
+ ],
834
+ "additionalProperties": false
835
+ }
836
+ },
837
+ "required": [
838
+ "id",
839
+ "type",
840
+ "bottom",
841
+ "top",
842
+ "facing",
843
+ "width",
844
+ "depth",
845
+ "exits"
846
+ ],
847
+ "additionalProperties": false
848
+ }
849
+ },
850
+ "visibility": {
851
+ "type": "object",
852
+ "properties": {
853
+ "areas": {
854
+ "type": "array",
855
+ "maxItems": 256,
856
+ "items": {
857
+ "type": "object",
858
+ "properties": {
859
+ "id": {
860
+ "type": "string",
861
+ "minLength": 1,
862
+ "maxLength": 128
863
+ },
864
+ "bounds": {
865
+ "type": "object",
866
+ "properties": {
867
+ "min": {
868
+ "type": "array",
869
+ "items": {
870
+ "type": "number",
871
+ "minimum": -100000,
872
+ "maximum": 100000
873
+ },
874
+ "minItems": 3,
875
+ "maxItems": 3
876
+ },
877
+ "max": {
878
+ "type": "array",
879
+ "items": {
880
+ "type": "number",
881
+ "minimum": -100000,
882
+ "maximum": 100000
883
+ },
884
+ "minItems": 3,
885
+ "maxItems": 3
886
+ }
887
+ },
888
+ "required": [
889
+ "min",
890
+ "max"
891
+ ],
892
+ "additionalProperties": false
893
+ },
894
+ "nodes": {
895
+ "type": "array",
896
+ "items": {
897
+ "type": "integer",
898
+ "minimum": 0,
899
+ "maximum": 9999
900
+ },
901
+ "maxItems": 10000,
902
+ "uniqueItems": true
903
+ },
904
+ "visibleFrom": {
905
+ "type": "array",
906
+ "items": {
907
+ "type": "string",
908
+ "minLength": 1,
909
+ "maxLength": 128
910
+ },
911
+ "maxItems": 256,
912
+ "uniqueItems": true
913
+ }
914
+ },
915
+ "required": [
916
+ "id",
917
+ "bounds",
918
+ "nodes",
919
+ "visibleFrom"
920
+ ],
921
+ "additionalProperties": false
922
+ }
923
+ }
924
+ },
925
+ "required": [
926
+ "areas"
927
+ ],
928
+ "additionalProperties": false
929
+ },
930
+ "playable": {
931
+ "type": "object",
932
+ "additionalProperties": false,
933
+ "anyOf": [
934
+ {
935
+ "required": [
936
+ "volumes"
937
+ ],
938
+ "properties": {
939
+ "volumes": {}
940
+ }
941
+ },
942
+ {
943
+ "required": [
944
+ "maxFlyHeight"
945
+ ],
946
+ "properties": {
947
+ "maxFlyHeight": {}
948
+ }
949
+ }
950
+ ],
951
+ "properties": {
952
+ "volumes": {
953
+ "type": "array",
954
+ "minItems": 1,
955
+ "maxItems": 8,
956
+ "items": {
957
+ "anyOf": [
958
+ {
959
+ "type": "object",
960
+ "required": [
961
+ "type",
962
+ "min",
963
+ "max"
964
+ ],
965
+ "additionalProperties": false,
966
+ "properties": {
967
+ "type": {
968
+ "const": "box"
969
+ },
970
+ "min": {
971
+ "type": "array",
972
+ "minItems": 3,
973
+ "maxItems": 3,
974
+ "items": {
975
+ "type": "number",
976
+ "minimum": -100000,
977
+ "maximum": 100000
978
+ }
979
+ },
980
+ "max": {
981
+ "type": "array",
982
+ "minItems": 3,
983
+ "maxItems": 3,
984
+ "items": {
985
+ "type": "number",
986
+ "minimum": -100000,
987
+ "maximum": 100000
988
+ }
989
+ }
990
+ }
991
+ },
992
+ {
993
+ "type": "object",
994
+ "required": [
995
+ "type",
996
+ "points"
997
+ ],
998
+ "additionalProperties": false,
999
+ "properties": {
1000
+ "type": {
1001
+ "const": "convex"
1002
+ },
1003
+ "points": {
1004
+ "type": "array",
1005
+ "minItems": 4,
1006
+ "maxItems": 16,
1007
+ "uniqueItems": true,
1008
+ "items": {
1009
+ "type": "array",
1010
+ "minItems": 3,
1011
+ "maxItems": 3,
1012
+ "items": {
1013
+ "type": "number",
1014
+ "minimum": -100000,
1015
+ "maximum": 100000
1016
+ }
1017
+ }
1018
+ }
1019
+ }
1020
+ }
1021
+ ]
1022
+ }
1023
+ },
1024
+ "maxFlyHeight": {
1025
+ "type": "number",
1026
+ "minimum": -100000,
1027
+ "maximum": 100000
1028
+ }
1029
+ }
1030
+ },
1031
+ "backdrop": {
1032
+ "type": "object",
1033
+ "additionalProperties": false,
1034
+ "required": [
1035
+ "farCards"
1036
+ ],
1037
+ "properties": {
1038
+ "farCards": {
1039
+ "type": "array",
1040
+ "maxItems": 256,
1041
+ "uniqueItems": true,
1042
+ "items": {
1043
+ "type": "integer",
1044
+ "minimum": 0
1045
+ }
1046
+ }
1047
+ }
1048
+ }
1049
+ },
1050
+ "required": [
1051
+ "formatVersion",
1052
+ "id",
1053
+ "version",
1054
+ "name",
1055
+ "license",
1056
+ "scene",
1057
+ "defaultSpawn",
1058
+ "spawns",
1059
+ "attribution"
1060
+ ],
1061
+ "additionalProperties": false
1062
+ }