@ue-shed/protocol 0.6.0 → 0.7.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 (33) hide show
  1. package/contracts/cameras/map-tile/v1/README.md +7 -0
  2. package/contracts/cameras/map-tile/v1/capture-response.schema.json +97 -25
  3. package/contracts/cameras/map-tile/v1/manifest.schema.json +136 -37
  4. package/contracts/cameras/map-tile/v1/plan.schema.json +132 -36
  5. package/contracts/cameras/map-tile/v1/release-result.schema.json +12 -0
  6. package/contracts/cameras/render/v1/README.md +33 -0
  7. package/contracts/cameras/render/v1/begin-result.schema.json +712 -0
  8. package/contracts/cameras/render/v1/capabilities.schema.json +201 -0
  9. package/contracts/cameras/render/v1/end-result.schema.json +185 -0
  10. package/contracts/cameras/render/v1/fixtures/frame-orthographic.json +31 -0
  11. package/contracts/cameras/render/v1/fixtures/frame-perspective.json +31 -0
  12. package/contracts/cameras/render/v1/fixtures/invalid-frame-mixed-projection.json +32 -0
  13. package/contracts/cameras/render/v1/fixtures/invalid-frame-size.json +31 -0
  14. package/contracts/cameras/render/v1/fixtures/invalid-session-backend-fields.json +40 -0
  15. package/contracts/cameras/render/v1/fixtures/invalid-session-budget.json +39 -0
  16. package/contracts/cameras/render/v1/fixtures/invalid-session-future.json +39 -0
  17. package/contracts/cameras/render/v1/fixtures/session-camera-regions.json +51 -0
  18. package/contracts/cameras/render/v1/fixtures/session-editor-viewport.json +40 -0
  19. package/contracts/cameras/render/v1/fixtures/session-scene-capture.json +39 -0
  20. package/contracts/cameras/render/v1/frame-evidence.schema.json +771 -0
  21. package/contracts/cameras/render/v1/frame-request.schema.json +219 -0
  22. package/contracts/cameras/render/v1/frame-status.schema.json +1076 -0
  23. package/contracts/cameras/render/v1/policy.schema.json +510 -0
  24. package/contracts/cameras/render/v1/preflight.schema.json +68 -0
  25. package/contracts/cameras/render/v1/review-inspection-request.schema.json +342 -0
  26. package/contracts/cameras/render/v1/review-inspection-result.schema.json +2030 -0
  27. package/contracts/cameras/render/v1/review-realization-request.schema.json +417 -0
  28. package/contracts/cameras/render/v1/review-realization-result.schema.json +454 -0
  29. package/contracts/cameras/render/v1/session-request.schema.json +617 -0
  30. package/contracts/cameras/review/v1/README.md +7 -0
  31. package/contracts/cameras/review/v1/capture-request.schema.json +247 -61
  32. package/contracts/cameras/review/v1/capture-response.schema.json +820 -192
  33. package/package.json +1 -1
@@ -0,0 +1,1076 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://ue-shed.dev/contracts/cameras/render/v1/frame-status.schema.json",
4
+ "anyOf": [
5
+ {
6
+ "type": "object",
7
+ "properties": {
8
+ "status": {
9
+ "type": "string",
10
+ "enum": ["running"]
11
+ },
12
+ "sessionId": {
13
+ "type": "string",
14
+ "allOf": [
15
+ {
16
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
17
+ }
18
+ ]
19
+ },
20
+ "operationId": {
21
+ "type": "string",
22
+ "allOf": [
23
+ {
24
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
25
+ }
26
+ ]
27
+ },
28
+ "phase": {
29
+ "type": "string",
30
+ "enum": ["preparing", "exposure_warmup", "frame_warmup", "capturing"]
31
+ },
32
+ "renderedFrames": {
33
+ "type": "integer",
34
+ "allOf": [
35
+ {
36
+ "minimum": 0,
37
+ "maximum": 1000000
38
+ }
39
+ ]
40
+ },
41
+ "elapsedMs": {
42
+ "type": "number",
43
+ "allOf": [
44
+ {
45
+ "minimum": 0
46
+ }
47
+ ]
48
+ }
49
+ },
50
+ "required": [
51
+ "status",
52
+ "sessionId",
53
+ "operationId",
54
+ "phase",
55
+ "renderedFrames",
56
+ "elapsedMs"
57
+ ],
58
+ "additionalProperties": false
59
+ },
60
+ {
61
+ "type": "object",
62
+ "properties": {
63
+ "status": {
64
+ "type": "string",
65
+ "enum": ["captured"]
66
+ },
67
+ "sessionId": {
68
+ "type": "string",
69
+ "allOf": [
70
+ {
71
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
72
+ }
73
+ ]
74
+ },
75
+ "operationId": {
76
+ "type": "string",
77
+ "allOf": [
78
+ {
79
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
80
+ }
81
+ ]
82
+ },
83
+ "artifact": {
84
+ "type": "object",
85
+ "properties": {
86
+ "relativePath": {
87
+ "type": "string",
88
+ "allOf": [
89
+ {
90
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}\\/[A-Za-z0-9][A-Za-z0-9._-]{0,127}\\.png$"
91
+ }
92
+ ]
93
+ },
94
+ "bytes": {
95
+ "type": "integer",
96
+ "allOf": [
97
+ {
98
+ "exclusiveMinimum": 0
99
+ }
100
+ ]
101
+ },
102
+ "width": {
103
+ "type": "integer",
104
+ "allOf": [
105
+ {
106
+ "minimum": 16,
107
+ "maximum": 16384
108
+ }
109
+ ]
110
+ },
111
+ "height": {
112
+ "type": "integer",
113
+ "allOf": [
114
+ {
115
+ "minimum": 16,
116
+ "maximum": 16384
117
+ }
118
+ ]
119
+ }
120
+ },
121
+ "required": ["relativePath", "bytes", "width", "height"],
122
+ "additionalProperties": false
123
+ },
124
+ "evidence": {
125
+ "type": "object",
126
+ "properties": {
127
+ "editorState": {
128
+ "type": "object",
129
+ "properties": {
130
+ "mapPackageDirtyBefore": {
131
+ "type": "boolean"
132
+ },
133
+ "mapPackageDirtyAfter": {
134
+ "type": "boolean"
135
+ }
136
+ },
137
+ "required": ["mapPackageDirtyBefore", "mapPackageDirtyAfter"],
138
+ "additionalProperties": false
139
+ },
140
+ "camera": {
141
+ "type": "object",
142
+ "properties": {
143
+ "location": {
144
+ "type": "object",
145
+ "properties": {
146
+ "x": {
147
+ "type": "number"
148
+ },
149
+ "y": {
150
+ "type": "number"
151
+ },
152
+ "z": {
153
+ "type": "number"
154
+ }
155
+ },
156
+ "required": ["x", "y", "z"],
157
+ "additionalProperties": false
158
+ },
159
+ "rotation": {
160
+ "type": "object",
161
+ "properties": {
162
+ "pitch": {
163
+ "type": "number"
164
+ },
165
+ "roll": {
166
+ "type": "number"
167
+ },
168
+ "yaw": {
169
+ "type": "number"
170
+ }
171
+ },
172
+ "required": ["pitch", "roll", "yaw"],
173
+ "additionalProperties": false
174
+ },
175
+ "projection": {
176
+ "anyOf": [
177
+ {
178
+ "type": "object",
179
+ "properties": {
180
+ "kind": {
181
+ "type": "string",
182
+ "enum": ["perspective"]
183
+ },
184
+ "horizontalFieldOfView": {
185
+ "type": "number",
186
+ "allOf": [
187
+ {
188
+ "minimum": 5,
189
+ "maximum": 170
190
+ }
191
+ ]
192
+ }
193
+ },
194
+ "required": ["kind", "horizontalFieldOfView"],
195
+ "additionalProperties": false
196
+ },
197
+ {
198
+ "type": "object",
199
+ "properties": {
200
+ "kind": {
201
+ "type": "string",
202
+ "enum": ["orthographic"]
203
+ },
204
+ "width": {
205
+ "type": "number",
206
+ "allOf": [
207
+ {
208
+ "exclusiveMinimum": 0
209
+ },
210
+ {
211
+ "maximum": 1000000000
212
+ }
213
+ ]
214
+ }
215
+ },
216
+ "required": ["kind", "width"],
217
+ "additionalProperties": false
218
+ }
219
+ ]
220
+ }
221
+ },
222
+ "required": ["location", "rotation", "projection"],
223
+ "additionalProperties": false
224
+ },
225
+ "size": {
226
+ "type": "object",
227
+ "properties": {
228
+ "width": {
229
+ "type": "integer",
230
+ "allOf": [
231
+ {
232
+ "minimum": 16,
233
+ "maximum": 16384
234
+ }
235
+ ]
236
+ },
237
+ "height": {
238
+ "type": "integer",
239
+ "allOf": [
240
+ {
241
+ "minimum": 16,
242
+ "maximum": 16384
243
+ }
244
+ ]
245
+ }
246
+ },
247
+ "required": ["width", "height"],
248
+ "additionalProperties": false
249
+ },
250
+ "policy": {
251
+ "type": "object",
252
+ "properties": {
253
+ "renderer": {
254
+ "anyOf": [
255
+ {
256
+ "type": "object",
257
+ "properties": {
258
+ "kind": {
259
+ "type": "string",
260
+ "enum": ["editor_viewport"]
261
+ },
262
+ "strategy": {
263
+ "type": "string",
264
+ "enum": ["high_resolution_screenshot"]
265
+ },
266
+ "profile": {
267
+ "type": "string",
268
+ "enum": ["lit", "observation"]
269
+ },
270
+ "vignette": {
271
+ "type": "string",
272
+ "enum": ["project", "disabled"]
273
+ },
274
+ "fog": {
275
+ "type": "boolean"
276
+ },
277
+ "volumetricFog": {
278
+ "type": "boolean"
279
+ }
280
+ },
281
+ "required": [
282
+ "kind",
283
+ "strategy",
284
+ "profile",
285
+ "vignette",
286
+ "fog",
287
+ "volumetricFog"
288
+ ],
289
+ "additionalProperties": false
290
+ },
291
+ {
292
+ "type": "object",
293
+ "properties": {
294
+ "kind": {
295
+ "type": "string",
296
+ "enum": ["scene_capture"]
297
+ },
298
+ "profile": {
299
+ "type": "string",
300
+ "enum": [
301
+ "full_fidelity",
302
+ "seam_stable",
303
+ "scene_capture_defaults",
304
+ "observation"
305
+ ]
306
+ },
307
+ "lodDistanceScale": {
308
+ "type": "number",
309
+ "allOf": [
310
+ {
311
+ "minimum": 0.1,
312
+ "maximum": 100
313
+ }
314
+ ]
315
+ },
316
+ "fog": {
317
+ "type": "boolean"
318
+ },
319
+ "volumetricFog": {
320
+ "type": "boolean"
321
+ }
322
+ },
323
+ "required": [
324
+ "kind",
325
+ "profile",
326
+ "lodDistanceScale",
327
+ "fog",
328
+ "volumetricFog"
329
+ ],
330
+ "additionalProperties": false
331
+ }
332
+ ]
333
+ },
334
+ "exposure": {
335
+ "anyOf": [
336
+ {
337
+ "type": "object",
338
+ "properties": {
339
+ "mode": {
340
+ "type": "string",
341
+ "enum": ["project_auto"]
342
+ }
343
+ },
344
+ "required": ["mode"],
345
+ "additionalProperties": false
346
+ },
347
+ {
348
+ "type": "object",
349
+ "properties": {
350
+ "mode": {
351
+ "type": "string",
352
+ "enum": ["fixed_ev100"]
353
+ },
354
+ "ev100": {
355
+ "type": "number",
356
+ "allOf": [
357
+ {
358
+ "minimum": -20,
359
+ "maximum": 30
360
+ }
361
+ ]
362
+ },
363
+ "compensation": {
364
+ "type": "string",
365
+ "enum": ["project"]
366
+ }
367
+ },
368
+ "required": ["mode", "ev100", "compensation"],
369
+ "additionalProperties": false
370
+ },
371
+ {
372
+ "type": "object",
373
+ "properties": {
374
+ "mode": {
375
+ "type": "string",
376
+ "enum": ["meter_once"]
377
+ },
378
+ "referenceCamera": {
379
+ "type": "object",
380
+ "properties": {
381
+ "location": {
382
+ "type": "object",
383
+ "properties": {
384
+ "x": {
385
+ "type": "number"
386
+ },
387
+ "y": {
388
+ "type": "number"
389
+ },
390
+ "z": {
391
+ "type": "number"
392
+ }
393
+ },
394
+ "required": ["x", "y", "z"],
395
+ "additionalProperties": false
396
+ },
397
+ "rotation": {
398
+ "type": "object",
399
+ "properties": {
400
+ "pitch": {
401
+ "type": "number"
402
+ },
403
+ "roll": {
404
+ "type": "number"
405
+ },
406
+ "yaw": {
407
+ "type": "number"
408
+ }
409
+ },
410
+ "required": ["pitch", "roll", "yaw"],
411
+ "additionalProperties": false
412
+ },
413
+ "projection": {
414
+ "anyOf": [
415
+ {
416
+ "type": "object",
417
+ "properties": {
418
+ "kind": {
419
+ "type": "string",
420
+ "enum": ["perspective"]
421
+ },
422
+ "horizontalFieldOfView": {
423
+ "type": "number",
424
+ "allOf": [
425
+ {
426
+ "minimum": 5,
427
+ "maximum": 170
428
+ }
429
+ ]
430
+ }
431
+ },
432
+ "required": [
433
+ "kind",
434
+ "horizontalFieldOfView"
435
+ ],
436
+ "additionalProperties": false
437
+ },
438
+ {
439
+ "type": "object",
440
+ "properties": {
441
+ "kind": {
442
+ "type": "string",
443
+ "enum": ["orthographic"]
444
+ },
445
+ "width": {
446
+ "type": "number",
447
+ "allOf": [
448
+ {
449
+ "exclusiveMinimum": 0
450
+ },
451
+ {
452
+ "maximum": 1000000000
453
+ }
454
+ ]
455
+ }
456
+ },
457
+ "required": ["kind", "width"],
458
+ "additionalProperties": false
459
+ }
460
+ ]
461
+ }
462
+ },
463
+ "required": [
464
+ "location",
465
+ "rotation",
466
+ "projection"
467
+ ],
468
+ "additionalProperties": false
469
+ },
470
+ "referenceSize": {
471
+ "type": "object",
472
+ "properties": {
473
+ "width": {
474
+ "type": "integer",
475
+ "allOf": [
476
+ {
477
+ "minimum": 16,
478
+ "maximum": 16384
479
+ }
480
+ ]
481
+ },
482
+ "height": {
483
+ "type": "integer",
484
+ "allOf": [
485
+ {
486
+ "minimum": 16,
487
+ "maximum": 16384
488
+ }
489
+ ]
490
+ }
491
+ },
492
+ "required": ["width", "height"],
493
+ "additionalProperties": false
494
+ },
495
+ "minimumFrames": {
496
+ "type": "integer",
497
+ "allOf": [
498
+ {
499
+ "minimum": 1,
500
+ "maximum": 4096
501
+ }
502
+ ]
503
+ }
504
+ },
505
+ "required": [
506
+ "mode",
507
+ "referenceCamera",
508
+ "referenceSize",
509
+ "minimumFrames"
510
+ ],
511
+ "additionalProperties": false
512
+ }
513
+ ]
514
+ },
515
+ "settling": {
516
+ "type": "object",
517
+ "properties": {
518
+ "minimumFrames": {
519
+ "type": "integer",
520
+ "allOf": [
521
+ {
522
+ "minimum": 1,
523
+ "maximum": 4096
524
+ }
525
+ ]
526
+ },
527
+ "timeoutMs": {
528
+ "type": "integer",
529
+ "allOf": [
530
+ {
531
+ "minimum": 1000,
532
+ "maximum": 900000
533
+ }
534
+ ]
535
+ },
536
+ "initialView": {
537
+ "type": "object",
538
+ "properties": {
539
+ "camera": {
540
+ "type": "object",
541
+ "properties": {
542
+ "location": {
543
+ "type": "object",
544
+ "properties": {
545
+ "x": {
546
+ "type": "number"
547
+ },
548
+ "y": {
549
+ "type": "number"
550
+ },
551
+ "z": {
552
+ "type": "number"
553
+ }
554
+ },
555
+ "required": ["x", "y", "z"],
556
+ "additionalProperties": false
557
+ },
558
+ "rotation": {
559
+ "type": "object",
560
+ "properties": {
561
+ "pitch": {
562
+ "type": "number"
563
+ },
564
+ "roll": {
565
+ "type": "number"
566
+ },
567
+ "yaw": {
568
+ "type": "number"
569
+ }
570
+ },
571
+ "required": ["pitch", "roll", "yaw"],
572
+ "additionalProperties": false
573
+ },
574
+ "projection": {
575
+ "anyOf": [
576
+ {
577
+ "type": "object",
578
+ "properties": {
579
+ "kind": {
580
+ "type": "string",
581
+ "enum": ["perspective"]
582
+ },
583
+ "horizontalFieldOfView": {
584
+ "type": "number",
585
+ "allOf": [
586
+ {
587
+ "minimum": 5,
588
+ "maximum": 170
589
+ }
590
+ ]
591
+ }
592
+ },
593
+ "required": [
594
+ "kind",
595
+ "horizontalFieldOfView"
596
+ ],
597
+ "additionalProperties": false
598
+ },
599
+ {
600
+ "type": "object",
601
+ "properties": {
602
+ "kind": {
603
+ "type": "string",
604
+ "enum": ["orthographic"]
605
+ },
606
+ "width": {
607
+ "type": "number",
608
+ "allOf": [
609
+ {
610
+ "exclusiveMinimum": 0
611
+ },
612
+ {
613
+ "maximum": 1000000000
614
+ }
615
+ ]
616
+ }
617
+ },
618
+ "required": ["kind", "width"],
619
+ "additionalProperties": false
620
+ }
621
+ ]
622
+ }
623
+ },
624
+ "required": [
625
+ "location",
626
+ "rotation",
627
+ "projection"
628
+ ],
629
+ "additionalProperties": false
630
+ },
631
+ "size": {
632
+ "type": "object",
633
+ "properties": {
634
+ "width": {
635
+ "type": "integer",
636
+ "allOf": [
637
+ {
638
+ "minimum": 16,
639
+ "maximum": 16384
640
+ }
641
+ ]
642
+ },
643
+ "height": {
644
+ "type": "integer",
645
+ "allOf": [
646
+ {
647
+ "minimum": 16,
648
+ "maximum": 16384
649
+ }
650
+ ]
651
+ }
652
+ },
653
+ "required": ["width", "height"],
654
+ "additionalProperties": false
655
+ },
656
+ "minimumFrames": {
657
+ "type": "integer",
658
+ "allOf": [
659
+ {
660
+ "minimum": 1,
661
+ "maximum": 4096
662
+ }
663
+ ]
664
+ }
665
+ },
666
+ "required": ["camera", "size", "minimumFrames"],
667
+ "additionalProperties": false
668
+ }
669
+ },
670
+ "required": ["minimumFrames", "timeoutMs"],
671
+ "additionalProperties": false
672
+ },
673
+ "time": {
674
+ "type": "string",
675
+ "enum": ["live_editor", "freeze_materials_and_ticks"]
676
+ },
677
+ "preparation": {
678
+ "type": "object",
679
+ "properties": {
680
+ "geometry": {
681
+ "anyOf": [
682
+ {
683
+ "type": "object",
684
+ "properties": {
685
+ "mode": {
686
+ "type": "string",
687
+ "enum": ["preserve_loading"]
688
+ }
689
+ },
690
+ "required": ["mode"],
691
+ "additionalProperties": false
692
+ },
693
+ {
694
+ "type": "object",
695
+ "properties": {
696
+ "mode": {
697
+ "type": "string",
698
+ "enum": ["camera_regions"]
699
+ },
700
+ "maximumRegions": {
701
+ "type": "integer",
702
+ "allOf": [
703
+ {
704
+ "minimum": 1,
705
+ "maximum": 64
706
+ }
707
+ ]
708
+ },
709
+ "extent": {
710
+ "type": "object",
711
+ "properties": {
712
+ "x": {
713
+ "type": "number",
714
+ "allOf": [
715
+ {
716
+ "minimum": 0,
717
+ "maximum": 10000000
718
+ }
719
+ ]
720
+ },
721
+ "y": {
722
+ "type": "number",
723
+ "allOf": [
724
+ {
725
+ "minimum": 0,
726
+ "maximum": 10000000
727
+ }
728
+ ]
729
+ },
730
+ "z": {
731
+ "type": "number",
732
+ "allOf": [
733
+ {
734
+ "minimum": 0,
735
+ "maximum": 10000000
736
+ }
737
+ ]
738
+ }
739
+ },
740
+ "required": ["x", "y", "z"],
741
+ "additionalProperties": false
742
+ }
743
+ },
744
+ "required": [
745
+ "mode",
746
+ "maximumRegions",
747
+ "extent"
748
+ ],
749
+ "additionalProperties": false
750
+ }
751
+ ]
752
+ },
753
+ "dataLayers": {
754
+ "type": "array",
755
+ "items": {
756
+ "type": "object",
757
+ "properties": {
758
+ "assetPath": {
759
+ "type": "string",
760
+ "allOf": [
761
+ {
762
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
763
+ },
764
+ {
765
+ "maxLength": 1024
766
+ }
767
+ ]
768
+ },
769
+ "loaded": {
770
+ "type": "boolean"
771
+ },
772
+ "visible": {
773
+ "type": "boolean"
774
+ }
775
+ },
776
+ "required": ["assetPath", "loaded", "visible"],
777
+ "additionalProperties": false
778
+ },
779
+ "allOf": [
780
+ {
781
+ "maxItems": 64
782
+ }
783
+ ]
784
+ }
785
+ },
786
+ "required": ["geometry", "dataLayers"],
787
+ "additionalProperties": false
788
+ }
789
+ },
790
+ "required": ["renderer", "exposure", "settling", "time", "preparation"],
791
+ "additionalProperties": false
792
+ },
793
+ "exposureEV100": {
794
+ "anyOf": [
795
+ {
796
+ "type": "number"
797
+ },
798
+ {
799
+ "type": "null"
800
+ }
801
+ ]
802
+ },
803
+ "preparation": {
804
+ "type": "object",
805
+ "properties": {
806
+ "status": {
807
+ "type": "string",
808
+ "enum": ["preserved", "ready", "partial"]
809
+ },
810
+ "regionsHeld": {
811
+ "type": "integer",
812
+ "allOf": [
813
+ {
814
+ "minimum": 0,
815
+ "maximum": 64
816
+ }
817
+ ]
818
+ },
819
+ "dataLayersApplied": {
820
+ "type": "integer",
821
+ "allOf": [
822
+ {
823
+ "minimum": 0,
824
+ "maximum": 64
825
+ }
826
+ ]
827
+ },
828
+ "limitations": {
829
+ "type": "array",
830
+ "items": {
831
+ "type": "string",
832
+ "allOf": [
833
+ {
834
+ "minLength": 1
835
+ },
836
+ {
837
+ "maxLength": 1024
838
+ }
839
+ ]
840
+ }
841
+ }
842
+ },
843
+ "required": [
844
+ "status",
845
+ "regionsHeld",
846
+ "dataLayersApplied",
847
+ "limitations"
848
+ ],
849
+ "additionalProperties": false
850
+ },
851
+ "settling": {
852
+ "type": "object",
853
+ "properties": {
854
+ "renderedFrames": {
855
+ "type": "integer",
856
+ "allOf": [
857
+ {
858
+ "minimum": 0,
859
+ "maximum": 1000000
860
+ }
861
+ ]
862
+ },
863
+ "elapsedMs": {
864
+ "type": "number",
865
+ "allOf": [
866
+ {
867
+ "minimum": 0
868
+ }
869
+ ]
870
+ },
871
+ "convergence": {
872
+ "type": "string",
873
+ "enum": ["not_assessed"]
874
+ }
875
+ },
876
+ "required": ["renderedFrames", "elapsedMs", "convergence"],
877
+ "additionalProperties": false
878
+ },
879
+ "engineVersion": {
880
+ "type": "string",
881
+ "allOf": [
882
+ {
883
+ "minLength": 1
884
+ },
885
+ {
886
+ "maxLength": 1024
887
+ }
888
+ ]
889
+ },
890
+ "pluginVersion": {
891
+ "type": "string",
892
+ "allOf": [
893
+ {
894
+ "minLength": 1
895
+ },
896
+ {
897
+ "maxLength": 1024
898
+ }
899
+ ]
900
+ }
901
+ },
902
+ "required": [
903
+ "editorState",
904
+ "camera",
905
+ "size",
906
+ "policy",
907
+ "exposureEV100",
908
+ "preparation",
909
+ "settling",
910
+ "engineVersion",
911
+ "pluginVersion"
912
+ ],
913
+ "additionalProperties": false
914
+ }
915
+ },
916
+ "required": ["status", "sessionId", "operationId", "artifact", "evidence"],
917
+ "additionalProperties": false
918
+ },
919
+ {
920
+ "type": "object",
921
+ "properties": {
922
+ "status": {
923
+ "type": "string",
924
+ "enum": ["failed"]
925
+ },
926
+ "code": {
927
+ "type": "string",
928
+ "enum": [
929
+ "invalid_policy",
930
+ "invalid_frame",
931
+ "invalid_region",
932
+ "unsupported_policy",
933
+ "unsupported_size",
934
+ "editor_required",
935
+ "rendering_unavailable",
936
+ "map_mismatch",
937
+ "project_mismatch",
938
+ "editor_busy",
939
+ "viewport_unavailable",
940
+ "viewport_locked",
941
+ "preparation_failed",
942
+ "preparation_budget_exceeded",
943
+ "frame_budget_exceeded",
944
+ "world_changed",
945
+ "lease_expired",
946
+ "settling_timeout",
947
+ "exposure_unavailable",
948
+ "capture_failed",
949
+ "artifact_invalid",
950
+ "restoration_failed",
951
+ "cancelled",
952
+ "session_unknown",
953
+ "session_closed",
954
+ "session_conflict",
955
+ "operation_unknown",
956
+ "operation_expired",
957
+ "operation_conflict"
958
+ ]
959
+ },
960
+ "message": {
961
+ "type": "string",
962
+ "allOf": [
963
+ {
964
+ "minLength": 1
965
+ },
966
+ {
967
+ "maxLength": 1024
968
+ }
969
+ ]
970
+ },
971
+ "recovery": {
972
+ "type": "string",
973
+ "allOf": [
974
+ {
975
+ "minLength": 1
976
+ },
977
+ {
978
+ "maxLength": 1024
979
+ }
980
+ ]
981
+ },
982
+ "sessionId": {
983
+ "type": "string",
984
+ "allOf": [
985
+ {
986
+ "minLength": 1
987
+ },
988
+ {
989
+ "maxLength": 1024
990
+ }
991
+ ]
992
+ },
993
+ "operationId": {
994
+ "type": "string",
995
+ "allOf": [
996
+ {
997
+ "minLength": 1
998
+ },
999
+ {
1000
+ "maxLength": 1024
1001
+ }
1002
+ ]
1003
+ },
1004
+ "issues": {
1005
+ "type": "array",
1006
+ "items": {
1007
+ "type": "object",
1008
+ "properties": {
1009
+ "code": {
1010
+ "type": "string",
1011
+ "allOf": [
1012
+ {
1013
+ "minLength": 1
1014
+ },
1015
+ {
1016
+ "maxLength": 1024
1017
+ }
1018
+ ]
1019
+ },
1020
+ "path": {
1021
+ "type": "string",
1022
+ "allOf": [
1023
+ {
1024
+ "minLength": 1
1025
+ },
1026
+ {
1027
+ "maxLength": 1024
1028
+ }
1029
+ ]
1030
+ },
1031
+ "message": {
1032
+ "type": "string",
1033
+ "allOf": [
1034
+ {
1035
+ "minLength": 1
1036
+ },
1037
+ {
1038
+ "maxLength": 1024
1039
+ }
1040
+ ]
1041
+ },
1042
+ "recovery": {
1043
+ "type": "string",
1044
+ "allOf": [
1045
+ {
1046
+ "minLength": 1
1047
+ },
1048
+ {
1049
+ "maxLength": 1024
1050
+ }
1051
+ ]
1052
+ }
1053
+ },
1054
+ "required": ["code", "path", "message", "recovery"],
1055
+ "additionalProperties": false
1056
+ }
1057
+ },
1058
+ "restoration": {
1059
+ "type": "string",
1060
+ "enum": ["not_acquired", "restored", "failed"]
1061
+ }
1062
+ },
1063
+ "required": [
1064
+ "status",
1065
+ "code",
1066
+ "message",
1067
+ "recovery",
1068
+ "sessionId",
1069
+ "issues",
1070
+ "restoration"
1071
+ ],
1072
+ "additionalProperties": false
1073
+ }
1074
+ ],
1075
+ "$defs": {}
1076
+ }