@ue-shed/protocol 0.7.1 → 0.9.0

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 (100) hide show
  1. package/contracts/cameras/authoring/v1/README.md +63 -0
  2. package/contracts/cameras/authoring/v1/approval.schema.json +106 -0
  3. package/contracts/cameras/authoring/v1/arrangement.schema.json +1807 -0
  4. package/contracts/cameras/authoring/v1/bridge-request.schema.json +11077 -0
  5. package/contracts/cameras/authoring/v1/bridge-response.schema.json +10523 -0
  6. package/contracts/cameras/authoring/v1/command.schema.json +4115 -0
  7. package/contracts/cameras/authoring/v1/document.schema.json +4421 -0
  8. package/contracts/cameras/authoring/v1/panel-event.schema.json +4891 -0
  9. package/contracts/cameras/authoring/v1/panel-state.schema.json +3560 -0
  10. package/contracts/cameras/authoring/v1/recipe.schema.json +340 -0
  11. package/contracts/cameras/authoring/v1/visibility-preset.schema.json +205 -0
  12. package/contracts/cameras/map-tile/v1/README.md +4 -1
  13. package/contracts/cameras/map-tile/v1/capture-operation.schema.json +1643 -30
  14. package/contracts/cameras/map-tile/v1/capture-request.schema.json +497 -48
  15. package/contracts/cameras/map-tile/v1/capture-response.schema.json +1405 -96
  16. package/contracts/cameras/map-tile/v1/manifest.schema.json +1782 -110
  17. package/contracts/cameras/map-tile/v1/plan.schema.json +394 -200
  18. package/contracts/cameras/map-tile/v1/release-result.schema.json +7 -2
  19. package/contracts/cameras/provisioning/v1/provision-request.schema.json +663 -141
  20. package/contracts/cameras/render/v1/README.md +6 -0
  21. package/contracts/cameras/render/v1/begin-result.schema.json +173 -0
  22. package/contracts/cameras/render/v1/capabilities.schema.json +46 -0
  23. package/contracts/cameras/render/v1/fixtures/invalid-session-editor-previews-type.json +41 -0
  24. package/contracts/cameras/render/v1/fixtures/session-editor-previews.json +41 -0
  25. package/contracts/cameras/render/v1/fixtures/session-scene-capture-editor-previews.json +40 -0
  26. package/contracts/cameras/render/v1/frame-evidence.schema.json +262 -0
  27. package/contracts/cameras/render/v1/frame-status.schema.json +271 -0
  28. package/contracts/cameras/render/v1/policy.schema.json +165 -0
  29. package/contracts/cameras/render/v1/review-inspection-result.schema.json +285 -0
  30. package/contracts/cameras/render/v1/session-request.schema.json +173 -0
  31. package/contracts/cameras/review/v1/README.md +6 -0
  32. package/contracts/cameras/review/v1/capture-request.schema.json +221 -3
  33. package/contracts/cameras/review/v1/capture-response.schema.json +3692 -0
  34. package/contracts/cameras/review/v1/fixtures/capture-authored.json +205 -0
  35. package/contracts/core/v1/WINDOW-ACTIVATION.md +21 -0
  36. package/contracts/core/v1/window-activation-request.schema.json +20 -0
  37. package/contracts/core/v1/window-activation-result.schema.json +49 -0
  38. package/contracts/editor-world/v1/README.md +27 -0
  39. package/contracts/editor-world/v1/operation.schema.json +761 -0
  40. package/contracts/editor-world/v1/state.schema.json +92 -0
  41. package/contracts/uasset-io/v1/README.md +24 -0
  42. package/contracts/uasset-io/v1/event.schema.json +2642 -290
  43. package/contracts/uasset-io/v1/fixtures/invalid/inspect-string-table-nonstring-metadata.json +53 -0
  44. package/contracts/uasset-io/v1/fixtures/invalid/level-sequence-version.json +43 -0
  45. package/contracts/uasset-io/v1/fixtures/invalid/negative-instanced-size.json +97 -0
  46. package/contracts/uasset-io/v1/fixtures/invalid/non-string-metadata.json +97 -0
  47. package/contracts/uasset-io/v1/fixtures/invalid/unknown-native-value.json +97 -0
  48. package/contracts/uasset-io/v1/fixtures/valid/blueprint-request.json +15 -3
  49. package/contracts/uasset-io/v1/fixtures/valid/blueprint-result-event.json +22 -5
  50. package/contracts/uasset-io/v1/fixtures/valid/extract-text-string-table-occurrence-result-event.json +30 -0
  51. package/contracts/uasset-io/v1/fixtures/valid/inspect-native-result-event.json +97 -0
  52. package/contracts/uasset-io/v1/fixtures/valid/inspect-string-table-metadata-result-event.json +53 -0
  53. package/contracts/uasset-io/v1/fixtures/valid/level-sequence-request.json +18 -0
  54. package/contracts/uasset-io/v1/fixtures/valid/level-sequence-result-event.json +43 -0
  55. package/contracts/uasset-io/v1/request.schema.json +14 -0
  56. package/contracts/world/preparation/v1/fixtures/invalid-contract-version.json +10 -0
  57. package/contracts/world/preparation/v1/fixtures/invalid-extra-field.json +11 -0
  58. package/contracts/world/preparation/v1/fixtures/invalid-negative-budget.json +37 -0
  59. package/contracts/world/preparation/v1/fixtures/invalid-region-negative-extent.json +40 -0
  60. package/contracts/world/preparation/v1/fixtures/valid-actor-context.json +37 -0
  61. package/contracts/world/preparation/v1/fixtures/valid-describe.json +10 -0
  62. package/contracts/world/preparation/v1/request.schema.json +897 -0
  63. package/contracts/world/preparation/v1/response.schema.json +449 -0
  64. package/dist/blueprint-graph.d.ts +332 -8
  65. package/dist/blueprint-graph.d.ts.map +1 -1
  66. package/dist/blueprint-graph.js +42 -3
  67. package/dist/blueprint-graph.js.map +1 -1
  68. package/dist/cameras.d.ts +16 -12
  69. package/dist/cameras.d.ts.map +1 -1
  70. package/dist/cameras.js +1 -0
  71. package/dist/cameras.js.map +1 -1
  72. package/dist/companion.d.ts +6 -0
  73. package/dist/companion.d.ts.map +1 -1
  74. package/dist/companion.js +3 -0
  75. package/dist/companion.js.map +1 -1
  76. package/dist/editor-window-activation.d.ts +16 -0
  77. package/dist/editor-window-activation.d.ts.map +1 -0
  78. package/dist/editor-window-activation.js +19 -0
  79. package/dist/editor-window-activation.js.map +1 -0
  80. package/dist/editor-world-control.d.ts +125 -0
  81. package/dist/editor-world-control.d.ts.map +1 -1
  82. package/dist/editor-world-control.js +25 -0
  83. package/dist/editor-world-control.js.map +1 -1
  84. package/dist/index.d.ts +2 -0
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +2 -0
  87. package/dist/index.js.map +1 -1
  88. package/dist/level-sequence.d.ts +1315 -0
  89. package/dist/level-sequence.d.ts.map +1 -0
  90. package/dist/level-sequence.js +204 -0
  91. package/dist/level-sequence.js.map +1 -0
  92. package/dist/uasset-inspection.d.ts +128 -55
  93. package/dist/uasset-inspection.d.ts.map +1 -1
  94. package/dist/uasset-inspection.js +39 -2
  95. package/dist/uasset-inspection.js.map +1 -1
  96. package/dist/uasset-io.d.ts +1302 -9
  97. package/dist/uasset-io.d.ts.map +1 -1
  98. package/dist/uasset-io.js +4 -0
  99. package/dist/uasset-io.js.map +1 -1
  100. package/package.json +1 -1
@@ -0,0 +1,3560 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://ue-shed.dev/contracts/cameras/authoring/v1/panel-state.schema.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "renderPolicy": {
7
+ "type": "object",
8
+ "properties": {
9
+ "visibility": {
10
+ "type": "object",
11
+ "properties": {
12
+ "hide": {
13
+ "type": "array",
14
+ "items": {
15
+ "type": "object",
16
+ "properties": {
17
+ "locator": {
18
+ "anyOf": [
19
+ {
20
+ "type": "object",
21
+ "properties": {
22
+ "kind": {
23
+ "type": "string",
24
+ "enum": ["actor_path"]
25
+ },
26
+ "actorPath": {
27
+ "type": "string",
28
+ "allOf": [
29
+ {
30
+ "pattern": "^\\/Game\\/"
31
+ },
32
+ {
33
+ "maxLength": 4096
34
+ }
35
+ ]
36
+ }
37
+ },
38
+ "required": ["kind", "actorPath"],
39
+ "additionalProperties": false
40
+ },
41
+ {
42
+ "type": "object",
43
+ "properties": {
44
+ "kind": {
45
+ "type": "string",
46
+ "enum": ["actor_guid"]
47
+ },
48
+ "actorGuid": {
49
+ "type": "string",
50
+ "allOf": [
51
+ {
52
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
53
+ }
54
+ ]
55
+ },
56
+ "lastKnownActorPath": {
57
+ "type": "string",
58
+ "allOf": [
59
+ {
60
+ "maxLength": 4096
61
+ }
62
+ ]
63
+ }
64
+ },
65
+ "required": [
66
+ "kind",
67
+ "actorGuid",
68
+ "lastKnownActorPath"
69
+ ],
70
+ "additionalProperties": false
71
+ }
72
+ ]
73
+ },
74
+ "label": {
75
+ "type": "string",
76
+ "allOf": [
77
+ {
78
+ "maxLength": 256
79
+ }
80
+ ]
81
+ }
82
+ },
83
+ "required": ["locator", "label"],
84
+ "additionalProperties": false
85
+ },
86
+ "allOf": [
87
+ {
88
+ "maxItems": 256
89
+ }
90
+ ]
91
+ },
92
+ "protect": {
93
+ "type": "array",
94
+ "items": {
95
+ "type": "object",
96
+ "properties": {
97
+ "locator": {
98
+ "anyOf": [
99
+ {
100
+ "type": "object",
101
+ "properties": {
102
+ "kind": {
103
+ "type": "string",
104
+ "enum": ["actor_path"]
105
+ },
106
+ "actorPath": {
107
+ "type": "string",
108
+ "allOf": [
109
+ {
110
+ "pattern": "^\\/Game\\/"
111
+ },
112
+ {
113
+ "maxLength": 4096
114
+ }
115
+ ]
116
+ }
117
+ },
118
+ "required": ["kind", "actorPath"],
119
+ "additionalProperties": false
120
+ },
121
+ {
122
+ "type": "object",
123
+ "properties": {
124
+ "kind": {
125
+ "type": "string",
126
+ "enum": ["actor_guid"]
127
+ },
128
+ "actorGuid": {
129
+ "type": "string",
130
+ "allOf": [
131
+ {
132
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
133
+ }
134
+ ]
135
+ },
136
+ "lastKnownActorPath": {
137
+ "type": "string",
138
+ "allOf": [
139
+ {
140
+ "maxLength": 4096
141
+ }
142
+ ]
143
+ }
144
+ },
145
+ "required": [
146
+ "kind",
147
+ "actorGuid",
148
+ "lastKnownActorPath"
149
+ ],
150
+ "additionalProperties": false
151
+ }
152
+ ]
153
+ },
154
+ "label": {
155
+ "type": "string",
156
+ "allOf": [
157
+ {
158
+ "maxLength": 256
159
+ }
160
+ ]
161
+ }
162
+ },
163
+ "required": ["locator", "label"],
164
+ "additionalProperties": false
165
+ },
166
+ "allOf": [
167
+ {
168
+ "maxItems": 256
169
+ }
170
+ ]
171
+ }
172
+ },
173
+ "required": ["hide", "protect"],
174
+ "additionalProperties": false
175
+ },
176
+ "renderer": {
177
+ "anyOf": [
178
+ {
179
+ "type": "object",
180
+ "properties": {
181
+ "kind": {
182
+ "type": "string",
183
+ "enum": ["editor_viewport"]
184
+ },
185
+ "strategy": {
186
+ "type": "string",
187
+ "enum": ["high_resolution_screenshot"]
188
+ },
189
+ "profile": {
190
+ "type": "string",
191
+ "enum": ["lit", "observation"]
192
+ },
193
+ "vignette": {
194
+ "type": "string",
195
+ "enum": ["project", "disabled"]
196
+ },
197
+ "fog": {
198
+ "type": "boolean"
199
+ },
200
+ "volumetricFog": {
201
+ "type": "boolean"
202
+ },
203
+ "editorPreviews": {
204
+ "type": "boolean"
205
+ }
206
+ },
207
+ "required": [
208
+ "kind",
209
+ "strategy",
210
+ "profile",
211
+ "vignette",
212
+ "fog",
213
+ "volumetricFog"
214
+ ],
215
+ "additionalProperties": false
216
+ },
217
+ {
218
+ "type": "object",
219
+ "properties": {
220
+ "kind": {
221
+ "type": "string",
222
+ "enum": ["scene_capture"]
223
+ },
224
+ "profile": {
225
+ "type": "string",
226
+ "enum": [
227
+ "full_fidelity",
228
+ "seam_stable",
229
+ "scene_capture_defaults",
230
+ "observation"
231
+ ]
232
+ },
233
+ "lodDistanceScale": {
234
+ "type": "number",
235
+ "allOf": [
236
+ {
237
+ "minimum": 0.1,
238
+ "maximum": 100
239
+ }
240
+ ]
241
+ },
242
+ "fog": {
243
+ "type": "boolean"
244
+ },
245
+ "volumetricFog": {
246
+ "type": "boolean"
247
+ },
248
+ "editorPreviews": {
249
+ "type": "boolean"
250
+ }
251
+ },
252
+ "required": [
253
+ "kind",
254
+ "profile",
255
+ "lodDistanceScale",
256
+ "fog",
257
+ "volumetricFog"
258
+ ],
259
+ "additionalProperties": false
260
+ }
261
+ ]
262
+ },
263
+ "exposure": {
264
+ "anyOf": [
265
+ {
266
+ "type": "object",
267
+ "properties": {
268
+ "mode": {
269
+ "type": "string",
270
+ "enum": ["project_auto"]
271
+ }
272
+ },
273
+ "required": ["mode"],
274
+ "additionalProperties": false
275
+ },
276
+ {
277
+ "type": "object",
278
+ "properties": {
279
+ "mode": {
280
+ "type": "string",
281
+ "enum": ["fixed_ev100"]
282
+ },
283
+ "ev100": {
284
+ "type": "number",
285
+ "allOf": [
286
+ {
287
+ "minimum": -20,
288
+ "maximum": 30
289
+ }
290
+ ]
291
+ },
292
+ "compensation": {
293
+ "type": "string",
294
+ "enum": ["project"]
295
+ }
296
+ },
297
+ "required": ["mode", "ev100", "compensation"],
298
+ "additionalProperties": false
299
+ },
300
+ {
301
+ "type": "object",
302
+ "properties": {
303
+ "mode": {
304
+ "type": "string",
305
+ "enum": ["meter_once"]
306
+ },
307
+ "referenceCamera": {
308
+ "type": "object",
309
+ "properties": {
310
+ "location": {
311
+ "type": "object",
312
+ "properties": {
313
+ "x": {
314
+ "type": "number"
315
+ },
316
+ "y": {
317
+ "type": "number"
318
+ },
319
+ "z": {
320
+ "type": "number"
321
+ }
322
+ },
323
+ "required": ["x", "y", "z"],
324
+ "additionalProperties": false
325
+ },
326
+ "rotation": {
327
+ "type": "object",
328
+ "properties": {
329
+ "pitch": {
330
+ "type": "number"
331
+ },
332
+ "roll": {
333
+ "type": "number"
334
+ },
335
+ "yaw": {
336
+ "type": "number"
337
+ }
338
+ },
339
+ "required": ["pitch", "roll", "yaw"],
340
+ "additionalProperties": false
341
+ },
342
+ "projection": {
343
+ "anyOf": [
344
+ {
345
+ "type": "object",
346
+ "properties": {
347
+ "kind": {
348
+ "type": "string",
349
+ "enum": ["perspective"]
350
+ },
351
+ "horizontalFieldOfView": {
352
+ "type": "number",
353
+ "allOf": [
354
+ {
355
+ "minimum": 5,
356
+ "maximum": 170
357
+ }
358
+ ]
359
+ }
360
+ },
361
+ "required": ["kind", "horizontalFieldOfView"],
362
+ "additionalProperties": false
363
+ },
364
+ {
365
+ "type": "object",
366
+ "properties": {
367
+ "kind": {
368
+ "type": "string",
369
+ "enum": ["orthographic"]
370
+ },
371
+ "width": {
372
+ "type": "number",
373
+ "allOf": [
374
+ {
375
+ "exclusiveMinimum": 0
376
+ },
377
+ {
378
+ "maximum": 1000000000
379
+ }
380
+ ]
381
+ }
382
+ },
383
+ "required": ["kind", "width"],
384
+ "additionalProperties": false
385
+ }
386
+ ]
387
+ }
388
+ },
389
+ "required": ["location", "rotation", "projection"],
390
+ "additionalProperties": false
391
+ },
392
+ "referenceSize": {
393
+ "type": "object",
394
+ "properties": {
395
+ "width": {
396
+ "type": "integer",
397
+ "allOf": [
398
+ {
399
+ "minimum": 16,
400
+ "maximum": 16384
401
+ }
402
+ ]
403
+ },
404
+ "height": {
405
+ "type": "integer",
406
+ "allOf": [
407
+ {
408
+ "minimum": 16,
409
+ "maximum": 16384
410
+ }
411
+ ]
412
+ }
413
+ },
414
+ "required": ["width", "height"],
415
+ "additionalProperties": false
416
+ },
417
+ "minimumFrames": {
418
+ "type": "integer",
419
+ "allOf": [
420
+ {
421
+ "minimum": 1,
422
+ "maximum": 4096
423
+ }
424
+ ]
425
+ }
426
+ },
427
+ "required": [
428
+ "mode",
429
+ "referenceCamera",
430
+ "referenceSize",
431
+ "minimumFrames"
432
+ ],
433
+ "additionalProperties": false
434
+ }
435
+ ]
436
+ },
437
+ "settling": {
438
+ "type": "object",
439
+ "properties": {
440
+ "minimumFrames": {
441
+ "type": "integer",
442
+ "allOf": [
443
+ {
444
+ "minimum": 1,
445
+ "maximum": 4096
446
+ }
447
+ ]
448
+ },
449
+ "timeoutMs": {
450
+ "type": "integer",
451
+ "allOf": [
452
+ {
453
+ "minimum": 1000,
454
+ "maximum": 900000
455
+ }
456
+ ]
457
+ },
458
+ "initialView": {
459
+ "type": "object",
460
+ "properties": {
461
+ "camera": {
462
+ "type": "object",
463
+ "properties": {
464
+ "location": {
465
+ "type": "object",
466
+ "properties": {
467
+ "x": {
468
+ "type": "number"
469
+ },
470
+ "y": {
471
+ "type": "number"
472
+ },
473
+ "z": {
474
+ "type": "number"
475
+ }
476
+ },
477
+ "required": ["x", "y", "z"],
478
+ "additionalProperties": false
479
+ },
480
+ "rotation": {
481
+ "type": "object",
482
+ "properties": {
483
+ "pitch": {
484
+ "type": "number"
485
+ },
486
+ "roll": {
487
+ "type": "number"
488
+ },
489
+ "yaw": {
490
+ "type": "number"
491
+ }
492
+ },
493
+ "required": ["pitch", "roll", "yaw"],
494
+ "additionalProperties": false
495
+ },
496
+ "projection": {
497
+ "anyOf": [
498
+ {
499
+ "type": "object",
500
+ "properties": {
501
+ "kind": {
502
+ "type": "string",
503
+ "enum": ["perspective"]
504
+ },
505
+ "horizontalFieldOfView": {
506
+ "type": "number",
507
+ "allOf": [
508
+ {
509
+ "minimum": 5,
510
+ "maximum": 170
511
+ }
512
+ ]
513
+ }
514
+ },
515
+ "required": ["kind", "horizontalFieldOfView"],
516
+ "additionalProperties": false
517
+ },
518
+ {
519
+ "type": "object",
520
+ "properties": {
521
+ "kind": {
522
+ "type": "string",
523
+ "enum": ["orthographic"]
524
+ },
525
+ "width": {
526
+ "type": "number",
527
+ "allOf": [
528
+ {
529
+ "exclusiveMinimum": 0
530
+ },
531
+ {
532
+ "maximum": 1000000000
533
+ }
534
+ ]
535
+ }
536
+ },
537
+ "required": ["kind", "width"],
538
+ "additionalProperties": false
539
+ }
540
+ ]
541
+ }
542
+ },
543
+ "required": ["location", "rotation", "projection"],
544
+ "additionalProperties": false
545
+ },
546
+ "size": {
547
+ "type": "object",
548
+ "properties": {
549
+ "width": {
550
+ "type": "integer",
551
+ "allOf": [
552
+ {
553
+ "minimum": 16,
554
+ "maximum": 16384
555
+ }
556
+ ]
557
+ },
558
+ "height": {
559
+ "type": "integer",
560
+ "allOf": [
561
+ {
562
+ "minimum": 16,
563
+ "maximum": 16384
564
+ }
565
+ ]
566
+ }
567
+ },
568
+ "required": ["width", "height"],
569
+ "additionalProperties": false
570
+ },
571
+ "minimumFrames": {
572
+ "type": "integer",
573
+ "allOf": [
574
+ {
575
+ "minimum": 1,
576
+ "maximum": 4096
577
+ }
578
+ ]
579
+ }
580
+ },
581
+ "required": ["camera", "size", "minimumFrames"],
582
+ "additionalProperties": false
583
+ }
584
+ },
585
+ "required": ["minimumFrames", "timeoutMs"],
586
+ "additionalProperties": false
587
+ },
588
+ "time": {
589
+ "type": "string",
590
+ "enum": ["live_editor", "freeze_materials_and_ticks"]
591
+ },
592
+ "preparation": {
593
+ "type": "object",
594
+ "properties": {
595
+ "geometry": {
596
+ "anyOf": [
597
+ {
598
+ "type": "object",
599
+ "properties": {
600
+ "mode": {
601
+ "type": "string",
602
+ "enum": ["preserve_loading"]
603
+ }
604
+ },
605
+ "required": ["mode"],
606
+ "additionalProperties": false
607
+ },
608
+ {
609
+ "type": "object",
610
+ "properties": {
611
+ "mode": {
612
+ "type": "string",
613
+ "enum": ["camera_regions"]
614
+ },
615
+ "maximumRegions": {
616
+ "type": "integer",
617
+ "allOf": [
618
+ {
619
+ "minimum": 1,
620
+ "maximum": 64
621
+ }
622
+ ]
623
+ },
624
+ "extent": {
625
+ "type": "object",
626
+ "properties": {
627
+ "x": {
628
+ "type": "number",
629
+ "allOf": [
630
+ {
631
+ "minimum": 0,
632
+ "maximum": 10000000
633
+ }
634
+ ]
635
+ },
636
+ "y": {
637
+ "type": "number",
638
+ "allOf": [
639
+ {
640
+ "minimum": 0,
641
+ "maximum": 10000000
642
+ }
643
+ ]
644
+ },
645
+ "z": {
646
+ "type": "number",
647
+ "allOf": [
648
+ {
649
+ "minimum": 0,
650
+ "maximum": 10000000
651
+ }
652
+ ]
653
+ }
654
+ },
655
+ "required": ["x", "y", "z"],
656
+ "additionalProperties": false
657
+ }
658
+ },
659
+ "required": ["mode", "maximumRegions", "extent"],
660
+ "additionalProperties": false
661
+ }
662
+ ]
663
+ },
664
+ "dataLayers": {
665
+ "type": "array",
666
+ "items": {
667
+ "type": "object",
668
+ "properties": {
669
+ "assetPath": {
670
+ "type": "string",
671
+ "allOf": [
672
+ {
673
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
674
+ },
675
+ {
676
+ "maxLength": 1024
677
+ }
678
+ ]
679
+ },
680
+ "loaded": {
681
+ "type": "boolean"
682
+ },
683
+ "visible": {
684
+ "type": "boolean"
685
+ }
686
+ },
687
+ "required": ["assetPath", "loaded", "visible"],
688
+ "additionalProperties": false
689
+ },
690
+ "allOf": [
691
+ {
692
+ "maxItems": 64
693
+ }
694
+ ]
695
+ }
696
+ },
697
+ "required": ["geometry", "dataLayers"],
698
+ "additionalProperties": false
699
+ }
700
+ },
701
+ "required": ["renderer", "exposure", "settling", "time", "preparation"],
702
+ "additionalProperties": false
703
+ },
704
+ "arrangement": {
705
+ "type": "object",
706
+ "properties": {
707
+ "version": {
708
+ "type": "number",
709
+ "enum": [1]
710
+ },
711
+ "id": {
712
+ "type": "string",
713
+ "allOf": [
714
+ {
715
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
716
+ }
717
+ ]
718
+ },
719
+ "revision": {
720
+ "type": "integer",
721
+ "allOf": [
722
+ {
723
+ "minimum": 0,
724
+ "maximum": 9007199254740991
725
+ }
726
+ ]
727
+ },
728
+ "projectName": {
729
+ "type": "string",
730
+ "allOf": [
731
+ {
732
+ "minLength": 1
733
+ }
734
+ ]
735
+ },
736
+ "mapPath": {
737
+ "type": "string",
738
+ "allOf": [
739
+ {
740
+ "minLength": 1
741
+ }
742
+ ]
743
+ },
744
+ "subject": {
745
+ "anyOf": [
746
+ {
747
+ "type": "object",
748
+ "properties": {
749
+ "actorGuid": {
750
+ "type": "string",
751
+ "allOf": [
752
+ {
753
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
754
+ }
755
+ ]
756
+ },
757
+ "diagnosticLabel": {
758
+ "anyOf": [
759
+ {
760
+ "type": "string",
761
+ "allOf": [
762
+ {
763
+ "minLength": 1
764
+ }
765
+ ]
766
+ },
767
+ {
768
+ "type": "null"
769
+ }
770
+ ]
771
+ },
772
+ "kind": {
773
+ "type": "string",
774
+ "enum": ["actor_guid"]
775
+ },
776
+ "lastKnownActorPath": {
777
+ "anyOf": [
778
+ {
779
+ "type": "string",
780
+ "allOf": [
781
+ {
782
+ "minLength": 7
783
+ },
784
+ {
785
+ "maxLength": 4096
786
+ },
787
+ {
788
+ "pattern": "^\\/Game\\/"
789
+ }
790
+ ]
791
+ },
792
+ {
793
+ "type": "null"
794
+ }
795
+ ]
796
+ }
797
+ },
798
+ "required": ["actorGuid", "kind"],
799
+ "additionalProperties": false
800
+ },
801
+ {
802
+ "type": "object",
803
+ "properties": {
804
+ "actorPath": {
805
+ "type": "string",
806
+ "allOf": [
807
+ {
808
+ "minLength": 7
809
+ },
810
+ {
811
+ "maxLength": 4096
812
+ },
813
+ {
814
+ "pattern": "^\\/Game\\/"
815
+ }
816
+ ]
817
+ },
818
+ "diagnosticLabel": {
819
+ "anyOf": [
820
+ {
821
+ "type": "string",
822
+ "allOf": [
823
+ {
824
+ "minLength": 1
825
+ }
826
+ ]
827
+ },
828
+ {
829
+ "type": "null"
830
+ }
831
+ ]
832
+ },
833
+ "kind": {
834
+ "type": "string",
835
+ "enum": ["actor_path"]
836
+ }
837
+ },
838
+ "required": ["actorPath", "kind"],
839
+ "additionalProperties": false
840
+ }
841
+ ]
842
+ },
843
+ "bounds": {
844
+ "type": "object",
845
+ "properties": {
846
+ "center": {
847
+ "type": "object",
848
+ "properties": {
849
+ "x": {
850
+ "type": "number"
851
+ },
852
+ "y": {
853
+ "type": "number"
854
+ },
855
+ "z": {
856
+ "type": "number"
857
+ }
858
+ },
859
+ "required": ["x", "y", "z"],
860
+ "additionalProperties": false
861
+ },
862
+ "extent": {
863
+ "type": "object",
864
+ "properties": {
865
+ "x": {
866
+ "type": "number",
867
+ "allOf": [
868
+ {
869
+ "minimum": 0
870
+ }
871
+ ]
872
+ },
873
+ "y": {
874
+ "type": "number",
875
+ "allOf": [
876
+ {
877
+ "minimum": 0
878
+ }
879
+ ]
880
+ },
881
+ "z": {
882
+ "type": "number",
883
+ "allOf": [
884
+ {
885
+ "minimum": 0
886
+ }
887
+ ]
888
+ }
889
+ },
890
+ "required": ["x", "y", "z"],
891
+ "additionalProperties": false
892
+ },
893
+ "rotation": {
894
+ "type": "object",
895
+ "properties": {
896
+ "pitch": {
897
+ "type": "number"
898
+ },
899
+ "roll": {
900
+ "type": "number"
901
+ },
902
+ "yaw": {
903
+ "type": "number"
904
+ }
905
+ },
906
+ "required": ["pitch", "roll", "yaw"],
907
+ "additionalProperties": false
908
+ }
909
+ },
910
+ "required": ["center", "extent", "rotation"],
911
+ "additionalProperties": false
912
+ },
913
+ "settings": {
914
+ "type": "object",
915
+ "properties": {
916
+ "fieldOfViewDegrees": {
917
+ "type": "number",
918
+ "allOf": [
919
+ {
920
+ "minimum": 5,
921
+ "maximum": 170
922
+ }
923
+ ]
924
+ },
925
+ "distanceScale": {
926
+ "type": "number",
927
+ "allOf": [
928
+ {
929
+ "minimum": 0.01,
930
+ "maximum": 100
931
+ }
932
+ ]
933
+ },
934
+ "heightOffset": {
935
+ "type": "number"
936
+ },
937
+ "margin": {
938
+ "type": "number",
939
+ "allOf": [
940
+ {
941
+ "minimum": 0,
942
+ "maximum": 0.45
943
+ }
944
+ ]
945
+ },
946
+ "elevationDegrees": {
947
+ "type": "number",
948
+ "allOf": [
949
+ {
950
+ "minimum": -89,
951
+ "maximum": 89
952
+ }
953
+ ]
954
+ },
955
+ "yawOffset": {
956
+ "type": "number"
957
+ },
958
+ "aimOffset": {
959
+ "type": "object",
960
+ "properties": {
961
+ "x": {
962
+ "type": "number"
963
+ },
964
+ "y": {
965
+ "type": "number"
966
+ },
967
+ "z": {
968
+ "type": "number"
969
+ }
970
+ },
971
+ "required": ["x", "y", "z"],
972
+ "additionalProperties": false
973
+ }
974
+ },
975
+ "required": ["fieldOfViewDegrees", "distanceScale", "heightOffset", "margin"],
976
+ "additionalProperties": false
977
+ },
978
+ "cameras": {
979
+ "type": "array",
980
+ "items": {
981
+ "type": "object",
982
+ "properties": {
983
+ "id": {
984
+ "type": "string",
985
+ "allOf": [
986
+ {
987
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
988
+ }
989
+ ]
990
+ },
991
+ "displayName": {
992
+ "type": "string",
993
+ "allOf": [
994
+ {
995
+ "minLength": 1
996
+ }
997
+ ]
998
+ },
999
+ "yawDegrees": {
1000
+ "type": "number"
1001
+ },
1002
+ "overrides": {
1003
+ "type": "object",
1004
+ "properties": {
1005
+ "fieldOfViewDegrees": {
1006
+ "type": "number",
1007
+ "allOf": [
1008
+ {
1009
+ "minimum": 5,
1010
+ "maximum": 170
1011
+ }
1012
+ ]
1013
+ },
1014
+ "distanceScale": {
1015
+ "type": "number",
1016
+ "allOf": [
1017
+ {
1018
+ "minimum": 0.01,
1019
+ "maximum": 100
1020
+ }
1021
+ ]
1022
+ },
1023
+ "heightOffset": {
1024
+ "type": "number"
1025
+ },
1026
+ "margin": {
1027
+ "type": "number",
1028
+ "allOf": [
1029
+ {
1030
+ "minimum": 0,
1031
+ "maximum": 0.45
1032
+ }
1033
+ ]
1034
+ },
1035
+ "elevationDegrees": {
1036
+ "type": "number",
1037
+ "allOf": [
1038
+ {
1039
+ "minimum": -89,
1040
+ "maximum": 89
1041
+ }
1042
+ ]
1043
+ },
1044
+ "yawOffset": {
1045
+ "type": "number"
1046
+ },
1047
+ "aimOffset": {
1048
+ "type": "object",
1049
+ "properties": {
1050
+ "x": {
1051
+ "type": "number"
1052
+ },
1053
+ "y": {
1054
+ "type": "number"
1055
+ },
1056
+ "z": {
1057
+ "type": "number"
1058
+ }
1059
+ },
1060
+ "required": ["x", "y", "z"],
1061
+ "additionalProperties": false
1062
+ }
1063
+ },
1064
+ "additionalProperties": false
1065
+ },
1066
+ "manualPose": {
1067
+ "type": "object",
1068
+ "properties": {
1069
+ "aspectRatio": {
1070
+ "type": "string",
1071
+ "enum": ["16:9"]
1072
+ },
1073
+ "fieldOfViewDegrees": {
1074
+ "type": "number",
1075
+ "allOf": [
1076
+ {
1077
+ "minimum": 5,
1078
+ "maximum": 170
1079
+ }
1080
+ ]
1081
+ },
1082
+ "location": {
1083
+ "type": "object",
1084
+ "properties": {
1085
+ "x": {
1086
+ "type": "number"
1087
+ },
1088
+ "y": {
1089
+ "type": "number"
1090
+ },
1091
+ "z": {
1092
+ "type": "number"
1093
+ }
1094
+ },
1095
+ "required": ["x", "y", "z"],
1096
+ "additionalProperties": false
1097
+ },
1098
+ "projection": {
1099
+ "type": "string",
1100
+ "enum": ["perspective"]
1101
+ },
1102
+ "rotation": {
1103
+ "type": "object",
1104
+ "properties": {
1105
+ "pitch": {
1106
+ "type": "number"
1107
+ },
1108
+ "roll": {
1109
+ "type": "number"
1110
+ },
1111
+ "yaw": {
1112
+ "type": "number"
1113
+ }
1114
+ },
1115
+ "required": ["pitch", "roll", "yaw"],
1116
+ "additionalProperties": false
1117
+ }
1118
+ },
1119
+ "required": [
1120
+ "aspectRatio",
1121
+ "fieldOfViewDegrees",
1122
+ "location",
1123
+ "projection",
1124
+ "rotation"
1125
+ ],
1126
+ "additionalProperties": false
1127
+ },
1128
+ "viewId": {
1129
+ "type": "string",
1130
+ "allOf": [
1131
+ {
1132
+ "minLength": 1
1133
+ },
1134
+ {
1135
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
1136
+ }
1137
+ ]
1138
+ },
1139
+ "groupId": {
1140
+ "type": "string",
1141
+ "allOf": [
1142
+ {
1143
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
1144
+ }
1145
+ ]
1146
+ },
1147
+ "visibility": {
1148
+ "type": "object",
1149
+ "properties": {
1150
+ "hide": {
1151
+ "type": "array",
1152
+ "items": {
1153
+ "type": "object",
1154
+ "properties": {
1155
+ "locator": {
1156
+ "anyOf": [
1157
+ {
1158
+ "type": "object",
1159
+ "properties": {
1160
+ "kind": {
1161
+ "type": "string",
1162
+ "enum": ["actor_path"]
1163
+ },
1164
+ "actorPath": {
1165
+ "type": "string",
1166
+ "allOf": [
1167
+ {
1168
+ "pattern": "^\\/Game\\/"
1169
+ },
1170
+ {
1171
+ "maxLength": 4096
1172
+ }
1173
+ ]
1174
+ }
1175
+ },
1176
+ "required": ["kind", "actorPath"],
1177
+ "additionalProperties": false
1178
+ },
1179
+ {
1180
+ "type": "object",
1181
+ "properties": {
1182
+ "kind": {
1183
+ "type": "string",
1184
+ "enum": ["actor_guid"]
1185
+ },
1186
+ "actorGuid": {
1187
+ "type": "string",
1188
+ "allOf": [
1189
+ {
1190
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
1191
+ }
1192
+ ]
1193
+ },
1194
+ "lastKnownActorPath": {
1195
+ "type": "string",
1196
+ "allOf": [
1197
+ {
1198
+ "maxLength": 4096
1199
+ }
1200
+ ]
1201
+ }
1202
+ },
1203
+ "required": [
1204
+ "kind",
1205
+ "actorGuid",
1206
+ "lastKnownActorPath"
1207
+ ],
1208
+ "additionalProperties": false
1209
+ }
1210
+ ]
1211
+ },
1212
+ "label": {
1213
+ "type": "string",
1214
+ "allOf": [
1215
+ {
1216
+ "maxLength": 256
1217
+ }
1218
+ ]
1219
+ }
1220
+ },
1221
+ "required": ["locator", "label"],
1222
+ "additionalProperties": false
1223
+ },
1224
+ "allOf": [
1225
+ {
1226
+ "maxItems": 256
1227
+ }
1228
+ ]
1229
+ },
1230
+ "protect": {
1231
+ "type": "array",
1232
+ "items": {
1233
+ "type": "object",
1234
+ "properties": {
1235
+ "locator": {
1236
+ "anyOf": [
1237
+ {
1238
+ "type": "object",
1239
+ "properties": {
1240
+ "kind": {
1241
+ "type": "string",
1242
+ "enum": ["actor_path"]
1243
+ },
1244
+ "actorPath": {
1245
+ "type": "string",
1246
+ "allOf": [
1247
+ {
1248
+ "pattern": "^\\/Game\\/"
1249
+ },
1250
+ {
1251
+ "maxLength": 4096
1252
+ }
1253
+ ]
1254
+ }
1255
+ },
1256
+ "required": ["kind", "actorPath"],
1257
+ "additionalProperties": false
1258
+ },
1259
+ {
1260
+ "type": "object",
1261
+ "properties": {
1262
+ "kind": {
1263
+ "type": "string",
1264
+ "enum": ["actor_guid"]
1265
+ },
1266
+ "actorGuid": {
1267
+ "type": "string",
1268
+ "allOf": [
1269
+ {
1270
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
1271
+ }
1272
+ ]
1273
+ },
1274
+ "lastKnownActorPath": {
1275
+ "type": "string",
1276
+ "allOf": [
1277
+ {
1278
+ "maxLength": 4096
1279
+ }
1280
+ ]
1281
+ }
1282
+ },
1283
+ "required": [
1284
+ "kind",
1285
+ "actorGuid",
1286
+ "lastKnownActorPath"
1287
+ ],
1288
+ "additionalProperties": false
1289
+ }
1290
+ ]
1291
+ },
1292
+ "label": {
1293
+ "type": "string",
1294
+ "allOf": [
1295
+ {
1296
+ "maxLength": 256
1297
+ }
1298
+ ]
1299
+ }
1300
+ },
1301
+ "required": ["locator", "label"],
1302
+ "additionalProperties": false
1303
+ },
1304
+ "allOf": [
1305
+ {
1306
+ "maxItems": 256
1307
+ }
1308
+ ]
1309
+ }
1310
+ },
1311
+ "required": ["hide", "protect"],
1312
+ "additionalProperties": false
1313
+ }
1314
+ },
1315
+ "required": ["id", "displayName", "yawDegrees", "overrides", "viewId"],
1316
+ "additionalProperties": false
1317
+ },
1318
+ "allOf": [
1319
+ {
1320
+ "minItems": 1
1321
+ },
1322
+ {
1323
+ "maxItems": 256
1324
+ }
1325
+ ]
1326
+ },
1327
+ "retiredCameraIds": {
1328
+ "type": "array",
1329
+ "items": {
1330
+ "type": "string",
1331
+ "allOf": [
1332
+ {
1333
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
1334
+ }
1335
+ ]
1336
+ }
1337
+ },
1338
+ "captureProfileId": {
1339
+ "type": "string",
1340
+ "allOf": [
1341
+ {
1342
+ "minLength": 1
1343
+ },
1344
+ {
1345
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
1346
+ }
1347
+ ]
1348
+ },
1349
+ "visibilityPolicyId": {
1350
+ "type": "string",
1351
+ "allOf": [
1352
+ {
1353
+ "minLength": 1
1354
+ },
1355
+ {
1356
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
1357
+ }
1358
+ ]
1359
+ },
1360
+ "displayName": {
1361
+ "type": "string",
1362
+ "allOf": [
1363
+ {
1364
+ "minLength": 1
1365
+ }
1366
+ ]
1367
+ },
1368
+ "groups": {
1369
+ "type": "array",
1370
+ "items": {
1371
+ "type": "object",
1372
+ "properties": {
1373
+ "id": {
1374
+ "type": "string",
1375
+ "allOf": [
1376
+ {
1377
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
1378
+ }
1379
+ ]
1380
+ },
1381
+ "name": {
1382
+ "type": "string",
1383
+ "allOf": [
1384
+ {
1385
+ "minLength": 1
1386
+ }
1387
+ ]
1388
+ },
1389
+ "overrides": {
1390
+ "type": "object",
1391
+ "properties": {
1392
+ "fieldOfViewDegrees": {
1393
+ "type": "number",
1394
+ "allOf": [
1395
+ {
1396
+ "minimum": 5,
1397
+ "maximum": 170
1398
+ }
1399
+ ]
1400
+ },
1401
+ "distanceScale": {
1402
+ "type": "number",
1403
+ "allOf": [
1404
+ {
1405
+ "minimum": 0.01,
1406
+ "maximum": 100
1407
+ }
1408
+ ]
1409
+ },
1410
+ "heightOffset": {
1411
+ "type": "number"
1412
+ },
1413
+ "margin": {
1414
+ "type": "number",
1415
+ "allOf": [
1416
+ {
1417
+ "minimum": 0,
1418
+ "maximum": 0.45
1419
+ }
1420
+ ]
1421
+ },
1422
+ "elevationDegrees": {
1423
+ "type": "number",
1424
+ "allOf": [
1425
+ {
1426
+ "minimum": -89,
1427
+ "maximum": 89
1428
+ }
1429
+ ]
1430
+ },
1431
+ "yawOffset": {
1432
+ "type": "number"
1433
+ },
1434
+ "aimOffset": {
1435
+ "type": "object",
1436
+ "properties": {
1437
+ "x": {
1438
+ "type": "number"
1439
+ },
1440
+ "y": {
1441
+ "type": "number"
1442
+ },
1443
+ "z": {
1444
+ "type": "number"
1445
+ }
1446
+ },
1447
+ "required": ["x", "y", "z"],
1448
+ "additionalProperties": false
1449
+ }
1450
+ },
1451
+ "additionalProperties": false
1452
+ },
1453
+ "visibility": {
1454
+ "type": "object",
1455
+ "properties": {
1456
+ "hide": {
1457
+ "type": "array",
1458
+ "items": {
1459
+ "type": "object",
1460
+ "properties": {
1461
+ "locator": {
1462
+ "anyOf": [
1463
+ {
1464
+ "type": "object",
1465
+ "properties": {
1466
+ "kind": {
1467
+ "type": "string",
1468
+ "enum": ["actor_path"]
1469
+ },
1470
+ "actorPath": {
1471
+ "type": "string",
1472
+ "allOf": [
1473
+ {
1474
+ "pattern": "^\\/Game\\/"
1475
+ },
1476
+ {
1477
+ "maxLength": 4096
1478
+ }
1479
+ ]
1480
+ }
1481
+ },
1482
+ "required": ["kind", "actorPath"],
1483
+ "additionalProperties": false
1484
+ },
1485
+ {
1486
+ "type": "object",
1487
+ "properties": {
1488
+ "kind": {
1489
+ "type": "string",
1490
+ "enum": ["actor_guid"]
1491
+ },
1492
+ "actorGuid": {
1493
+ "type": "string",
1494
+ "allOf": [
1495
+ {
1496
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
1497
+ }
1498
+ ]
1499
+ },
1500
+ "lastKnownActorPath": {
1501
+ "type": "string",
1502
+ "allOf": [
1503
+ {
1504
+ "maxLength": 4096
1505
+ }
1506
+ ]
1507
+ }
1508
+ },
1509
+ "required": [
1510
+ "kind",
1511
+ "actorGuid",
1512
+ "lastKnownActorPath"
1513
+ ],
1514
+ "additionalProperties": false
1515
+ }
1516
+ ]
1517
+ },
1518
+ "label": {
1519
+ "type": "string",
1520
+ "allOf": [
1521
+ {
1522
+ "maxLength": 256
1523
+ }
1524
+ ]
1525
+ }
1526
+ },
1527
+ "required": ["locator", "label"],
1528
+ "additionalProperties": false
1529
+ },
1530
+ "allOf": [
1531
+ {
1532
+ "maxItems": 256
1533
+ }
1534
+ ]
1535
+ },
1536
+ "protect": {
1537
+ "type": "array",
1538
+ "items": {
1539
+ "type": "object",
1540
+ "properties": {
1541
+ "locator": {
1542
+ "anyOf": [
1543
+ {
1544
+ "type": "object",
1545
+ "properties": {
1546
+ "kind": {
1547
+ "type": "string",
1548
+ "enum": ["actor_path"]
1549
+ },
1550
+ "actorPath": {
1551
+ "type": "string",
1552
+ "allOf": [
1553
+ {
1554
+ "pattern": "^\\/Game\\/"
1555
+ },
1556
+ {
1557
+ "maxLength": 4096
1558
+ }
1559
+ ]
1560
+ }
1561
+ },
1562
+ "required": ["kind", "actorPath"],
1563
+ "additionalProperties": false
1564
+ },
1565
+ {
1566
+ "type": "object",
1567
+ "properties": {
1568
+ "kind": {
1569
+ "type": "string",
1570
+ "enum": ["actor_guid"]
1571
+ },
1572
+ "actorGuid": {
1573
+ "type": "string",
1574
+ "allOf": [
1575
+ {
1576
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
1577
+ }
1578
+ ]
1579
+ },
1580
+ "lastKnownActorPath": {
1581
+ "type": "string",
1582
+ "allOf": [
1583
+ {
1584
+ "maxLength": 4096
1585
+ }
1586
+ ]
1587
+ }
1588
+ },
1589
+ "required": [
1590
+ "kind",
1591
+ "actorGuid",
1592
+ "lastKnownActorPath"
1593
+ ],
1594
+ "additionalProperties": false
1595
+ }
1596
+ ]
1597
+ },
1598
+ "label": {
1599
+ "type": "string",
1600
+ "allOf": [
1601
+ {
1602
+ "maxLength": 256
1603
+ }
1604
+ ]
1605
+ }
1606
+ },
1607
+ "required": ["locator", "label"],
1608
+ "additionalProperties": false
1609
+ },
1610
+ "allOf": [
1611
+ {
1612
+ "maxItems": 256
1613
+ }
1614
+ ]
1615
+ }
1616
+ },
1617
+ "required": ["hide", "protect"],
1618
+ "additionalProperties": false
1619
+ }
1620
+ },
1621
+ "required": ["id", "name", "overrides"],
1622
+ "additionalProperties": false
1623
+ },
1624
+ "allOf": [
1625
+ {
1626
+ "maxItems": 64
1627
+ }
1628
+ ]
1629
+ },
1630
+ "visibility": {
1631
+ "type": "object",
1632
+ "properties": {
1633
+ "hide": {
1634
+ "type": "array",
1635
+ "items": {
1636
+ "type": "object",
1637
+ "properties": {
1638
+ "locator": {
1639
+ "anyOf": [
1640
+ {
1641
+ "type": "object",
1642
+ "properties": {
1643
+ "kind": {
1644
+ "type": "string",
1645
+ "enum": ["actor_path"]
1646
+ },
1647
+ "actorPath": {
1648
+ "type": "string",
1649
+ "allOf": [
1650
+ {
1651
+ "pattern": "^\\/Game\\/"
1652
+ },
1653
+ {
1654
+ "maxLength": 4096
1655
+ }
1656
+ ]
1657
+ }
1658
+ },
1659
+ "required": ["kind", "actorPath"],
1660
+ "additionalProperties": false
1661
+ },
1662
+ {
1663
+ "type": "object",
1664
+ "properties": {
1665
+ "kind": {
1666
+ "type": "string",
1667
+ "enum": ["actor_guid"]
1668
+ },
1669
+ "actorGuid": {
1670
+ "type": "string",
1671
+ "allOf": [
1672
+ {
1673
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
1674
+ }
1675
+ ]
1676
+ },
1677
+ "lastKnownActorPath": {
1678
+ "type": "string",
1679
+ "allOf": [
1680
+ {
1681
+ "maxLength": 4096
1682
+ }
1683
+ ]
1684
+ }
1685
+ },
1686
+ "required": [
1687
+ "kind",
1688
+ "actorGuid",
1689
+ "lastKnownActorPath"
1690
+ ],
1691
+ "additionalProperties": false
1692
+ }
1693
+ ]
1694
+ },
1695
+ "label": {
1696
+ "type": "string",
1697
+ "allOf": [
1698
+ {
1699
+ "maxLength": 256
1700
+ }
1701
+ ]
1702
+ }
1703
+ },
1704
+ "required": ["locator", "label"],
1705
+ "additionalProperties": false
1706
+ },
1707
+ "allOf": [
1708
+ {
1709
+ "maxItems": 256
1710
+ }
1711
+ ]
1712
+ },
1713
+ "protect": {
1714
+ "type": "array",
1715
+ "items": {
1716
+ "type": "object",
1717
+ "properties": {
1718
+ "locator": {
1719
+ "anyOf": [
1720
+ {
1721
+ "type": "object",
1722
+ "properties": {
1723
+ "kind": {
1724
+ "type": "string",
1725
+ "enum": ["actor_path"]
1726
+ },
1727
+ "actorPath": {
1728
+ "type": "string",
1729
+ "allOf": [
1730
+ {
1731
+ "pattern": "^\\/Game\\/"
1732
+ },
1733
+ {
1734
+ "maxLength": 4096
1735
+ }
1736
+ ]
1737
+ }
1738
+ },
1739
+ "required": ["kind", "actorPath"],
1740
+ "additionalProperties": false
1741
+ },
1742
+ {
1743
+ "type": "object",
1744
+ "properties": {
1745
+ "kind": {
1746
+ "type": "string",
1747
+ "enum": ["actor_guid"]
1748
+ },
1749
+ "actorGuid": {
1750
+ "type": "string",
1751
+ "allOf": [
1752
+ {
1753
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
1754
+ }
1755
+ ]
1756
+ },
1757
+ "lastKnownActorPath": {
1758
+ "type": "string",
1759
+ "allOf": [
1760
+ {
1761
+ "maxLength": 4096
1762
+ }
1763
+ ]
1764
+ }
1765
+ },
1766
+ "required": [
1767
+ "kind",
1768
+ "actorGuid",
1769
+ "lastKnownActorPath"
1770
+ ],
1771
+ "additionalProperties": false
1772
+ }
1773
+ ]
1774
+ },
1775
+ "label": {
1776
+ "type": "string",
1777
+ "allOf": [
1778
+ {
1779
+ "maxLength": 256
1780
+ }
1781
+ ]
1782
+ }
1783
+ },
1784
+ "required": ["locator", "label"],
1785
+ "additionalProperties": false
1786
+ },
1787
+ "allOf": [
1788
+ {
1789
+ "maxItems": 256
1790
+ }
1791
+ ]
1792
+ }
1793
+ },
1794
+ "required": ["hide", "protect"],
1795
+ "additionalProperties": false
1796
+ },
1797
+ "output": {
1798
+ "type": "string",
1799
+ "enum": ["natural_only", "authored_only", "natural_and_authored"]
1800
+ },
1801
+ "renderPolicy": {
1802
+ "type": "object",
1803
+ "properties": {
1804
+ "visibility": {
1805
+ "type": "object",
1806
+ "properties": {
1807
+ "hide": {
1808
+ "type": "array",
1809
+ "items": {
1810
+ "type": "object",
1811
+ "properties": {
1812
+ "locator": {
1813
+ "anyOf": [
1814
+ {
1815
+ "type": "object",
1816
+ "properties": {
1817
+ "kind": {
1818
+ "type": "string",
1819
+ "enum": ["actor_path"]
1820
+ },
1821
+ "actorPath": {
1822
+ "type": "string",
1823
+ "allOf": [
1824
+ {
1825
+ "pattern": "^\\/Game\\/"
1826
+ },
1827
+ {
1828
+ "maxLength": 4096
1829
+ }
1830
+ ]
1831
+ }
1832
+ },
1833
+ "required": ["kind", "actorPath"],
1834
+ "additionalProperties": false
1835
+ },
1836
+ {
1837
+ "type": "object",
1838
+ "properties": {
1839
+ "kind": {
1840
+ "type": "string",
1841
+ "enum": ["actor_guid"]
1842
+ },
1843
+ "actorGuid": {
1844
+ "type": "string",
1845
+ "allOf": [
1846
+ {
1847
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
1848
+ }
1849
+ ]
1850
+ },
1851
+ "lastKnownActorPath": {
1852
+ "type": "string",
1853
+ "allOf": [
1854
+ {
1855
+ "maxLength": 4096
1856
+ }
1857
+ ]
1858
+ }
1859
+ },
1860
+ "required": [
1861
+ "kind",
1862
+ "actorGuid",
1863
+ "lastKnownActorPath"
1864
+ ],
1865
+ "additionalProperties": false
1866
+ }
1867
+ ]
1868
+ },
1869
+ "label": {
1870
+ "type": "string",
1871
+ "allOf": [
1872
+ {
1873
+ "maxLength": 256
1874
+ }
1875
+ ]
1876
+ }
1877
+ },
1878
+ "required": ["locator", "label"],
1879
+ "additionalProperties": false
1880
+ },
1881
+ "allOf": [
1882
+ {
1883
+ "maxItems": 256
1884
+ }
1885
+ ]
1886
+ },
1887
+ "protect": {
1888
+ "type": "array",
1889
+ "items": {
1890
+ "type": "object",
1891
+ "properties": {
1892
+ "locator": {
1893
+ "anyOf": [
1894
+ {
1895
+ "type": "object",
1896
+ "properties": {
1897
+ "kind": {
1898
+ "type": "string",
1899
+ "enum": ["actor_path"]
1900
+ },
1901
+ "actorPath": {
1902
+ "type": "string",
1903
+ "allOf": [
1904
+ {
1905
+ "pattern": "^\\/Game\\/"
1906
+ },
1907
+ {
1908
+ "maxLength": 4096
1909
+ }
1910
+ ]
1911
+ }
1912
+ },
1913
+ "required": ["kind", "actorPath"],
1914
+ "additionalProperties": false
1915
+ },
1916
+ {
1917
+ "type": "object",
1918
+ "properties": {
1919
+ "kind": {
1920
+ "type": "string",
1921
+ "enum": ["actor_guid"]
1922
+ },
1923
+ "actorGuid": {
1924
+ "type": "string",
1925
+ "allOf": [
1926
+ {
1927
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
1928
+ }
1929
+ ]
1930
+ },
1931
+ "lastKnownActorPath": {
1932
+ "type": "string",
1933
+ "allOf": [
1934
+ {
1935
+ "maxLength": 4096
1936
+ }
1937
+ ]
1938
+ }
1939
+ },
1940
+ "required": [
1941
+ "kind",
1942
+ "actorGuid",
1943
+ "lastKnownActorPath"
1944
+ ],
1945
+ "additionalProperties": false
1946
+ }
1947
+ ]
1948
+ },
1949
+ "label": {
1950
+ "type": "string",
1951
+ "allOf": [
1952
+ {
1953
+ "maxLength": 256
1954
+ }
1955
+ ]
1956
+ }
1957
+ },
1958
+ "required": ["locator", "label"],
1959
+ "additionalProperties": false
1960
+ },
1961
+ "allOf": [
1962
+ {
1963
+ "maxItems": 256
1964
+ }
1965
+ ]
1966
+ }
1967
+ },
1968
+ "required": ["hide", "protect"],
1969
+ "additionalProperties": false
1970
+ },
1971
+ "renderer": {
1972
+ "anyOf": [
1973
+ {
1974
+ "type": "object",
1975
+ "properties": {
1976
+ "kind": {
1977
+ "type": "string",
1978
+ "enum": ["editor_viewport"]
1979
+ },
1980
+ "strategy": {
1981
+ "type": "string",
1982
+ "enum": ["high_resolution_screenshot"]
1983
+ },
1984
+ "profile": {
1985
+ "type": "string",
1986
+ "enum": ["lit", "observation"]
1987
+ },
1988
+ "vignette": {
1989
+ "type": "string",
1990
+ "enum": ["project", "disabled"]
1991
+ },
1992
+ "fog": {
1993
+ "type": "boolean"
1994
+ },
1995
+ "volumetricFog": {
1996
+ "type": "boolean"
1997
+ },
1998
+ "editorPreviews": {
1999
+ "type": "boolean"
2000
+ }
2001
+ },
2002
+ "required": [
2003
+ "kind",
2004
+ "strategy",
2005
+ "profile",
2006
+ "vignette",
2007
+ "fog",
2008
+ "volumetricFog"
2009
+ ],
2010
+ "additionalProperties": false
2011
+ },
2012
+ {
2013
+ "type": "object",
2014
+ "properties": {
2015
+ "kind": {
2016
+ "type": "string",
2017
+ "enum": ["scene_capture"]
2018
+ },
2019
+ "profile": {
2020
+ "type": "string",
2021
+ "enum": [
2022
+ "full_fidelity",
2023
+ "seam_stable",
2024
+ "scene_capture_defaults",
2025
+ "observation"
2026
+ ]
2027
+ },
2028
+ "lodDistanceScale": {
2029
+ "type": "number",
2030
+ "allOf": [
2031
+ {
2032
+ "minimum": 0.1,
2033
+ "maximum": 100
2034
+ }
2035
+ ]
2036
+ },
2037
+ "fog": {
2038
+ "type": "boolean"
2039
+ },
2040
+ "volumetricFog": {
2041
+ "type": "boolean"
2042
+ },
2043
+ "editorPreviews": {
2044
+ "type": "boolean"
2045
+ }
2046
+ },
2047
+ "required": [
2048
+ "kind",
2049
+ "profile",
2050
+ "lodDistanceScale",
2051
+ "fog",
2052
+ "volumetricFog"
2053
+ ],
2054
+ "additionalProperties": false
2055
+ }
2056
+ ]
2057
+ },
2058
+ "exposure": {
2059
+ "anyOf": [
2060
+ {
2061
+ "type": "object",
2062
+ "properties": {
2063
+ "mode": {
2064
+ "type": "string",
2065
+ "enum": ["project_auto"]
2066
+ }
2067
+ },
2068
+ "required": ["mode"],
2069
+ "additionalProperties": false
2070
+ },
2071
+ {
2072
+ "type": "object",
2073
+ "properties": {
2074
+ "mode": {
2075
+ "type": "string",
2076
+ "enum": ["fixed_ev100"]
2077
+ },
2078
+ "ev100": {
2079
+ "type": "number",
2080
+ "allOf": [
2081
+ {
2082
+ "minimum": -20,
2083
+ "maximum": 30
2084
+ }
2085
+ ]
2086
+ },
2087
+ "compensation": {
2088
+ "type": "string",
2089
+ "enum": ["project"]
2090
+ }
2091
+ },
2092
+ "required": ["mode", "ev100", "compensation"],
2093
+ "additionalProperties": false
2094
+ },
2095
+ {
2096
+ "type": "object",
2097
+ "properties": {
2098
+ "mode": {
2099
+ "type": "string",
2100
+ "enum": ["meter_once"]
2101
+ },
2102
+ "referenceCamera": {
2103
+ "type": "object",
2104
+ "properties": {
2105
+ "location": {
2106
+ "type": "object",
2107
+ "properties": {
2108
+ "x": {
2109
+ "type": "number"
2110
+ },
2111
+ "y": {
2112
+ "type": "number"
2113
+ },
2114
+ "z": {
2115
+ "type": "number"
2116
+ }
2117
+ },
2118
+ "required": ["x", "y", "z"],
2119
+ "additionalProperties": false
2120
+ },
2121
+ "rotation": {
2122
+ "type": "object",
2123
+ "properties": {
2124
+ "pitch": {
2125
+ "type": "number"
2126
+ },
2127
+ "roll": {
2128
+ "type": "number"
2129
+ },
2130
+ "yaw": {
2131
+ "type": "number"
2132
+ }
2133
+ },
2134
+ "required": ["pitch", "roll", "yaw"],
2135
+ "additionalProperties": false
2136
+ },
2137
+ "projection": {
2138
+ "anyOf": [
2139
+ {
2140
+ "type": "object",
2141
+ "properties": {
2142
+ "kind": {
2143
+ "type": "string",
2144
+ "enum": ["perspective"]
2145
+ },
2146
+ "horizontalFieldOfView": {
2147
+ "type": "number",
2148
+ "allOf": [
2149
+ {
2150
+ "minimum": 5,
2151
+ "maximum": 170
2152
+ }
2153
+ ]
2154
+ }
2155
+ },
2156
+ "required": [
2157
+ "kind",
2158
+ "horizontalFieldOfView"
2159
+ ],
2160
+ "additionalProperties": false
2161
+ },
2162
+ {
2163
+ "type": "object",
2164
+ "properties": {
2165
+ "kind": {
2166
+ "type": "string",
2167
+ "enum": ["orthographic"]
2168
+ },
2169
+ "width": {
2170
+ "type": "number",
2171
+ "allOf": [
2172
+ {
2173
+ "exclusiveMinimum": 0
2174
+ },
2175
+ {
2176
+ "maximum": 1000000000
2177
+ }
2178
+ ]
2179
+ }
2180
+ },
2181
+ "required": ["kind", "width"],
2182
+ "additionalProperties": false
2183
+ }
2184
+ ]
2185
+ }
2186
+ },
2187
+ "required": ["location", "rotation", "projection"],
2188
+ "additionalProperties": false
2189
+ },
2190
+ "referenceSize": {
2191
+ "type": "object",
2192
+ "properties": {
2193
+ "width": {
2194
+ "type": "integer",
2195
+ "allOf": [
2196
+ {
2197
+ "minimum": 16,
2198
+ "maximum": 16384
2199
+ }
2200
+ ]
2201
+ },
2202
+ "height": {
2203
+ "type": "integer",
2204
+ "allOf": [
2205
+ {
2206
+ "minimum": 16,
2207
+ "maximum": 16384
2208
+ }
2209
+ ]
2210
+ }
2211
+ },
2212
+ "required": ["width", "height"],
2213
+ "additionalProperties": false
2214
+ },
2215
+ "minimumFrames": {
2216
+ "type": "integer",
2217
+ "allOf": [
2218
+ {
2219
+ "minimum": 1,
2220
+ "maximum": 4096
2221
+ }
2222
+ ]
2223
+ }
2224
+ },
2225
+ "required": [
2226
+ "mode",
2227
+ "referenceCamera",
2228
+ "referenceSize",
2229
+ "minimumFrames"
2230
+ ],
2231
+ "additionalProperties": false
2232
+ }
2233
+ ]
2234
+ },
2235
+ "settling": {
2236
+ "type": "object",
2237
+ "properties": {
2238
+ "minimumFrames": {
2239
+ "type": "integer",
2240
+ "allOf": [
2241
+ {
2242
+ "minimum": 1,
2243
+ "maximum": 4096
2244
+ }
2245
+ ]
2246
+ },
2247
+ "timeoutMs": {
2248
+ "type": "integer",
2249
+ "allOf": [
2250
+ {
2251
+ "minimum": 1000,
2252
+ "maximum": 900000
2253
+ }
2254
+ ]
2255
+ },
2256
+ "initialView": {
2257
+ "type": "object",
2258
+ "properties": {
2259
+ "camera": {
2260
+ "type": "object",
2261
+ "properties": {
2262
+ "location": {
2263
+ "type": "object",
2264
+ "properties": {
2265
+ "x": {
2266
+ "type": "number"
2267
+ },
2268
+ "y": {
2269
+ "type": "number"
2270
+ },
2271
+ "z": {
2272
+ "type": "number"
2273
+ }
2274
+ },
2275
+ "required": ["x", "y", "z"],
2276
+ "additionalProperties": false
2277
+ },
2278
+ "rotation": {
2279
+ "type": "object",
2280
+ "properties": {
2281
+ "pitch": {
2282
+ "type": "number"
2283
+ },
2284
+ "roll": {
2285
+ "type": "number"
2286
+ },
2287
+ "yaw": {
2288
+ "type": "number"
2289
+ }
2290
+ },
2291
+ "required": ["pitch", "roll", "yaw"],
2292
+ "additionalProperties": false
2293
+ },
2294
+ "projection": {
2295
+ "anyOf": [
2296
+ {
2297
+ "type": "object",
2298
+ "properties": {
2299
+ "kind": {
2300
+ "type": "string",
2301
+ "enum": ["perspective"]
2302
+ },
2303
+ "horizontalFieldOfView": {
2304
+ "type": "number",
2305
+ "allOf": [
2306
+ {
2307
+ "minimum": 5,
2308
+ "maximum": 170
2309
+ }
2310
+ ]
2311
+ }
2312
+ },
2313
+ "required": [
2314
+ "kind",
2315
+ "horizontalFieldOfView"
2316
+ ],
2317
+ "additionalProperties": false
2318
+ },
2319
+ {
2320
+ "type": "object",
2321
+ "properties": {
2322
+ "kind": {
2323
+ "type": "string",
2324
+ "enum": ["orthographic"]
2325
+ },
2326
+ "width": {
2327
+ "type": "number",
2328
+ "allOf": [
2329
+ {
2330
+ "exclusiveMinimum": 0
2331
+ },
2332
+ {
2333
+ "maximum": 1000000000
2334
+ }
2335
+ ]
2336
+ }
2337
+ },
2338
+ "required": ["kind", "width"],
2339
+ "additionalProperties": false
2340
+ }
2341
+ ]
2342
+ }
2343
+ },
2344
+ "required": ["location", "rotation", "projection"],
2345
+ "additionalProperties": false
2346
+ },
2347
+ "size": {
2348
+ "type": "object",
2349
+ "properties": {
2350
+ "width": {
2351
+ "type": "integer",
2352
+ "allOf": [
2353
+ {
2354
+ "minimum": 16,
2355
+ "maximum": 16384
2356
+ }
2357
+ ]
2358
+ },
2359
+ "height": {
2360
+ "type": "integer",
2361
+ "allOf": [
2362
+ {
2363
+ "minimum": 16,
2364
+ "maximum": 16384
2365
+ }
2366
+ ]
2367
+ }
2368
+ },
2369
+ "required": ["width", "height"],
2370
+ "additionalProperties": false
2371
+ },
2372
+ "minimumFrames": {
2373
+ "type": "integer",
2374
+ "allOf": [
2375
+ {
2376
+ "minimum": 1,
2377
+ "maximum": 4096
2378
+ }
2379
+ ]
2380
+ }
2381
+ },
2382
+ "required": ["camera", "size", "minimumFrames"],
2383
+ "additionalProperties": false
2384
+ }
2385
+ },
2386
+ "required": ["minimumFrames", "timeoutMs"],
2387
+ "additionalProperties": false
2388
+ },
2389
+ "time": {
2390
+ "type": "string",
2391
+ "enum": ["live_editor", "freeze_materials_and_ticks"]
2392
+ },
2393
+ "preparation": {
2394
+ "type": "object",
2395
+ "properties": {
2396
+ "geometry": {
2397
+ "anyOf": [
2398
+ {
2399
+ "type": "object",
2400
+ "properties": {
2401
+ "mode": {
2402
+ "type": "string",
2403
+ "enum": ["preserve_loading"]
2404
+ }
2405
+ },
2406
+ "required": ["mode"],
2407
+ "additionalProperties": false
2408
+ },
2409
+ {
2410
+ "type": "object",
2411
+ "properties": {
2412
+ "mode": {
2413
+ "type": "string",
2414
+ "enum": ["camera_regions"]
2415
+ },
2416
+ "maximumRegions": {
2417
+ "type": "integer",
2418
+ "allOf": [
2419
+ {
2420
+ "minimum": 1,
2421
+ "maximum": 64
2422
+ }
2423
+ ]
2424
+ },
2425
+ "extent": {
2426
+ "type": "object",
2427
+ "properties": {
2428
+ "x": {
2429
+ "type": "number",
2430
+ "allOf": [
2431
+ {
2432
+ "minimum": 0,
2433
+ "maximum": 10000000
2434
+ }
2435
+ ]
2436
+ },
2437
+ "y": {
2438
+ "type": "number",
2439
+ "allOf": [
2440
+ {
2441
+ "minimum": 0,
2442
+ "maximum": 10000000
2443
+ }
2444
+ ]
2445
+ },
2446
+ "z": {
2447
+ "type": "number",
2448
+ "allOf": [
2449
+ {
2450
+ "minimum": 0,
2451
+ "maximum": 10000000
2452
+ }
2453
+ ]
2454
+ }
2455
+ },
2456
+ "required": ["x", "y", "z"],
2457
+ "additionalProperties": false
2458
+ }
2459
+ },
2460
+ "required": ["mode", "maximumRegions", "extent"],
2461
+ "additionalProperties": false
2462
+ }
2463
+ ]
2464
+ },
2465
+ "dataLayers": {
2466
+ "type": "array",
2467
+ "items": {
2468
+ "type": "object",
2469
+ "properties": {
2470
+ "assetPath": {
2471
+ "type": "string",
2472
+ "allOf": [
2473
+ {
2474
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
2475
+ },
2476
+ {
2477
+ "maxLength": 1024
2478
+ }
2479
+ ]
2480
+ },
2481
+ "loaded": {
2482
+ "type": "boolean"
2483
+ },
2484
+ "visible": {
2485
+ "type": "boolean"
2486
+ }
2487
+ },
2488
+ "required": ["assetPath", "loaded", "visible"],
2489
+ "additionalProperties": false
2490
+ },
2491
+ "allOf": [
2492
+ {
2493
+ "maxItems": 64
2494
+ }
2495
+ ]
2496
+ }
2497
+ },
2498
+ "required": ["geometry", "dataLayers"],
2499
+ "additionalProperties": false
2500
+ }
2501
+ },
2502
+ "required": ["renderer", "exposure", "settling", "time", "preparation"],
2503
+ "additionalProperties": false
2504
+ }
2505
+ },
2506
+ "required": [
2507
+ "version",
2508
+ "id",
2509
+ "revision",
2510
+ "projectName",
2511
+ "mapPath",
2512
+ "subject",
2513
+ "bounds",
2514
+ "settings",
2515
+ "cameras",
2516
+ "retiredCameraIds",
2517
+ "captureProfileId",
2518
+ "visibilityPolicyId"
2519
+ ],
2520
+ "additionalProperties": false
2521
+ },
2522
+ "activeCameraId": {
2523
+ "type": "string",
2524
+ "allOf": [
2525
+ {
2526
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
2527
+ }
2528
+ ]
2529
+ },
2530
+ "cameras": {
2531
+ "type": "array",
2532
+ "items": {
2533
+ "type": "object",
2534
+ "properties": {
2535
+ "id": {
2536
+ "type": "string",
2537
+ "allOf": [
2538
+ {
2539
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
2540
+ }
2541
+ ]
2542
+ },
2543
+ "pose": {
2544
+ "type": "object",
2545
+ "properties": {
2546
+ "aspectRatio": {
2547
+ "type": "string",
2548
+ "enum": ["16:9"]
2549
+ },
2550
+ "fieldOfViewDegrees": {
2551
+ "type": "number",
2552
+ "allOf": [
2553
+ {
2554
+ "minimum": 5,
2555
+ "maximum": 170
2556
+ }
2557
+ ]
2558
+ },
2559
+ "location": {
2560
+ "type": "object",
2561
+ "properties": {
2562
+ "x": {
2563
+ "type": "number"
2564
+ },
2565
+ "y": {
2566
+ "type": "number"
2567
+ },
2568
+ "z": {
2569
+ "type": "number"
2570
+ }
2571
+ },
2572
+ "required": ["x", "y", "z"],
2573
+ "additionalProperties": false
2574
+ },
2575
+ "projection": {
2576
+ "type": "string",
2577
+ "enum": ["perspective"]
2578
+ },
2579
+ "rotation": {
2580
+ "type": "object",
2581
+ "properties": {
2582
+ "pitch": {
2583
+ "type": "number"
2584
+ },
2585
+ "roll": {
2586
+ "type": "number"
2587
+ },
2588
+ "yaw": {
2589
+ "type": "number"
2590
+ }
2591
+ },
2592
+ "required": ["pitch", "roll", "yaw"],
2593
+ "additionalProperties": false
2594
+ }
2595
+ },
2596
+ "required": [
2597
+ "aspectRatio",
2598
+ "fieldOfViewDegrees",
2599
+ "location",
2600
+ "projection",
2601
+ "rotation"
2602
+ ],
2603
+ "additionalProperties": false
2604
+ },
2605
+ "visibility": {
2606
+ "type": "object",
2607
+ "properties": {
2608
+ "hide": {
2609
+ "type": "array",
2610
+ "items": {
2611
+ "type": "object",
2612
+ "properties": {
2613
+ "locator": {
2614
+ "anyOf": [
2615
+ {
2616
+ "type": "object",
2617
+ "properties": {
2618
+ "kind": {
2619
+ "type": "string",
2620
+ "enum": ["actor_path"]
2621
+ },
2622
+ "actorPath": {
2623
+ "type": "string",
2624
+ "allOf": [
2625
+ {
2626
+ "pattern": "^\\/Game\\/"
2627
+ },
2628
+ {
2629
+ "maxLength": 4096
2630
+ }
2631
+ ]
2632
+ }
2633
+ },
2634
+ "required": ["kind", "actorPath"],
2635
+ "additionalProperties": false
2636
+ },
2637
+ {
2638
+ "type": "object",
2639
+ "properties": {
2640
+ "kind": {
2641
+ "type": "string",
2642
+ "enum": ["actor_guid"]
2643
+ },
2644
+ "actorGuid": {
2645
+ "type": "string",
2646
+ "allOf": [
2647
+ {
2648
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
2649
+ }
2650
+ ]
2651
+ },
2652
+ "lastKnownActorPath": {
2653
+ "type": "string",
2654
+ "allOf": [
2655
+ {
2656
+ "maxLength": 4096
2657
+ }
2658
+ ]
2659
+ }
2660
+ },
2661
+ "required": [
2662
+ "kind",
2663
+ "actorGuid",
2664
+ "lastKnownActorPath"
2665
+ ],
2666
+ "additionalProperties": false
2667
+ }
2668
+ ]
2669
+ },
2670
+ "label": {
2671
+ "type": "string",
2672
+ "allOf": [
2673
+ {
2674
+ "maxLength": 256
2675
+ }
2676
+ ]
2677
+ }
2678
+ },
2679
+ "required": ["locator", "label"],
2680
+ "additionalProperties": false
2681
+ },
2682
+ "allOf": [
2683
+ {
2684
+ "maxItems": 256
2685
+ }
2686
+ ]
2687
+ },
2688
+ "protect": {
2689
+ "type": "array",
2690
+ "items": {
2691
+ "type": "object",
2692
+ "properties": {
2693
+ "locator": {
2694
+ "anyOf": [
2695
+ {
2696
+ "type": "object",
2697
+ "properties": {
2698
+ "kind": {
2699
+ "type": "string",
2700
+ "enum": ["actor_path"]
2701
+ },
2702
+ "actorPath": {
2703
+ "type": "string",
2704
+ "allOf": [
2705
+ {
2706
+ "pattern": "^\\/Game\\/"
2707
+ },
2708
+ {
2709
+ "maxLength": 4096
2710
+ }
2711
+ ]
2712
+ }
2713
+ },
2714
+ "required": ["kind", "actorPath"],
2715
+ "additionalProperties": false
2716
+ },
2717
+ {
2718
+ "type": "object",
2719
+ "properties": {
2720
+ "kind": {
2721
+ "type": "string",
2722
+ "enum": ["actor_guid"]
2723
+ },
2724
+ "actorGuid": {
2725
+ "type": "string",
2726
+ "allOf": [
2727
+ {
2728
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
2729
+ }
2730
+ ]
2731
+ },
2732
+ "lastKnownActorPath": {
2733
+ "type": "string",
2734
+ "allOf": [
2735
+ {
2736
+ "maxLength": 4096
2737
+ }
2738
+ ]
2739
+ }
2740
+ },
2741
+ "required": [
2742
+ "kind",
2743
+ "actorGuid",
2744
+ "lastKnownActorPath"
2745
+ ],
2746
+ "additionalProperties": false
2747
+ }
2748
+ ]
2749
+ },
2750
+ "label": {
2751
+ "type": "string",
2752
+ "allOf": [
2753
+ {
2754
+ "maxLength": 256
2755
+ }
2756
+ ]
2757
+ }
2758
+ },
2759
+ "required": ["locator", "label"],
2760
+ "additionalProperties": false
2761
+ },
2762
+ "allOf": [
2763
+ {
2764
+ "maxItems": 256
2765
+ }
2766
+ ]
2767
+ }
2768
+ },
2769
+ "required": ["hide", "protect"],
2770
+ "additionalProperties": false
2771
+ },
2772
+ "approved": {
2773
+ "type": "boolean"
2774
+ }
2775
+ },
2776
+ "required": ["id", "pose", "visibility", "approved"],
2777
+ "additionalProperties": false
2778
+ }
2779
+ },
2780
+ "retiredViews": {
2781
+ "type": "array",
2782
+ "items": {
2783
+ "type": "object",
2784
+ "properties": {
2785
+ "id": {
2786
+ "type": "string",
2787
+ "allOf": [
2788
+ {
2789
+ "minLength": 1
2790
+ },
2791
+ {
2792
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
2793
+ }
2794
+ ]
2795
+ },
2796
+ "name": {
2797
+ "type": "string"
2798
+ }
2799
+ },
2800
+ "required": ["id", "name"],
2801
+ "additionalProperties": false
2802
+ }
2803
+ },
2804
+ "proposal": {
2805
+ "type": "object",
2806
+ "properties": {
2807
+ "expectedRevision": {
2808
+ "type": "integer"
2809
+ },
2810
+ "cameras": {
2811
+ "type": "array",
2812
+ "items": {
2813
+ "type": "object",
2814
+ "properties": {
2815
+ "id": {
2816
+ "type": "string",
2817
+ "allOf": [
2818
+ {
2819
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
2820
+ }
2821
+ ]
2822
+ },
2823
+ "displayName": {
2824
+ "type": "string",
2825
+ "allOf": [
2826
+ {
2827
+ "minLength": 1
2828
+ }
2829
+ ]
2830
+ },
2831
+ "yawDegrees": {
2832
+ "type": "number"
2833
+ },
2834
+ "overrides": {
2835
+ "type": "object",
2836
+ "properties": {
2837
+ "fieldOfViewDegrees": {
2838
+ "type": "number",
2839
+ "allOf": [
2840
+ {
2841
+ "minimum": 5,
2842
+ "maximum": 170
2843
+ }
2844
+ ]
2845
+ },
2846
+ "distanceScale": {
2847
+ "type": "number",
2848
+ "allOf": [
2849
+ {
2850
+ "minimum": 0.01,
2851
+ "maximum": 100
2852
+ }
2853
+ ]
2854
+ },
2855
+ "heightOffset": {
2856
+ "type": "number"
2857
+ },
2858
+ "margin": {
2859
+ "type": "number",
2860
+ "allOf": [
2861
+ {
2862
+ "minimum": 0,
2863
+ "maximum": 0.45
2864
+ }
2865
+ ]
2866
+ },
2867
+ "elevationDegrees": {
2868
+ "type": "number",
2869
+ "allOf": [
2870
+ {
2871
+ "minimum": -89,
2872
+ "maximum": 89
2873
+ }
2874
+ ]
2875
+ },
2876
+ "yawOffset": {
2877
+ "type": "number"
2878
+ },
2879
+ "aimOffset": {
2880
+ "type": "object",
2881
+ "properties": {
2882
+ "x": {
2883
+ "type": "number"
2884
+ },
2885
+ "y": {
2886
+ "type": "number"
2887
+ },
2888
+ "z": {
2889
+ "type": "number"
2890
+ }
2891
+ },
2892
+ "required": ["x", "y", "z"],
2893
+ "additionalProperties": false
2894
+ }
2895
+ },
2896
+ "additionalProperties": false
2897
+ },
2898
+ "manualPose": {
2899
+ "type": "object",
2900
+ "properties": {
2901
+ "aspectRatio": {
2902
+ "type": "string",
2903
+ "enum": ["16:9"]
2904
+ },
2905
+ "fieldOfViewDegrees": {
2906
+ "type": "number",
2907
+ "allOf": [
2908
+ {
2909
+ "minimum": 5,
2910
+ "maximum": 170
2911
+ }
2912
+ ]
2913
+ },
2914
+ "location": {
2915
+ "type": "object",
2916
+ "properties": {
2917
+ "x": {
2918
+ "type": "number"
2919
+ },
2920
+ "y": {
2921
+ "type": "number"
2922
+ },
2923
+ "z": {
2924
+ "type": "number"
2925
+ }
2926
+ },
2927
+ "required": ["x", "y", "z"],
2928
+ "additionalProperties": false
2929
+ },
2930
+ "projection": {
2931
+ "type": "string",
2932
+ "enum": ["perspective"]
2933
+ },
2934
+ "rotation": {
2935
+ "type": "object",
2936
+ "properties": {
2937
+ "pitch": {
2938
+ "type": "number"
2939
+ },
2940
+ "roll": {
2941
+ "type": "number"
2942
+ },
2943
+ "yaw": {
2944
+ "type": "number"
2945
+ }
2946
+ },
2947
+ "required": ["pitch", "roll", "yaw"],
2948
+ "additionalProperties": false
2949
+ }
2950
+ },
2951
+ "required": [
2952
+ "aspectRatio",
2953
+ "fieldOfViewDegrees",
2954
+ "location",
2955
+ "projection",
2956
+ "rotation"
2957
+ ],
2958
+ "additionalProperties": false
2959
+ },
2960
+ "viewId": {
2961
+ "type": "string",
2962
+ "allOf": [
2963
+ {
2964
+ "minLength": 1
2965
+ },
2966
+ {
2967
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
2968
+ }
2969
+ ]
2970
+ },
2971
+ "groupId": {
2972
+ "type": "string",
2973
+ "allOf": [
2974
+ {
2975
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
2976
+ }
2977
+ ]
2978
+ },
2979
+ "visibility": {
2980
+ "type": "object",
2981
+ "properties": {
2982
+ "hide": {
2983
+ "type": "array",
2984
+ "items": {
2985
+ "type": "object",
2986
+ "properties": {
2987
+ "locator": {
2988
+ "anyOf": [
2989
+ {
2990
+ "type": "object",
2991
+ "properties": {
2992
+ "kind": {
2993
+ "type": "string",
2994
+ "enum": ["actor_path"]
2995
+ },
2996
+ "actorPath": {
2997
+ "type": "string",
2998
+ "allOf": [
2999
+ {
3000
+ "pattern": "^\\/Game\\/"
3001
+ },
3002
+ {
3003
+ "maxLength": 4096
3004
+ }
3005
+ ]
3006
+ }
3007
+ },
3008
+ "required": ["kind", "actorPath"],
3009
+ "additionalProperties": false
3010
+ },
3011
+ {
3012
+ "type": "object",
3013
+ "properties": {
3014
+ "kind": {
3015
+ "type": "string",
3016
+ "enum": ["actor_guid"]
3017
+ },
3018
+ "actorGuid": {
3019
+ "type": "string",
3020
+ "allOf": [
3021
+ {
3022
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
3023
+ }
3024
+ ]
3025
+ },
3026
+ "lastKnownActorPath": {
3027
+ "type": "string",
3028
+ "allOf": [
3029
+ {
3030
+ "maxLength": 4096
3031
+ }
3032
+ ]
3033
+ }
3034
+ },
3035
+ "required": [
3036
+ "kind",
3037
+ "actorGuid",
3038
+ "lastKnownActorPath"
3039
+ ],
3040
+ "additionalProperties": false
3041
+ }
3042
+ ]
3043
+ },
3044
+ "label": {
3045
+ "type": "string",
3046
+ "allOf": [
3047
+ {
3048
+ "maxLength": 256
3049
+ }
3050
+ ]
3051
+ }
3052
+ },
3053
+ "required": ["locator", "label"],
3054
+ "additionalProperties": false
3055
+ },
3056
+ "allOf": [
3057
+ {
3058
+ "maxItems": 256
3059
+ }
3060
+ ]
3061
+ },
3062
+ "protect": {
3063
+ "type": "array",
3064
+ "items": {
3065
+ "type": "object",
3066
+ "properties": {
3067
+ "locator": {
3068
+ "anyOf": [
3069
+ {
3070
+ "type": "object",
3071
+ "properties": {
3072
+ "kind": {
3073
+ "type": "string",
3074
+ "enum": ["actor_path"]
3075
+ },
3076
+ "actorPath": {
3077
+ "type": "string",
3078
+ "allOf": [
3079
+ {
3080
+ "pattern": "^\\/Game\\/"
3081
+ },
3082
+ {
3083
+ "maxLength": 4096
3084
+ }
3085
+ ]
3086
+ }
3087
+ },
3088
+ "required": ["kind", "actorPath"],
3089
+ "additionalProperties": false
3090
+ },
3091
+ {
3092
+ "type": "object",
3093
+ "properties": {
3094
+ "kind": {
3095
+ "type": "string",
3096
+ "enum": ["actor_guid"]
3097
+ },
3098
+ "actorGuid": {
3099
+ "type": "string",
3100
+ "allOf": [
3101
+ {
3102
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
3103
+ }
3104
+ ]
3105
+ },
3106
+ "lastKnownActorPath": {
3107
+ "type": "string",
3108
+ "allOf": [
3109
+ {
3110
+ "maxLength": 4096
3111
+ }
3112
+ ]
3113
+ }
3114
+ },
3115
+ "required": [
3116
+ "kind",
3117
+ "actorGuid",
3118
+ "lastKnownActorPath"
3119
+ ],
3120
+ "additionalProperties": false
3121
+ }
3122
+ ]
3123
+ },
3124
+ "label": {
3125
+ "type": "string",
3126
+ "allOf": [
3127
+ {
3128
+ "maxLength": 256
3129
+ }
3130
+ ]
3131
+ }
3132
+ },
3133
+ "required": ["locator", "label"],
3134
+ "additionalProperties": false
3135
+ },
3136
+ "allOf": [
3137
+ {
3138
+ "maxItems": 256
3139
+ }
3140
+ ]
3141
+ }
3142
+ },
3143
+ "required": ["hide", "protect"],
3144
+ "additionalProperties": false
3145
+ }
3146
+ },
3147
+ "required": ["id", "displayName", "yawDegrees", "overrides", "viewId"],
3148
+ "additionalProperties": false
3149
+ },
3150
+ "allOf": [
3151
+ {
3152
+ "minItems": 1
3153
+ },
3154
+ {
3155
+ "maxItems": 256
3156
+ }
3157
+ ]
3158
+ },
3159
+ "customized": {
3160
+ "type": "array",
3161
+ "items": {
3162
+ "type": "string",
3163
+ "allOf": [
3164
+ {
3165
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3166
+ }
3167
+ ]
3168
+ }
3169
+ },
3170
+ "removed": {
3171
+ "type": "array",
3172
+ "items": {
3173
+ "type": "string",
3174
+ "allOf": [
3175
+ {
3176
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3177
+ }
3178
+ ]
3179
+ }
3180
+ },
3181
+ "added": {
3182
+ "type": "array",
3183
+ "items": {
3184
+ "type": "string",
3185
+ "allOf": [
3186
+ {
3187
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3188
+ }
3189
+ ]
3190
+ }
3191
+ },
3192
+ "recipe": {
3193
+ "type": "object",
3194
+ "properties": {
3195
+ "version": {
3196
+ "type": "number",
3197
+ "enum": [1]
3198
+ },
3199
+ "name": {
3200
+ "type": "string",
3201
+ "allOf": [
3202
+ {
3203
+ "minLength": 1
3204
+ }
3205
+ ]
3206
+ },
3207
+ "settings": {
3208
+ "type": "object",
3209
+ "properties": {
3210
+ "fieldOfViewDegrees": {
3211
+ "type": "number",
3212
+ "allOf": [
3213
+ {
3214
+ "minimum": 5,
3215
+ "maximum": 170
3216
+ }
3217
+ ]
3218
+ },
3219
+ "distanceScale": {
3220
+ "type": "number",
3221
+ "allOf": [
3222
+ {
3223
+ "minimum": 0.01,
3224
+ "maximum": 100
3225
+ }
3226
+ ]
3227
+ },
3228
+ "heightOffset": {
3229
+ "type": "number"
3230
+ },
3231
+ "margin": {
3232
+ "type": "number",
3233
+ "allOf": [
3234
+ {
3235
+ "minimum": 0,
3236
+ "maximum": 0.45
3237
+ }
3238
+ ]
3239
+ },
3240
+ "elevationDegrees": {
3241
+ "type": "number",
3242
+ "allOf": [
3243
+ {
3244
+ "minimum": -89,
3245
+ "maximum": 89
3246
+ }
3247
+ ]
3248
+ },
3249
+ "yawOffset": {
3250
+ "type": "number"
3251
+ },
3252
+ "aimOffset": {
3253
+ "type": "object",
3254
+ "properties": {
3255
+ "x": {
3256
+ "type": "number"
3257
+ },
3258
+ "y": {
3259
+ "type": "number"
3260
+ },
3261
+ "z": {
3262
+ "type": "number"
3263
+ }
3264
+ },
3265
+ "required": ["x", "y", "z"],
3266
+ "additionalProperties": false
3267
+ }
3268
+ },
3269
+ "required": [
3270
+ "fieldOfViewDegrees",
3271
+ "distanceScale",
3272
+ "heightOffset",
3273
+ "margin"
3274
+ ],
3275
+ "additionalProperties": false
3276
+ },
3277
+ "groups": {
3278
+ "type": "array",
3279
+ "items": {
3280
+ "type": "object",
3281
+ "properties": {
3282
+ "id": {
3283
+ "type": "string",
3284
+ "allOf": [
3285
+ {
3286
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3287
+ }
3288
+ ]
3289
+ },
3290
+ "name": {
3291
+ "type": "string",
3292
+ "allOf": [
3293
+ {
3294
+ "minLength": 1
3295
+ }
3296
+ ]
3297
+ },
3298
+ "overrides": {
3299
+ "type": "object",
3300
+ "properties": {
3301
+ "fieldOfViewDegrees": {
3302
+ "type": "number",
3303
+ "allOf": [
3304
+ {
3305
+ "minimum": 5,
3306
+ "maximum": 170
3307
+ }
3308
+ ]
3309
+ },
3310
+ "distanceScale": {
3311
+ "type": "number",
3312
+ "allOf": [
3313
+ {
3314
+ "minimum": 0.01,
3315
+ "maximum": 100
3316
+ }
3317
+ ]
3318
+ },
3319
+ "heightOffset": {
3320
+ "type": "number"
3321
+ },
3322
+ "margin": {
3323
+ "type": "number",
3324
+ "allOf": [
3325
+ {
3326
+ "minimum": 0,
3327
+ "maximum": 0.45
3328
+ }
3329
+ ]
3330
+ },
3331
+ "elevationDegrees": {
3332
+ "type": "number",
3333
+ "allOf": [
3334
+ {
3335
+ "minimum": -89,
3336
+ "maximum": 89
3337
+ }
3338
+ ]
3339
+ },
3340
+ "yawOffset": {
3341
+ "type": "number"
3342
+ },
3343
+ "aimOffset": {
3344
+ "type": "object",
3345
+ "properties": {
3346
+ "x": {
3347
+ "type": "number"
3348
+ },
3349
+ "y": {
3350
+ "type": "number"
3351
+ },
3352
+ "z": {
3353
+ "type": "number"
3354
+ }
3355
+ },
3356
+ "required": ["x", "y", "z"],
3357
+ "additionalProperties": false
3358
+ }
3359
+ },
3360
+ "additionalProperties": false
3361
+ }
3362
+ },
3363
+ "required": ["id", "name", "overrides"],
3364
+ "additionalProperties": false
3365
+ }
3366
+ },
3367
+ "cameras": {
3368
+ "type": "array",
3369
+ "items": {
3370
+ "type": "object",
3371
+ "properties": {
3372
+ "displayName": {
3373
+ "type": "string",
3374
+ "allOf": [
3375
+ {
3376
+ "minLength": 1
3377
+ }
3378
+ ]
3379
+ },
3380
+ "yawDegrees": {
3381
+ "type": "number"
3382
+ },
3383
+ "overrides": {
3384
+ "type": "object",
3385
+ "properties": {
3386
+ "fieldOfViewDegrees": {
3387
+ "type": "number",
3388
+ "allOf": [
3389
+ {
3390
+ "minimum": 5,
3391
+ "maximum": 170
3392
+ }
3393
+ ]
3394
+ },
3395
+ "distanceScale": {
3396
+ "type": "number",
3397
+ "allOf": [
3398
+ {
3399
+ "minimum": 0.01,
3400
+ "maximum": 100
3401
+ }
3402
+ ]
3403
+ },
3404
+ "heightOffset": {
3405
+ "type": "number"
3406
+ },
3407
+ "margin": {
3408
+ "type": "number",
3409
+ "allOf": [
3410
+ {
3411
+ "minimum": 0,
3412
+ "maximum": 0.45
3413
+ }
3414
+ ]
3415
+ },
3416
+ "elevationDegrees": {
3417
+ "type": "number",
3418
+ "allOf": [
3419
+ {
3420
+ "minimum": -89,
3421
+ "maximum": 89
3422
+ }
3423
+ ]
3424
+ },
3425
+ "yawOffset": {
3426
+ "type": "number"
3427
+ },
3428
+ "aimOffset": {
3429
+ "type": "object",
3430
+ "properties": {
3431
+ "x": {
3432
+ "type": "number"
3433
+ },
3434
+ "y": {
3435
+ "type": "number"
3436
+ },
3437
+ "z": {
3438
+ "type": "number"
3439
+ }
3440
+ },
3441
+ "required": ["x", "y", "z"],
3442
+ "additionalProperties": false
3443
+ }
3444
+ },
3445
+ "additionalProperties": false
3446
+ },
3447
+ "groupId": {
3448
+ "type": "string",
3449
+ "allOf": [
3450
+ {
3451
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3452
+ }
3453
+ ]
3454
+ },
3455
+ "relativePose": {
3456
+ "type": "object",
3457
+ "properties": {
3458
+ "aspectRatio": {
3459
+ "type": "string",
3460
+ "enum": ["16:9"]
3461
+ },
3462
+ "fieldOfViewDegrees": {
3463
+ "type": "number",
3464
+ "allOf": [
3465
+ {
3466
+ "minimum": 5,
3467
+ "maximum": 170
3468
+ }
3469
+ ]
3470
+ },
3471
+ "location": {
3472
+ "type": "object",
3473
+ "properties": {
3474
+ "x": {
3475
+ "type": "number"
3476
+ },
3477
+ "y": {
3478
+ "type": "number"
3479
+ },
3480
+ "z": {
3481
+ "type": "number"
3482
+ }
3483
+ },
3484
+ "required": ["x", "y", "z"],
3485
+ "additionalProperties": false
3486
+ },
3487
+ "projection": {
3488
+ "type": "string",
3489
+ "enum": ["perspective"]
3490
+ },
3491
+ "rotation": {
3492
+ "type": "object",
3493
+ "properties": {
3494
+ "pitch": {
3495
+ "type": "number"
3496
+ },
3497
+ "roll": {
3498
+ "type": "number"
3499
+ },
3500
+ "yaw": {
3501
+ "type": "number"
3502
+ }
3503
+ },
3504
+ "required": ["pitch", "roll", "yaw"],
3505
+ "additionalProperties": false
3506
+ }
3507
+ },
3508
+ "required": [
3509
+ "aspectRatio",
3510
+ "fieldOfViewDegrees",
3511
+ "location",
3512
+ "projection",
3513
+ "rotation"
3514
+ ],
3515
+ "additionalProperties": false
3516
+ }
3517
+ },
3518
+ "required": ["displayName", "yawDegrees", "overrides"],
3519
+ "additionalProperties": false
3520
+ },
3521
+ "allOf": [
3522
+ {
3523
+ "minItems": 1
3524
+ },
3525
+ {
3526
+ "maxItems": 256
3527
+ }
3528
+ ]
3529
+ }
3530
+ },
3531
+ "required": ["version", "name", "settings", "groups", "cameras"],
3532
+ "additionalProperties": false
3533
+ }
3534
+ },
3535
+ "required": ["expectedRevision", "cameras", "customized", "removed", "added"],
3536
+ "additionalProperties": false
3537
+ },
3538
+ "notice": {
3539
+ "type": "string"
3540
+ },
3541
+ "draftPath": {
3542
+ "type": "string"
3543
+ },
3544
+ "approvalPath": {
3545
+ "type": "string"
3546
+ }
3547
+ },
3548
+ "required": [
3549
+ "renderPolicy",
3550
+ "arrangement",
3551
+ "activeCameraId",
3552
+ "cameras",
3553
+ "retiredViews",
3554
+ "notice",
3555
+ "draftPath",
3556
+ "approvalPath"
3557
+ ],
3558
+ "additionalProperties": false,
3559
+ "$defs": {}
3560
+ }