@ue-shed/protocol 0.7.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/contracts/cameras/authoring/v1/README.md +63 -0
  2. package/contracts/cameras/authoring/v1/approval.schema.json +106 -0
  3. package/contracts/cameras/authoring/v1/arrangement.schema.json +1807 -0
  4. package/contracts/cameras/authoring/v1/bridge-request.schema.json +11077 -0
  5. package/contracts/cameras/authoring/v1/bridge-response.schema.json +10523 -0
  6. package/contracts/cameras/authoring/v1/command.schema.json +4115 -0
  7. package/contracts/cameras/authoring/v1/document.schema.json +4421 -0
  8. package/contracts/cameras/authoring/v1/panel-event.schema.json +4891 -0
  9. package/contracts/cameras/authoring/v1/panel-state.schema.json +3560 -0
  10. package/contracts/cameras/authoring/v1/recipe.schema.json +340 -0
  11. package/contracts/cameras/authoring/v1/visibility-preset.schema.json +205 -0
  12. package/contracts/cameras/map-tile/v1/README.md +4 -1
  13. package/contracts/cameras/map-tile/v1/capture-operation.schema.json +1643 -30
  14. package/contracts/cameras/map-tile/v1/capture-request.schema.json +497 -48
  15. package/contracts/cameras/map-tile/v1/capture-response.schema.json +1405 -96
  16. package/contracts/cameras/map-tile/v1/manifest.schema.json +1782 -110
  17. package/contracts/cameras/map-tile/v1/plan.schema.json +394 -200
  18. package/contracts/cameras/map-tile/v1/release-result.schema.json +7 -2
  19. package/contracts/cameras/provisioning/v1/provision-request.schema.json +663 -141
  20. package/contracts/cameras/render/v1/README.md +6 -0
  21. package/contracts/cameras/render/v1/begin-result.schema.json +173 -0
  22. package/contracts/cameras/render/v1/capabilities.schema.json +46 -0
  23. package/contracts/cameras/render/v1/fixtures/invalid-session-editor-previews-type.json +41 -0
  24. package/contracts/cameras/render/v1/fixtures/session-editor-previews.json +41 -0
  25. package/contracts/cameras/render/v1/fixtures/session-scene-capture-editor-previews.json +40 -0
  26. package/contracts/cameras/render/v1/frame-evidence.schema.json +262 -0
  27. package/contracts/cameras/render/v1/frame-status.schema.json +271 -0
  28. package/contracts/cameras/render/v1/policy.schema.json +165 -0
  29. package/contracts/cameras/render/v1/review-inspection-result.schema.json +285 -0
  30. package/contracts/cameras/render/v1/session-request.schema.json +173 -0
  31. package/contracts/cameras/review/v1/README.md +6 -0
  32. package/contracts/cameras/review/v1/capture-request.schema.json +221 -3
  33. package/contracts/cameras/review/v1/capture-response.schema.json +3692 -0
  34. package/contracts/cameras/review/v1/fixtures/capture-authored.json +205 -0
  35. package/contracts/core/v1/WINDOW-ACTIVATION.md +21 -0
  36. package/contracts/core/v1/window-activation-request.schema.json +20 -0
  37. package/contracts/core/v1/window-activation-result.schema.json +49 -0
  38. package/contracts/editor-world/v1/README.md +27 -0
  39. package/contracts/editor-world/v1/operation.schema.json +761 -0
  40. package/contracts/editor-world/v1/state.schema.json +92 -0
  41. package/contracts/uasset-io/v1/README.md +24 -0
  42. package/contracts/uasset-io/v1/event.schema.json +2642 -290
  43. package/contracts/uasset-io/v1/fixtures/invalid/inspect-string-table-nonstring-metadata.json +53 -0
  44. package/contracts/uasset-io/v1/fixtures/invalid/level-sequence-version.json +43 -0
  45. package/contracts/uasset-io/v1/fixtures/invalid/negative-instanced-size.json +97 -0
  46. package/contracts/uasset-io/v1/fixtures/invalid/non-string-metadata.json +97 -0
  47. package/contracts/uasset-io/v1/fixtures/invalid/unknown-native-value.json +97 -0
  48. package/contracts/uasset-io/v1/fixtures/valid/blueprint-request.json +15 -3
  49. package/contracts/uasset-io/v1/fixtures/valid/blueprint-result-event.json +22 -5
  50. package/contracts/uasset-io/v1/fixtures/valid/extract-text-string-table-occurrence-result-event.json +30 -0
  51. package/contracts/uasset-io/v1/fixtures/valid/inspect-native-result-event.json +97 -0
  52. package/contracts/uasset-io/v1/fixtures/valid/inspect-string-table-metadata-result-event.json +53 -0
  53. package/contracts/uasset-io/v1/fixtures/valid/level-sequence-request.json +18 -0
  54. package/contracts/uasset-io/v1/fixtures/valid/level-sequence-result-event.json +43 -0
  55. package/contracts/uasset-io/v1/request.schema.json +14 -0
  56. package/contracts/world/preparation/v1/fixtures/invalid-contract-version.json +10 -0
  57. package/contracts/world/preparation/v1/fixtures/invalid-extra-field.json +11 -0
  58. package/contracts/world/preparation/v1/fixtures/invalid-negative-budget.json +37 -0
  59. package/contracts/world/preparation/v1/fixtures/invalid-region-negative-extent.json +40 -0
  60. package/contracts/world/preparation/v1/fixtures/valid-actor-context.json +37 -0
  61. package/contracts/world/preparation/v1/fixtures/valid-describe.json +10 -0
  62. package/contracts/world/preparation/v1/request.schema.json +897 -0
  63. package/contracts/world/preparation/v1/response.schema.json +449 -0
  64. package/dist/blueprint-graph.d.ts +332 -8
  65. package/dist/blueprint-graph.d.ts.map +1 -1
  66. package/dist/blueprint-graph.js +42 -3
  67. package/dist/blueprint-graph.js.map +1 -1
  68. package/dist/cameras.d.ts +16 -12
  69. package/dist/cameras.d.ts.map +1 -1
  70. package/dist/cameras.js +1 -0
  71. package/dist/cameras.js.map +1 -1
  72. package/dist/companion.d.ts +6 -0
  73. package/dist/companion.d.ts.map +1 -1
  74. package/dist/companion.js +3 -0
  75. package/dist/companion.js.map +1 -1
  76. package/dist/editor-window-activation.d.ts +16 -0
  77. package/dist/editor-window-activation.d.ts.map +1 -0
  78. package/dist/editor-window-activation.js +19 -0
  79. package/dist/editor-window-activation.js.map +1 -0
  80. package/dist/editor-world-control.d.ts +125 -0
  81. package/dist/editor-world-control.d.ts.map +1 -1
  82. package/dist/editor-world-control.js +25 -0
  83. package/dist/editor-world-control.js.map +1 -1
  84. package/dist/index.d.ts +2 -0
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +2 -0
  87. package/dist/index.js.map +1 -1
  88. package/dist/level-sequence.d.ts +1315 -0
  89. package/dist/level-sequence.d.ts.map +1 -0
  90. package/dist/level-sequence.js +204 -0
  91. package/dist/level-sequence.js.map +1 -0
  92. package/dist/uasset-inspection.d.ts +128 -55
  93. package/dist/uasset-inspection.d.ts.map +1 -1
  94. package/dist/uasset-inspection.js +39 -2
  95. package/dist/uasset-inspection.js.map +1 -1
  96. package/dist/uasset-io.d.ts +1302 -9
  97. package/dist/uasset-io.d.ts.map +1 -1
  98. package/dist/uasset-io.js +4 -0
  99. package/dist/uasset-io.js.map +1 -1
  100. package/package.json +1 -1
@@ -0,0 +1,4891 @@
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
+ "editorPreviews": {
1737
+ "type": "boolean"
1738
+ }
1739
+ },
1740
+ "required": [
1741
+ "kind",
1742
+ "strategy",
1743
+ "profile",
1744
+ "vignette",
1745
+ "fog",
1746
+ "volumetricFog"
1747
+ ],
1748
+ "additionalProperties": false
1749
+ },
1750
+ {
1751
+ "type": "object",
1752
+ "properties": {
1753
+ "kind": {
1754
+ "type": "string",
1755
+ "enum": ["scene_capture"]
1756
+ },
1757
+ "profile": {
1758
+ "type": "string",
1759
+ "enum": [
1760
+ "full_fidelity",
1761
+ "seam_stable",
1762
+ "scene_capture_defaults",
1763
+ "observation"
1764
+ ]
1765
+ },
1766
+ "lodDistanceScale": {
1767
+ "type": "number",
1768
+ "allOf": [
1769
+ {
1770
+ "minimum": 0.1,
1771
+ "maximum": 100
1772
+ }
1773
+ ]
1774
+ },
1775
+ "fog": {
1776
+ "type": "boolean"
1777
+ },
1778
+ "volumetricFog": {
1779
+ "type": "boolean"
1780
+ },
1781
+ "editorPreviews": {
1782
+ "type": "boolean"
1783
+ }
1784
+ },
1785
+ "required": [
1786
+ "kind",
1787
+ "profile",
1788
+ "lodDistanceScale",
1789
+ "fog",
1790
+ "volumetricFog"
1791
+ ],
1792
+ "additionalProperties": false
1793
+ }
1794
+ ]
1795
+ },
1796
+ "exposure": {
1797
+ "anyOf": [
1798
+ {
1799
+ "type": "object",
1800
+ "properties": {
1801
+ "mode": {
1802
+ "type": "string",
1803
+ "enum": ["project_auto"]
1804
+ }
1805
+ },
1806
+ "required": ["mode"],
1807
+ "additionalProperties": false
1808
+ },
1809
+ {
1810
+ "type": "object",
1811
+ "properties": {
1812
+ "mode": {
1813
+ "type": "string",
1814
+ "enum": ["fixed_ev100"]
1815
+ },
1816
+ "ev100": {
1817
+ "type": "number",
1818
+ "allOf": [
1819
+ {
1820
+ "minimum": -20,
1821
+ "maximum": 30
1822
+ }
1823
+ ]
1824
+ },
1825
+ "compensation": {
1826
+ "type": "string",
1827
+ "enum": ["project"]
1828
+ }
1829
+ },
1830
+ "required": [
1831
+ "mode",
1832
+ "ev100",
1833
+ "compensation"
1834
+ ],
1835
+ "additionalProperties": false
1836
+ },
1837
+ {
1838
+ "type": "object",
1839
+ "properties": {
1840
+ "mode": {
1841
+ "type": "string",
1842
+ "enum": ["meter_once"]
1843
+ },
1844
+ "referenceCamera": {
1845
+ "type": "object",
1846
+ "properties": {
1847
+ "location": {
1848
+ "type": "object",
1849
+ "properties": {
1850
+ "x": {
1851
+ "type": "number"
1852
+ },
1853
+ "y": {
1854
+ "type": "number"
1855
+ },
1856
+ "z": {
1857
+ "type": "number"
1858
+ }
1859
+ },
1860
+ "required": [
1861
+ "x",
1862
+ "y",
1863
+ "z"
1864
+ ],
1865
+ "additionalProperties": false
1866
+ },
1867
+ "rotation": {
1868
+ "type": "object",
1869
+ "properties": {
1870
+ "pitch": {
1871
+ "type": "number"
1872
+ },
1873
+ "roll": {
1874
+ "type": "number"
1875
+ },
1876
+ "yaw": {
1877
+ "type": "number"
1878
+ }
1879
+ },
1880
+ "required": [
1881
+ "pitch",
1882
+ "roll",
1883
+ "yaw"
1884
+ ],
1885
+ "additionalProperties": false
1886
+ },
1887
+ "projection": {
1888
+ "anyOf": [
1889
+ {
1890
+ "type": "object",
1891
+ "properties": {
1892
+ "kind": {
1893
+ "type": "string",
1894
+ "enum": [
1895
+ "perspective"
1896
+ ]
1897
+ },
1898
+ "horizontalFieldOfView": {
1899
+ "type": "number",
1900
+ "allOf": [
1901
+ {
1902
+ "minimum": 5,
1903
+ "maximum": 170
1904
+ }
1905
+ ]
1906
+ }
1907
+ },
1908
+ "required": [
1909
+ "kind",
1910
+ "horizontalFieldOfView"
1911
+ ],
1912
+ "additionalProperties": false
1913
+ },
1914
+ {
1915
+ "type": "object",
1916
+ "properties": {
1917
+ "kind": {
1918
+ "type": "string",
1919
+ "enum": [
1920
+ "orthographic"
1921
+ ]
1922
+ },
1923
+ "width": {
1924
+ "type": "number",
1925
+ "allOf": [
1926
+ {
1927
+ "exclusiveMinimum": 0
1928
+ },
1929
+ {
1930
+ "maximum": 1000000000
1931
+ }
1932
+ ]
1933
+ }
1934
+ },
1935
+ "required": [
1936
+ "kind",
1937
+ "width"
1938
+ ],
1939
+ "additionalProperties": false
1940
+ }
1941
+ ]
1942
+ }
1943
+ },
1944
+ "required": [
1945
+ "location",
1946
+ "rotation",
1947
+ "projection"
1948
+ ],
1949
+ "additionalProperties": false
1950
+ },
1951
+ "referenceSize": {
1952
+ "type": "object",
1953
+ "properties": {
1954
+ "width": {
1955
+ "type": "integer",
1956
+ "allOf": [
1957
+ {
1958
+ "minimum": 16,
1959
+ "maximum": 16384
1960
+ }
1961
+ ]
1962
+ },
1963
+ "height": {
1964
+ "type": "integer",
1965
+ "allOf": [
1966
+ {
1967
+ "minimum": 16,
1968
+ "maximum": 16384
1969
+ }
1970
+ ]
1971
+ }
1972
+ },
1973
+ "required": ["width", "height"],
1974
+ "additionalProperties": false
1975
+ },
1976
+ "minimumFrames": {
1977
+ "type": "integer",
1978
+ "allOf": [
1979
+ {
1980
+ "minimum": 1,
1981
+ "maximum": 4096
1982
+ }
1983
+ ]
1984
+ }
1985
+ },
1986
+ "required": [
1987
+ "mode",
1988
+ "referenceCamera",
1989
+ "referenceSize",
1990
+ "minimumFrames"
1991
+ ],
1992
+ "additionalProperties": false
1993
+ }
1994
+ ]
1995
+ },
1996
+ "settling": {
1997
+ "type": "object",
1998
+ "properties": {
1999
+ "minimumFrames": {
2000
+ "type": "integer",
2001
+ "allOf": [
2002
+ {
2003
+ "minimum": 1,
2004
+ "maximum": 4096
2005
+ }
2006
+ ]
2007
+ },
2008
+ "timeoutMs": {
2009
+ "type": "integer",
2010
+ "allOf": [
2011
+ {
2012
+ "minimum": 1000,
2013
+ "maximum": 900000
2014
+ }
2015
+ ]
2016
+ },
2017
+ "initialView": {
2018
+ "type": "object",
2019
+ "properties": {
2020
+ "camera": {
2021
+ "type": "object",
2022
+ "properties": {
2023
+ "location": {
2024
+ "type": "object",
2025
+ "properties": {
2026
+ "x": {
2027
+ "type": "number"
2028
+ },
2029
+ "y": {
2030
+ "type": "number"
2031
+ },
2032
+ "z": {
2033
+ "type": "number"
2034
+ }
2035
+ },
2036
+ "required": [
2037
+ "x",
2038
+ "y",
2039
+ "z"
2040
+ ],
2041
+ "additionalProperties": false
2042
+ },
2043
+ "rotation": {
2044
+ "type": "object",
2045
+ "properties": {
2046
+ "pitch": {
2047
+ "type": "number"
2048
+ },
2049
+ "roll": {
2050
+ "type": "number"
2051
+ },
2052
+ "yaw": {
2053
+ "type": "number"
2054
+ }
2055
+ },
2056
+ "required": [
2057
+ "pitch",
2058
+ "roll",
2059
+ "yaw"
2060
+ ],
2061
+ "additionalProperties": false
2062
+ },
2063
+ "projection": {
2064
+ "anyOf": [
2065
+ {
2066
+ "type": "object",
2067
+ "properties": {
2068
+ "kind": {
2069
+ "type": "string",
2070
+ "enum": [
2071
+ "perspective"
2072
+ ]
2073
+ },
2074
+ "horizontalFieldOfView": {
2075
+ "type": "number",
2076
+ "allOf": [
2077
+ {
2078
+ "minimum": 5,
2079
+ "maximum": 170
2080
+ }
2081
+ ]
2082
+ }
2083
+ },
2084
+ "required": [
2085
+ "kind",
2086
+ "horizontalFieldOfView"
2087
+ ],
2088
+ "additionalProperties": false
2089
+ },
2090
+ {
2091
+ "type": "object",
2092
+ "properties": {
2093
+ "kind": {
2094
+ "type": "string",
2095
+ "enum": [
2096
+ "orthographic"
2097
+ ]
2098
+ },
2099
+ "width": {
2100
+ "type": "number",
2101
+ "allOf": [
2102
+ {
2103
+ "exclusiveMinimum": 0
2104
+ },
2105
+ {
2106
+ "maximum": 1000000000
2107
+ }
2108
+ ]
2109
+ }
2110
+ },
2111
+ "required": [
2112
+ "kind",
2113
+ "width"
2114
+ ],
2115
+ "additionalProperties": false
2116
+ }
2117
+ ]
2118
+ }
2119
+ },
2120
+ "required": [
2121
+ "location",
2122
+ "rotation",
2123
+ "projection"
2124
+ ],
2125
+ "additionalProperties": false
2126
+ },
2127
+ "size": {
2128
+ "type": "object",
2129
+ "properties": {
2130
+ "width": {
2131
+ "type": "integer",
2132
+ "allOf": [
2133
+ {
2134
+ "minimum": 16,
2135
+ "maximum": 16384
2136
+ }
2137
+ ]
2138
+ },
2139
+ "height": {
2140
+ "type": "integer",
2141
+ "allOf": [
2142
+ {
2143
+ "minimum": 16,
2144
+ "maximum": 16384
2145
+ }
2146
+ ]
2147
+ }
2148
+ },
2149
+ "required": ["width", "height"],
2150
+ "additionalProperties": false
2151
+ },
2152
+ "minimumFrames": {
2153
+ "type": "integer",
2154
+ "allOf": [
2155
+ {
2156
+ "minimum": 1,
2157
+ "maximum": 4096
2158
+ }
2159
+ ]
2160
+ }
2161
+ },
2162
+ "required": [
2163
+ "camera",
2164
+ "size",
2165
+ "minimumFrames"
2166
+ ],
2167
+ "additionalProperties": false
2168
+ }
2169
+ },
2170
+ "required": ["minimumFrames", "timeoutMs"],
2171
+ "additionalProperties": false
2172
+ },
2173
+ "time": {
2174
+ "type": "string",
2175
+ "enum": [
2176
+ "live_editor",
2177
+ "freeze_materials_and_ticks"
2178
+ ]
2179
+ },
2180
+ "preparation": {
2181
+ "type": "object",
2182
+ "properties": {
2183
+ "geometry": {
2184
+ "anyOf": [
2185
+ {
2186
+ "type": "object",
2187
+ "properties": {
2188
+ "mode": {
2189
+ "type": "string",
2190
+ "enum": [
2191
+ "preserve_loading"
2192
+ ]
2193
+ }
2194
+ },
2195
+ "required": ["mode"],
2196
+ "additionalProperties": false
2197
+ },
2198
+ {
2199
+ "type": "object",
2200
+ "properties": {
2201
+ "mode": {
2202
+ "type": "string",
2203
+ "enum": [
2204
+ "camera_regions"
2205
+ ]
2206
+ },
2207
+ "maximumRegions": {
2208
+ "type": "integer",
2209
+ "allOf": [
2210
+ {
2211
+ "minimum": 1,
2212
+ "maximum": 64
2213
+ }
2214
+ ]
2215
+ },
2216
+ "extent": {
2217
+ "type": "object",
2218
+ "properties": {
2219
+ "x": {
2220
+ "type": "number",
2221
+ "allOf": [
2222
+ {
2223
+ "minimum": 0,
2224
+ "maximum": 10000000
2225
+ }
2226
+ ]
2227
+ },
2228
+ "y": {
2229
+ "type": "number",
2230
+ "allOf": [
2231
+ {
2232
+ "minimum": 0,
2233
+ "maximum": 10000000
2234
+ }
2235
+ ]
2236
+ },
2237
+ "z": {
2238
+ "type": "number",
2239
+ "allOf": [
2240
+ {
2241
+ "minimum": 0,
2242
+ "maximum": 10000000
2243
+ }
2244
+ ]
2245
+ }
2246
+ },
2247
+ "required": [
2248
+ "x",
2249
+ "y",
2250
+ "z"
2251
+ ],
2252
+ "additionalProperties": false
2253
+ }
2254
+ },
2255
+ "required": [
2256
+ "mode",
2257
+ "maximumRegions",
2258
+ "extent"
2259
+ ],
2260
+ "additionalProperties": false
2261
+ }
2262
+ ]
2263
+ },
2264
+ "dataLayers": {
2265
+ "type": "array",
2266
+ "items": {
2267
+ "type": "object",
2268
+ "properties": {
2269
+ "assetPath": {
2270
+ "type": "string",
2271
+ "allOf": [
2272
+ {
2273
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
2274
+ },
2275
+ {
2276
+ "maxLength": 1024
2277
+ }
2278
+ ]
2279
+ },
2280
+ "loaded": {
2281
+ "type": "boolean"
2282
+ },
2283
+ "visible": {
2284
+ "type": "boolean"
2285
+ }
2286
+ },
2287
+ "required": [
2288
+ "assetPath",
2289
+ "loaded",
2290
+ "visible"
2291
+ ],
2292
+ "additionalProperties": false
2293
+ },
2294
+ "allOf": [
2295
+ {
2296
+ "maxItems": 64
2297
+ }
2298
+ ]
2299
+ }
2300
+ },
2301
+ "required": ["geometry", "dataLayers"],
2302
+ "additionalProperties": false
2303
+ }
2304
+ },
2305
+ "required": [
2306
+ "renderer",
2307
+ "exposure",
2308
+ "settling",
2309
+ "time",
2310
+ "preparation"
2311
+ ],
2312
+ "additionalProperties": false
2313
+ }
2314
+ },
2315
+ "required": [
2316
+ "arrangementId",
2317
+ "expectedRevision",
2318
+ "operationId",
2319
+ "kind",
2320
+ "policy"
2321
+ ],
2322
+ "additionalProperties": false
2323
+ },
2324
+ {
2325
+ "type": "object",
2326
+ "properties": {
2327
+ "arrangementId": {
2328
+ "type": "string",
2329
+ "allOf": [
2330
+ {
2331
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
2332
+ }
2333
+ ]
2334
+ },
2335
+ "expectedRevision": {
2336
+ "type": "integer",
2337
+ "allOf": [
2338
+ {
2339
+ "minimum": 0,
2340
+ "maximum": 9007199254740991
2341
+ }
2342
+ ]
2343
+ },
2344
+ "operationId": {
2345
+ "type": "string",
2346
+ "allOf": [
2347
+ {
2348
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
2349
+ }
2350
+ ]
2351
+ },
2352
+ "kind": {
2353
+ "type": "string",
2354
+ "enum": ["rename"]
2355
+ },
2356
+ "cameraId": {
2357
+ "type": "string",
2358
+ "allOf": [
2359
+ {
2360
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
2361
+ }
2362
+ ]
2363
+ },
2364
+ "displayName": {
2365
+ "type": "string",
2366
+ "allOf": [
2367
+ {
2368
+ "minLength": 1
2369
+ }
2370
+ ]
2371
+ }
2372
+ },
2373
+ "required": [
2374
+ "arrangementId",
2375
+ "expectedRevision",
2376
+ "operationId",
2377
+ "kind",
2378
+ "cameraId",
2379
+ "displayName"
2380
+ ],
2381
+ "additionalProperties": false
2382
+ },
2383
+ {
2384
+ "type": "object",
2385
+ "properties": {
2386
+ "arrangementId": {
2387
+ "type": "string",
2388
+ "allOf": [
2389
+ {
2390
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
2391
+ }
2392
+ ]
2393
+ },
2394
+ "expectedRevision": {
2395
+ "type": "integer",
2396
+ "allOf": [
2397
+ {
2398
+ "minimum": 0,
2399
+ "maximum": 9007199254740991
2400
+ }
2401
+ ]
2402
+ },
2403
+ "operationId": {
2404
+ "type": "string",
2405
+ "allOf": [
2406
+ {
2407
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
2408
+ }
2409
+ ]
2410
+ },
2411
+ "kind": {
2412
+ "type": "string",
2413
+ "enum": ["group"]
2414
+ },
2415
+ "group": {
2416
+ "type": "object",
2417
+ "properties": {
2418
+ "id": {
2419
+ "type": "string",
2420
+ "allOf": [
2421
+ {
2422
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
2423
+ }
2424
+ ]
2425
+ },
2426
+ "name": {
2427
+ "type": "string",
2428
+ "allOf": [
2429
+ {
2430
+ "minLength": 1
2431
+ }
2432
+ ]
2433
+ },
2434
+ "overrides": {
2435
+ "type": "object",
2436
+ "properties": {
2437
+ "fieldOfViewDegrees": {
2438
+ "type": "number",
2439
+ "allOf": [
2440
+ {
2441
+ "minimum": 5,
2442
+ "maximum": 170
2443
+ }
2444
+ ]
2445
+ },
2446
+ "distanceScale": {
2447
+ "type": "number",
2448
+ "allOf": [
2449
+ {
2450
+ "minimum": 0.01,
2451
+ "maximum": 100
2452
+ }
2453
+ ]
2454
+ },
2455
+ "heightOffset": {
2456
+ "type": "number"
2457
+ },
2458
+ "margin": {
2459
+ "type": "number",
2460
+ "allOf": [
2461
+ {
2462
+ "minimum": 0,
2463
+ "maximum": 0.45
2464
+ }
2465
+ ]
2466
+ },
2467
+ "elevationDegrees": {
2468
+ "type": "number",
2469
+ "allOf": [
2470
+ {
2471
+ "minimum": -89,
2472
+ "maximum": 89
2473
+ }
2474
+ ]
2475
+ },
2476
+ "yawOffset": {
2477
+ "type": "number"
2478
+ },
2479
+ "aimOffset": {
2480
+ "type": "object",
2481
+ "properties": {
2482
+ "x": {
2483
+ "type": "number"
2484
+ },
2485
+ "y": {
2486
+ "type": "number"
2487
+ },
2488
+ "z": {
2489
+ "type": "number"
2490
+ }
2491
+ },
2492
+ "required": ["x", "y", "z"],
2493
+ "additionalProperties": false
2494
+ }
2495
+ },
2496
+ "additionalProperties": false
2497
+ },
2498
+ "visibility": {
2499
+ "type": "object",
2500
+ "properties": {
2501
+ "hide": {
2502
+ "type": "array",
2503
+ "items": {
2504
+ "type": "object",
2505
+ "properties": {
2506
+ "locator": {
2507
+ "anyOf": [
2508
+ {
2509
+ "type": "object",
2510
+ "properties": {
2511
+ "kind": {
2512
+ "type": "string",
2513
+ "enum": [
2514
+ "actor_path"
2515
+ ]
2516
+ },
2517
+ "actorPath": {
2518
+ "type": "string",
2519
+ "allOf": [
2520
+ {
2521
+ "pattern": "^\\/Game\\/"
2522
+ },
2523
+ {
2524
+ "maxLength": 4096
2525
+ }
2526
+ ]
2527
+ }
2528
+ },
2529
+ "required": [
2530
+ "kind",
2531
+ "actorPath"
2532
+ ],
2533
+ "additionalProperties": false
2534
+ },
2535
+ {
2536
+ "type": "object",
2537
+ "properties": {
2538
+ "kind": {
2539
+ "type": "string",
2540
+ "enum": [
2541
+ "actor_guid"
2542
+ ]
2543
+ },
2544
+ "actorGuid": {
2545
+ "type": "string",
2546
+ "allOf": [
2547
+ {
2548
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
2549
+ }
2550
+ ]
2551
+ },
2552
+ "lastKnownActorPath": {
2553
+ "type": "string",
2554
+ "allOf": [
2555
+ {
2556
+ "maxLength": 4096
2557
+ }
2558
+ ]
2559
+ }
2560
+ },
2561
+ "required": [
2562
+ "kind",
2563
+ "actorGuid",
2564
+ "lastKnownActorPath"
2565
+ ],
2566
+ "additionalProperties": false
2567
+ }
2568
+ ]
2569
+ },
2570
+ "label": {
2571
+ "type": "string",
2572
+ "allOf": [
2573
+ {
2574
+ "maxLength": 256
2575
+ }
2576
+ ]
2577
+ }
2578
+ },
2579
+ "required": ["locator", "label"],
2580
+ "additionalProperties": false
2581
+ },
2582
+ "allOf": [
2583
+ {
2584
+ "maxItems": 256
2585
+ }
2586
+ ]
2587
+ },
2588
+ "protect": {
2589
+ "type": "array",
2590
+ "items": {
2591
+ "type": "object",
2592
+ "properties": {
2593
+ "locator": {
2594
+ "anyOf": [
2595
+ {
2596
+ "type": "object",
2597
+ "properties": {
2598
+ "kind": {
2599
+ "type": "string",
2600
+ "enum": [
2601
+ "actor_path"
2602
+ ]
2603
+ },
2604
+ "actorPath": {
2605
+ "type": "string",
2606
+ "allOf": [
2607
+ {
2608
+ "pattern": "^\\/Game\\/"
2609
+ },
2610
+ {
2611
+ "maxLength": 4096
2612
+ }
2613
+ ]
2614
+ }
2615
+ },
2616
+ "required": [
2617
+ "kind",
2618
+ "actorPath"
2619
+ ],
2620
+ "additionalProperties": false
2621
+ },
2622
+ {
2623
+ "type": "object",
2624
+ "properties": {
2625
+ "kind": {
2626
+ "type": "string",
2627
+ "enum": [
2628
+ "actor_guid"
2629
+ ]
2630
+ },
2631
+ "actorGuid": {
2632
+ "type": "string",
2633
+ "allOf": [
2634
+ {
2635
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
2636
+ }
2637
+ ]
2638
+ },
2639
+ "lastKnownActorPath": {
2640
+ "type": "string",
2641
+ "allOf": [
2642
+ {
2643
+ "maxLength": 4096
2644
+ }
2645
+ ]
2646
+ }
2647
+ },
2648
+ "required": [
2649
+ "kind",
2650
+ "actorGuid",
2651
+ "lastKnownActorPath"
2652
+ ],
2653
+ "additionalProperties": false
2654
+ }
2655
+ ]
2656
+ },
2657
+ "label": {
2658
+ "type": "string",
2659
+ "allOf": [
2660
+ {
2661
+ "maxLength": 256
2662
+ }
2663
+ ]
2664
+ }
2665
+ },
2666
+ "required": ["locator", "label"],
2667
+ "additionalProperties": false
2668
+ },
2669
+ "allOf": [
2670
+ {
2671
+ "maxItems": 256
2672
+ }
2673
+ ]
2674
+ }
2675
+ },
2676
+ "required": ["hide", "protect"],
2677
+ "additionalProperties": false
2678
+ }
2679
+ },
2680
+ "required": ["id", "name", "overrides"],
2681
+ "additionalProperties": false
2682
+ },
2683
+ "cameraIds": {
2684
+ "type": "array",
2685
+ "items": {
2686
+ "type": "string",
2687
+ "allOf": [
2688
+ {
2689
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
2690
+ }
2691
+ ]
2692
+ },
2693
+ "allOf": [
2694
+ {
2695
+ "minItems": 1
2696
+ },
2697
+ {
2698
+ "maxItems": 256
2699
+ }
2700
+ ]
2701
+ }
2702
+ },
2703
+ "required": [
2704
+ "arrangementId",
2705
+ "expectedRevision",
2706
+ "operationId",
2707
+ "kind",
2708
+ "group",
2709
+ "cameraIds"
2710
+ ],
2711
+ "additionalProperties": false
2712
+ },
2713
+ {
2714
+ "type": "object",
2715
+ "properties": {
2716
+ "arrangementId": {
2717
+ "type": "string",
2718
+ "allOf": [
2719
+ {
2720
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
2721
+ }
2722
+ ]
2723
+ },
2724
+ "expectedRevision": {
2725
+ "type": "integer",
2726
+ "allOf": [
2727
+ {
2728
+ "minimum": 0,
2729
+ "maximum": 9007199254740991
2730
+ }
2731
+ ]
2732
+ },
2733
+ "operationId": {
2734
+ "type": "string",
2735
+ "allOf": [
2736
+ {
2737
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
2738
+ }
2739
+ ]
2740
+ },
2741
+ "kind": {
2742
+ "type": "string",
2743
+ "enum": ["add"]
2744
+ },
2745
+ "camera": {
2746
+ "type": "object",
2747
+ "properties": {
2748
+ "id": {
2749
+ "type": "string",
2750
+ "allOf": [
2751
+ {
2752
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
2753
+ }
2754
+ ]
2755
+ },
2756
+ "displayName": {
2757
+ "type": "string",
2758
+ "allOf": [
2759
+ {
2760
+ "minLength": 1
2761
+ }
2762
+ ]
2763
+ },
2764
+ "yawDegrees": {
2765
+ "type": "number"
2766
+ },
2767
+ "overrides": {
2768
+ "type": "object",
2769
+ "properties": {
2770
+ "fieldOfViewDegrees": {
2771
+ "type": "number",
2772
+ "allOf": [
2773
+ {
2774
+ "minimum": 5,
2775
+ "maximum": 170
2776
+ }
2777
+ ]
2778
+ },
2779
+ "distanceScale": {
2780
+ "type": "number",
2781
+ "allOf": [
2782
+ {
2783
+ "minimum": 0.01,
2784
+ "maximum": 100
2785
+ }
2786
+ ]
2787
+ },
2788
+ "heightOffset": {
2789
+ "type": "number"
2790
+ },
2791
+ "margin": {
2792
+ "type": "number",
2793
+ "allOf": [
2794
+ {
2795
+ "minimum": 0,
2796
+ "maximum": 0.45
2797
+ }
2798
+ ]
2799
+ },
2800
+ "elevationDegrees": {
2801
+ "type": "number",
2802
+ "allOf": [
2803
+ {
2804
+ "minimum": -89,
2805
+ "maximum": 89
2806
+ }
2807
+ ]
2808
+ },
2809
+ "yawOffset": {
2810
+ "type": "number"
2811
+ },
2812
+ "aimOffset": {
2813
+ "type": "object",
2814
+ "properties": {
2815
+ "x": {
2816
+ "type": "number"
2817
+ },
2818
+ "y": {
2819
+ "type": "number"
2820
+ },
2821
+ "z": {
2822
+ "type": "number"
2823
+ }
2824
+ },
2825
+ "required": ["x", "y", "z"],
2826
+ "additionalProperties": false
2827
+ }
2828
+ },
2829
+ "additionalProperties": false
2830
+ },
2831
+ "manualPose": {
2832
+ "type": "object",
2833
+ "properties": {
2834
+ "aspectRatio": {
2835
+ "type": "string",
2836
+ "enum": ["16:9"]
2837
+ },
2838
+ "fieldOfViewDegrees": {
2839
+ "type": "number",
2840
+ "allOf": [
2841
+ {
2842
+ "minimum": 5,
2843
+ "maximum": 170
2844
+ }
2845
+ ]
2846
+ },
2847
+ "location": {
2848
+ "type": "object",
2849
+ "properties": {
2850
+ "x": {
2851
+ "type": "number"
2852
+ },
2853
+ "y": {
2854
+ "type": "number"
2855
+ },
2856
+ "z": {
2857
+ "type": "number"
2858
+ }
2859
+ },
2860
+ "required": ["x", "y", "z"],
2861
+ "additionalProperties": false
2862
+ },
2863
+ "projection": {
2864
+ "type": "string",
2865
+ "enum": ["perspective"]
2866
+ },
2867
+ "rotation": {
2868
+ "type": "object",
2869
+ "properties": {
2870
+ "pitch": {
2871
+ "type": "number"
2872
+ },
2873
+ "roll": {
2874
+ "type": "number"
2875
+ },
2876
+ "yaw": {
2877
+ "type": "number"
2878
+ }
2879
+ },
2880
+ "required": ["pitch", "roll", "yaw"],
2881
+ "additionalProperties": false
2882
+ }
2883
+ },
2884
+ "required": [
2885
+ "aspectRatio",
2886
+ "fieldOfViewDegrees",
2887
+ "location",
2888
+ "projection",
2889
+ "rotation"
2890
+ ],
2891
+ "additionalProperties": false
2892
+ },
2893
+ "viewId": {
2894
+ "type": "string",
2895
+ "allOf": [
2896
+ {
2897
+ "minLength": 1
2898
+ },
2899
+ {
2900
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
2901
+ }
2902
+ ]
2903
+ },
2904
+ "groupId": {
2905
+ "type": "string",
2906
+ "allOf": [
2907
+ {
2908
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
2909
+ }
2910
+ ]
2911
+ },
2912
+ "visibility": {
2913
+ "type": "object",
2914
+ "properties": {
2915
+ "hide": {
2916
+ "type": "array",
2917
+ "items": {
2918
+ "type": "object",
2919
+ "properties": {
2920
+ "locator": {
2921
+ "anyOf": [
2922
+ {
2923
+ "type": "object",
2924
+ "properties": {
2925
+ "kind": {
2926
+ "type": "string",
2927
+ "enum": [
2928
+ "actor_path"
2929
+ ]
2930
+ },
2931
+ "actorPath": {
2932
+ "type": "string",
2933
+ "allOf": [
2934
+ {
2935
+ "pattern": "^\\/Game\\/"
2936
+ },
2937
+ {
2938
+ "maxLength": 4096
2939
+ }
2940
+ ]
2941
+ }
2942
+ },
2943
+ "required": [
2944
+ "kind",
2945
+ "actorPath"
2946
+ ],
2947
+ "additionalProperties": false
2948
+ },
2949
+ {
2950
+ "type": "object",
2951
+ "properties": {
2952
+ "kind": {
2953
+ "type": "string",
2954
+ "enum": [
2955
+ "actor_guid"
2956
+ ]
2957
+ },
2958
+ "actorGuid": {
2959
+ "type": "string",
2960
+ "allOf": [
2961
+ {
2962
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
2963
+ }
2964
+ ]
2965
+ },
2966
+ "lastKnownActorPath": {
2967
+ "type": "string",
2968
+ "allOf": [
2969
+ {
2970
+ "maxLength": 4096
2971
+ }
2972
+ ]
2973
+ }
2974
+ },
2975
+ "required": [
2976
+ "kind",
2977
+ "actorGuid",
2978
+ "lastKnownActorPath"
2979
+ ],
2980
+ "additionalProperties": false
2981
+ }
2982
+ ]
2983
+ },
2984
+ "label": {
2985
+ "type": "string",
2986
+ "allOf": [
2987
+ {
2988
+ "maxLength": 256
2989
+ }
2990
+ ]
2991
+ }
2992
+ },
2993
+ "required": ["locator", "label"],
2994
+ "additionalProperties": false
2995
+ },
2996
+ "allOf": [
2997
+ {
2998
+ "maxItems": 256
2999
+ }
3000
+ ]
3001
+ },
3002
+ "protect": {
3003
+ "type": "array",
3004
+ "items": {
3005
+ "type": "object",
3006
+ "properties": {
3007
+ "locator": {
3008
+ "anyOf": [
3009
+ {
3010
+ "type": "object",
3011
+ "properties": {
3012
+ "kind": {
3013
+ "type": "string",
3014
+ "enum": [
3015
+ "actor_path"
3016
+ ]
3017
+ },
3018
+ "actorPath": {
3019
+ "type": "string",
3020
+ "allOf": [
3021
+ {
3022
+ "pattern": "^\\/Game\\/"
3023
+ },
3024
+ {
3025
+ "maxLength": 4096
3026
+ }
3027
+ ]
3028
+ }
3029
+ },
3030
+ "required": [
3031
+ "kind",
3032
+ "actorPath"
3033
+ ],
3034
+ "additionalProperties": false
3035
+ },
3036
+ {
3037
+ "type": "object",
3038
+ "properties": {
3039
+ "kind": {
3040
+ "type": "string",
3041
+ "enum": [
3042
+ "actor_guid"
3043
+ ]
3044
+ },
3045
+ "actorGuid": {
3046
+ "type": "string",
3047
+ "allOf": [
3048
+ {
3049
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
3050
+ }
3051
+ ]
3052
+ },
3053
+ "lastKnownActorPath": {
3054
+ "type": "string",
3055
+ "allOf": [
3056
+ {
3057
+ "maxLength": 4096
3058
+ }
3059
+ ]
3060
+ }
3061
+ },
3062
+ "required": [
3063
+ "kind",
3064
+ "actorGuid",
3065
+ "lastKnownActorPath"
3066
+ ],
3067
+ "additionalProperties": false
3068
+ }
3069
+ ]
3070
+ },
3071
+ "label": {
3072
+ "type": "string",
3073
+ "allOf": [
3074
+ {
3075
+ "maxLength": 256
3076
+ }
3077
+ ]
3078
+ }
3079
+ },
3080
+ "required": ["locator", "label"],
3081
+ "additionalProperties": false
3082
+ },
3083
+ "allOf": [
3084
+ {
3085
+ "maxItems": 256
3086
+ }
3087
+ ]
3088
+ }
3089
+ },
3090
+ "required": ["hide", "protect"],
3091
+ "additionalProperties": false
3092
+ }
3093
+ },
3094
+ "required": [
3095
+ "id",
3096
+ "displayName",
3097
+ "yawDegrees",
3098
+ "overrides",
3099
+ "viewId"
3100
+ ],
3101
+ "additionalProperties": false
3102
+ },
3103
+ "afterCameraId": {
3104
+ "type": "string",
3105
+ "allOf": [
3106
+ {
3107
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3108
+ }
3109
+ ]
3110
+ }
3111
+ },
3112
+ "required": [
3113
+ "arrangementId",
3114
+ "expectedRevision",
3115
+ "operationId",
3116
+ "kind",
3117
+ "camera"
3118
+ ],
3119
+ "additionalProperties": false
3120
+ },
3121
+ {
3122
+ "type": "object",
3123
+ "properties": {
3124
+ "arrangementId": {
3125
+ "type": "string",
3126
+ "allOf": [
3127
+ {
3128
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3129
+ }
3130
+ ]
3131
+ },
3132
+ "expectedRevision": {
3133
+ "type": "integer",
3134
+ "allOf": [
3135
+ {
3136
+ "minimum": 0,
3137
+ "maximum": 9007199254740991
3138
+ }
3139
+ ]
3140
+ },
3141
+ "operationId": {
3142
+ "type": "string",
3143
+ "allOf": [
3144
+ {
3145
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3146
+ }
3147
+ ]
3148
+ },
3149
+ "kind": {
3150
+ "type": "string",
3151
+ "enum": ["duplicate"]
3152
+ },
3153
+ "cameraId": {
3154
+ "type": "string",
3155
+ "allOf": [
3156
+ {
3157
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3158
+ }
3159
+ ]
3160
+ },
3161
+ "newCameraId": {
3162
+ "type": "string",
3163
+ "allOf": [
3164
+ {
3165
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3166
+ }
3167
+ ]
3168
+ },
3169
+ "newViewId": {
3170
+ "type": "string",
3171
+ "allOf": [
3172
+ {
3173
+ "minLength": 1
3174
+ },
3175
+ {
3176
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
3177
+ }
3178
+ ]
3179
+ }
3180
+ },
3181
+ "required": [
3182
+ "arrangementId",
3183
+ "expectedRevision",
3184
+ "operationId",
3185
+ "kind",
3186
+ "cameraId",
3187
+ "newCameraId",
3188
+ "newViewId"
3189
+ ],
3190
+ "additionalProperties": false
3191
+ },
3192
+ {
3193
+ "type": "object",
3194
+ "properties": {
3195
+ "arrangementId": {
3196
+ "type": "string",
3197
+ "allOf": [
3198
+ {
3199
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3200
+ }
3201
+ ]
3202
+ },
3203
+ "expectedRevision": {
3204
+ "type": "integer",
3205
+ "allOf": [
3206
+ {
3207
+ "minimum": 0,
3208
+ "maximum": 9007199254740991
3209
+ }
3210
+ ]
3211
+ },
3212
+ "operationId": {
3213
+ "type": "string",
3214
+ "allOf": [
3215
+ {
3216
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3217
+ }
3218
+ ]
3219
+ },
3220
+ "kind": {
3221
+ "type": "string",
3222
+ "enum": ["remove"]
3223
+ },
3224
+ "cameraIds": {
3225
+ "type": "array",
3226
+ "items": {
3227
+ "type": "string",
3228
+ "allOf": [
3229
+ {
3230
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3231
+ }
3232
+ ]
3233
+ },
3234
+ "allOf": [
3235
+ {
3236
+ "minItems": 1
3237
+ }
3238
+ ]
3239
+ },
3240
+ "discardCustomizedIds": {
3241
+ "type": "array",
3242
+ "items": {
3243
+ "type": "string",
3244
+ "allOf": [
3245
+ {
3246
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3247
+ }
3248
+ ]
3249
+ }
3250
+ }
3251
+ },
3252
+ "required": [
3253
+ "arrangementId",
3254
+ "expectedRevision",
3255
+ "operationId",
3256
+ "kind",
3257
+ "cameraIds",
3258
+ "discardCustomizedIds"
3259
+ ],
3260
+ "additionalProperties": false
3261
+ },
3262
+ {
3263
+ "type": "object",
3264
+ "properties": {
3265
+ "arrangementId": {
3266
+ "type": "string",
3267
+ "allOf": [
3268
+ {
3269
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3270
+ }
3271
+ ]
3272
+ },
3273
+ "expectedRevision": {
3274
+ "type": "integer",
3275
+ "allOf": [
3276
+ {
3277
+ "minimum": 0,
3278
+ "maximum": 9007199254740991
3279
+ }
3280
+ ]
3281
+ },
3282
+ "operationId": {
3283
+ "type": "string",
3284
+ "allOf": [
3285
+ {
3286
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3287
+ }
3288
+ ]
3289
+ },
3290
+ "kind": {
3291
+ "type": "string",
3292
+ "enum": ["reorder"]
3293
+ },
3294
+ "cameraIds": {
3295
+ "type": "array",
3296
+ "items": {
3297
+ "type": "string",
3298
+ "allOf": [
3299
+ {
3300
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3301
+ }
3302
+ ]
3303
+ },
3304
+ "allOf": [
3305
+ {
3306
+ "minItems": 1
3307
+ }
3308
+ ]
3309
+ }
3310
+ },
3311
+ "required": [
3312
+ "arrangementId",
3313
+ "expectedRevision",
3314
+ "operationId",
3315
+ "kind",
3316
+ "cameraIds"
3317
+ ],
3318
+ "additionalProperties": false
3319
+ },
3320
+ {
3321
+ "type": "object",
3322
+ "properties": {
3323
+ "arrangementId": {
3324
+ "type": "string",
3325
+ "allOf": [
3326
+ {
3327
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3328
+ }
3329
+ ]
3330
+ },
3331
+ "expectedRevision": {
3332
+ "type": "integer",
3333
+ "allOf": [
3334
+ {
3335
+ "minimum": 0,
3336
+ "maximum": 9007199254740991
3337
+ }
3338
+ ]
3339
+ },
3340
+ "operationId": {
3341
+ "type": "string",
3342
+ "allOf": [
3343
+ {
3344
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3345
+ }
3346
+ ]
3347
+ },
3348
+ "kind": {
3349
+ "type": "string",
3350
+ "enum": ["nudge"]
3351
+ },
3352
+ "scope": {
3353
+ "anyOf": [
3354
+ {
3355
+ "type": "object",
3356
+ "properties": {
3357
+ "kind": {
3358
+ "type": "string",
3359
+ "enum": ["arrangement"]
3360
+ }
3361
+ },
3362
+ "required": ["kind"],
3363
+ "additionalProperties": false
3364
+ },
3365
+ {
3366
+ "type": "object",
3367
+ "properties": {
3368
+ "kind": {
3369
+ "type": "string",
3370
+ "enum": ["group"]
3371
+ },
3372
+ "groupId": {
3373
+ "type": "string",
3374
+ "allOf": [
3375
+ {
3376
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3377
+ }
3378
+ ]
3379
+ }
3380
+ },
3381
+ "required": ["kind", "groupId"],
3382
+ "additionalProperties": false
3383
+ },
3384
+ {
3385
+ "type": "object",
3386
+ "properties": {
3387
+ "kind": {
3388
+ "type": "string",
3389
+ "enum": ["cameras"]
3390
+ },
3391
+ "cameraIds": {
3392
+ "type": "array",
3393
+ "items": {
3394
+ "type": "string",
3395
+ "allOf": [
3396
+ {
3397
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3398
+ }
3399
+ ]
3400
+ },
3401
+ "allOf": [
3402
+ {
3403
+ "minItems": 1
3404
+ },
3405
+ {
3406
+ "maxItems": 256
3407
+ }
3408
+ ]
3409
+ }
3410
+ },
3411
+ "required": ["kind", "cameraIds"],
3412
+ "additionalProperties": false
3413
+ }
3414
+ ]
3415
+ },
3416
+ "translation": {
3417
+ "type": "object",
3418
+ "properties": {
3419
+ "x": {
3420
+ "type": "number"
3421
+ },
3422
+ "y": {
3423
+ "type": "number"
3424
+ },
3425
+ "z": {
3426
+ "type": "number"
3427
+ }
3428
+ },
3429
+ "required": ["x", "y", "z"],
3430
+ "additionalProperties": false
3431
+ },
3432
+ "dolly": {
3433
+ "type": "number"
3434
+ }
3435
+ },
3436
+ "required": [
3437
+ "arrangementId",
3438
+ "expectedRevision",
3439
+ "operationId",
3440
+ "kind",
3441
+ "scope",
3442
+ "translation",
3443
+ "dolly"
3444
+ ],
3445
+ "additionalProperties": false
3446
+ },
3447
+ {
3448
+ "type": "object",
3449
+ "properties": {
3450
+ "arrangementId": {
3451
+ "type": "string",
3452
+ "allOf": [
3453
+ {
3454
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3455
+ }
3456
+ ]
3457
+ },
3458
+ "expectedRevision": {
3459
+ "type": "integer",
3460
+ "allOf": [
3461
+ {
3462
+ "minimum": 0,
3463
+ "maximum": 9007199254740991
3464
+ }
3465
+ ]
3466
+ },
3467
+ "operationId": {
3468
+ "type": "string",
3469
+ "allOf": [
3470
+ {
3471
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3472
+ }
3473
+ ]
3474
+ },
3475
+ "kind": {
3476
+ "type": "string",
3477
+ "enum": ["tune"]
3478
+ },
3479
+ "settings": {
3480
+ "type": "object",
3481
+ "properties": {
3482
+ "fieldOfViewDegrees": {
3483
+ "type": "number",
3484
+ "allOf": [
3485
+ {
3486
+ "minimum": 5,
3487
+ "maximum": 170
3488
+ }
3489
+ ]
3490
+ },
3491
+ "distanceScale": {
3492
+ "type": "number",
3493
+ "allOf": [
3494
+ {
3495
+ "minimum": 0.01,
3496
+ "maximum": 100
3497
+ }
3498
+ ]
3499
+ },
3500
+ "heightOffset": {
3501
+ "type": "number"
3502
+ },
3503
+ "margin": {
3504
+ "type": "number",
3505
+ "allOf": [
3506
+ {
3507
+ "minimum": 0,
3508
+ "maximum": 0.45
3509
+ }
3510
+ ]
3511
+ },
3512
+ "elevationDegrees": {
3513
+ "type": "number",
3514
+ "allOf": [
3515
+ {
3516
+ "minimum": -89,
3517
+ "maximum": 89
3518
+ }
3519
+ ]
3520
+ },
3521
+ "yawOffset": {
3522
+ "type": "number"
3523
+ },
3524
+ "aimOffset": {
3525
+ "type": "object",
3526
+ "properties": {
3527
+ "x": {
3528
+ "type": "number"
3529
+ },
3530
+ "y": {
3531
+ "type": "number"
3532
+ },
3533
+ "z": {
3534
+ "type": "number"
3535
+ }
3536
+ },
3537
+ "required": ["x", "y", "z"],
3538
+ "additionalProperties": false
3539
+ }
3540
+ },
3541
+ "additionalProperties": false
3542
+ }
3543
+ },
3544
+ "required": [
3545
+ "arrangementId",
3546
+ "expectedRevision",
3547
+ "operationId",
3548
+ "kind",
3549
+ "settings"
3550
+ ],
3551
+ "additionalProperties": false
3552
+ },
3553
+ {
3554
+ "type": "object",
3555
+ "properties": {
3556
+ "arrangementId": {
3557
+ "type": "string",
3558
+ "allOf": [
3559
+ {
3560
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3561
+ }
3562
+ ]
3563
+ },
3564
+ "expectedRevision": {
3565
+ "type": "integer",
3566
+ "allOf": [
3567
+ {
3568
+ "minimum": 0,
3569
+ "maximum": 9007199254740991
3570
+ }
3571
+ ]
3572
+ },
3573
+ "operationId": {
3574
+ "type": "string",
3575
+ "allOf": [
3576
+ {
3577
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3578
+ }
3579
+ ]
3580
+ },
3581
+ "kind": {
3582
+ "type": "string",
3583
+ "enum": ["override"]
3584
+ },
3585
+ "cameraId": {
3586
+ "type": "string",
3587
+ "allOf": [
3588
+ {
3589
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3590
+ }
3591
+ ]
3592
+ },
3593
+ "overrides": {
3594
+ "type": "object",
3595
+ "properties": {
3596
+ "fieldOfViewDegrees": {
3597
+ "type": "number",
3598
+ "allOf": [
3599
+ {
3600
+ "minimum": 5,
3601
+ "maximum": 170
3602
+ }
3603
+ ]
3604
+ },
3605
+ "distanceScale": {
3606
+ "type": "number",
3607
+ "allOf": [
3608
+ {
3609
+ "minimum": 0.01,
3610
+ "maximum": 100
3611
+ }
3612
+ ]
3613
+ },
3614
+ "heightOffset": {
3615
+ "type": "number"
3616
+ },
3617
+ "margin": {
3618
+ "type": "number",
3619
+ "allOf": [
3620
+ {
3621
+ "minimum": 0,
3622
+ "maximum": 0.45
3623
+ }
3624
+ ]
3625
+ },
3626
+ "elevationDegrees": {
3627
+ "type": "number",
3628
+ "allOf": [
3629
+ {
3630
+ "minimum": -89,
3631
+ "maximum": 89
3632
+ }
3633
+ ]
3634
+ },
3635
+ "yawOffset": {
3636
+ "type": "number"
3637
+ },
3638
+ "aimOffset": {
3639
+ "type": "object",
3640
+ "properties": {
3641
+ "x": {
3642
+ "type": "number"
3643
+ },
3644
+ "y": {
3645
+ "type": "number"
3646
+ },
3647
+ "z": {
3648
+ "type": "number"
3649
+ }
3650
+ },
3651
+ "required": ["x", "y", "z"],
3652
+ "additionalProperties": false
3653
+ }
3654
+ },
3655
+ "additionalProperties": false
3656
+ }
3657
+ },
3658
+ "required": [
3659
+ "arrangementId",
3660
+ "expectedRevision",
3661
+ "operationId",
3662
+ "kind",
3663
+ "cameraId",
3664
+ "overrides"
3665
+ ],
3666
+ "additionalProperties": false
3667
+ },
3668
+ {
3669
+ "type": "object",
3670
+ "properties": {
3671
+ "arrangementId": {
3672
+ "type": "string",
3673
+ "allOf": [
3674
+ {
3675
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3676
+ }
3677
+ ]
3678
+ },
3679
+ "expectedRevision": {
3680
+ "type": "integer",
3681
+ "allOf": [
3682
+ {
3683
+ "minimum": 0,
3684
+ "maximum": 9007199254740991
3685
+ }
3686
+ ]
3687
+ },
3688
+ "operationId": {
3689
+ "type": "string",
3690
+ "allOf": [
3691
+ {
3692
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3693
+ }
3694
+ ]
3695
+ },
3696
+ "kind": {
3697
+ "type": "string",
3698
+ "enum": ["pose"]
3699
+ },
3700
+ "cameraId": {
3701
+ "type": "string",
3702
+ "allOf": [
3703
+ {
3704
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3705
+ }
3706
+ ]
3707
+ },
3708
+ "pose": {
3709
+ "type": "object",
3710
+ "properties": {
3711
+ "aspectRatio": {
3712
+ "type": "string",
3713
+ "enum": ["16:9"]
3714
+ },
3715
+ "fieldOfViewDegrees": {
3716
+ "type": "number",
3717
+ "allOf": [
3718
+ {
3719
+ "minimum": 5,
3720
+ "maximum": 170
3721
+ }
3722
+ ]
3723
+ },
3724
+ "location": {
3725
+ "type": "object",
3726
+ "properties": {
3727
+ "x": {
3728
+ "type": "number"
3729
+ },
3730
+ "y": {
3731
+ "type": "number"
3732
+ },
3733
+ "z": {
3734
+ "type": "number"
3735
+ }
3736
+ },
3737
+ "required": ["x", "y", "z"],
3738
+ "additionalProperties": false
3739
+ },
3740
+ "projection": {
3741
+ "type": "string",
3742
+ "enum": ["perspective"]
3743
+ },
3744
+ "rotation": {
3745
+ "type": "object",
3746
+ "properties": {
3747
+ "pitch": {
3748
+ "type": "number"
3749
+ },
3750
+ "roll": {
3751
+ "type": "number"
3752
+ },
3753
+ "yaw": {
3754
+ "type": "number"
3755
+ }
3756
+ },
3757
+ "required": ["pitch", "roll", "yaw"],
3758
+ "additionalProperties": false
3759
+ }
3760
+ },
3761
+ "required": [
3762
+ "aspectRatio",
3763
+ "fieldOfViewDegrees",
3764
+ "location",
3765
+ "projection",
3766
+ "rotation"
3767
+ ],
3768
+ "additionalProperties": false
3769
+ },
3770
+ "lensChanged": {
3771
+ "type": "boolean"
3772
+ },
3773
+ "poseChanged": {
3774
+ "type": "boolean"
3775
+ }
3776
+ },
3777
+ "required": [
3778
+ "arrangementId",
3779
+ "expectedRevision",
3780
+ "operationId",
3781
+ "kind",
3782
+ "cameraId",
3783
+ "pose",
3784
+ "lensChanged",
3785
+ "poseChanged"
3786
+ ],
3787
+ "additionalProperties": false
3788
+ },
3789
+ {
3790
+ "type": "object",
3791
+ "properties": {
3792
+ "arrangementId": {
3793
+ "type": "string",
3794
+ "allOf": [
3795
+ {
3796
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3797
+ }
3798
+ ]
3799
+ },
3800
+ "expectedRevision": {
3801
+ "type": "integer",
3802
+ "allOf": [
3803
+ {
3804
+ "minimum": 0,
3805
+ "maximum": 9007199254740991
3806
+ }
3807
+ ]
3808
+ },
3809
+ "operationId": {
3810
+ "type": "string",
3811
+ "allOf": [
3812
+ {
3813
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3814
+ }
3815
+ ]
3816
+ },
3817
+ "kind": {
3818
+ "type": "string",
3819
+ "enum": ["unpin"]
3820
+ },
3821
+ "cameraId": {
3822
+ "type": "string",
3823
+ "allOf": [
3824
+ {
3825
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3826
+ }
3827
+ ]
3828
+ }
3829
+ },
3830
+ "required": [
3831
+ "arrangementId",
3832
+ "expectedRevision",
3833
+ "operationId",
3834
+ "kind",
3835
+ "cameraId"
3836
+ ],
3837
+ "additionalProperties": false
3838
+ },
3839
+ {
3840
+ "type": "object",
3841
+ "properties": {
3842
+ "arrangementId": {
3843
+ "type": "string",
3844
+ "allOf": [
3845
+ {
3846
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3847
+ }
3848
+ ]
3849
+ },
3850
+ "expectedRevision": {
3851
+ "type": "integer",
3852
+ "allOf": [
3853
+ {
3854
+ "minimum": 0,
3855
+ "maximum": 9007199254740991
3856
+ }
3857
+ ]
3858
+ },
3859
+ "operationId": {
3860
+ "type": "string",
3861
+ "allOf": [
3862
+ {
3863
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3864
+ }
3865
+ ]
3866
+ },
3867
+ "kind": {
3868
+ "type": "string",
3869
+ "enum": ["regenerate"]
3870
+ },
3871
+ "settings": {
3872
+ "type": "object",
3873
+ "properties": {
3874
+ "fieldOfViewDegrees": {
3875
+ "type": "number",
3876
+ "allOf": [
3877
+ {
3878
+ "minimum": 5,
3879
+ "maximum": 170
3880
+ }
3881
+ ]
3882
+ },
3883
+ "distanceScale": {
3884
+ "type": "number",
3885
+ "allOf": [
3886
+ {
3887
+ "minimum": 0.01,
3888
+ "maximum": 100
3889
+ }
3890
+ ]
3891
+ },
3892
+ "heightOffset": {
3893
+ "type": "number"
3894
+ },
3895
+ "margin": {
3896
+ "type": "number",
3897
+ "allOf": [
3898
+ {
3899
+ "minimum": 0,
3900
+ "maximum": 0.45
3901
+ }
3902
+ ]
3903
+ },
3904
+ "elevationDegrees": {
3905
+ "type": "number",
3906
+ "allOf": [
3907
+ {
3908
+ "minimum": -89,
3909
+ "maximum": 89
3910
+ }
3911
+ ]
3912
+ },
3913
+ "yawOffset": {
3914
+ "type": "number"
3915
+ },
3916
+ "aimOffset": {
3917
+ "type": "object",
3918
+ "properties": {
3919
+ "x": {
3920
+ "type": "number"
3921
+ },
3922
+ "y": {
3923
+ "type": "number"
3924
+ },
3925
+ "z": {
3926
+ "type": "number"
3927
+ }
3928
+ },
3929
+ "required": ["x", "y", "z"],
3930
+ "additionalProperties": false
3931
+ }
3932
+ },
3933
+ "required": [
3934
+ "fieldOfViewDegrees",
3935
+ "distanceScale",
3936
+ "heightOffset",
3937
+ "margin"
3938
+ ],
3939
+ "additionalProperties": false
3940
+ },
3941
+ "groups": {
3942
+ "type": "array",
3943
+ "items": {
3944
+ "type": "object",
3945
+ "properties": {
3946
+ "id": {
3947
+ "type": "string",
3948
+ "allOf": [
3949
+ {
3950
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
3951
+ }
3952
+ ]
3953
+ },
3954
+ "name": {
3955
+ "type": "string",
3956
+ "allOf": [
3957
+ {
3958
+ "minLength": 1
3959
+ }
3960
+ ]
3961
+ },
3962
+ "overrides": {
3963
+ "type": "object",
3964
+ "properties": {
3965
+ "fieldOfViewDegrees": {
3966
+ "type": "number",
3967
+ "allOf": [
3968
+ {
3969
+ "minimum": 5,
3970
+ "maximum": 170
3971
+ }
3972
+ ]
3973
+ },
3974
+ "distanceScale": {
3975
+ "type": "number",
3976
+ "allOf": [
3977
+ {
3978
+ "minimum": 0.01,
3979
+ "maximum": 100
3980
+ }
3981
+ ]
3982
+ },
3983
+ "heightOffset": {
3984
+ "type": "number"
3985
+ },
3986
+ "margin": {
3987
+ "type": "number",
3988
+ "allOf": [
3989
+ {
3990
+ "minimum": 0,
3991
+ "maximum": 0.45
3992
+ }
3993
+ ]
3994
+ },
3995
+ "elevationDegrees": {
3996
+ "type": "number",
3997
+ "allOf": [
3998
+ {
3999
+ "minimum": -89,
4000
+ "maximum": 89
4001
+ }
4002
+ ]
4003
+ },
4004
+ "yawOffset": {
4005
+ "type": "number"
4006
+ },
4007
+ "aimOffset": {
4008
+ "type": "object",
4009
+ "properties": {
4010
+ "x": {
4011
+ "type": "number"
4012
+ },
4013
+ "y": {
4014
+ "type": "number"
4015
+ },
4016
+ "z": {
4017
+ "type": "number"
4018
+ }
4019
+ },
4020
+ "required": ["x", "y", "z"],
4021
+ "additionalProperties": false
4022
+ }
4023
+ },
4024
+ "additionalProperties": false
4025
+ },
4026
+ "visibility": {
4027
+ "type": "object",
4028
+ "properties": {
4029
+ "hide": {
4030
+ "type": "array",
4031
+ "items": {
4032
+ "type": "object",
4033
+ "properties": {
4034
+ "locator": {
4035
+ "anyOf": [
4036
+ {
4037
+ "type": "object",
4038
+ "properties": {
4039
+ "kind": {
4040
+ "type": "string",
4041
+ "enum": [
4042
+ "actor_path"
4043
+ ]
4044
+ },
4045
+ "actorPath": {
4046
+ "type": "string",
4047
+ "allOf": [
4048
+ {
4049
+ "pattern": "^\\/Game\\/"
4050
+ },
4051
+ {
4052
+ "maxLength": 4096
4053
+ }
4054
+ ]
4055
+ }
4056
+ },
4057
+ "required": [
4058
+ "kind",
4059
+ "actorPath"
4060
+ ],
4061
+ "additionalProperties": false
4062
+ },
4063
+ {
4064
+ "type": "object",
4065
+ "properties": {
4066
+ "kind": {
4067
+ "type": "string",
4068
+ "enum": [
4069
+ "actor_guid"
4070
+ ]
4071
+ },
4072
+ "actorGuid": {
4073
+ "type": "string",
4074
+ "allOf": [
4075
+ {
4076
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
4077
+ }
4078
+ ]
4079
+ },
4080
+ "lastKnownActorPath": {
4081
+ "type": "string",
4082
+ "allOf": [
4083
+ {
4084
+ "maxLength": 4096
4085
+ }
4086
+ ]
4087
+ }
4088
+ },
4089
+ "required": [
4090
+ "kind",
4091
+ "actorGuid",
4092
+ "lastKnownActorPath"
4093
+ ],
4094
+ "additionalProperties": false
4095
+ }
4096
+ ]
4097
+ },
4098
+ "label": {
4099
+ "type": "string",
4100
+ "allOf": [
4101
+ {
4102
+ "maxLength": 256
4103
+ }
4104
+ ]
4105
+ }
4106
+ },
4107
+ "required": [
4108
+ "locator",
4109
+ "label"
4110
+ ],
4111
+ "additionalProperties": false
4112
+ },
4113
+ "allOf": [
4114
+ {
4115
+ "maxItems": 256
4116
+ }
4117
+ ]
4118
+ },
4119
+ "protect": {
4120
+ "type": "array",
4121
+ "items": {
4122
+ "type": "object",
4123
+ "properties": {
4124
+ "locator": {
4125
+ "anyOf": [
4126
+ {
4127
+ "type": "object",
4128
+ "properties": {
4129
+ "kind": {
4130
+ "type": "string",
4131
+ "enum": [
4132
+ "actor_path"
4133
+ ]
4134
+ },
4135
+ "actorPath": {
4136
+ "type": "string",
4137
+ "allOf": [
4138
+ {
4139
+ "pattern": "^\\/Game\\/"
4140
+ },
4141
+ {
4142
+ "maxLength": 4096
4143
+ }
4144
+ ]
4145
+ }
4146
+ },
4147
+ "required": [
4148
+ "kind",
4149
+ "actorPath"
4150
+ ],
4151
+ "additionalProperties": false
4152
+ },
4153
+ {
4154
+ "type": "object",
4155
+ "properties": {
4156
+ "kind": {
4157
+ "type": "string",
4158
+ "enum": [
4159
+ "actor_guid"
4160
+ ]
4161
+ },
4162
+ "actorGuid": {
4163
+ "type": "string",
4164
+ "allOf": [
4165
+ {
4166
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
4167
+ }
4168
+ ]
4169
+ },
4170
+ "lastKnownActorPath": {
4171
+ "type": "string",
4172
+ "allOf": [
4173
+ {
4174
+ "maxLength": 4096
4175
+ }
4176
+ ]
4177
+ }
4178
+ },
4179
+ "required": [
4180
+ "kind",
4181
+ "actorGuid",
4182
+ "lastKnownActorPath"
4183
+ ],
4184
+ "additionalProperties": false
4185
+ }
4186
+ ]
4187
+ },
4188
+ "label": {
4189
+ "type": "string",
4190
+ "allOf": [
4191
+ {
4192
+ "maxLength": 256
4193
+ }
4194
+ ]
4195
+ }
4196
+ },
4197
+ "required": [
4198
+ "locator",
4199
+ "label"
4200
+ ],
4201
+ "additionalProperties": false
4202
+ },
4203
+ "allOf": [
4204
+ {
4205
+ "maxItems": 256
4206
+ }
4207
+ ]
4208
+ }
4209
+ },
4210
+ "required": ["hide", "protect"],
4211
+ "additionalProperties": false
4212
+ }
4213
+ },
4214
+ "required": ["id", "name", "overrides"],
4215
+ "additionalProperties": false
4216
+ }
4217
+ },
4218
+ "cameras": {
4219
+ "type": "array",
4220
+ "items": {
4221
+ "type": "object",
4222
+ "properties": {
4223
+ "id": {
4224
+ "type": "string",
4225
+ "allOf": [
4226
+ {
4227
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
4228
+ }
4229
+ ]
4230
+ },
4231
+ "displayName": {
4232
+ "type": "string",
4233
+ "allOf": [
4234
+ {
4235
+ "minLength": 1
4236
+ }
4237
+ ]
4238
+ },
4239
+ "yawDegrees": {
4240
+ "type": "number"
4241
+ },
4242
+ "overrides": {
4243
+ "type": "object",
4244
+ "properties": {
4245
+ "fieldOfViewDegrees": {
4246
+ "type": "number",
4247
+ "allOf": [
4248
+ {
4249
+ "minimum": 5,
4250
+ "maximum": 170
4251
+ }
4252
+ ]
4253
+ },
4254
+ "distanceScale": {
4255
+ "type": "number",
4256
+ "allOf": [
4257
+ {
4258
+ "minimum": 0.01,
4259
+ "maximum": 100
4260
+ }
4261
+ ]
4262
+ },
4263
+ "heightOffset": {
4264
+ "type": "number"
4265
+ },
4266
+ "margin": {
4267
+ "type": "number",
4268
+ "allOf": [
4269
+ {
4270
+ "minimum": 0,
4271
+ "maximum": 0.45
4272
+ }
4273
+ ]
4274
+ },
4275
+ "elevationDegrees": {
4276
+ "type": "number",
4277
+ "allOf": [
4278
+ {
4279
+ "minimum": -89,
4280
+ "maximum": 89
4281
+ }
4282
+ ]
4283
+ },
4284
+ "yawOffset": {
4285
+ "type": "number"
4286
+ },
4287
+ "aimOffset": {
4288
+ "type": "object",
4289
+ "properties": {
4290
+ "x": {
4291
+ "type": "number"
4292
+ },
4293
+ "y": {
4294
+ "type": "number"
4295
+ },
4296
+ "z": {
4297
+ "type": "number"
4298
+ }
4299
+ },
4300
+ "required": ["x", "y", "z"],
4301
+ "additionalProperties": false
4302
+ }
4303
+ },
4304
+ "additionalProperties": false
4305
+ },
4306
+ "manualPose": {
4307
+ "type": "object",
4308
+ "properties": {
4309
+ "aspectRatio": {
4310
+ "type": "string",
4311
+ "enum": ["16:9"]
4312
+ },
4313
+ "fieldOfViewDegrees": {
4314
+ "type": "number",
4315
+ "allOf": [
4316
+ {
4317
+ "minimum": 5,
4318
+ "maximum": 170
4319
+ }
4320
+ ]
4321
+ },
4322
+ "location": {
4323
+ "type": "object",
4324
+ "properties": {
4325
+ "x": {
4326
+ "type": "number"
4327
+ },
4328
+ "y": {
4329
+ "type": "number"
4330
+ },
4331
+ "z": {
4332
+ "type": "number"
4333
+ }
4334
+ },
4335
+ "required": ["x", "y", "z"],
4336
+ "additionalProperties": false
4337
+ },
4338
+ "projection": {
4339
+ "type": "string",
4340
+ "enum": ["perspective"]
4341
+ },
4342
+ "rotation": {
4343
+ "type": "object",
4344
+ "properties": {
4345
+ "pitch": {
4346
+ "type": "number"
4347
+ },
4348
+ "roll": {
4349
+ "type": "number"
4350
+ },
4351
+ "yaw": {
4352
+ "type": "number"
4353
+ }
4354
+ },
4355
+ "required": [
4356
+ "pitch",
4357
+ "roll",
4358
+ "yaw"
4359
+ ],
4360
+ "additionalProperties": false
4361
+ }
4362
+ },
4363
+ "required": [
4364
+ "aspectRatio",
4365
+ "fieldOfViewDegrees",
4366
+ "location",
4367
+ "projection",
4368
+ "rotation"
4369
+ ],
4370
+ "additionalProperties": false
4371
+ },
4372
+ "viewId": {
4373
+ "type": "string",
4374
+ "allOf": [
4375
+ {
4376
+ "minLength": 1
4377
+ },
4378
+ {
4379
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
4380
+ }
4381
+ ]
4382
+ },
4383
+ "groupId": {
4384
+ "type": "string",
4385
+ "allOf": [
4386
+ {
4387
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
4388
+ }
4389
+ ]
4390
+ },
4391
+ "visibility": {
4392
+ "type": "object",
4393
+ "properties": {
4394
+ "hide": {
4395
+ "type": "array",
4396
+ "items": {
4397
+ "type": "object",
4398
+ "properties": {
4399
+ "locator": {
4400
+ "anyOf": [
4401
+ {
4402
+ "type": "object",
4403
+ "properties": {
4404
+ "kind": {
4405
+ "type": "string",
4406
+ "enum": [
4407
+ "actor_path"
4408
+ ]
4409
+ },
4410
+ "actorPath": {
4411
+ "type": "string",
4412
+ "allOf": [
4413
+ {
4414
+ "pattern": "^\\/Game\\/"
4415
+ },
4416
+ {
4417
+ "maxLength": 4096
4418
+ }
4419
+ ]
4420
+ }
4421
+ },
4422
+ "required": [
4423
+ "kind",
4424
+ "actorPath"
4425
+ ],
4426
+ "additionalProperties": false
4427
+ },
4428
+ {
4429
+ "type": "object",
4430
+ "properties": {
4431
+ "kind": {
4432
+ "type": "string",
4433
+ "enum": [
4434
+ "actor_guid"
4435
+ ]
4436
+ },
4437
+ "actorGuid": {
4438
+ "type": "string",
4439
+ "allOf": [
4440
+ {
4441
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
4442
+ }
4443
+ ]
4444
+ },
4445
+ "lastKnownActorPath": {
4446
+ "type": "string",
4447
+ "allOf": [
4448
+ {
4449
+ "maxLength": 4096
4450
+ }
4451
+ ]
4452
+ }
4453
+ },
4454
+ "required": [
4455
+ "kind",
4456
+ "actorGuid",
4457
+ "lastKnownActorPath"
4458
+ ],
4459
+ "additionalProperties": false
4460
+ }
4461
+ ]
4462
+ },
4463
+ "label": {
4464
+ "type": "string",
4465
+ "allOf": [
4466
+ {
4467
+ "maxLength": 256
4468
+ }
4469
+ ]
4470
+ }
4471
+ },
4472
+ "required": [
4473
+ "locator",
4474
+ "label"
4475
+ ],
4476
+ "additionalProperties": false
4477
+ },
4478
+ "allOf": [
4479
+ {
4480
+ "maxItems": 256
4481
+ }
4482
+ ]
4483
+ },
4484
+ "protect": {
4485
+ "type": "array",
4486
+ "items": {
4487
+ "type": "object",
4488
+ "properties": {
4489
+ "locator": {
4490
+ "anyOf": [
4491
+ {
4492
+ "type": "object",
4493
+ "properties": {
4494
+ "kind": {
4495
+ "type": "string",
4496
+ "enum": [
4497
+ "actor_path"
4498
+ ]
4499
+ },
4500
+ "actorPath": {
4501
+ "type": "string",
4502
+ "allOf": [
4503
+ {
4504
+ "pattern": "^\\/Game\\/"
4505
+ },
4506
+ {
4507
+ "maxLength": 4096
4508
+ }
4509
+ ]
4510
+ }
4511
+ },
4512
+ "required": [
4513
+ "kind",
4514
+ "actorPath"
4515
+ ],
4516
+ "additionalProperties": false
4517
+ },
4518
+ {
4519
+ "type": "object",
4520
+ "properties": {
4521
+ "kind": {
4522
+ "type": "string",
4523
+ "enum": [
4524
+ "actor_guid"
4525
+ ]
4526
+ },
4527
+ "actorGuid": {
4528
+ "type": "string",
4529
+ "allOf": [
4530
+ {
4531
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
4532
+ }
4533
+ ]
4534
+ },
4535
+ "lastKnownActorPath": {
4536
+ "type": "string",
4537
+ "allOf": [
4538
+ {
4539
+ "maxLength": 4096
4540
+ }
4541
+ ]
4542
+ }
4543
+ },
4544
+ "required": [
4545
+ "kind",
4546
+ "actorGuid",
4547
+ "lastKnownActorPath"
4548
+ ],
4549
+ "additionalProperties": false
4550
+ }
4551
+ ]
4552
+ },
4553
+ "label": {
4554
+ "type": "string",
4555
+ "allOf": [
4556
+ {
4557
+ "maxLength": 256
4558
+ }
4559
+ ]
4560
+ }
4561
+ },
4562
+ "required": [
4563
+ "locator",
4564
+ "label"
4565
+ ],
4566
+ "additionalProperties": false
4567
+ },
4568
+ "allOf": [
4569
+ {
4570
+ "maxItems": 256
4571
+ }
4572
+ ]
4573
+ }
4574
+ },
4575
+ "required": ["hide", "protect"],
4576
+ "additionalProperties": false
4577
+ }
4578
+ },
4579
+ "required": [
4580
+ "id",
4581
+ "displayName",
4582
+ "yawDegrees",
4583
+ "overrides",
4584
+ "viewId"
4585
+ ],
4586
+ "additionalProperties": false
4587
+ },
4588
+ "allOf": [
4589
+ {
4590
+ "minItems": 1
4591
+ },
4592
+ {
4593
+ "maxItems": 256
4594
+ }
4595
+ ]
4596
+ },
4597
+ "discardCustomizedIds": {
4598
+ "type": "array",
4599
+ "items": {
4600
+ "type": "string",
4601
+ "allOf": [
4602
+ {
4603
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
4604
+ }
4605
+ ]
4606
+ }
4607
+ }
4608
+ },
4609
+ "required": [
4610
+ "arrangementId",
4611
+ "expectedRevision",
4612
+ "operationId",
4613
+ "kind",
4614
+ "cameras",
4615
+ "discardCustomizedIds"
4616
+ ],
4617
+ "additionalProperties": false
4618
+ }
4619
+ ]
4620
+ }
4621
+ },
4622
+ "required": ["kind", "command"],
4623
+ "additionalProperties": false
4624
+ },
4625
+ {
4626
+ "type": "object",
4627
+ "properties": {
4628
+ "kind": {
4629
+ "type": "string",
4630
+ "enum": ["activate"]
4631
+ },
4632
+ "cameraId": {
4633
+ "type": "string",
4634
+ "allOf": [
4635
+ {
4636
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
4637
+ }
4638
+ ]
4639
+ }
4640
+ },
4641
+ "required": ["kind", "cameraId"],
4642
+ "additionalProperties": false
4643
+ },
4644
+ {
4645
+ "type": "object",
4646
+ "properties": {
4647
+ "kind": {
4648
+ "type": "string",
4649
+ "enum": ["approve"]
4650
+ },
4651
+ "cameraIds": {
4652
+ "type": "array",
4653
+ "items": {
4654
+ "type": "string",
4655
+ "allOf": [
4656
+ {
4657
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
4658
+ }
4659
+ ]
4660
+ },
4661
+ "allOf": [
4662
+ {
4663
+ "minItems": 1
4664
+ },
4665
+ {
4666
+ "maxItems": 256
4667
+ }
4668
+ ]
4669
+ },
4670
+ "removeRetiredViewIds": {
4671
+ "type": "array",
4672
+ "items": {
4673
+ "type": "string",
4674
+ "allOf": [
4675
+ {
4676
+ "minLength": 1
4677
+ },
4678
+ {
4679
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
4680
+ }
4681
+ ]
4682
+ }
4683
+ }
4684
+ },
4685
+ "required": ["kind", "cameraIds", "removeRetiredViewIds"],
4686
+ "additionalProperties": false
4687
+ },
4688
+ {
4689
+ "type": "object",
4690
+ "properties": {
4691
+ "kind": {
4692
+ "type": "string",
4693
+ "enum": ["layout"]
4694
+ },
4695
+ "layout": {
4696
+ "type": "object",
4697
+ "properties": {
4698
+ "kind": {
4699
+ "type": "string",
4700
+ "enum": ["single", "orbit", "arc"]
4701
+ },
4702
+ "count": {
4703
+ "type": "integer",
4704
+ "allOf": [
4705
+ {
4706
+ "minimum": 1,
4707
+ "maximum": 256
4708
+ }
4709
+ ]
4710
+ },
4711
+ "startDegrees": {
4712
+ "type": "number"
4713
+ },
4714
+ "spanDegrees": {
4715
+ "type": "number",
4716
+ "allOf": [
4717
+ {
4718
+ "minimum": 0,
4719
+ "maximum": 360
4720
+ }
4721
+ ]
4722
+ },
4723
+ "orientation": {
4724
+ "type": "string",
4725
+ "enum": ["world", "subject"]
4726
+ }
4727
+ },
4728
+ "required": [
4729
+ "kind",
4730
+ "count",
4731
+ "startDegrees",
4732
+ "spanDegrees",
4733
+ "orientation"
4734
+ ],
4735
+ "additionalProperties": false
4736
+ },
4737
+ "retainExisting": {
4738
+ "type": "boolean"
4739
+ }
4740
+ },
4741
+ "required": ["kind", "layout", "retainExisting"],
4742
+ "additionalProperties": false
4743
+ },
4744
+ {
4745
+ "type": "object",
4746
+ "properties": {
4747
+ "kind": {
4748
+ "type": "string",
4749
+ "enum": ["add_viewport"]
4750
+ },
4751
+ "pose": {
4752
+ "type": "object",
4753
+ "properties": {
4754
+ "aspectRatio": {
4755
+ "type": "string",
4756
+ "enum": ["16:9"]
4757
+ },
4758
+ "fieldOfViewDegrees": {
4759
+ "type": "number",
4760
+ "allOf": [
4761
+ {
4762
+ "minimum": 5,
4763
+ "maximum": 170
4764
+ }
4765
+ ]
4766
+ },
4767
+ "location": {
4768
+ "type": "object",
4769
+ "properties": {
4770
+ "x": {
4771
+ "type": "number"
4772
+ },
4773
+ "y": {
4774
+ "type": "number"
4775
+ },
4776
+ "z": {
4777
+ "type": "number"
4778
+ }
4779
+ },
4780
+ "required": ["x", "y", "z"],
4781
+ "additionalProperties": false
4782
+ },
4783
+ "projection": {
4784
+ "type": "string",
4785
+ "enum": ["perspective"]
4786
+ },
4787
+ "rotation": {
4788
+ "type": "object",
4789
+ "properties": {
4790
+ "pitch": {
4791
+ "type": "number"
4792
+ },
4793
+ "roll": {
4794
+ "type": "number"
4795
+ },
4796
+ "yaw": {
4797
+ "type": "number"
4798
+ }
4799
+ },
4800
+ "required": ["pitch", "roll", "yaw"],
4801
+ "additionalProperties": false
4802
+ }
4803
+ },
4804
+ "required": [
4805
+ "aspectRatio",
4806
+ "fieldOfViewDegrees",
4807
+ "location",
4808
+ "projection",
4809
+ "rotation"
4810
+ ],
4811
+ "additionalProperties": false
4812
+ }
4813
+ },
4814
+ "required": ["kind", "pose"],
4815
+ "additionalProperties": false
4816
+ },
4817
+ {
4818
+ "type": "object",
4819
+ "properties": {
4820
+ "kind": {
4821
+ "type": "string",
4822
+ "enum": ["import_recipe"]
4823
+ },
4824
+ "path": {
4825
+ "type": "string",
4826
+ "allOf": [
4827
+ {
4828
+ "minLength": 1
4829
+ }
4830
+ ]
4831
+ }
4832
+ },
4833
+ "required": ["kind", "path"],
4834
+ "additionalProperties": false
4835
+ },
4836
+ {
4837
+ "type": "object",
4838
+ "properties": {
4839
+ "kind": {
4840
+ "type": "string",
4841
+ "enum": ["export_recipe"]
4842
+ },
4843
+ "path": {
4844
+ "type": "string",
4845
+ "allOf": [
4846
+ {
4847
+ "minLength": 1
4848
+ }
4849
+ ]
4850
+ },
4851
+ "name": {
4852
+ "type": "string",
4853
+ "allOf": [
4854
+ {
4855
+ "minLength": 1
4856
+ }
4857
+ ]
4858
+ }
4859
+ },
4860
+ "required": ["kind", "path", "name"],
4861
+ "additionalProperties": false
4862
+ },
4863
+ {
4864
+ "type": "object",
4865
+ "properties": {
4866
+ "kind": {
4867
+ "type": "string",
4868
+ "enum": ["accept_proposal"]
4869
+ }
4870
+ },
4871
+ "required": ["kind"],
4872
+ "additionalProperties": false
4873
+ },
4874
+ {
4875
+ "type": "object",
4876
+ "properties": {
4877
+ "kind": {
4878
+ "type": "string",
4879
+ "enum": ["cancel_proposal"]
4880
+ }
4881
+ },
4882
+ "required": ["kind"],
4883
+ "additionalProperties": false
4884
+ }
4885
+ ]
4886
+ }
4887
+ },
4888
+ "required": ["id", "expectedRevision", "action"],
4889
+ "additionalProperties": false,
4890
+ "$defs": {}
4891
+ }