@ue-shed/protocol 0.1.0-rc.1

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 (72) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +35 -0
  3. package/contracts/asset-audits/v1/texture-preview.schema.json +74 -0
  4. package/contracts/authoring/README.md +25 -0
  5. package/contracts/authoring/v1/apply-request.schema.json +568 -0
  6. package/contracts/authoring/v1/apply-result.schema.json +1165 -0
  7. package/contracts/authoring/v1/save-request.schema.json +53 -0
  8. package/contracts/authoring/v1/save-result.schema.json +77 -0
  9. package/contracts/authoring/v1/table-list.schema.json +48 -0
  10. package/contracts/authoring/v1/table-snapshot.schema.json +497 -0
  11. package/contracts/authoring/v2/table-snapshot.schema.json +950 -0
  12. package/contracts/cameras/review/v1/README.md +39 -0
  13. package/contracts/cameras/review/v1/capture-request.schema.json +92 -0
  14. package/contracts/cameras/review/v1/capture-response.schema.json +158 -0
  15. package/contracts/cameras/review/v1/fixtures/capture-failure.json +13 -0
  16. package/contracts/cameras/review/v1/fixtures/capture-legacy.json +17 -0
  17. package/contracts/cameras/review/v1/fixtures/capture-projected.json +33 -0
  18. package/contracts/cameras/review/v1/fixtures/capture-request-valid.json +21 -0
  19. package/contracts/cameras/review/v1/fixtures/capture-unprojectable.json +22 -0
  20. package/contracts/cameras/review/v1/fixtures/invalid-capture-request-bad-fov.json +21 -0
  21. package/contracts/cameras/review/v1/fixtures/invalid-capture-response-projected-without-margins.json +27 -0
  22. package/contracts/cameras/review/v1/fixtures/invalid-selection-unknown-code.json +11 -0
  23. package/contracts/cameras/review/v1/fixtures/selection-selected.json +15 -0
  24. package/contracts/cameras/review/v1/fixtures/selection-subject-not-found.json +11 -0
  25. package/contracts/cameras/review/v1/selection-response.schema.json +103 -0
  26. package/contracts/cameras/v1/README.md +33 -0
  27. package/contracts/editor-session/v1/README.md +11 -0
  28. package/contracts/editor-session/v1/command-response.schema.json +44 -0
  29. package/contracts/editor-session/v1/fixtures/command-accepted.json +6 -0
  30. package/contracts/editor-session/v1/fixtures/command-already-satisfied.json +6 -0
  31. package/contracts/editor-session/v1/fixtures/command-rejected.json +9 -0
  32. package/contracts/editor-session/v1/fixtures/state-paused.json +4 -0
  33. package/contracts/editor-session/v1/fixtures/state-running.json +4 -0
  34. package/contracts/editor-session/v1/fixtures/state-starting.json +4 -0
  35. package/contracts/editor-session/v1/fixtures/state-stopped.json +4 -0
  36. package/contracts/editor-session/v1/fixtures/state-stopping.json +4 -0
  37. package/contracts/editor-session/v1/state-response.schema.json +64 -0
  38. package/contracts/observatory/v1/README.md +78 -0
  39. package/contracts/observatory/v1/fixtures/bad-magic-then-valid.bin +0 -0
  40. package/contracts/observatory/v1/fixtures/fragmented-concat.bin +0 -0
  41. package/contracts/observatory/v1/fixtures/heartbeat.bin +0 -0
  42. package/contracts/observatory/v1/fixtures/mismatched-payload-length.bin +0 -0
  43. package/contracts/observatory/v1/fixtures/oversized-record-count.bin +0 -0
  44. package/contracts/observatory/v1/fixtures/reset.bin +0 -0
  45. package/contracts/observatory/v1/fixtures/truncated.bin +0 -0
  46. package/contracts/observatory/v1/fixtures/two-records.bin +0 -0
  47. package/contracts/observatory/v1/fixtures/unsupported-version.bin +0 -0
  48. package/dist/authoring-review.d.ts +679 -0
  49. package/dist/authoring-review.d.ts.map +1 -0
  50. package/dist/authoring-review.js +90 -0
  51. package/dist/authoring-review.js.map +1 -0
  52. package/dist/authoring.d.ts +889 -0
  53. package/dist/authoring.d.ts.map +1 -0
  54. package/dist/authoring.js +350 -0
  55. package/dist/authoring.js.map +1 -0
  56. package/dist/cameras.d.ts +184 -0
  57. package/dist/cameras.d.ts.map +1 -0
  58. package/dist/cameras.js +72 -0
  59. package/dist/cameras.js.map +1 -0
  60. package/dist/companion.d.ts +33 -0
  61. package/dist/companion.d.ts.map +1 -0
  62. package/dist/companion.js +18 -0
  63. package/dist/companion.js.map +1 -0
  64. package/dist/editor-play-session.d.ts +278 -0
  65. package/dist/editor-play-session.d.ts.map +1 -0
  66. package/dist/editor-play-session.js +56 -0
  67. package/dist/editor-play-session.js.map +1 -0
  68. package/dist/index.d.ts +146 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +106 -0
  71. package/dist/index.js.map +1 -0
  72. package/package.json +45 -0
@@ -0,0 +1,950 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$defs": {
4
+ "AuthoringTableSnapshotV2": {
5
+ "type": "object",
6
+ "required": [
7
+ "contract",
8
+ "authority",
9
+ "completeness",
10
+ "diagnostics",
11
+ "fingerprint",
12
+ "producer",
13
+ "table"
14
+ ],
15
+ "properties": {
16
+ "contract": {
17
+ "type": "object",
18
+ "required": ["name", "version"],
19
+ "properties": {
20
+ "name": {
21
+ "type": "string",
22
+ "enum": ["unreal-authoring"]
23
+ },
24
+ "version": {
25
+ "type": "object",
26
+ "required": ["major", "minor"],
27
+ "properties": {
28
+ "major": {
29
+ "type": "number",
30
+ "enum": [2]
31
+ },
32
+ "minor": {
33
+ "$ref": "#/$defs/NonNegativeInt"
34
+ }
35
+ },
36
+ "additionalProperties": false
37
+ }
38
+ },
39
+ "additionalProperties": false
40
+ },
41
+ "authority": {
42
+ "anyOf": [
43
+ {
44
+ "type": "object",
45
+ "required": ["kind", "packageName"],
46
+ "properties": {
47
+ "kind": {
48
+ "type": "string",
49
+ "enum": ["project_files"]
50
+ },
51
+ "packageName": {
52
+ "type": "string"
53
+ }
54
+ },
55
+ "additionalProperties": false
56
+ },
57
+ {
58
+ "type": "object",
59
+ "required": ["kind", "producerId", "sessionId"],
60
+ "properties": {
61
+ "kind": {
62
+ "type": "string",
63
+ "enum": ["live_editor"]
64
+ },
65
+ "producerId": {
66
+ "type": "string"
67
+ },
68
+ "sessionId": {
69
+ "type": "string"
70
+ }
71
+ },
72
+ "additionalProperties": false
73
+ }
74
+ ]
75
+ },
76
+ "completeness": {
77
+ "type": "string",
78
+ "enum": ["complete", "partial"]
79
+ },
80
+ "diagnostics": {
81
+ "type": "array",
82
+ "items": {
83
+ "type": "object",
84
+ "required": ["code", "message"],
85
+ "properties": {
86
+ "code": {
87
+ "type": "string"
88
+ },
89
+ "message": {
90
+ "type": "string"
91
+ },
92
+ "path": {
93
+ "type": "string"
94
+ }
95
+ },
96
+ "additionalProperties": false
97
+ }
98
+ },
99
+ "fingerprint": {
100
+ "anyOf": [
101
+ {
102
+ "type": "object",
103
+ "required": ["algorithm", "status", "value", "version"],
104
+ "properties": {
105
+ "algorithm": {
106
+ "type": "string",
107
+ "enum": ["sha256"]
108
+ },
109
+ "status": {
110
+ "type": "string",
111
+ "enum": ["available"]
112
+ },
113
+ "value": {
114
+ "type": "string"
115
+ },
116
+ "version": {
117
+ "$ref": "#/$defs/NonNegativeInt"
118
+ }
119
+ },
120
+ "additionalProperties": false
121
+ },
122
+ {
123
+ "type": "object",
124
+ "required": ["reason", "status"],
125
+ "properties": {
126
+ "reason": {
127
+ "type": "string"
128
+ },
129
+ "status": {
130
+ "type": "string",
131
+ "enum": ["unavailable"]
132
+ }
133
+ },
134
+ "additionalProperties": false
135
+ }
136
+ ]
137
+ },
138
+ "producer": {
139
+ "type": "object",
140
+ "required": ["name", "version"],
141
+ "properties": {
142
+ "name": {
143
+ "type": "string"
144
+ },
145
+ "version": {
146
+ "type": "string"
147
+ }
148
+ },
149
+ "additionalProperties": false
150
+ },
151
+ "table": {
152
+ "type": "object",
153
+ "required": [
154
+ "kind",
155
+ "objectPath",
156
+ "rowStruct",
157
+ "parentTables",
158
+ "rows",
159
+ "packageName",
160
+ "schema"
161
+ ],
162
+ "properties": {
163
+ "kind": {
164
+ "type": "string",
165
+ "enum": ["data_table", "composite_data_table"]
166
+ },
167
+ "objectPath": {
168
+ "type": "string"
169
+ },
170
+ "rowStruct": {
171
+ "type": "string"
172
+ },
173
+ "parentTables": {
174
+ "type": "array",
175
+ "items": {
176
+ "type": "string"
177
+ }
178
+ },
179
+ "rows": {
180
+ "type": "array",
181
+ "items": {
182
+ "type": "object",
183
+ "required": ["id", "name", "fields"],
184
+ "properties": {
185
+ "id": {
186
+ "type": "string"
187
+ },
188
+ "name": {
189
+ "type": "string"
190
+ },
191
+ "fields": {
192
+ "type": "array",
193
+ "items": {
194
+ "$ref": "#/$defs/AuthoringFieldValue"
195
+ }
196
+ }
197
+ },
198
+ "additionalProperties": false
199
+ }
200
+ },
201
+ "packageName": {
202
+ "type": "string"
203
+ },
204
+ "schema": {
205
+ "anyOf": [
206
+ {
207
+ "type": "object",
208
+ "required": ["fields", "source", "status"],
209
+ "properties": {
210
+ "fields": {
211
+ "type": "array",
212
+ "items": {
213
+ "$ref": "#/$defs/AuthoringFieldDescriptor"
214
+ }
215
+ },
216
+ "source": {
217
+ "type": "string",
218
+ "enum": ["saved_package", "live_reflection"]
219
+ },
220
+ "status": {
221
+ "type": "string",
222
+ "enum": ["available"]
223
+ }
224
+ },
225
+ "additionalProperties": false
226
+ },
227
+ {
228
+ "type": "object",
229
+ "required": ["reason", "status"],
230
+ "properties": {
231
+ "reason": {
232
+ "type": "string"
233
+ },
234
+ "status": {
235
+ "type": "string",
236
+ "enum": ["unavailable"]
237
+ }
238
+ },
239
+ "additionalProperties": false
240
+ }
241
+ ]
242
+ }
243
+ },
244
+ "additionalProperties": false
245
+ }
246
+ },
247
+ "additionalProperties": false
248
+ },
249
+ "NonNegativeInt": {
250
+ "type": "integer",
251
+ "description": "an integer",
252
+ "title": "int",
253
+ "minimum": 0
254
+ },
255
+ "AuthoringFieldValue": {
256
+ "type": "object",
257
+ "required": ["name", "typeName", "value"],
258
+ "properties": {
259
+ "name": {
260
+ "type": "string"
261
+ },
262
+ "typeName": {
263
+ "type": "string"
264
+ },
265
+ "value": {
266
+ "$ref": "#/$defs/AuthoringValue"
267
+ }
268
+ },
269
+ "additionalProperties": false
270
+ },
271
+ "AuthoringValue": {
272
+ "anyOf": [
273
+ {
274
+ "type": "object",
275
+ "properties": {
276
+ "kind": {
277
+ "type": "string",
278
+ "enum": ["bool"]
279
+ },
280
+ "value": {
281
+ "type": "boolean"
282
+ }
283
+ },
284
+ "required": ["kind", "value"],
285
+ "additionalProperties": false
286
+ },
287
+ {
288
+ "type": "object",
289
+ "properties": {
290
+ "kind": {
291
+ "type": "string",
292
+ "enum": ["int"]
293
+ },
294
+ "value": {
295
+ "type": "string"
296
+ }
297
+ },
298
+ "required": ["kind", "value"],
299
+ "additionalProperties": false
300
+ },
301
+ {
302
+ "type": "object",
303
+ "properties": {
304
+ "kind": {
305
+ "type": "string",
306
+ "enum": ["uint"]
307
+ },
308
+ "value": {
309
+ "type": "string"
310
+ }
311
+ },
312
+ "required": ["kind", "value"],
313
+ "additionalProperties": false
314
+ },
315
+ {
316
+ "type": "object",
317
+ "properties": {
318
+ "kind": {
319
+ "type": "string",
320
+ "enum": ["float"]
321
+ },
322
+ "value": {
323
+ "anyOf": [
324
+ {
325
+ "type": "number"
326
+ },
327
+ {
328
+ "type": "string",
329
+ "enum": ["nan", "infinity", "-infinity"]
330
+ }
331
+ ]
332
+ }
333
+ },
334
+ "required": ["kind", "value"],
335
+ "additionalProperties": false
336
+ },
337
+ {
338
+ "type": "object",
339
+ "properties": {
340
+ "kind": {
341
+ "type": "string",
342
+ "enum": ["double"]
343
+ },
344
+ "value": {
345
+ "anyOf": [
346
+ {
347
+ "type": "number"
348
+ },
349
+ {
350
+ "type": "string",
351
+ "enum": ["nan", "infinity", "-infinity"]
352
+ }
353
+ ]
354
+ }
355
+ },
356
+ "required": ["kind", "value"],
357
+ "additionalProperties": false
358
+ },
359
+ {
360
+ "type": "object",
361
+ "properties": {
362
+ "kind": {
363
+ "type": "string",
364
+ "enum": ["name"]
365
+ },
366
+ "value": {
367
+ "type": "string"
368
+ }
369
+ },
370
+ "required": ["kind", "value"],
371
+ "additionalProperties": false
372
+ },
373
+ {
374
+ "type": "object",
375
+ "properties": {
376
+ "kind": {
377
+ "type": "string",
378
+ "enum": ["enum"]
379
+ },
380
+ "value": {
381
+ "type": "string"
382
+ }
383
+ },
384
+ "required": ["kind", "value"],
385
+ "additionalProperties": false
386
+ },
387
+ {
388
+ "type": "object",
389
+ "properties": {
390
+ "kind": {
391
+ "type": "string",
392
+ "enum": ["string"]
393
+ },
394
+ "value": {
395
+ "type": "string"
396
+ }
397
+ },
398
+ "required": ["kind", "value"],
399
+ "additionalProperties": false
400
+ },
401
+ {
402
+ "type": "object",
403
+ "properties": {
404
+ "kind": {
405
+ "type": "string",
406
+ "enum": ["text"]
407
+ },
408
+ "value": {
409
+ "type": "string"
410
+ }
411
+ },
412
+ "required": ["kind", "value"],
413
+ "additionalProperties": false
414
+ },
415
+ {
416
+ "type": "object",
417
+ "properties": {
418
+ "kind": {
419
+ "type": "string",
420
+ "enum": ["guid"]
421
+ },
422
+ "value": {
423
+ "type": "string"
424
+ }
425
+ },
426
+ "required": ["kind", "value"],
427
+ "additionalProperties": false
428
+ },
429
+ {
430
+ "type": "object",
431
+ "properties": {
432
+ "kind": {
433
+ "type": "string",
434
+ "enum": ["soft_object_path"]
435
+ },
436
+ "value": {
437
+ "type": "string"
438
+ }
439
+ },
440
+ "required": ["kind", "value"],
441
+ "additionalProperties": false
442
+ },
443
+ {
444
+ "type": "object",
445
+ "properties": {
446
+ "kind": {
447
+ "type": "string",
448
+ "enum": ["object_ref"]
449
+ },
450
+ "value": {
451
+ "anyOf": [
452
+ {
453
+ "type": "string"
454
+ },
455
+ {
456
+ "type": "null"
457
+ }
458
+ ]
459
+ }
460
+ },
461
+ "required": ["kind", "value"],
462
+ "additionalProperties": false
463
+ },
464
+ {
465
+ "type": "object",
466
+ "properties": {
467
+ "kind": {
468
+ "type": "string",
469
+ "enum": ["row_reference"]
470
+ },
471
+ "rowName": {
472
+ "type": "string"
473
+ },
474
+ "tableObjectPath": {
475
+ "anyOf": [
476
+ {
477
+ "type": "string"
478
+ },
479
+ {
480
+ "type": "null"
481
+ }
482
+ ]
483
+ }
484
+ },
485
+ "required": ["kind", "rowName", "tableObjectPath"],
486
+ "additionalProperties": false
487
+ },
488
+ {
489
+ "type": "object",
490
+ "properties": {
491
+ "kind": {
492
+ "type": "string",
493
+ "enum": ["vector"]
494
+ },
495
+ "x": {
496
+ "type": "number"
497
+ },
498
+ "y": {
499
+ "type": "number"
500
+ },
501
+ "z": {
502
+ "type": "number"
503
+ }
504
+ },
505
+ "required": ["kind", "x", "y", "z"],
506
+ "additionalProperties": false
507
+ },
508
+ {
509
+ "type": "object",
510
+ "properties": {
511
+ "kind": {
512
+ "type": "string",
513
+ "enum": ["array"]
514
+ },
515
+ "values": {
516
+ "type": "array",
517
+ "items": {
518
+ "$ref": "#/$defs/AuthoringValue"
519
+ }
520
+ }
521
+ },
522
+ "required": ["kind", "values"],
523
+ "additionalProperties": false
524
+ },
525
+ {
526
+ "type": "object",
527
+ "properties": {
528
+ "kind": {
529
+ "type": "string",
530
+ "enum": ["set"]
531
+ },
532
+ "values": {
533
+ "type": "array",
534
+ "items": {
535
+ "$ref": "#/$defs/AuthoringValue"
536
+ }
537
+ }
538
+ },
539
+ "required": ["kind", "values"],
540
+ "additionalProperties": false
541
+ },
542
+ {
543
+ "type": "object",
544
+ "properties": {
545
+ "kind": {
546
+ "type": "string",
547
+ "enum": ["map"]
548
+ },
549
+ "entries": {
550
+ "type": "array",
551
+ "items": {
552
+ "type": "object",
553
+ "properties": {
554
+ "key": {
555
+ "$ref": "#/$defs/AuthoringValue"
556
+ },
557
+ "value": {
558
+ "$ref": "#/$defs/AuthoringValue"
559
+ }
560
+ },
561
+ "required": ["key", "value"],
562
+ "additionalProperties": false
563
+ }
564
+ }
565
+ },
566
+ "required": ["kind", "entries"],
567
+ "additionalProperties": false
568
+ },
569
+ {
570
+ "type": "object",
571
+ "properties": {
572
+ "kind": {
573
+ "type": "string",
574
+ "enum": ["struct"]
575
+ },
576
+ "fields": {
577
+ "type": "array",
578
+ "items": {
579
+ "$ref": "#/$defs/AuthoringFieldValue"
580
+ }
581
+ }
582
+ },
583
+ "required": ["kind", "fields"],
584
+ "additionalProperties": false
585
+ },
586
+ {
587
+ "type": "object",
588
+ "properties": {
589
+ "byteSize": {
590
+ "$ref": "#/$defs/NonNegativeInt"
591
+ },
592
+ "kind": {
593
+ "type": "string",
594
+ "enum": ["unsupported"]
595
+ },
596
+ "reason": {
597
+ "type": "string"
598
+ }
599
+ },
600
+ "required": ["byteSize", "kind", "reason"],
601
+ "additionalProperties": false
602
+ }
603
+ ]
604
+ },
605
+ "AuthoringFieldDescriptor": {
606
+ "type": "object",
607
+ "required": [
608
+ "annotations",
609
+ "defaultValue",
610
+ "editability",
611
+ "id",
612
+ "name",
613
+ "presence",
614
+ "type",
615
+ "typeName"
616
+ ],
617
+ "properties": {
618
+ "annotations": {
619
+ "type": "object",
620
+ "required": ["deprecated", "readOnly"],
621
+ "properties": {
622
+ "clampMax": {
623
+ "type": "string"
624
+ },
625
+ "clampMin": {
626
+ "type": "string"
627
+ },
628
+ "deprecated": {
629
+ "type": "boolean"
630
+ },
631
+ "description": {
632
+ "type": "string"
633
+ },
634
+ "displayName": {
635
+ "type": "string"
636
+ },
637
+ "readOnly": {
638
+ "type": "boolean"
639
+ },
640
+ "rowReference": {
641
+ "anyOf": [
642
+ {
643
+ "type": "object",
644
+ "required": ["status", "tableObjectPath"],
645
+ "properties": {
646
+ "status": {
647
+ "type": "string",
648
+ "enum": ["known"]
649
+ },
650
+ "tableObjectPath": {
651
+ "type": "string"
652
+ }
653
+ },
654
+ "additionalProperties": false
655
+ },
656
+ {
657
+ "type": "object",
658
+ "required": ["status"],
659
+ "properties": {
660
+ "status": {
661
+ "type": "string",
662
+ "enum": ["unknown"]
663
+ }
664
+ },
665
+ "additionalProperties": false
666
+ }
667
+ ]
668
+ },
669
+ "step": {
670
+ "type": "string"
671
+ },
672
+ "unit": {
673
+ "type": "string"
674
+ }
675
+ },
676
+ "additionalProperties": false
677
+ },
678
+ "defaultValue": {
679
+ "anyOf": [
680
+ {
681
+ "type": "object",
682
+ "required": ["status", "value"],
683
+ "properties": {
684
+ "status": {
685
+ "type": "string",
686
+ "enum": ["known"]
687
+ },
688
+ "value": {
689
+ "$ref": "#/$defs/AuthoringValue"
690
+ }
691
+ },
692
+ "additionalProperties": false
693
+ },
694
+ {
695
+ "type": "object",
696
+ "required": ["status"],
697
+ "properties": {
698
+ "status": {
699
+ "type": "string",
700
+ "enum": ["unknown"]
701
+ }
702
+ },
703
+ "additionalProperties": false
704
+ }
705
+ ]
706
+ },
707
+ "editability": {
708
+ "anyOf": [
709
+ {
710
+ "type": "object",
711
+ "required": ["kind"],
712
+ "properties": {
713
+ "kind": {
714
+ "type": "string",
715
+ "enum": ["editable"]
716
+ }
717
+ },
718
+ "additionalProperties": false
719
+ },
720
+ {
721
+ "type": "object",
722
+ "required": ["kind", "reason"],
723
+ "properties": {
724
+ "kind": {
725
+ "type": "string",
726
+ "enum": ["read_only"]
727
+ },
728
+ "reason": {
729
+ "type": "string"
730
+ }
731
+ },
732
+ "additionalProperties": false
733
+ }
734
+ ]
735
+ },
736
+ "id": {
737
+ "type": "string"
738
+ },
739
+ "name": {
740
+ "type": "string"
741
+ },
742
+ "presence": {
743
+ "type": "string",
744
+ "enum": ["required", "optional", "unknown"]
745
+ },
746
+ "type": {
747
+ "$ref": "#/$defs/AuthoringTypeDescriptor"
748
+ },
749
+ "typeName": {
750
+ "type": "string"
751
+ }
752
+ },
753
+ "additionalProperties": false
754
+ },
755
+ "AuthoringTypeDescriptor": {
756
+ "anyOf": [
757
+ {
758
+ "type": "object",
759
+ "properties": {
760
+ "kind": {
761
+ "type": "string",
762
+ "enum": ["scalar"]
763
+ },
764
+ "valueKind": {
765
+ "type": "string",
766
+ "enum": [
767
+ "bool",
768
+ "int",
769
+ "uint",
770
+ "float",
771
+ "double",
772
+ "name",
773
+ "string",
774
+ "text",
775
+ "guid"
776
+ ]
777
+ }
778
+ },
779
+ "required": ["kind", "valueKind"],
780
+ "additionalProperties": false
781
+ },
782
+ {
783
+ "type": "object",
784
+ "properties": {
785
+ "enumPath": {
786
+ "type": "string"
787
+ },
788
+ "kind": {
789
+ "type": "string",
790
+ "enum": ["enum"]
791
+ },
792
+ "options": {
793
+ "type": "array",
794
+ "items": {
795
+ "type": "object",
796
+ "properties": {
797
+ "displayName": {
798
+ "type": "string"
799
+ },
800
+ "name": {
801
+ "type": "string"
802
+ }
803
+ },
804
+ "required": ["name"],
805
+ "additionalProperties": false
806
+ }
807
+ }
808
+ },
809
+ "required": ["kind", "options"],
810
+ "additionalProperties": false
811
+ },
812
+ {
813
+ "type": "object",
814
+ "properties": {
815
+ "kind": {
816
+ "type": "string",
817
+ "enum": ["reference"]
818
+ },
819
+ "target": {
820
+ "anyOf": [
821
+ {
822
+ "type": "object",
823
+ "properties": {
824
+ "classPath": {
825
+ "type": "string"
826
+ },
827
+ "status": {
828
+ "type": "string",
829
+ "enum": ["known"]
830
+ }
831
+ },
832
+ "required": ["classPath", "status"],
833
+ "additionalProperties": false
834
+ },
835
+ {
836
+ "type": "object",
837
+ "properties": {
838
+ "status": {
839
+ "type": "string",
840
+ "enum": ["unknown"]
841
+ }
842
+ },
843
+ "required": ["status"],
844
+ "additionalProperties": false
845
+ }
846
+ ]
847
+ },
848
+ "valueKind": {
849
+ "type": "string",
850
+ "enum": ["object_ref", "soft_object_path"]
851
+ }
852
+ },
853
+ "required": ["kind", "target", "valueKind"],
854
+ "additionalProperties": false
855
+ },
856
+ {
857
+ "type": "object",
858
+ "properties": {
859
+ "kind": {
860
+ "type": "string",
861
+ "enum": ["row_reference"]
862
+ }
863
+ },
864
+ "required": ["kind"],
865
+ "additionalProperties": false
866
+ },
867
+ {
868
+ "type": "object",
869
+ "properties": {
870
+ "kind": {
871
+ "type": "string",
872
+ "enum": ["vector"]
873
+ }
874
+ },
875
+ "required": ["kind"],
876
+ "additionalProperties": false
877
+ },
878
+ {
879
+ "type": "object",
880
+ "properties": {
881
+ "element": {
882
+ "$ref": "#/$defs/AuthoringTypeDescriptor"
883
+ },
884
+ "kind": {
885
+ "type": "string",
886
+ "enum": ["array", "set"]
887
+ }
888
+ },
889
+ "required": ["element", "kind"],
890
+ "additionalProperties": false
891
+ },
892
+ {
893
+ "type": "object",
894
+ "properties": {
895
+ "key": {
896
+ "$ref": "#/$defs/AuthoringTypeDescriptor"
897
+ },
898
+ "kind": {
899
+ "type": "string",
900
+ "enum": ["map"]
901
+ },
902
+ "value": {
903
+ "$ref": "#/$defs/AuthoringTypeDescriptor"
904
+ }
905
+ },
906
+ "required": ["key", "kind", "value"],
907
+ "additionalProperties": false
908
+ },
909
+ {
910
+ "type": "object",
911
+ "properties": {
912
+ "fields": {
913
+ "type": "array",
914
+ "items": {
915
+ "$ref": "#/$defs/AuthoringFieldDescriptor"
916
+ }
917
+ },
918
+ "kind": {
919
+ "type": "string",
920
+ "enum": ["struct"]
921
+ },
922
+ "structPath": {
923
+ "type": "string"
924
+ }
925
+ },
926
+ "required": ["fields", "kind"],
927
+ "additionalProperties": false
928
+ },
929
+ {
930
+ "type": "object",
931
+ "properties": {
932
+ "kind": {
933
+ "type": "string",
934
+ "enum": ["unsupported"]
935
+ },
936
+ "reason": {
937
+ "type": "string"
938
+ },
939
+ "typeName": {
940
+ "type": "string"
941
+ }
942
+ },
943
+ "required": ["kind", "reason", "typeName"],
944
+ "additionalProperties": false
945
+ }
946
+ ]
947
+ }
948
+ },
949
+ "$ref": "#/$defs/AuthoringTableSnapshotV2"
950
+ }