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