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