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