@ue-shed/protocol 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/contracts/cameras/authoring/v1/README.md +50 -0
  2. package/contracts/cameras/authoring/v1/approval.schema.json +106 -0
  3. package/contracts/cameras/authoring/v1/arrangement.schema.json +1801 -0
  4. package/contracts/cameras/authoring/v1/bridge-request.schema.json +10862 -0
  5. package/contracts/cameras/authoring/v1/bridge-response.schema.json +10323 -0
  6. package/contracts/cameras/authoring/v1/command.schema.json +4109 -0
  7. package/contracts/cameras/authoring/v1/document.schema.json +4409 -0
  8. package/contracts/cameras/authoring/v1/panel-event.schema.json +4885 -0
  9. package/contracts/cameras/authoring/v1/panel-state.schema.json +3548 -0
  10. package/contracts/cameras/authoring/v1/recipe.schema.json +340 -0
  11. package/contracts/cameras/authoring/v1/visibility-preset.schema.json +205 -0
  12. package/contracts/cameras/map-tile/v1/README.md +4 -1
  13. package/contracts/cameras/map-tile/v1/capture-operation.schema.json +1621 -30
  14. package/contracts/cameras/map-tile/v1/capture-request.schema.json +497 -48
  15. package/contracts/cameras/map-tile/v1/capture-response.schema.json +1383 -96
  16. package/contracts/cameras/map-tile/v1/manifest.schema.json +1760 -110
  17. package/contracts/cameras/map-tile/v1/plan.schema.json +394 -200
  18. package/contracts/cameras/map-tile/v1/release-result.schema.json +7 -2
  19. package/contracts/cameras/provisioning/v1/provision-request.schema.json +663 -141
  20. package/contracts/cameras/render/v1/begin-result.schema.json +167 -0
  21. package/contracts/cameras/render/v1/capabilities.schema.json +25 -0
  22. package/contracts/cameras/render/v1/frame-evidence.schema.json +240 -0
  23. package/contracts/cameras/render/v1/frame-status.schema.json +249 -0
  24. package/contracts/cameras/render/v1/policy.schema.json +159 -0
  25. package/contracts/cameras/render/v1/review-inspection-result.schema.json +263 -0
  26. package/contracts/cameras/render/v1/session-request.schema.json +167 -0
  27. package/contracts/cameras/review/v1/README.md +6 -0
  28. package/contracts/cameras/review/v1/capture-request.schema.json +221 -3
  29. package/contracts/cameras/review/v1/capture-response.schema.json +3648 -0
  30. package/contracts/cameras/review/v1/fixtures/capture-authored.json +205 -0
  31. package/contracts/core/v1/WINDOW-ACTIVATION.md +21 -0
  32. package/contracts/core/v1/window-activation-request.schema.json +20 -0
  33. package/contracts/core/v1/window-activation-result.schema.json +49 -0
  34. package/contracts/editor-world/v1/README.md +27 -0
  35. package/contracts/editor-world/v1/operation.schema.json +761 -0
  36. package/contracts/editor-world/v1/state.schema.json +92 -0
  37. package/contracts/uasset-io/v1/event.schema.json +613 -171
  38. package/contracts/uasset-io/v1/fixtures/invalid/inspect-string-table-nonstring-metadata.json +53 -0
  39. package/contracts/uasset-io/v1/fixtures/invalid/negative-instanced-size.json +97 -0
  40. package/contracts/uasset-io/v1/fixtures/invalid/non-string-metadata.json +97 -0
  41. package/contracts/uasset-io/v1/fixtures/invalid/unknown-native-value.json +97 -0
  42. package/contracts/uasset-io/v1/fixtures/valid/extract-text-string-table-occurrence-result-event.json +30 -0
  43. package/contracts/uasset-io/v1/fixtures/valid/inspect-native-result-event.json +97 -0
  44. package/contracts/uasset-io/v1/fixtures/valid/inspect-string-table-metadata-result-event.json +53 -0
  45. package/contracts/world/preparation/v1/fixtures/invalid-contract-version.json +10 -0
  46. package/contracts/world/preparation/v1/fixtures/invalid-extra-field.json +11 -0
  47. package/contracts/world/preparation/v1/fixtures/invalid-negative-budget.json +37 -0
  48. package/contracts/world/preparation/v1/fixtures/invalid-region-negative-extent.json +40 -0
  49. package/contracts/world/preparation/v1/fixtures/valid-actor-context.json +37 -0
  50. package/contracts/world/preparation/v1/fixtures/valid-describe.json +10 -0
  51. package/contracts/world/preparation/v1/request.schema.json +897 -0
  52. package/contracts/world/preparation/v1/response.schema.json +449 -0
  53. package/dist/cameras.d.ts +16 -12
  54. package/dist/cameras.d.ts.map +1 -1
  55. package/dist/cameras.js +1 -0
  56. package/dist/cameras.js.map +1 -1
  57. package/dist/companion.d.ts +6 -0
  58. package/dist/companion.d.ts.map +1 -1
  59. package/dist/companion.js +3 -0
  60. package/dist/companion.js.map +1 -1
  61. package/dist/editor-window-activation.d.ts +16 -0
  62. package/dist/editor-window-activation.d.ts.map +1 -0
  63. package/dist/editor-window-activation.js +19 -0
  64. package/dist/editor-window-activation.js.map +1 -0
  65. package/dist/editor-world-control.d.ts +125 -0
  66. package/dist/editor-world-control.d.ts.map +1 -1
  67. package/dist/editor-world-control.js +25 -0
  68. package/dist/editor-world-control.js.map +1 -1
  69. package/dist/index.d.ts +1 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +1 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/uasset-inspection.d.ts +112 -55
  74. package/dist/uasset-inspection.d.ts.map +1 -1
  75. package/dist/uasset-inspection.js +29 -0
  76. package/dist/uasset-inspection.js.map +1 -1
  77. package/dist/uasset-io.d.ts +54 -0
  78. package/dist/uasset-io.d.ts.map +1 -1
  79. package/package.json +1 -1
@@ -1,44 +1,52 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://ue-shed.dev/contracts/cameras/map-tile/v1/capture-response.schema.json",
4
- "title": "UE Shed bounded map tile capture response v1.0",
5
4
  "type": "object",
6
- "additionalProperties": false,
7
- "required": [
8
- "contract",
9
- "correlationId",
10
- "dirtyState",
11
- "durationMs",
12
- "operationId",
13
- "results",
14
- "status",
15
- "tileCounts"
16
- ],
17
5
  "properties": {
18
6
  "actualMapPath": {
19
7
  "type": "string",
20
- "pattern": "^/[A-Za-z0-9_./-]+$"
8
+ "allOf": [
9
+ {
10
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
11
+ }
12
+ ]
21
13
  },
22
14
  "contract": {
23
15
  "type": "object",
24
- "additionalProperties": false,
25
- "required": ["name", "version"],
26
16
  "properties": {
27
17
  "name": {
28
- "const": "ue-shed-map-tile-capture"
18
+ "type": "string",
19
+ "enum": ["ue-shed-map-tile-capture"]
29
20
  },
30
21
  "version": {
31
- "$ref": "plan.schema.json#/$defs/version"
22
+ "type": "object",
23
+ "properties": {
24
+ "major": {
25
+ "type": "number",
26
+ "enum": [1]
27
+ },
28
+ "minor": {
29
+ "type": "number",
30
+ "enum": [0, 1, 2]
31
+ }
32
+ },
33
+ "required": ["major", "minor"],
34
+ "additionalProperties": false
32
35
  }
33
- }
36
+ },
37
+ "required": ["name", "version"],
38
+ "additionalProperties": false
34
39
  },
35
40
  "correlationId": {
36
- "$ref": "plan.schema.json#/$defs/id"
41
+ "type": "string",
42
+ "allOf": [
43
+ {
44
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
45
+ }
46
+ ]
37
47
  },
38
48
  "dirtyState": {
39
49
  "type": "object",
40
- "additionalProperties": false,
41
- "required": ["before", "after"],
42
50
  "properties": {
43
51
  "before": {
44
52
  "type": "boolean"
@@ -46,142 +54,1421 @@
46
54
  "after": {
47
55
  "type": "boolean"
48
56
  }
49
- }
57
+ },
58
+ "required": ["before", "after"],
59
+ "additionalProperties": false
50
60
  },
51
61
  "durationMs": {
52
62
  "type": "number",
53
- "minimum": 0
63
+ "allOf": [
64
+ {
65
+ "minimum": 0
66
+ }
67
+ ]
54
68
  },
55
69
  "failure": {
56
- "$ref": "#/$defs/failure"
70
+ "type": "object",
71
+ "properties": {
72
+ "code": {
73
+ "type": "string",
74
+ "enum": [
75
+ "cancelled",
76
+ "capture_failed",
77
+ "data_layer_policy_unsupported",
78
+ "dirty_state_changed",
79
+ "encoding_failed",
80
+ "invalid_request",
81
+ "map_mismatch",
82
+ "streaming_not_ready",
83
+ "write_failed"
84
+ ]
85
+ },
86
+ "message": {
87
+ "type": "string",
88
+ "allOf": [
89
+ {
90
+ "minLength": 1
91
+ },
92
+ {
93
+ "maxLength": 1024
94
+ }
95
+ ]
96
+ },
97
+ "recovery": {
98
+ "type": "string",
99
+ "allOf": [
100
+ {
101
+ "minLength": 1
102
+ },
103
+ {
104
+ "maxLength": 1024
105
+ }
106
+ ]
107
+ },
108
+ "retrySafe": {
109
+ "type": "boolean"
110
+ }
111
+ },
112
+ "required": ["code", "message", "recovery", "retrySafe"],
113
+ "additionalProperties": false
57
114
  },
58
115
  "operationId": {
59
- "$ref": "plan.schema.json#/$defs/id"
116
+ "type": "string",
117
+ "allOf": [
118
+ {
119
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
120
+ }
121
+ ]
60
122
  },
61
123
  "results": {
62
124
  "type": "array",
63
- "maxItems": 64,
64
125
  "items": {
65
- "oneOf": [
126
+ "anyOf": [
66
127
  {
67
128
  "type": "object",
68
- "additionalProperties": false,
69
- "required": [
70
- "bytes",
71
- "captureDurationMs",
72
- "height",
73
- "key",
74
- "stagedPath",
75
- "status",
76
- "width"
77
- ],
78
129
  "properties": {
130
+ "renderEvidence": {
131
+ "type": "object",
132
+ "properties": {
133
+ "visibilityDiagnostics": {
134
+ "type": "array",
135
+ "items": {
136
+ "type": "object",
137
+ "properties": {
138
+ "locator": {
139
+ "anyOf": [
140
+ {
141
+ "type": "object",
142
+ "properties": {
143
+ "kind": {
144
+ "type": "string",
145
+ "enum": ["actor_path"]
146
+ },
147
+ "actorPath": {
148
+ "type": "string",
149
+ "allOf": [
150
+ {
151
+ "pattern": "^\\/Game\\/"
152
+ },
153
+ {
154
+ "maxLength": 4096
155
+ }
156
+ ]
157
+ }
158
+ },
159
+ "required": ["kind", "actorPath"],
160
+ "additionalProperties": false
161
+ },
162
+ {
163
+ "type": "object",
164
+ "properties": {
165
+ "kind": {
166
+ "type": "string",
167
+ "enum": ["actor_guid"]
168
+ },
169
+ "actorGuid": {
170
+ "type": "string",
171
+ "allOf": [
172
+ {
173
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
174
+ }
175
+ ]
176
+ },
177
+ "lastKnownActorPath": {
178
+ "type": "string",
179
+ "allOf": [
180
+ {
181
+ "maxLength": 4096
182
+ }
183
+ ]
184
+ }
185
+ },
186
+ "required": [
187
+ "kind",
188
+ "actorGuid",
189
+ "lastKnownActorPath"
190
+ ],
191
+ "additionalProperties": false
192
+ }
193
+ ]
194
+ },
195
+ "status": {
196
+ "type": "string",
197
+ "enum": [
198
+ "resolved",
199
+ "missing_or_unloaded",
200
+ "ambiguous",
201
+ "unsupported"
202
+ ]
203
+ },
204
+ "actorPath": {
205
+ "type": "string"
206
+ },
207
+ "message": {
208
+ "type": "string"
209
+ }
210
+ },
211
+ "required": [
212
+ "locator",
213
+ "status",
214
+ "actorPath",
215
+ "message"
216
+ ],
217
+ "additionalProperties": false
218
+ }
219
+ },
220
+ "editorState": {
221
+ "type": "object",
222
+ "properties": {
223
+ "mapPackageDirtyBefore": {
224
+ "type": "boolean"
225
+ },
226
+ "mapPackageDirtyAfter": {
227
+ "type": "boolean"
228
+ }
229
+ },
230
+ "required": [
231
+ "mapPackageDirtyBefore",
232
+ "mapPackageDirtyAfter"
233
+ ],
234
+ "additionalProperties": false
235
+ },
236
+ "camera": {
237
+ "type": "object",
238
+ "properties": {
239
+ "location": {
240
+ "type": "object",
241
+ "properties": {
242
+ "x": {
243
+ "type": "number"
244
+ },
245
+ "y": {
246
+ "type": "number"
247
+ },
248
+ "z": {
249
+ "type": "number"
250
+ }
251
+ },
252
+ "required": ["x", "y", "z"],
253
+ "additionalProperties": false
254
+ },
255
+ "rotation": {
256
+ "type": "object",
257
+ "properties": {
258
+ "pitch": {
259
+ "type": "number"
260
+ },
261
+ "roll": {
262
+ "type": "number"
263
+ },
264
+ "yaw": {
265
+ "type": "number"
266
+ }
267
+ },
268
+ "required": ["pitch", "roll", "yaw"],
269
+ "additionalProperties": false
270
+ },
271
+ "projection": {
272
+ "anyOf": [
273
+ {
274
+ "type": "object",
275
+ "properties": {
276
+ "kind": {
277
+ "type": "string",
278
+ "enum": ["perspective"]
279
+ },
280
+ "horizontalFieldOfView": {
281
+ "type": "number",
282
+ "allOf": [
283
+ {
284
+ "minimum": 5,
285
+ "maximum": 170
286
+ }
287
+ ]
288
+ }
289
+ },
290
+ "required": [
291
+ "kind",
292
+ "horizontalFieldOfView"
293
+ ],
294
+ "additionalProperties": false
295
+ },
296
+ {
297
+ "type": "object",
298
+ "properties": {
299
+ "kind": {
300
+ "type": "string",
301
+ "enum": ["orthographic"]
302
+ },
303
+ "width": {
304
+ "type": "number",
305
+ "allOf": [
306
+ {
307
+ "exclusiveMinimum": 0
308
+ },
309
+ {
310
+ "maximum": 1000000000
311
+ }
312
+ ]
313
+ }
314
+ },
315
+ "required": ["kind", "width"],
316
+ "additionalProperties": false
317
+ }
318
+ ]
319
+ }
320
+ },
321
+ "required": ["location", "rotation", "projection"],
322
+ "additionalProperties": false
323
+ },
324
+ "size": {
325
+ "type": "object",
326
+ "properties": {
327
+ "width": {
328
+ "type": "integer",
329
+ "allOf": [
330
+ {
331
+ "minimum": 16,
332
+ "maximum": 16384
333
+ }
334
+ ]
335
+ },
336
+ "height": {
337
+ "type": "integer",
338
+ "allOf": [
339
+ {
340
+ "minimum": 16,
341
+ "maximum": 16384
342
+ }
343
+ ]
344
+ }
345
+ },
346
+ "required": ["width", "height"],
347
+ "additionalProperties": false
348
+ },
349
+ "policy": {
350
+ "type": "object",
351
+ "properties": {
352
+ "visibility": {
353
+ "type": "object",
354
+ "properties": {
355
+ "hide": {
356
+ "type": "array",
357
+ "items": {
358
+ "type": "object",
359
+ "properties": {
360
+ "locator": {
361
+ "anyOf": [
362
+ {
363
+ "type": "object",
364
+ "properties": {
365
+ "kind": {
366
+ "type": "string",
367
+ "enum": [
368
+ "actor_path"
369
+ ]
370
+ },
371
+ "actorPath": {
372
+ "type": "string",
373
+ "allOf": [
374
+ {
375
+ "pattern": "^\\/Game\\/"
376
+ },
377
+ {
378
+ "maxLength": 4096
379
+ }
380
+ ]
381
+ }
382
+ },
383
+ "required": [
384
+ "kind",
385
+ "actorPath"
386
+ ],
387
+ "additionalProperties": false
388
+ },
389
+ {
390
+ "type": "object",
391
+ "properties": {
392
+ "kind": {
393
+ "type": "string",
394
+ "enum": [
395
+ "actor_guid"
396
+ ]
397
+ },
398
+ "actorGuid": {
399
+ "type": "string",
400
+ "allOf": [
401
+ {
402
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
403
+ }
404
+ ]
405
+ },
406
+ "lastKnownActorPath": {
407
+ "type": "string",
408
+ "allOf": [
409
+ {
410
+ "maxLength": 4096
411
+ }
412
+ ]
413
+ }
414
+ },
415
+ "required": [
416
+ "kind",
417
+ "actorGuid",
418
+ "lastKnownActorPath"
419
+ ],
420
+ "additionalProperties": false
421
+ }
422
+ ]
423
+ },
424
+ "label": {
425
+ "type": "string",
426
+ "allOf": [
427
+ {
428
+ "maxLength": 256
429
+ }
430
+ ]
431
+ }
432
+ },
433
+ "required": ["locator", "label"],
434
+ "additionalProperties": false
435
+ },
436
+ "allOf": [
437
+ {
438
+ "maxItems": 256
439
+ }
440
+ ]
441
+ },
442
+ "protect": {
443
+ "type": "array",
444
+ "items": {
445
+ "type": "object",
446
+ "properties": {
447
+ "locator": {
448
+ "anyOf": [
449
+ {
450
+ "type": "object",
451
+ "properties": {
452
+ "kind": {
453
+ "type": "string",
454
+ "enum": [
455
+ "actor_path"
456
+ ]
457
+ },
458
+ "actorPath": {
459
+ "type": "string",
460
+ "allOf": [
461
+ {
462
+ "pattern": "^\\/Game\\/"
463
+ },
464
+ {
465
+ "maxLength": 4096
466
+ }
467
+ ]
468
+ }
469
+ },
470
+ "required": [
471
+ "kind",
472
+ "actorPath"
473
+ ],
474
+ "additionalProperties": false
475
+ },
476
+ {
477
+ "type": "object",
478
+ "properties": {
479
+ "kind": {
480
+ "type": "string",
481
+ "enum": [
482
+ "actor_guid"
483
+ ]
484
+ },
485
+ "actorGuid": {
486
+ "type": "string",
487
+ "allOf": [
488
+ {
489
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
490
+ }
491
+ ]
492
+ },
493
+ "lastKnownActorPath": {
494
+ "type": "string",
495
+ "allOf": [
496
+ {
497
+ "maxLength": 4096
498
+ }
499
+ ]
500
+ }
501
+ },
502
+ "required": [
503
+ "kind",
504
+ "actorGuid",
505
+ "lastKnownActorPath"
506
+ ],
507
+ "additionalProperties": false
508
+ }
509
+ ]
510
+ },
511
+ "label": {
512
+ "type": "string",
513
+ "allOf": [
514
+ {
515
+ "maxLength": 256
516
+ }
517
+ ]
518
+ }
519
+ },
520
+ "required": ["locator", "label"],
521
+ "additionalProperties": false
522
+ },
523
+ "allOf": [
524
+ {
525
+ "maxItems": 256
526
+ }
527
+ ]
528
+ }
529
+ },
530
+ "required": ["hide", "protect"],
531
+ "additionalProperties": false
532
+ },
533
+ "renderer": {
534
+ "anyOf": [
535
+ {
536
+ "type": "object",
537
+ "properties": {
538
+ "kind": {
539
+ "type": "string",
540
+ "enum": ["editor_viewport"]
541
+ },
542
+ "strategy": {
543
+ "type": "string",
544
+ "enum": [
545
+ "high_resolution_screenshot"
546
+ ]
547
+ },
548
+ "profile": {
549
+ "type": "string",
550
+ "enum": ["lit", "observation"]
551
+ },
552
+ "vignette": {
553
+ "type": "string",
554
+ "enum": ["project", "disabled"]
555
+ },
556
+ "fog": {
557
+ "type": "boolean"
558
+ },
559
+ "volumetricFog": {
560
+ "type": "boolean"
561
+ }
562
+ },
563
+ "required": [
564
+ "kind",
565
+ "strategy",
566
+ "profile",
567
+ "vignette",
568
+ "fog",
569
+ "volumetricFog"
570
+ ],
571
+ "additionalProperties": false
572
+ },
573
+ {
574
+ "type": "object",
575
+ "properties": {
576
+ "kind": {
577
+ "type": "string",
578
+ "enum": ["scene_capture"]
579
+ },
580
+ "profile": {
581
+ "type": "string",
582
+ "enum": [
583
+ "full_fidelity",
584
+ "seam_stable",
585
+ "scene_capture_defaults",
586
+ "observation"
587
+ ]
588
+ },
589
+ "lodDistanceScale": {
590
+ "type": "number",
591
+ "allOf": [
592
+ {
593
+ "minimum": 0.1,
594
+ "maximum": 100
595
+ }
596
+ ]
597
+ },
598
+ "fog": {
599
+ "type": "boolean"
600
+ },
601
+ "volumetricFog": {
602
+ "type": "boolean"
603
+ }
604
+ },
605
+ "required": [
606
+ "kind",
607
+ "profile",
608
+ "lodDistanceScale",
609
+ "fog",
610
+ "volumetricFog"
611
+ ],
612
+ "additionalProperties": false
613
+ }
614
+ ]
615
+ },
616
+ "exposure": {
617
+ "anyOf": [
618
+ {
619
+ "type": "object",
620
+ "properties": {
621
+ "mode": {
622
+ "type": "string",
623
+ "enum": ["project_auto"]
624
+ }
625
+ },
626
+ "required": ["mode"],
627
+ "additionalProperties": false
628
+ },
629
+ {
630
+ "type": "object",
631
+ "properties": {
632
+ "mode": {
633
+ "type": "string",
634
+ "enum": ["fixed_ev100"]
635
+ },
636
+ "ev100": {
637
+ "type": "number",
638
+ "allOf": [
639
+ {
640
+ "minimum": -20,
641
+ "maximum": 30
642
+ }
643
+ ]
644
+ },
645
+ "compensation": {
646
+ "type": "string",
647
+ "enum": ["project"]
648
+ }
649
+ },
650
+ "required": [
651
+ "mode",
652
+ "ev100",
653
+ "compensation"
654
+ ],
655
+ "additionalProperties": false
656
+ },
657
+ {
658
+ "type": "object",
659
+ "properties": {
660
+ "mode": {
661
+ "type": "string",
662
+ "enum": ["meter_once"]
663
+ },
664
+ "referenceCamera": {
665
+ "type": "object",
666
+ "properties": {
667
+ "location": {
668
+ "type": "object",
669
+ "properties": {
670
+ "x": {
671
+ "type": "number"
672
+ },
673
+ "y": {
674
+ "type": "number"
675
+ },
676
+ "z": {
677
+ "type": "number"
678
+ }
679
+ },
680
+ "required": ["x", "y", "z"],
681
+ "additionalProperties": false
682
+ },
683
+ "rotation": {
684
+ "type": "object",
685
+ "properties": {
686
+ "pitch": {
687
+ "type": "number"
688
+ },
689
+ "roll": {
690
+ "type": "number"
691
+ },
692
+ "yaw": {
693
+ "type": "number"
694
+ }
695
+ },
696
+ "required": [
697
+ "pitch",
698
+ "roll",
699
+ "yaw"
700
+ ],
701
+ "additionalProperties": false
702
+ },
703
+ "projection": {
704
+ "anyOf": [
705
+ {
706
+ "type": "object",
707
+ "properties": {
708
+ "kind": {
709
+ "type": "string",
710
+ "enum": [
711
+ "perspective"
712
+ ]
713
+ },
714
+ "horizontalFieldOfView": {
715
+ "type": "number",
716
+ "allOf": [
717
+ {
718
+ "minimum": 5,
719
+ "maximum": 170
720
+ }
721
+ ]
722
+ }
723
+ },
724
+ "required": [
725
+ "kind",
726
+ "horizontalFieldOfView"
727
+ ],
728
+ "additionalProperties": false
729
+ },
730
+ {
731
+ "type": "object",
732
+ "properties": {
733
+ "kind": {
734
+ "type": "string",
735
+ "enum": [
736
+ "orthographic"
737
+ ]
738
+ },
739
+ "width": {
740
+ "type": "number",
741
+ "allOf": [
742
+ {
743
+ "exclusiveMinimum": 0
744
+ },
745
+ {
746
+ "maximum": 1000000000
747
+ }
748
+ ]
749
+ }
750
+ },
751
+ "required": [
752
+ "kind",
753
+ "width"
754
+ ],
755
+ "additionalProperties": false
756
+ }
757
+ ]
758
+ }
759
+ },
760
+ "required": [
761
+ "location",
762
+ "rotation",
763
+ "projection"
764
+ ],
765
+ "additionalProperties": false
766
+ },
767
+ "referenceSize": {
768
+ "type": "object",
769
+ "properties": {
770
+ "width": {
771
+ "type": "integer",
772
+ "allOf": [
773
+ {
774
+ "minimum": 16,
775
+ "maximum": 16384
776
+ }
777
+ ]
778
+ },
779
+ "height": {
780
+ "type": "integer",
781
+ "allOf": [
782
+ {
783
+ "minimum": 16,
784
+ "maximum": 16384
785
+ }
786
+ ]
787
+ }
788
+ },
789
+ "required": ["width", "height"],
790
+ "additionalProperties": false
791
+ },
792
+ "minimumFrames": {
793
+ "type": "integer",
794
+ "allOf": [
795
+ {
796
+ "minimum": 1,
797
+ "maximum": 4096
798
+ }
799
+ ]
800
+ }
801
+ },
802
+ "required": [
803
+ "mode",
804
+ "referenceCamera",
805
+ "referenceSize",
806
+ "minimumFrames"
807
+ ],
808
+ "additionalProperties": false
809
+ }
810
+ ]
811
+ },
812
+ "settling": {
813
+ "type": "object",
814
+ "properties": {
815
+ "minimumFrames": {
816
+ "type": "integer",
817
+ "allOf": [
818
+ {
819
+ "minimum": 1,
820
+ "maximum": 4096
821
+ }
822
+ ]
823
+ },
824
+ "timeoutMs": {
825
+ "type": "integer",
826
+ "allOf": [
827
+ {
828
+ "minimum": 1000,
829
+ "maximum": 900000
830
+ }
831
+ ]
832
+ },
833
+ "initialView": {
834
+ "type": "object",
835
+ "properties": {
836
+ "camera": {
837
+ "type": "object",
838
+ "properties": {
839
+ "location": {
840
+ "type": "object",
841
+ "properties": {
842
+ "x": {
843
+ "type": "number"
844
+ },
845
+ "y": {
846
+ "type": "number"
847
+ },
848
+ "z": {
849
+ "type": "number"
850
+ }
851
+ },
852
+ "required": ["x", "y", "z"],
853
+ "additionalProperties": false
854
+ },
855
+ "rotation": {
856
+ "type": "object",
857
+ "properties": {
858
+ "pitch": {
859
+ "type": "number"
860
+ },
861
+ "roll": {
862
+ "type": "number"
863
+ },
864
+ "yaw": {
865
+ "type": "number"
866
+ }
867
+ },
868
+ "required": [
869
+ "pitch",
870
+ "roll",
871
+ "yaw"
872
+ ],
873
+ "additionalProperties": false
874
+ },
875
+ "projection": {
876
+ "anyOf": [
877
+ {
878
+ "type": "object",
879
+ "properties": {
880
+ "kind": {
881
+ "type": "string",
882
+ "enum": [
883
+ "perspective"
884
+ ]
885
+ },
886
+ "horizontalFieldOfView": {
887
+ "type": "number",
888
+ "allOf": [
889
+ {
890
+ "minimum": 5,
891
+ "maximum": 170
892
+ }
893
+ ]
894
+ }
895
+ },
896
+ "required": [
897
+ "kind",
898
+ "horizontalFieldOfView"
899
+ ],
900
+ "additionalProperties": false
901
+ },
902
+ {
903
+ "type": "object",
904
+ "properties": {
905
+ "kind": {
906
+ "type": "string",
907
+ "enum": [
908
+ "orthographic"
909
+ ]
910
+ },
911
+ "width": {
912
+ "type": "number",
913
+ "allOf": [
914
+ {
915
+ "exclusiveMinimum": 0
916
+ },
917
+ {
918
+ "maximum": 1000000000
919
+ }
920
+ ]
921
+ }
922
+ },
923
+ "required": [
924
+ "kind",
925
+ "width"
926
+ ],
927
+ "additionalProperties": false
928
+ }
929
+ ]
930
+ }
931
+ },
932
+ "required": [
933
+ "location",
934
+ "rotation",
935
+ "projection"
936
+ ],
937
+ "additionalProperties": false
938
+ },
939
+ "size": {
940
+ "type": "object",
941
+ "properties": {
942
+ "width": {
943
+ "type": "integer",
944
+ "allOf": [
945
+ {
946
+ "minimum": 16,
947
+ "maximum": 16384
948
+ }
949
+ ]
950
+ },
951
+ "height": {
952
+ "type": "integer",
953
+ "allOf": [
954
+ {
955
+ "minimum": 16,
956
+ "maximum": 16384
957
+ }
958
+ ]
959
+ }
960
+ },
961
+ "required": ["width", "height"],
962
+ "additionalProperties": false
963
+ },
964
+ "minimumFrames": {
965
+ "type": "integer",
966
+ "allOf": [
967
+ {
968
+ "minimum": 1,
969
+ "maximum": 4096
970
+ }
971
+ ]
972
+ }
973
+ },
974
+ "required": [
975
+ "camera",
976
+ "size",
977
+ "minimumFrames"
978
+ ],
979
+ "additionalProperties": false
980
+ }
981
+ },
982
+ "required": ["minimumFrames", "timeoutMs"],
983
+ "additionalProperties": false
984
+ },
985
+ "time": {
986
+ "type": "string",
987
+ "enum": [
988
+ "live_editor",
989
+ "freeze_materials_and_ticks"
990
+ ]
991
+ },
992
+ "preparation": {
993
+ "type": "object",
994
+ "properties": {
995
+ "geometry": {
996
+ "anyOf": [
997
+ {
998
+ "type": "object",
999
+ "properties": {
1000
+ "mode": {
1001
+ "type": "string",
1002
+ "enum": ["preserve_loading"]
1003
+ }
1004
+ },
1005
+ "required": ["mode"],
1006
+ "additionalProperties": false
1007
+ },
1008
+ {
1009
+ "type": "object",
1010
+ "properties": {
1011
+ "mode": {
1012
+ "type": "string",
1013
+ "enum": ["camera_regions"]
1014
+ },
1015
+ "maximumRegions": {
1016
+ "type": "integer",
1017
+ "allOf": [
1018
+ {
1019
+ "minimum": 1,
1020
+ "maximum": 64
1021
+ }
1022
+ ]
1023
+ },
1024
+ "extent": {
1025
+ "type": "object",
1026
+ "properties": {
1027
+ "x": {
1028
+ "type": "number",
1029
+ "allOf": [
1030
+ {
1031
+ "minimum": 0,
1032
+ "maximum": 10000000
1033
+ }
1034
+ ]
1035
+ },
1036
+ "y": {
1037
+ "type": "number",
1038
+ "allOf": [
1039
+ {
1040
+ "minimum": 0,
1041
+ "maximum": 10000000
1042
+ }
1043
+ ]
1044
+ },
1045
+ "z": {
1046
+ "type": "number",
1047
+ "allOf": [
1048
+ {
1049
+ "minimum": 0,
1050
+ "maximum": 10000000
1051
+ }
1052
+ ]
1053
+ }
1054
+ },
1055
+ "required": ["x", "y", "z"],
1056
+ "additionalProperties": false
1057
+ }
1058
+ },
1059
+ "required": [
1060
+ "mode",
1061
+ "maximumRegions",
1062
+ "extent"
1063
+ ],
1064
+ "additionalProperties": false
1065
+ }
1066
+ ]
1067
+ },
1068
+ "dataLayers": {
1069
+ "type": "array",
1070
+ "items": {
1071
+ "type": "object",
1072
+ "properties": {
1073
+ "assetPath": {
1074
+ "type": "string",
1075
+ "allOf": [
1076
+ {
1077
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
1078
+ },
1079
+ {
1080
+ "maxLength": 1024
1081
+ }
1082
+ ]
1083
+ },
1084
+ "loaded": {
1085
+ "type": "boolean"
1086
+ },
1087
+ "visible": {
1088
+ "type": "boolean"
1089
+ }
1090
+ },
1091
+ "required": [
1092
+ "assetPath",
1093
+ "loaded",
1094
+ "visible"
1095
+ ],
1096
+ "additionalProperties": false
1097
+ },
1098
+ "allOf": [
1099
+ {
1100
+ "maxItems": 64
1101
+ }
1102
+ ]
1103
+ }
1104
+ },
1105
+ "required": ["geometry", "dataLayers"],
1106
+ "additionalProperties": false
1107
+ }
1108
+ },
1109
+ "required": [
1110
+ "renderer",
1111
+ "exposure",
1112
+ "settling",
1113
+ "time",
1114
+ "preparation"
1115
+ ],
1116
+ "additionalProperties": false
1117
+ },
1118
+ "exposureEV100": {
1119
+ "anyOf": [
1120
+ {
1121
+ "type": "number"
1122
+ },
1123
+ {
1124
+ "type": "null"
1125
+ }
1126
+ ]
1127
+ },
1128
+ "preparation": {
1129
+ "type": "object",
1130
+ "properties": {
1131
+ "status": {
1132
+ "type": "string",
1133
+ "enum": ["preserved", "ready", "partial"]
1134
+ },
1135
+ "regionsHeld": {
1136
+ "type": "integer",
1137
+ "allOf": [
1138
+ {
1139
+ "minimum": 0,
1140
+ "maximum": 64
1141
+ }
1142
+ ]
1143
+ },
1144
+ "dataLayersApplied": {
1145
+ "type": "integer",
1146
+ "allOf": [
1147
+ {
1148
+ "minimum": 0,
1149
+ "maximum": 64
1150
+ }
1151
+ ]
1152
+ },
1153
+ "limitations": {
1154
+ "type": "array",
1155
+ "items": {
1156
+ "type": "string",
1157
+ "allOf": [
1158
+ {
1159
+ "minLength": 1
1160
+ },
1161
+ {
1162
+ "maxLength": 1024
1163
+ }
1164
+ ]
1165
+ }
1166
+ }
1167
+ },
1168
+ "required": [
1169
+ "status",
1170
+ "regionsHeld",
1171
+ "dataLayersApplied",
1172
+ "limitations"
1173
+ ],
1174
+ "additionalProperties": false
1175
+ },
1176
+ "settling": {
1177
+ "type": "object",
1178
+ "properties": {
1179
+ "renderedFrames": {
1180
+ "type": "integer",
1181
+ "allOf": [
1182
+ {
1183
+ "minimum": 0,
1184
+ "maximum": 1000000
1185
+ }
1186
+ ]
1187
+ },
1188
+ "elapsedMs": {
1189
+ "type": "number",
1190
+ "allOf": [
1191
+ {
1192
+ "minimum": 0
1193
+ }
1194
+ ]
1195
+ },
1196
+ "convergence": {
1197
+ "type": "string",
1198
+ "enum": ["not_assessed"]
1199
+ }
1200
+ },
1201
+ "required": ["renderedFrames", "elapsedMs", "convergence"],
1202
+ "additionalProperties": false
1203
+ },
1204
+ "engineVersion": {
1205
+ "type": "string",
1206
+ "allOf": [
1207
+ {
1208
+ "minLength": 1
1209
+ },
1210
+ {
1211
+ "maxLength": 1024
1212
+ }
1213
+ ]
1214
+ },
1215
+ "pluginVersion": {
1216
+ "type": "string",
1217
+ "allOf": [
1218
+ {
1219
+ "minLength": 1
1220
+ },
1221
+ {
1222
+ "maxLength": 1024
1223
+ }
1224
+ ]
1225
+ }
1226
+ },
1227
+ "required": [
1228
+ "editorState",
1229
+ "camera",
1230
+ "size",
1231
+ "policy",
1232
+ "exposureEV100",
1233
+ "preparation",
1234
+ "settling",
1235
+ "engineVersion",
1236
+ "pluginVersion"
1237
+ ],
1238
+ "additionalProperties": false
1239
+ },
79
1240
  "bytes": {
80
1241
  "type": "integer",
81
- "minimum": 1
1242
+ "allOf": [
1243
+ {
1244
+ "exclusiveMinimum": 0
1245
+ }
1246
+ ]
82
1247
  },
83
1248
  "captureDurationMs": {
84
1249
  "type": "number",
85
- "minimum": 0
1250
+ "allOf": [
1251
+ {
1252
+ "minimum": 0
1253
+ }
1254
+ ]
86
1255
  },
87
1256
  "height": {
88
1257
  "type": "integer",
89
- "minimum": 1
1258
+ "allOf": [
1259
+ {
1260
+ "exclusiveMinimum": 0
1261
+ }
1262
+ ]
90
1263
  },
91
1264
  "key": {
92
- "$ref": "capture-request.schema.json#/$defs/tileKey"
1265
+ "type": "object",
1266
+ "properties": {
1267
+ "zoom": {
1268
+ "type": "integer",
1269
+ "allOf": [
1270
+ {
1271
+ "minimum": 0
1272
+ }
1273
+ ]
1274
+ },
1275
+ "row": {
1276
+ "type": "integer",
1277
+ "allOf": [
1278
+ {
1279
+ "minimum": 0
1280
+ }
1281
+ ]
1282
+ },
1283
+ "column": {
1284
+ "type": "integer",
1285
+ "allOf": [
1286
+ {
1287
+ "minimum": 0
1288
+ }
1289
+ ]
1290
+ }
1291
+ },
1292
+ "required": ["zoom", "row", "column"],
1293
+ "additionalProperties": false
93
1294
  },
94
1295
  "stagedPath": {
95
1296
  "type": "string",
96
- "minLength": 1
1297
+ "allOf": [
1298
+ {
1299
+ "minLength": 1
1300
+ },
1301
+ {
1302
+ "maxLength": 1024
1303
+ }
1304
+ ]
97
1305
  },
98
1306
  "status": {
99
- "const": "captured"
1307
+ "type": "string",
1308
+ "enum": ["captured"]
100
1309
  },
101
1310
  "width": {
102
1311
  "type": "integer",
103
- "minimum": 1
104
- },
105
- "renderEvidence": {
106
- "$ref": "../../render/v1/frame-evidence.schema.json"
1312
+ "allOf": [
1313
+ {
1314
+ "exclusiveMinimum": 0
1315
+ }
1316
+ ]
107
1317
  }
108
- }
1318
+ },
1319
+ "required": [
1320
+ "bytes",
1321
+ "captureDurationMs",
1322
+ "height",
1323
+ "key",
1324
+ "stagedPath",
1325
+ "status",
1326
+ "width"
1327
+ ],
1328
+ "additionalProperties": false
109
1329
  },
110
1330
  {
111
1331
  "type": "object",
112
- "additionalProperties": false,
113
- "required": ["failure", "key", "status"],
114
1332
  "properties": {
115
1333
  "failure": {
116
- "$ref": "#/$defs/failure"
1334
+ "type": "object",
1335
+ "properties": {
1336
+ "code": {
1337
+ "type": "string",
1338
+ "enum": [
1339
+ "cancelled",
1340
+ "capture_failed",
1341
+ "data_layer_policy_unsupported",
1342
+ "dirty_state_changed",
1343
+ "encoding_failed",
1344
+ "invalid_request",
1345
+ "map_mismatch",
1346
+ "streaming_not_ready",
1347
+ "write_failed"
1348
+ ]
1349
+ },
1350
+ "message": {
1351
+ "type": "string",
1352
+ "allOf": [
1353
+ {
1354
+ "minLength": 1
1355
+ },
1356
+ {
1357
+ "maxLength": 1024
1358
+ }
1359
+ ]
1360
+ },
1361
+ "recovery": {
1362
+ "type": "string",
1363
+ "allOf": [
1364
+ {
1365
+ "minLength": 1
1366
+ },
1367
+ {
1368
+ "maxLength": 1024
1369
+ }
1370
+ ]
1371
+ },
1372
+ "retrySafe": {
1373
+ "type": "boolean"
1374
+ }
1375
+ },
1376
+ "required": ["code", "message", "recovery", "retrySafe"],
1377
+ "additionalProperties": false
117
1378
  },
118
1379
  "key": {
119
- "$ref": "capture-request.schema.json#/$defs/tileKey"
1380
+ "type": "object",
1381
+ "properties": {
1382
+ "zoom": {
1383
+ "type": "integer",
1384
+ "allOf": [
1385
+ {
1386
+ "minimum": 0
1387
+ }
1388
+ ]
1389
+ },
1390
+ "row": {
1391
+ "type": "integer",
1392
+ "allOf": [
1393
+ {
1394
+ "minimum": 0
1395
+ }
1396
+ ]
1397
+ },
1398
+ "column": {
1399
+ "type": "integer",
1400
+ "allOf": [
1401
+ {
1402
+ "minimum": 0
1403
+ }
1404
+ ]
1405
+ }
1406
+ },
1407
+ "required": ["zoom", "row", "column"],
1408
+ "additionalProperties": false
120
1409
  },
121
1410
  "status": {
122
- "const": "failed"
1411
+ "type": "string",
1412
+ "enum": ["failed"]
123
1413
  }
124
- }
1414
+ },
1415
+ "required": ["failure", "key", "status"],
1416
+ "additionalProperties": false
125
1417
  }
126
1418
  ]
127
- }
1419
+ },
1420
+ "allOf": [
1421
+ {
1422
+ "maxItems": 64
1423
+ }
1424
+ ]
128
1425
  },
129
1426
  "status": {
1427
+ "type": "string",
130
1428
  "enum": ["completed", "partial", "cancelled", "failed"]
131
1429
  },
132
1430
  "tileCounts": {
133
1431
  "type": "object",
134
- "additionalProperties": false,
135
- "required": ["failed", "requested", "succeeded"],
136
1432
  "properties": {
137
1433
  "failed": {
138
1434
  "type": "integer",
139
- "minimum": 0
1435
+ "allOf": [
1436
+ {
1437
+ "minimum": 0
1438
+ }
1439
+ ]
140
1440
  },
141
1441
  "requested": {
142
1442
  "type": "integer",
143
- "minimum": 0
1443
+ "allOf": [
1444
+ {
1445
+ "minimum": 0
1446
+ }
1447
+ ]
144
1448
  },
145
1449
  "succeeded": {
146
1450
  "type": "integer",
147
- "minimum": 0
148
- }
149
- }
150
- }
151
- },
152
- "$defs": {
153
- "failure": {
154
- "type": "object",
155
- "additionalProperties": false,
156
- "required": ["code", "message", "recovery", "retrySafe"],
157
- "properties": {
158
- "code": {
159
- "enum": [
160
- "cancelled",
161
- "capture_failed",
162
- "data_layer_policy_unsupported",
163
- "dirty_state_changed",
164
- "encoding_failed",
165
- "invalid_request",
166
- "map_mismatch",
167
- "streaming_not_ready",
168
- "write_failed"
1451
+ "allOf": [
1452
+ {
1453
+ "minimum": 0
1454
+ }
169
1455
  ]
170
- },
171
- "message": {
172
- "type": "string",
173
- "minLength": 1,
174
- "maxLength": 1024
175
- },
176
- "recovery": {
177
- "type": "string",
178
- "minLength": 1,
179
- "maxLength": 1024
180
- },
181
- "retrySafe": {
182
- "type": "boolean"
183
1456
  }
184
- }
1457
+ },
1458
+ "required": ["failed", "requested", "succeeded"],
1459
+ "additionalProperties": false
185
1460
  }
186
- }
1461
+ },
1462
+ "required": [
1463
+ "contract",
1464
+ "correlationId",
1465
+ "dirtyState",
1466
+ "durationMs",
1467
+ "operationId",
1468
+ "results",
1469
+ "status",
1470
+ "tileCounts"
1471
+ ],
1472
+ "additionalProperties": false,
1473
+ "$defs": {}
187
1474
  }