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