@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,1801 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://ue-shed.dev/contracts/cameras/authoring/v1/arrangement.schema.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "version": {
7
+ "type": "number",
8
+ "enum": [1]
9
+ },
10
+ "id": {
11
+ "type": "string",
12
+ "allOf": [
13
+ {
14
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
15
+ }
16
+ ]
17
+ },
18
+ "revision": {
19
+ "type": "integer",
20
+ "allOf": [
21
+ {
22
+ "minimum": 0,
23
+ "maximum": 9007199254740991
24
+ }
25
+ ]
26
+ },
27
+ "projectName": {
28
+ "type": "string",
29
+ "allOf": [
30
+ {
31
+ "minLength": 1
32
+ }
33
+ ]
34
+ },
35
+ "mapPath": {
36
+ "type": "string",
37
+ "allOf": [
38
+ {
39
+ "minLength": 1
40
+ }
41
+ ]
42
+ },
43
+ "subject": {
44
+ "anyOf": [
45
+ {
46
+ "type": "object",
47
+ "properties": {
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
+ "diagnosticLabel": {
57
+ "anyOf": [
58
+ {
59
+ "type": "string",
60
+ "allOf": [
61
+ {
62
+ "minLength": 1
63
+ }
64
+ ]
65
+ },
66
+ {
67
+ "type": "null"
68
+ }
69
+ ]
70
+ },
71
+ "kind": {
72
+ "type": "string",
73
+ "enum": ["actor_guid"]
74
+ },
75
+ "lastKnownActorPath": {
76
+ "anyOf": [
77
+ {
78
+ "type": "string",
79
+ "allOf": [
80
+ {
81
+ "minLength": 7
82
+ },
83
+ {
84
+ "maxLength": 4096
85
+ },
86
+ {
87
+ "pattern": "^\\/Game\\/"
88
+ }
89
+ ]
90
+ },
91
+ {
92
+ "type": "null"
93
+ }
94
+ ]
95
+ }
96
+ },
97
+ "required": ["actorGuid", "kind"],
98
+ "additionalProperties": false
99
+ },
100
+ {
101
+ "type": "object",
102
+ "properties": {
103
+ "actorPath": {
104
+ "type": "string",
105
+ "allOf": [
106
+ {
107
+ "minLength": 7
108
+ },
109
+ {
110
+ "maxLength": 4096
111
+ },
112
+ {
113
+ "pattern": "^\\/Game\\/"
114
+ }
115
+ ]
116
+ },
117
+ "diagnosticLabel": {
118
+ "anyOf": [
119
+ {
120
+ "type": "string",
121
+ "allOf": [
122
+ {
123
+ "minLength": 1
124
+ }
125
+ ]
126
+ },
127
+ {
128
+ "type": "null"
129
+ }
130
+ ]
131
+ },
132
+ "kind": {
133
+ "type": "string",
134
+ "enum": ["actor_path"]
135
+ }
136
+ },
137
+ "required": ["actorPath", "kind"],
138
+ "additionalProperties": false
139
+ }
140
+ ]
141
+ },
142
+ "bounds": {
143
+ "type": "object",
144
+ "properties": {
145
+ "center": {
146
+ "type": "object",
147
+ "properties": {
148
+ "x": {
149
+ "type": "number"
150
+ },
151
+ "y": {
152
+ "type": "number"
153
+ },
154
+ "z": {
155
+ "type": "number"
156
+ }
157
+ },
158
+ "required": ["x", "y", "z"],
159
+ "additionalProperties": false
160
+ },
161
+ "extent": {
162
+ "type": "object",
163
+ "properties": {
164
+ "x": {
165
+ "type": "number",
166
+ "allOf": [
167
+ {
168
+ "minimum": 0
169
+ }
170
+ ]
171
+ },
172
+ "y": {
173
+ "type": "number",
174
+ "allOf": [
175
+ {
176
+ "minimum": 0
177
+ }
178
+ ]
179
+ },
180
+ "z": {
181
+ "type": "number",
182
+ "allOf": [
183
+ {
184
+ "minimum": 0
185
+ }
186
+ ]
187
+ }
188
+ },
189
+ "required": ["x", "y", "z"],
190
+ "additionalProperties": false
191
+ },
192
+ "rotation": {
193
+ "type": "object",
194
+ "properties": {
195
+ "pitch": {
196
+ "type": "number"
197
+ },
198
+ "roll": {
199
+ "type": "number"
200
+ },
201
+ "yaw": {
202
+ "type": "number"
203
+ }
204
+ },
205
+ "required": ["pitch", "roll", "yaw"],
206
+ "additionalProperties": false
207
+ }
208
+ },
209
+ "required": ["center", "extent", "rotation"],
210
+ "additionalProperties": false
211
+ },
212
+ "settings": {
213
+ "type": "object",
214
+ "properties": {
215
+ "fieldOfViewDegrees": {
216
+ "type": "number",
217
+ "allOf": [
218
+ {
219
+ "minimum": 5,
220
+ "maximum": 170
221
+ }
222
+ ]
223
+ },
224
+ "distanceScale": {
225
+ "type": "number",
226
+ "allOf": [
227
+ {
228
+ "minimum": 0.01,
229
+ "maximum": 100
230
+ }
231
+ ]
232
+ },
233
+ "heightOffset": {
234
+ "type": "number"
235
+ },
236
+ "margin": {
237
+ "type": "number",
238
+ "allOf": [
239
+ {
240
+ "minimum": 0,
241
+ "maximum": 0.45
242
+ }
243
+ ]
244
+ },
245
+ "elevationDegrees": {
246
+ "type": "number",
247
+ "allOf": [
248
+ {
249
+ "minimum": -89,
250
+ "maximum": 89
251
+ }
252
+ ]
253
+ },
254
+ "yawOffset": {
255
+ "type": "number"
256
+ },
257
+ "aimOffset": {
258
+ "type": "object",
259
+ "properties": {
260
+ "x": {
261
+ "type": "number"
262
+ },
263
+ "y": {
264
+ "type": "number"
265
+ },
266
+ "z": {
267
+ "type": "number"
268
+ }
269
+ },
270
+ "required": ["x", "y", "z"],
271
+ "additionalProperties": false
272
+ }
273
+ },
274
+ "required": ["fieldOfViewDegrees", "distanceScale", "heightOffset", "margin"],
275
+ "additionalProperties": false
276
+ },
277
+ "cameras": {
278
+ "type": "array",
279
+ "items": {
280
+ "type": "object",
281
+ "properties": {
282
+ "id": {
283
+ "type": "string",
284
+ "allOf": [
285
+ {
286
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
287
+ }
288
+ ]
289
+ },
290
+ "displayName": {
291
+ "type": "string",
292
+ "allOf": [
293
+ {
294
+ "minLength": 1
295
+ }
296
+ ]
297
+ },
298
+ "yawDegrees": {
299
+ "type": "number"
300
+ },
301
+ "overrides": {
302
+ "type": "object",
303
+ "properties": {
304
+ "fieldOfViewDegrees": {
305
+ "type": "number",
306
+ "allOf": [
307
+ {
308
+ "minimum": 5,
309
+ "maximum": 170
310
+ }
311
+ ]
312
+ },
313
+ "distanceScale": {
314
+ "type": "number",
315
+ "allOf": [
316
+ {
317
+ "minimum": 0.01,
318
+ "maximum": 100
319
+ }
320
+ ]
321
+ },
322
+ "heightOffset": {
323
+ "type": "number"
324
+ },
325
+ "margin": {
326
+ "type": "number",
327
+ "allOf": [
328
+ {
329
+ "minimum": 0,
330
+ "maximum": 0.45
331
+ }
332
+ ]
333
+ },
334
+ "elevationDegrees": {
335
+ "type": "number",
336
+ "allOf": [
337
+ {
338
+ "minimum": -89,
339
+ "maximum": 89
340
+ }
341
+ ]
342
+ },
343
+ "yawOffset": {
344
+ "type": "number"
345
+ },
346
+ "aimOffset": {
347
+ "type": "object",
348
+ "properties": {
349
+ "x": {
350
+ "type": "number"
351
+ },
352
+ "y": {
353
+ "type": "number"
354
+ },
355
+ "z": {
356
+ "type": "number"
357
+ }
358
+ },
359
+ "required": ["x", "y", "z"],
360
+ "additionalProperties": false
361
+ }
362
+ },
363
+ "additionalProperties": false
364
+ },
365
+ "manualPose": {
366
+ "type": "object",
367
+ "properties": {
368
+ "aspectRatio": {
369
+ "type": "string",
370
+ "enum": ["16:9"]
371
+ },
372
+ "fieldOfViewDegrees": {
373
+ "type": "number",
374
+ "allOf": [
375
+ {
376
+ "minimum": 5,
377
+ "maximum": 170
378
+ }
379
+ ]
380
+ },
381
+ "location": {
382
+ "type": "object",
383
+ "properties": {
384
+ "x": {
385
+ "type": "number"
386
+ },
387
+ "y": {
388
+ "type": "number"
389
+ },
390
+ "z": {
391
+ "type": "number"
392
+ }
393
+ },
394
+ "required": ["x", "y", "z"],
395
+ "additionalProperties": false
396
+ },
397
+ "projection": {
398
+ "type": "string",
399
+ "enum": ["perspective"]
400
+ },
401
+ "rotation": {
402
+ "type": "object",
403
+ "properties": {
404
+ "pitch": {
405
+ "type": "number"
406
+ },
407
+ "roll": {
408
+ "type": "number"
409
+ },
410
+ "yaw": {
411
+ "type": "number"
412
+ }
413
+ },
414
+ "required": ["pitch", "roll", "yaw"],
415
+ "additionalProperties": false
416
+ }
417
+ },
418
+ "required": [
419
+ "aspectRatio",
420
+ "fieldOfViewDegrees",
421
+ "location",
422
+ "projection",
423
+ "rotation"
424
+ ],
425
+ "additionalProperties": false
426
+ },
427
+ "viewId": {
428
+ "type": "string",
429
+ "allOf": [
430
+ {
431
+ "minLength": 1
432
+ },
433
+ {
434
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
435
+ }
436
+ ]
437
+ },
438
+ "groupId": {
439
+ "type": "string",
440
+ "allOf": [
441
+ {
442
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
443
+ }
444
+ ]
445
+ },
446
+ "visibility": {
447
+ "type": "object",
448
+ "properties": {
449
+ "hide": {
450
+ "type": "array",
451
+ "items": {
452
+ "type": "object",
453
+ "properties": {
454
+ "locator": {
455
+ "anyOf": [
456
+ {
457
+ "type": "object",
458
+ "properties": {
459
+ "kind": {
460
+ "type": "string",
461
+ "enum": ["actor_path"]
462
+ },
463
+ "actorPath": {
464
+ "type": "string",
465
+ "allOf": [
466
+ {
467
+ "pattern": "^\\/Game\\/"
468
+ },
469
+ {
470
+ "maxLength": 4096
471
+ }
472
+ ]
473
+ }
474
+ },
475
+ "required": ["kind", "actorPath"],
476
+ "additionalProperties": false
477
+ },
478
+ {
479
+ "type": "object",
480
+ "properties": {
481
+ "kind": {
482
+ "type": "string",
483
+ "enum": ["actor_guid"]
484
+ },
485
+ "actorGuid": {
486
+ "type": "string",
487
+ "allOf": [
488
+ {
489
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
490
+ }
491
+ ]
492
+ },
493
+ "lastKnownActorPath": {
494
+ "type": "string",
495
+ "allOf": [
496
+ {
497
+ "maxLength": 4096
498
+ }
499
+ ]
500
+ }
501
+ },
502
+ "required": [
503
+ "kind",
504
+ "actorGuid",
505
+ "lastKnownActorPath"
506
+ ],
507
+ "additionalProperties": false
508
+ }
509
+ ]
510
+ },
511
+ "label": {
512
+ "type": "string",
513
+ "allOf": [
514
+ {
515
+ "maxLength": 256
516
+ }
517
+ ]
518
+ }
519
+ },
520
+ "required": ["locator", "label"],
521
+ "additionalProperties": false
522
+ },
523
+ "allOf": [
524
+ {
525
+ "maxItems": 256
526
+ }
527
+ ]
528
+ },
529
+ "protect": {
530
+ "type": "array",
531
+ "items": {
532
+ "type": "object",
533
+ "properties": {
534
+ "locator": {
535
+ "anyOf": [
536
+ {
537
+ "type": "object",
538
+ "properties": {
539
+ "kind": {
540
+ "type": "string",
541
+ "enum": ["actor_path"]
542
+ },
543
+ "actorPath": {
544
+ "type": "string",
545
+ "allOf": [
546
+ {
547
+ "pattern": "^\\/Game\\/"
548
+ },
549
+ {
550
+ "maxLength": 4096
551
+ }
552
+ ]
553
+ }
554
+ },
555
+ "required": ["kind", "actorPath"],
556
+ "additionalProperties": false
557
+ },
558
+ {
559
+ "type": "object",
560
+ "properties": {
561
+ "kind": {
562
+ "type": "string",
563
+ "enum": ["actor_guid"]
564
+ },
565
+ "actorGuid": {
566
+ "type": "string",
567
+ "allOf": [
568
+ {
569
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
570
+ }
571
+ ]
572
+ },
573
+ "lastKnownActorPath": {
574
+ "type": "string",
575
+ "allOf": [
576
+ {
577
+ "maxLength": 4096
578
+ }
579
+ ]
580
+ }
581
+ },
582
+ "required": [
583
+ "kind",
584
+ "actorGuid",
585
+ "lastKnownActorPath"
586
+ ],
587
+ "additionalProperties": false
588
+ }
589
+ ]
590
+ },
591
+ "label": {
592
+ "type": "string",
593
+ "allOf": [
594
+ {
595
+ "maxLength": 256
596
+ }
597
+ ]
598
+ }
599
+ },
600
+ "required": ["locator", "label"],
601
+ "additionalProperties": false
602
+ },
603
+ "allOf": [
604
+ {
605
+ "maxItems": 256
606
+ }
607
+ ]
608
+ }
609
+ },
610
+ "required": ["hide", "protect"],
611
+ "additionalProperties": false
612
+ }
613
+ },
614
+ "required": ["id", "displayName", "yawDegrees", "overrides", "viewId"],
615
+ "additionalProperties": false
616
+ },
617
+ "allOf": [
618
+ {
619
+ "minItems": 1
620
+ },
621
+ {
622
+ "maxItems": 256
623
+ }
624
+ ]
625
+ },
626
+ "retiredCameraIds": {
627
+ "type": "array",
628
+ "items": {
629
+ "type": "string",
630
+ "allOf": [
631
+ {
632
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
633
+ }
634
+ ]
635
+ }
636
+ },
637
+ "captureProfileId": {
638
+ "type": "string",
639
+ "allOf": [
640
+ {
641
+ "minLength": 1
642
+ },
643
+ {
644
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
645
+ }
646
+ ]
647
+ },
648
+ "visibilityPolicyId": {
649
+ "type": "string",
650
+ "allOf": [
651
+ {
652
+ "minLength": 1
653
+ },
654
+ {
655
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
656
+ }
657
+ ]
658
+ },
659
+ "displayName": {
660
+ "type": "string",
661
+ "allOf": [
662
+ {
663
+ "minLength": 1
664
+ }
665
+ ]
666
+ },
667
+ "groups": {
668
+ "type": "array",
669
+ "items": {
670
+ "type": "object",
671
+ "properties": {
672
+ "id": {
673
+ "type": "string",
674
+ "allOf": [
675
+ {
676
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
677
+ }
678
+ ]
679
+ },
680
+ "name": {
681
+ "type": "string",
682
+ "allOf": [
683
+ {
684
+ "minLength": 1
685
+ }
686
+ ]
687
+ },
688
+ "overrides": {
689
+ "type": "object",
690
+ "properties": {
691
+ "fieldOfViewDegrees": {
692
+ "type": "number",
693
+ "allOf": [
694
+ {
695
+ "minimum": 5,
696
+ "maximum": 170
697
+ }
698
+ ]
699
+ },
700
+ "distanceScale": {
701
+ "type": "number",
702
+ "allOf": [
703
+ {
704
+ "minimum": 0.01,
705
+ "maximum": 100
706
+ }
707
+ ]
708
+ },
709
+ "heightOffset": {
710
+ "type": "number"
711
+ },
712
+ "margin": {
713
+ "type": "number",
714
+ "allOf": [
715
+ {
716
+ "minimum": 0,
717
+ "maximum": 0.45
718
+ }
719
+ ]
720
+ },
721
+ "elevationDegrees": {
722
+ "type": "number",
723
+ "allOf": [
724
+ {
725
+ "minimum": -89,
726
+ "maximum": 89
727
+ }
728
+ ]
729
+ },
730
+ "yawOffset": {
731
+ "type": "number"
732
+ },
733
+ "aimOffset": {
734
+ "type": "object",
735
+ "properties": {
736
+ "x": {
737
+ "type": "number"
738
+ },
739
+ "y": {
740
+ "type": "number"
741
+ },
742
+ "z": {
743
+ "type": "number"
744
+ }
745
+ },
746
+ "required": ["x", "y", "z"],
747
+ "additionalProperties": false
748
+ }
749
+ },
750
+ "additionalProperties": false
751
+ },
752
+ "visibility": {
753
+ "type": "object",
754
+ "properties": {
755
+ "hide": {
756
+ "type": "array",
757
+ "items": {
758
+ "type": "object",
759
+ "properties": {
760
+ "locator": {
761
+ "anyOf": [
762
+ {
763
+ "type": "object",
764
+ "properties": {
765
+ "kind": {
766
+ "type": "string",
767
+ "enum": ["actor_path"]
768
+ },
769
+ "actorPath": {
770
+ "type": "string",
771
+ "allOf": [
772
+ {
773
+ "pattern": "^\\/Game\\/"
774
+ },
775
+ {
776
+ "maxLength": 4096
777
+ }
778
+ ]
779
+ }
780
+ },
781
+ "required": ["kind", "actorPath"],
782
+ "additionalProperties": false
783
+ },
784
+ {
785
+ "type": "object",
786
+ "properties": {
787
+ "kind": {
788
+ "type": "string",
789
+ "enum": ["actor_guid"]
790
+ },
791
+ "actorGuid": {
792
+ "type": "string",
793
+ "allOf": [
794
+ {
795
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
796
+ }
797
+ ]
798
+ },
799
+ "lastKnownActorPath": {
800
+ "type": "string",
801
+ "allOf": [
802
+ {
803
+ "maxLength": 4096
804
+ }
805
+ ]
806
+ }
807
+ },
808
+ "required": [
809
+ "kind",
810
+ "actorGuid",
811
+ "lastKnownActorPath"
812
+ ],
813
+ "additionalProperties": false
814
+ }
815
+ ]
816
+ },
817
+ "label": {
818
+ "type": "string",
819
+ "allOf": [
820
+ {
821
+ "maxLength": 256
822
+ }
823
+ ]
824
+ }
825
+ },
826
+ "required": ["locator", "label"],
827
+ "additionalProperties": false
828
+ },
829
+ "allOf": [
830
+ {
831
+ "maxItems": 256
832
+ }
833
+ ]
834
+ },
835
+ "protect": {
836
+ "type": "array",
837
+ "items": {
838
+ "type": "object",
839
+ "properties": {
840
+ "locator": {
841
+ "anyOf": [
842
+ {
843
+ "type": "object",
844
+ "properties": {
845
+ "kind": {
846
+ "type": "string",
847
+ "enum": ["actor_path"]
848
+ },
849
+ "actorPath": {
850
+ "type": "string",
851
+ "allOf": [
852
+ {
853
+ "pattern": "^\\/Game\\/"
854
+ },
855
+ {
856
+ "maxLength": 4096
857
+ }
858
+ ]
859
+ }
860
+ },
861
+ "required": ["kind", "actorPath"],
862
+ "additionalProperties": false
863
+ },
864
+ {
865
+ "type": "object",
866
+ "properties": {
867
+ "kind": {
868
+ "type": "string",
869
+ "enum": ["actor_guid"]
870
+ },
871
+ "actorGuid": {
872
+ "type": "string",
873
+ "allOf": [
874
+ {
875
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
876
+ }
877
+ ]
878
+ },
879
+ "lastKnownActorPath": {
880
+ "type": "string",
881
+ "allOf": [
882
+ {
883
+ "maxLength": 4096
884
+ }
885
+ ]
886
+ }
887
+ },
888
+ "required": [
889
+ "kind",
890
+ "actorGuid",
891
+ "lastKnownActorPath"
892
+ ],
893
+ "additionalProperties": false
894
+ }
895
+ ]
896
+ },
897
+ "label": {
898
+ "type": "string",
899
+ "allOf": [
900
+ {
901
+ "maxLength": 256
902
+ }
903
+ ]
904
+ }
905
+ },
906
+ "required": ["locator", "label"],
907
+ "additionalProperties": false
908
+ },
909
+ "allOf": [
910
+ {
911
+ "maxItems": 256
912
+ }
913
+ ]
914
+ }
915
+ },
916
+ "required": ["hide", "protect"],
917
+ "additionalProperties": false
918
+ }
919
+ },
920
+ "required": ["id", "name", "overrides"],
921
+ "additionalProperties": false
922
+ },
923
+ "allOf": [
924
+ {
925
+ "maxItems": 64
926
+ }
927
+ ]
928
+ },
929
+ "visibility": {
930
+ "type": "object",
931
+ "properties": {
932
+ "hide": {
933
+ "type": "array",
934
+ "items": {
935
+ "type": "object",
936
+ "properties": {
937
+ "locator": {
938
+ "anyOf": [
939
+ {
940
+ "type": "object",
941
+ "properties": {
942
+ "kind": {
943
+ "type": "string",
944
+ "enum": ["actor_path"]
945
+ },
946
+ "actorPath": {
947
+ "type": "string",
948
+ "allOf": [
949
+ {
950
+ "pattern": "^\\/Game\\/"
951
+ },
952
+ {
953
+ "maxLength": 4096
954
+ }
955
+ ]
956
+ }
957
+ },
958
+ "required": ["kind", "actorPath"],
959
+ "additionalProperties": false
960
+ },
961
+ {
962
+ "type": "object",
963
+ "properties": {
964
+ "kind": {
965
+ "type": "string",
966
+ "enum": ["actor_guid"]
967
+ },
968
+ "actorGuid": {
969
+ "type": "string",
970
+ "allOf": [
971
+ {
972
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
973
+ }
974
+ ]
975
+ },
976
+ "lastKnownActorPath": {
977
+ "type": "string",
978
+ "allOf": [
979
+ {
980
+ "maxLength": 4096
981
+ }
982
+ ]
983
+ }
984
+ },
985
+ "required": ["kind", "actorGuid", "lastKnownActorPath"],
986
+ "additionalProperties": false
987
+ }
988
+ ]
989
+ },
990
+ "label": {
991
+ "type": "string",
992
+ "allOf": [
993
+ {
994
+ "maxLength": 256
995
+ }
996
+ ]
997
+ }
998
+ },
999
+ "required": ["locator", "label"],
1000
+ "additionalProperties": false
1001
+ },
1002
+ "allOf": [
1003
+ {
1004
+ "maxItems": 256
1005
+ }
1006
+ ]
1007
+ },
1008
+ "protect": {
1009
+ "type": "array",
1010
+ "items": {
1011
+ "type": "object",
1012
+ "properties": {
1013
+ "locator": {
1014
+ "anyOf": [
1015
+ {
1016
+ "type": "object",
1017
+ "properties": {
1018
+ "kind": {
1019
+ "type": "string",
1020
+ "enum": ["actor_path"]
1021
+ },
1022
+ "actorPath": {
1023
+ "type": "string",
1024
+ "allOf": [
1025
+ {
1026
+ "pattern": "^\\/Game\\/"
1027
+ },
1028
+ {
1029
+ "maxLength": 4096
1030
+ }
1031
+ ]
1032
+ }
1033
+ },
1034
+ "required": ["kind", "actorPath"],
1035
+ "additionalProperties": false
1036
+ },
1037
+ {
1038
+ "type": "object",
1039
+ "properties": {
1040
+ "kind": {
1041
+ "type": "string",
1042
+ "enum": ["actor_guid"]
1043
+ },
1044
+ "actorGuid": {
1045
+ "type": "string",
1046
+ "allOf": [
1047
+ {
1048
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
1049
+ }
1050
+ ]
1051
+ },
1052
+ "lastKnownActorPath": {
1053
+ "type": "string",
1054
+ "allOf": [
1055
+ {
1056
+ "maxLength": 4096
1057
+ }
1058
+ ]
1059
+ }
1060
+ },
1061
+ "required": ["kind", "actorGuid", "lastKnownActorPath"],
1062
+ "additionalProperties": false
1063
+ }
1064
+ ]
1065
+ },
1066
+ "label": {
1067
+ "type": "string",
1068
+ "allOf": [
1069
+ {
1070
+ "maxLength": 256
1071
+ }
1072
+ ]
1073
+ }
1074
+ },
1075
+ "required": ["locator", "label"],
1076
+ "additionalProperties": false
1077
+ },
1078
+ "allOf": [
1079
+ {
1080
+ "maxItems": 256
1081
+ }
1082
+ ]
1083
+ }
1084
+ },
1085
+ "required": ["hide", "protect"],
1086
+ "additionalProperties": false
1087
+ },
1088
+ "output": {
1089
+ "type": "string",
1090
+ "enum": ["natural_only", "authored_only", "natural_and_authored"]
1091
+ },
1092
+ "renderPolicy": {
1093
+ "type": "object",
1094
+ "properties": {
1095
+ "visibility": {
1096
+ "type": "object",
1097
+ "properties": {
1098
+ "hide": {
1099
+ "type": "array",
1100
+ "items": {
1101
+ "type": "object",
1102
+ "properties": {
1103
+ "locator": {
1104
+ "anyOf": [
1105
+ {
1106
+ "type": "object",
1107
+ "properties": {
1108
+ "kind": {
1109
+ "type": "string",
1110
+ "enum": ["actor_path"]
1111
+ },
1112
+ "actorPath": {
1113
+ "type": "string",
1114
+ "allOf": [
1115
+ {
1116
+ "pattern": "^\\/Game\\/"
1117
+ },
1118
+ {
1119
+ "maxLength": 4096
1120
+ }
1121
+ ]
1122
+ }
1123
+ },
1124
+ "required": ["kind", "actorPath"],
1125
+ "additionalProperties": false
1126
+ },
1127
+ {
1128
+ "type": "object",
1129
+ "properties": {
1130
+ "kind": {
1131
+ "type": "string",
1132
+ "enum": ["actor_guid"]
1133
+ },
1134
+ "actorGuid": {
1135
+ "type": "string",
1136
+ "allOf": [
1137
+ {
1138
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
1139
+ }
1140
+ ]
1141
+ },
1142
+ "lastKnownActorPath": {
1143
+ "type": "string",
1144
+ "allOf": [
1145
+ {
1146
+ "maxLength": 4096
1147
+ }
1148
+ ]
1149
+ }
1150
+ },
1151
+ "required": [
1152
+ "kind",
1153
+ "actorGuid",
1154
+ "lastKnownActorPath"
1155
+ ],
1156
+ "additionalProperties": false
1157
+ }
1158
+ ]
1159
+ },
1160
+ "label": {
1161
+ "type": "string",
1162
+ "allOf": [
1163
+ {
1164
+ "maxLength": 256
1165
+ }
1166
+ ]
1167
+ }
1168
+ },
1169
+ "required": ["locator", "label"],
1170
+ "additionalProperties": false
1171
+ },
1172
+ "allOf": [
1173
+ {
1174
+ "maxItems": 256
1175
+ }
1176
+ ]
1177
+ },
1178
+ "protect": {
1179
+ "type": "array",
1180
+ "items": {
1181
+ "type": "object",
1182
+ "properties": {
1183
+ "locator": {
1184
+ "anyOf": [
1185
+ {
1186
+ "type": "object",
1187
+ "properties": {
1188
+ "kind": {
1189
+ "type": "string",
1190
+ "enum": ["actor_path"]
1191
+ },
1192
+ "actorPath": {
1193
+ "type": "string",
1194
+ "allOf": [
1195
+ {
1196
+ "pattern": "^\\/Game\\/"
1197
+ },
1198
+ {
1199
+ "maxLength": 4096
1200
+ }
1201
+ ]
1202
+ }
1203
+ },
1204
+ "required": ["kind", "actorPath"],
1205
+ "additionalProperties": false
1206
+ },
1207
+ {
1208
+ "type": "object",
1209
+ "properties": {
1210
+ "kind": {
1211
+ "type": "string",
1212
+ "enum": ["actor_guid"]
1213
+ },
1214
+ "actorGuid": {
1215
+ "type": "string",
1216
+ "allOf": [
1217
+ {
1218
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
1219
+ }
1220
+ ]
1221
+ },
1222
+ "lastKnownActorPath": {
1223
+ "type": "string",
1224
+ "allOf": [
1225
+ {
1226
+ "maxLength": 4096
1227
+ }
1228
+ ]
1229
+ }
1230
+ },
1231
+ "required": [
1232
+ "kind",
1233
+ "actorGuid",
1234
+ "lastKnownActorPath"
1235
+ ],
1236
+ "additionalProperties": false
1237
+ }
1238
+ ]
1239
+ },
1240
+ "label": {
1241
+ "type": "string",
1242
+ "allOf": [
1243
+ {
1244
+ "maxLength": 256
1245
+ }
1246
+ ]
1247
+ }
1248
+ },
1249
+ "required": ["locator", "label"],
1250
+ "additionalProperties": false
1251
+ },
1252
+ "allOf": [
1253
+ {
1254
+ "maxItems": 256
1255
+ }
1256
+ ]
1257
+ }
1258
+ },
1259
+ "required": ["hide", "protect"],
1260
+ "additionalProperties": false
1261
+ },
1262
+ "renderer": {
1263
+ "anyOf": [
1264
+ {
1265
+ "type": "object",
1266
+ "properties": {
1267
+ "kind": {
1268
+ "type": "string",
1269
+ "enum": ["editor_viewport"]
1270
+ },
1271
+ "strategy": {
1272
+ "type": "string",
1273
+ "enum": ["high_resolution_screenshot"]
1274
+ },
1275
+ "profile": {
1276
+ "type": "string",
1277
+ "enum": ["lit", "observation"]
1278
+ },
1279
+ "vignette": {
1280
+ "type": "string",
1281
+ "enum": ["project", "disabled"]
1282
+ },
1283
+ "fog": {
1284
+ "type": "boolean"
1285
+ },
1286
+ "volumetricFog": {
1287
+ "type": "boolean"
1288
+ }
1289
+ },
1290
+ "required": [
1291
+ "kind",
1292
+ "strategy",
1293
+ "profile",
1294
+ "vignette",
1295
+ "fog",
1296
+ "volumetricFog"
1297
+ ],
1298
+ "additionalProperties": false
1299
+ },
1300
+ {
1301
+ "type": "object",
1302
+ "properties": {
1303
+ "kind": {
1304
+ "type": "string",
1305
+ "enum": ["scene_capture"]
1306
+ },
1307
+ "profile": {
1308
+ "type": "string",
1309
+ "enum": [
1310
+ "full_fidelity",
1311
+ "seam_stable",
1312
+ "scene_capture_defaults",
1313
+ "observation"
1314
+ ]
1315
+ },
1316
+ "lodDistanceScale": {
1317
+ "type": "number",
1318
+ "allOf": [
1319
+ {
1320
+ "minimum": 0.1,
1321
+ "maximum": 100
1322
+ }
1323
+ ]
1324
+ },
1325
+ "fog": {
1326
+ "type": "boolean"
1327
+ },
1328
+ "volumetricFog": {
1329
+ "type": "boolean"
1330
+ }
1331
+ },
1332
+ "required": [
1333
+ "kind",
1334
+ "profile",
1335
+ "lodDistanceScale",
1336
+ "fog",
1337
+ "volumetricFog"
1338
+ ],
1339
+ "additionalProperties": false
1340
+ }
1341
+ ]
1342
+ },
1343
+ "exposure": {
1344
+ "anyOf": [
1345
+ {
1346
+ "type": "object",
1347
+ "properties": {
1348
+ "mode": {
1349
+ "type": "string",
1350
+ "enum": ["project_auto"]
1351
+ }
1352
+ },
1353
+ "required": ["mode"],
1354
+ "additionalProperties": false
1355
+ },
1356
+ {
1357
+ "type": "object",
1358
+ "properties": {
1359
+ "mode": {
1360
+ "type": "string",
1361
+ "enum": ["fixed_ev100"]
1362
+ },
1363
+ "ev100": {
1364
+ "type": "number",
1365
+ "allOf": [
1366
+ {
1367
+ "minimum": -20,
1368
+ "maximum": 30
1369
+ }
1370
+ ]
1371
+ },
1372
+ "compensation": {
1373
+ "type": "string",
1374
+ "enum": ["project"]
1375
+ }
1376
+ },
1377
+ "required": ["mode", "ev100", "compensation"],
1378
+ "additionalProperties": false
1379
+ },
1380
+ {
1381
+ "type": "object",
1382
+ "properties": {
1383
+ "mode": {
1384
+ "type": "string",
1385
+ "enum": ["meter_once"]
1386
+ },
1387
+ "referenceCamera": {
1388
+ "type": "object",
1389
+ "properties": {
1390
+ "location": {
1391
+ "type": "object",
1392
+ "properties": {
1393
+ "x": {
1394
+ "type": "number"
1395
+ },
1396
+ "y": {
1397
+ "type": "number"
1398
+ },
1399
+ "z": {
1400
+ "type": "number"
1401
+ }
1402
+ },
1403
+ "required": ["x", "y", "z"],
1404
+ "additionalProperties": false
1405
+ },
1406
+ "rotation": {
1407
+ "type": "object",
1408
+ "properties": {
1409
+ "pitch": {
1410
+ "type": "number"
1411
+ },
1412
+ "roll": {
1413
+ "type": "number"
1414
+ },
1415
+ "yaw": {
1416
+ "type": "number"
1417
+ }
1418
+ },
1419
+ "required": ["pitch", "roll", "yaw"],
1420
+ "additionalProperties": false
1421
+ },
1422
+ "projection": {
1423
+ "anyOf": [
1424
+ {
1425
+ "type": "object",
1426
+ "properties": {
1427
+ "kind": {
1428
+ "type": "string",
1429
+ "enum": ["perspective"]
1430
+ },
1431
+ "horizontalFieldOfView": {
1432
+ "type": "number",
1433
+ "allOf": [
1434
+ {
1435
+ "minimum": 5,
1436
+ "maximum": 170
1437
+ }
1438
+ ]
1439
+ }
1440
+ },
1441
+ "required": ["kind", "horizontalFieldOfView"],
1442
+ "additionalProperties": false
1443
+ },
1444
+ {
1445
+ "type": "object",
1446
+ "properties": {
1447
+ "kind": {
1448
+ "type": "string",
1449
+ "enum": ["orthographic"]
1450
+ },
1451
+ "width": {
1452
+ "type": "number",
1453
+ "allOf": [
1454
+ {
1455
+ "exclusiveMinimum": 0
1456
+ },
1457
+ {
1458
+ "maximum": 1000000000
1459
+ }
1460
+ ]
1461
+ }
1462
+ },
1463
+ "required": ["kind", "width"],
1464
+ "additionalProperties": false
1465
+ }
1466
+ ]
1467
+ }
1468
+ },
1469
+ "required": ["location", "rotation", "projection"],
1470
+ "additionalProperties": false
1471
+ },
1472
+ "referenceSize": {
1473
+ "type": "object",
1474
+ "properties": {
1475
+ "width": {
1476
+ "type": "integer",
1477
+ "allOf": [
1478
+ {
1479
+ "minimum": 16,
1480
+ "maximum": 16384
1481
+ }
1482
+ ]
1483
+ },
1484
+ "height": {
1485
+ "type": "integer",
1486
+ "allOf": [
1487
+ {
1488
+ "minimum": 16,
1489
+ "maximum": 16384
1490
+ }
1491
+ ]
1492
+ }
1493
+ },
1494
+ "required": ["width", "height"],
1495
+ "additionalProperties": false
1496
+ },
1497
+ "minimumFrames": {
1498
+ "type": "integer",
1499
+ "allOf": [
1500
+ {
1501
+ "minimum": 1,
1502
+ "maximum": 4096
1503
+ }
1504
+ ]
1505
+ }
1506
+ },
1507
+ "required": [
1508
+ "mode",
1509
+ "referenceCamera",
1510
+ "referenceSize",
1511
+ "minimumFrames"
1512
+ ],
1513
+ "additionalProperties": false
1514
+ }
1515
+ ]
1516
+ },
1517
+ "settling": {
1518
+ "type": "object",
1519
+ "properties": {
1520
+ "minimumFrames": {
1521
+ "type": "integer",
1522
+ "allOf": [
1523
+ {
1524
+ "minimum": 1,
1525
+ "maximum": 4096
1526
+ }
1527
+ ]
1528
+ },
1529
+ "timeoutMs": {
1530
+ "type": "integer",
1531
+ "allOf": [
1532
+ {
1533
+ "minimum": 1000,
1534
+ "maximum": 900000
1535
+ }
1536
+ ]
1537
+ },
1538
+ "initialView": {
1539
+ "type": "object",
1540
+ "properties": {
1541
+ "camera": {
1542
+ "type": "object",
1543
+ "properties": {
1544
+ "location": {
1545
+ "type": "object",
1546
+ "properties": {
1547
+ "x": {
1548
+ "type": "number"
1549
+ },
1550
+ "y": {
1551
+ "type": "number"
1552
+ },
1553
+ "z": {
1554
+ "type": "number"
1555
+ }
1556
+ },
1557
+ "required": ["x", "y", "z"],
1558
+ "additionalProperties": false
1559
+ },
1560
+ "rotation": {
1561
+ "type": "object",
1562
+ "properties": {
1563
+ "pitch": {
1564
+ "type": "number"
1565
+ },
1566
+ "roll": {
1567
+ "type": "number"
1568
+ },
1569
+ "yaw": {
1570
+ "type": "number"
1571
+ }
1572
+ },
1573
+ "required": ["pitch", "roll", "yaw"],
1574
+ "additionalProperties": false
1575
+ },
1576
+ "projection": {
1577
+ "anyOf": [
1578
+ {
1579
+ "type": "object",
1580
+ "properties": {
1581
+ "kind": {
1582
+ "type": "string",
1583
+ "enum": ["perspective"]
1584
+ },
1585
+ "horizontalFieldOfView": {
1586
+ "type": "number",
1587
+ "allOf": [
1588
+ {
1589
+ "minimum": 5,
1590
+ "maximum": 170
1591
+ }
1592
+ ]
1593
+ }
1594
+ },
1595
+ "required": ["kind", "horizontalFieldOfView"],
1596
+ "additionalProperties": false
1597
+ },
1598
+ {
1599
+ "type": "object",
1600
+ "properties": {
1601
+ "kind": {
1602
+ "type": "string",
1603
+ "enum": ["orthographic"]
1604
+ },
1605
+ "width": {
1606
+ "type": "number",
1607
+ "allOf": [
1608
+ {
1609
+ "exclusiveMinimum": 0
1610
+ },
1611
+ {
1612
+ "maximum": 1000000000
1613
+ }
1614
+ ]
1615
+ }
1616
+ },
1617
+ "required": ["kind", "width"],
1618
+ "additionalProperties": false
1619
+ }
1620
+ ]
1621
+ }
1622
+ },
1623
+ "required": ["location", "rotation", "projection"],
1624
+ "additionalProperties": false
1625
+ },
1626
+ "size": {
1627
+ "type": "object",
1628
+ "properties": {
1629
+ "width": {
1630
+ "type": "integer",
1631
+ "allOf": [
1632
+ {
1633
+ "minimum": 16,
1634
+ "maximum": 16384
1635
+ }
1636
+ ]
1637
+ },
1638
+ "height": {
1639
+ "type": "integer",
1640
+ "allOf": [
1641
+ {
1642
+ "minimum": 16,
1643
+ "maximum": 16384
1644
+ }
1645
+ ]
1646
+ }
1647
+ },
1648
+ "required": ["width", "height"],
1649
+ "additionalProperties": false
1650
+ },
1651
+ "minimumFrames": {
1652
+ "type": "integer",
1653
+ "allOf": [
1654
+ {
1655
+ "minimum": 1,
1656
+ "maximum": 4096
1657
+ }
1658
+ ]
1659
+ }
1660
+ },
1661
+ "required": ["camera", "size", "minimumFrames"],
1662
+ "additionalProperties": false
1663
+ }
1664
+ },
1665
+ "required": ["minimumFrames", "timeoutMs"],
1666
+ "additionalProperties": false
1667
+ },
1668
+ "time": {
1669
+ "type": "string",
1670
+ "enum": ["live_editor", "freeze_materials_and_ticks"]
1671
+ },
1672
+ "preparation": {
1673
+ "type": "object",
1674
+ "properties": {
1675
+ "geometry": {
1676
+ "anyOf": [
1677
+ {
1678
+ "type": "object",
1679
+ "properties": {
1680
+ "mode": {
1681
+ "type": "string",
1682
+ "enum": ["preserve_loading"]
1683
+ }
1684
+ },
1685
+ "required": ["mode"],
1686
+ "additionalProperties": false
1687
+ },
1688
+ {
1689
+ "type": "object",
1690
+ "properties": {
1691
+ "mode": {
1692
+ "type": "string",
1693
+ "enum": ["camera_regions"]
1694
+ },
1695
+ "maximumRegions": {
1696
+ "type": "integer",
1697
+ "allOf": [
1698
+ {
1699
+ "minimum": 1,
1700
+ "maximum": 64
1701
+ }
1702
+ ]
1703
+ },
1704
+ "extent": {
1705
+ "type": "object",
1706
+ "properties": {
1707
+ "x": {
1708
+ "type": "number",
1709
+ "allOf": [
1710
+ {
1711
+ "minimum": 0,
1712
+ "maximum": 10000000
1713
+ }
1714
+ ]
1715
+ },
1716
+ "y": {
1717
+ "type": "number",
1718
+ "allOf": [
1719
+ {
1720
+ "minimum": 0,
1721
+ "maximum": 10000000
1722
+ }
1723
+ ]
1724
+ },
1725
+ "z": {
1726
+ "type": "number",
1727
+ "allOf": [
1728
+ {
1729
+ "minimum": 0,
1730
+ "maximum": 10000000
1731
+ }
1732
+ ]
1733
+ }
1734
+ },
1735
+ "required": ["x", "y", "z"],
1736
+ "additionalProperties": false
1737
+ }
1738
+ },
1739
+ "required": ["mode", "maximumRegions", "extent"],
1740
+ "additionalProperties": false
1741
+ }
1742
+ ]
1743
+ },
1744
+ "dataLayers": {
1745
+ "type": "array",
1746
+ "items": {
1747
+ "type": "object",
1748
+ "properties": {
1749
+ "assetPath": {
1750
+ "type": "string",
1751
+ "allOf": [
1752
+ {
1753
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
1754
+ },
1755
+ {
1756
+ "maxLength": 1024
1757
+ }
1758
+ ]
1759
+ },
1760
+ "loaded": {
1761
+ "type": "boolean"
1762
+ },
1763
+ "visible": {
1764
+ "type": "boolean"
1765
+ }
1766
+ },
1767
+ "required": ["assetPath", "loaded", "visible"],
1768
+ "additionalProperties": false
1769
+ },
1770
+ "allOf": [
1771
+ {
1772
+ "maxItems": 64
1773
+ }
1774
+ ]
1775
+ }
1776
+ },
1777
+ "required": ["geometry", "dataLayers"],
1778
+ "additionalProperties": false
1779
+ }
1780
+ },
1781
+ "required": ["renderer", "exposure", "settling", "time", "preparation"],
1782
+ "additionalProperties": false
1783
+ }
1784
+ },
1785
+ "required": [
1786
+ "version",
1787
+ "id",
1788
+ "revision",
1789
+ "projectName",
1790
+ "mapPath",
1791
+ "subject",
1792
+ "bounds",
1793
+ "settings",
1794
+ "cameras",
1795
+ "retiredCameraIds",
1796
+ "captureProfileId",
1797
+ "visibilityPolicyId"
1798
+ ],
1799
+ "additionalProperties": false,
1800
+ "$defs": {}
1801
+ }