@ue-shed/protocol 0.8.0 → 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 (52) hide show
  1. package/contracts/cameras/authoring/v1/README.md +13 -0
  2. package/contracts/cameras/authoring/v1/arrangement.schema.json +6 -0
  3. package/contracts/cameras/authoring/v1/bridge-request.schema.json +215 -0
  4. package/contracts/cameras/authoring/v1/bridge-response.schema.json +200 -0
  5. package/contracts/cameras/authoring/v1/command.schema.json +6 -0
  6. package/contracts/cameras/authoring/v1/document.schema.json +12 -0
  7. package/contracts/cameras/authoring/v1/panel-event.schema.json +6 -0
  8. package/contracts/cameras/authoring/v1/panel-state.schema.json +12 -0
  9. package/contracts/cameras/map-tile/v1/capture-operation.schema.json +22 -0
  10. package/contracts/cameras/map-tile/v1/capture-response.schema.json +22 -0
  11. package/contracts/cameras/map-tile/v1/manifest.schema.json +22 -0
  12. package/contracts/cameras/render/v1/README.md +6 -0
  13. package/contracts/cameras/render/v1/begin-result.schema.json +6 -0
  14. package/contracts/cameras/render/v1/capabilities.schema.json +21 -0
  15. package/contracts/cameras/render/v1/fixtures/invalid-session-editor-previews-type.json +41 -0
  16. package/contracts/cameras/render/v1/fixtures/session-editor-previews.json +41 -0
  17. package/contracts/cameras/render/v1/fixtures/session-scene-capture-editor-previews.json +40 -0
  18. package/contracts/cameras/render/v1/frame-evidence.schema.json +22 -0
  19. package/contracts/cameras/render/v1/frame-status.schema.json +22 -0
  20. package/contracts/cameras/render/v1/policy.schema.json +6 -0
  21. package/contracts/cameras/render/v1/review-inspection-result.schema.json +22 -0
  22. package/contracts/cameras/render/v1/session-request.schema.json +6 -0
  23. package/contracts/cameras/review/v1/capture-response.schema.json +44 -0
  24. package/contracts/uasset-io/v1/README.md +24 -0
  25. package/contracts/uasset-io/v1/event.schema.json +2027 -117
  26. package/contracts/uasset-io/v1/fixtures/invalid/level-sequence-version.json +43 -0
  27. package/contracts/uasset-io/v1/fixtures/valid/blueprint-request.json +15 -3
  28. package/contracts/uasset-io/v1/fixtures/valid/blueprint-result-event.json +22 -5
  29. package/contracts/uasset-io/v1/fixtures/valid/level-sequence-request.json +18 -0
  30. package/contracts/uasset-io/v1/fixtures/valid/level-sequence-result-event.json +43 -0
  31. package/contracts/uasset-io/v1/request.schema.json +14 -0
  32. package/dist/blueprint-graph.d.ts +332 -8
  33. package/dist/blueprint-graph.d.ts.map +1 -1
  34. package/dist/blueprint-graph.js +42 -3
  35. package/dist/blueprint-graph.js.map +1 -1
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +1 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/level-sequence.d.ts +1315 -0
  41. package/dist/level-sequence.d.ts.map +1 -0
  42. package/dist/level-sequence.js +204 -0
  43. package/dist/level-sequence.js.map +1 -0
  44. package/dist/uasset-inspection.d.ts +16 -0
  45. package/dist/uasset-inspection.d.ts.map +1 -1
  46. package/dist/uasset-inspection.js +10 -2
  47. package/dist/uasset-inspection.js.map +1 -1
  48. package/dist/uasset-io.d.ts +1248 -9
  49. package/dist/uasset-io.d.ts.map +1 -1
  50. package/dist/uasset-io.js +4 -0
  51. package/dist/uasset-io.js.map +1 -1
  52. package/package.json +1 -1
@@ -317,6 +317,22 @@
317
317
  "additionalProperties": false
318
318
  }
319
319
  },
320
+ "editorPreviews": {
321
+ "type": "object",
322
+ "properties": {
323
+ "revealedChildActors": {
324
+ "type": "integer",
325
+ "allOf": [
326
+ {
327
+ "minimum": 0,
328
+ "maximum": 1000000
329
+ }
330
+ ]
331
+ }
332
+ },
333
+ "required": ["revealedChildActors"],
334
+ "additionalProperties": false
335
+ },
320
336
  "editorState": {
321
337
  "type": "object",
322
338
  "properties": {
@@ -687,6 +703,9 @@
687
703
  },
688
704
  "volumetricFog": {
689
705
  "type": "boolean"
706
+ },
707
+ "editorPreviews": {
708
+ "type": "boolean"
690
709
  }
691
710
  },
692
711
  "required": [
@@ -731,6 +750,9 @@
731
750
  },
732
751
  "volumetricFog": {
733
752
  "type": "boolean"
753
+ },
754
+ "editorPreviews": {
755
+ "type": "boolean"
734
756
  }
735
757
  },
736
758
  "required": [
@@ -217,6 +217,22 @@
217
217
  "additionalProperties": false
218
218
  }
219
219
  },
220
+ "editorPreviews": {
221
+ "type": "object",
222
+ "properties": {
223
+ "revealedChildActors": {
224
+ "type": "integer",
225
+ "allOf": [
226
+ {
227
+ "minimum": 0,
228
+ "maximum": 1000000
229
+ }
230
+ ]
231
+ }
232
+ },
233
+ "required": ["revealedChildActors"],
234
+ "additionalProperties": false
235
+ },
220
236
  "editorState": {
221
237
  "type": "object",
222
238
  "properties": {
@@ -558,6 +574,9 @@
558
574
  },
559
575
  "volumetricFog": {
560
576
  "type": "boolean"
577
+ },
578
+ "editorPreviews": {
579
+ "type": "boolean"
561
580
  }
562
581
  },
563
582
  "required": [
@@ -600,6 +619,9 @@
600
619
  },
601
620
  "volumetricFog": {
602
621
  "type": "boolean"
622
+ },
623
+ "editorPreviews": {
624
+ "type": "boolean"
603
625
  }
604
626
  },
605
627
  "required": [
@@ -795,6 +795,22 @@
795
795
  "additionalProperties": false
796
796
  }
797
797
  },
798
+ "editorPreviews": {
799
+ "type": "object",
800
+ "properties": {
801
+ "revealedChildActors": {
802
+ "type": "integer",
803
+ "allOf": [
804
+ {
805
+ "minimum": 0,
806
+ "maximum": 1000000
807
+ }
808
+ ]
809
+ }
810
+ },
811
+ "required": ["revealedChildActors"],
812
+ "additionalProperties": false
813
+ },
798
814
  "editorState": {
799
815
  "type": "object",
800
816
  "properties": {
@@ -1120,6 +1136,9 @@
1120
1136
  },
1121
1137
  "volumetricFog": {
1122
1138
  "type": "boolean"
1139
+ },
1140
+ "editorPreviews": {
1141
+ "type": "boolean"
1123
1142
  }
1124
1143
  },
1125
1144
  "required": [
@@ -1162,6 +1181,9 @@
1162
1181
  },
1163
1182
  "volumetricFog": {
1164
1183
  "type": "boolean"
1184
+ },
1185
+ "editorPreviews": {
1186
+ "type": "boolean"
1165
1187
  }
1166
1188
  },
1167
1189
  "required": [
@@ -20,6 +20,12 @@ Review's separately versioned `ue-shed-review-render-stages/1.0` uses
20
20
  `ResolveReviewViewpoint(RequestJson)` and
21
21
  `InspectRenderedReview(SessionId, RequestJson)` on `UEShedCameraReviewLibrary`.
22
22
 
23
+ Both renderer policies accept an optional `editorPreviews` boolean (absent means `false`). It
24
+ shows child actors that ChildActorComponents spawn for editor-only owners. Plugins that support it
25
+ advertise the `editorPreviews` capability, and frame evidence then carries
26
+ `editorPreviews.revealedChildActors`. Earlier plugins reject the field as `invalid_policy`. Review
27
+ capture responses and map-tile evidence embed the same renderer policy and frame evidence.
28
+
23
29
  Request JSON rejects unknown fields. Native semantic validation additionally rejects duplicate Data
24
30
  Layer identities, unsupported renderer/exposure combinations, effective layer hierarchy conflicts,
25
31
  world/project mismatch, contention, region overrides with preserved loading, exceeded resource
@@ -213,6 +213,9 @@
213
213
  },
214
214
  "volumetricFog": {
215
215
  "type": "boolean"
216
+ },
217
+ "editorPreviews": {
218
+ "type": "boolean"
216
219
  }
217
220
  },
218
221
  "required": [
@@ -255,6 +258,9 @@
255
258
  },
256
259
  "volumetricFog": {
257
260
  "type": "boolean"
261
+ },
262
+ "editorPreviews": {
263
+ "type": "boolean"
258
264
  }
259
265
  },
260
266
  "required": [
@@ -28,6 +28,27 @@
28
28
  "required": ["version", "maximumActorsPerList", "geometry", "viewport", "sceneCapture"],
29
29
  "additionalProperties": false
30
30
  },
31
+ "editorPreviews": {
32
+ "type": "object",
33
+ "properties": {
34
+ "version": {
35
+ "type": "number",
36
+ "enum": [1]
37
+ },
38
+ "subjects": {
39
+ "type": "string",
40
+ "enum": ["child_actors_of_editor_only_owners"]
41
+ },
42
+ "viewport": {
43
+ "type": "boolean"
44
+ },
45
+ "sceneCapture": {
46
+ "type": "boolean"
47
+ }
48
+ },
49
+ "required": ["version", "subjects", "viewport", "sceneCapture"],
50
+ "additionalProperties": false
51
+ },
31
52
  "contract": {
32
53
  "type": "object",
33
54
  "properties": {
@@ -0,0 +1,41 @@
1
+ {
2
+ "contract": {
3
+ "name": "ue-shed-camera-render",
4
+ "version": {
5
+ "major": 1,
6
+ "minor": 0
7
+ }
8
+ },
9
+ "sessionId": "fixture-session",
10
+ "expectedMapPath": "/Game/Fixture/Cameras/L_CameraLoad",
11
+ "expectedProjectName": "UEShedFixture",
12
+ "policy": {
13
+ "renderer": {
14
+ "kind": "editor_viewport",
15
+ "strategy": "high_resolution_screenshot",
16
+ "profile": "lit",
17
+ "vignette": "project",
18
+ "fog": true,
19
+ "volumetricFog": true,
20
+ "editorPreviews": "child_actors"
21
+ },
22
+ "exposure": {
23
+ "mode": "fixed_ev100",
24
+ "ev100": 1,
25
+ "compensation": "project"
26
+ },
27
+ "settling": {
28
+ "minimumFrames": 4,
29
+ "timeoutMs": 120000
30
+ },
31
+ "time": "live_editor",
32
+ "preparation": {
33
+ "geometry": {
34
+ "mode": "preserve_loading"
35
+ },
36
+ "dataLayers": []
37
+ }
38
+ },
39
+ "leaseMs": 120000,
40
+ "maximumFrames": 8
41
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "contract": {
3
+ "name": "ue-shed-camera-render",
4
+ "version": {
5
+ "major": 1,
6
+ "minor": 0
7
+ }
8
+ },
9
+ "sessionId": "fixture-session",
10
+ "expectedMapPath": "/Game/Fixture/Cameras/L_CameraLoad",
11
+ "expectedProjectName": "UEShedFixture",
12
+ "policy": {
13
+ "renderer": {
14
+ "kind": "editor_viewport",
15
+ "strategy": "high_resolution_screenshot",
16
+ "profile": "lit",
17
+ "vignette": "project",
18
+ "fog": true,
19
+ "volumetricFog": true,
20
+ "editorPreviews": true
21
+ },
22
+ "exposure": {
23
+ "mode": "fixed_ev100",
24
+ "ev100": 1,
25
+ "compensation": "project"
26
+ },
27
+ "settling": {
28
+ "minimumFrames": 4,
29
+ "timeoutMs": 120000
30
+ },
31
+ "time": "live_editor",
32
+ "preparation": {
33
+ "geometry": {
34
+ "mode": "preserve_loading"
35
+ },
36
+ "dataLayers": []
37
+ }
38
+ },
39
+ "leaseMs": 120000,
40
+ "maximumFrames": 8
41
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "contract": {
3
+ "name": "ue-shed-camera-render",
4
+ "version": {
5
+ "major": 1,
6
+ "minor": 0
7
+ }
8
+ },
9
+ "sessionId": "fixture-session",
10
+ "expectedMapPath": "/Game/Fixture/Cameras/L_CameraLoad",
11
+ "expectedProjectName": "UEShedFixture",
12
+ "policy": {
13
+ "renderer": {
14
+ "kind": "scene_capture",
15
+ "profile": "full_fidelity",
16
+ "lodDistanceScale": 1,
17
+ "fog": true,
18
+ "volumetricFog": true,
19
+ "editorPreviews": true
20
+ },
21
+ "exposure": {
22
+ "mode": "fixed_ev100",
23
+ "ev100": 1,
24
+ "compensation": "project"
25
+ },
26
+ "settling": {
27
+ "minimumFrames": 4,
28
+ "timeoutMs": 120000
29
+ },
30
+ "time": "live_editor",
31
+ "preparation": {
32
+ "geometry": {
33
+ "mode": "preserve_loading"
34
+ },
35
+ "dataLayers": []
36
+ }
37
+ },
38
+ "leaseMs": 120000,
39
+ "maximumFrames": 8
40
+ }
@@ -76,6 +76,22 @@
76
76
  "additionalProperties": false
77
77
  }
78
78
  },
79
+ "editorPreviews": {
80
+ "type": "object",
81
+ "properties": {
82
+ "revealedChildActors": {
83
+ "type": "integer",
84
+ "allOf": [
85
+ {
86
+ "minimum": 0,
87
+ "maximum": 1000000
88
+ }
89
+ ]
90
+ }
91
+ },
92
+ "required": ["revealedChildActors"],
93
+ "additionalProperties": false
94
+ },
79
95
  "editorState": {
80
96
  "type": "object",
81
97
  "properties": {
@@ -395,6 +411,9 @@
395
411
  },
396
412
  "volumetricFog": {
397
413
  "type": "boolean"
414
+ },
415
+ "editorPreviews": {
416
+ "type": "boolean"
398
417
  }
399
418
  },
400
419
  "required": [
@@ -437,6 +456,9 @@
437
456
  },
438
457
  "volumetricFog": {
439
458
  "type": "boolean"
459
+ },
460
+ "editorPreviews": {
461
+ "type": "boolean"
440
462
  }
441
463
  },
442
464
  "required": [
@@ -206,6 +206,22 @@
206
206
  "additionalProperties": false
207
207
  }
208
208
  },
209
+ "editorPreviews": {
210
+ "type": "object",
211
+ "properties": {
212
+ "revealedChildActors": {
213
+ "type": "integer",
214
+ "allOf": [
215
+ {
216
+ "minimum": 0,
217
+ "maximum": 1000000
218
+ }
219
+ ]
220
+ }
221
+ },
222
+ "required": ["revealedChildActors"],
223
+ "additionalProperties": false
224
+ },
209
225
  "editorState": {
210
226
  "type": "object",
211
227
  "properties": {
@@ -525,6 +541,9 @@
525
541
  },
526
542
  "volumetricFog": {
527
543
  "type": "boolean"
544
+ },
545
+ "editorPreviews": {
546
+ "type": "boolean"
528
547
  }
529
548
  },
530
549
  "required": [
@@ -567,6 +586,9 @@
567
586
  },
568
587
  "volumetricFog": {
569
588
  "type": "boolean"
589
+ },
590
+ "editorPreviews": {
591
+ "type": "boolean"
570
592
  }
571
593
  },
572
594
  "required": [
@@ -188,6 +188,9 @@
188
188
  },
189
189
  "volumetricFog": {
190
190
  "type": "boolean"
191
+ },
192
+ "editorPreviews": {
193
+ "type": "boolean"
191
194
  }
192
195
  },
193
196
  "required": ["kind", "strategy", "profile", "vignette", "fog", "volumetricFog"],
@@ -223,6 +226,9 @@
223
226
  },
224
227
  "volumetricFog": {
225
228
  "type": "boolean"
229
+ },
230
+ "editorPreviews": {
231
+ "type": "boolean"
226
232
  }
227
233
  },
228
234
  "required": ["kind", "profile", "lodDistanceScale", "fog", "volumetricFog"],
@@ -1208,6 +1208,22 @@
1208
1208
  "additionalProperties": false
1209
1209
  }
1210
1210
  },
1211
+ "editorPreviews": {
1212
+ "type": "object",
1213
+ "properties": {
1214
+ "revealedChildActors": {
1215
+ "type": "integer",
1216
+ "allOf": [
1217
+ {
1218
+ "minimum": 0,
1219
+ "maximum": 1000000
1220
+ }
1221
+ ]
1222
+ }
1223
+ },
1224
+ "required": ["revealedChildActors"],
1225
+ "additionalProperties": false
1226
+ },
1211
1227
  "editorState": {
1212
1228
  "type": "object",
1213
1229
  "properties": {
@@ -1541,6 +1557,9 @@
1541
1557
  },
1542
1558
  "volumetricFog": {
1543
1559
  "type": "boolean"
1560
+ },
1561
+ "editorPreviews": {
1562
+ "type": "boolean"
1544
1563
  }
1545
1564
  },
1546
1565
  "required": [
@@ -1583,6 +1602,9 @@
1583
1602
  },
1584
1603
  "volumetricFog": {
1585
1604
  "type": "boolean"
1605
+ },
1606
+ "editorPreviews": {
1607
+ "type": "boolean"
1586
1608
  }
1587
1609
  },
1588
1610
  "required": [
@@ -255,6 +255,9 @@
255
255
  },
256
256
  "volumetricFog": {
257
257
  "type": "boolean"
258
+ },
259
+ "editorPreviews": {
260
+ "type": "boolean"
258
261
  }
259
262
  },
260
263
  "required": [
@@ -297,6 +300,9 @@
297
300
  },
298
301
  "volumetricFog": {
299
302
  "type": "boolean"
303
+ },
304
+ "editorPreviews": {
305
+ "type": "boolean"
300
306
  }
301
307
  },
302
308
  "required": [
@@ -842,6 +842,22 @@
842
842
  "additionalProperties": false
843
843
  }
844
844
  },
845
+ "editorPreviews": {
846
+ "type": "object",
847
+ "properties": {
848
+ "revealedChildActors": {
849
+ "type": "integer",
850
+ "allOf": [
851
+ {
852
+ "minimum": 0,
853
+ "maximum": 1000000
854
+ }
855
+ ]
856
+ }
857
+ },
858
+ "required": ["revealedChildActors"],
859
+ "additionalProperties": false
860
+ },
845
861
  "editorState": {
846
862
  "type": "object",
847
863
  "properties": {
@@ -1161,6 +1177,9 @@
1161
1177
  },
1162
1178
  "volumetricFog": {
1163
1179
  "type": "boolean"
1180
+ },
1181
+ "editorPreviews": {
1182
+ "type": "boolean"
1164
1183
  }
1165
1184
  },
1166
1185
  "required": [
@@ -1203,6 +1222,9 @@
1203
1222
  },
1204
1223
  "volumetricFog": {
1205
1224
  "type": "boolean"
1225
+ },
1226
+ "editorPreviews": {
1227
+ "type": "boolean"
1206
1228
  }
1207
1229
  },
1208
1230
  "required": [
@@ -1882,6 +1904,22 @@
1882
1904
  "additionalProperties": false
1883
1905
  }
1884
1906
  },
1907
+ "editorPreviews": {
1908
+ "type": "object",
1909
+ "properties": {
1910
+ "revealedChildActors": {
1911
+ "type": "integer",
1912
+ "allOf": [
1913
+ {
1914
+ "minimum": 0,
1915
+ "maximum": 1000000
1916
+ }
1917
+ ]
1918
+ }
1919
+ },
1920
+ "required": ["revealedChildActors"],
1921
+ "additionalProperties": false
1922
+ },
1885
1923
  "editorState": {
1886
1924
  "type": "object",
1887
1925
  "properties": {
@@ -2201,6 +2239,9 @@
2201
2239
  },
2202
2240
  "volumetricFog": {
2203
2241
  "type": "boolean"
2242
+ },
2243
+ "editorPreviews": {
2244
+ "type": "boolean"
2204
2245
  }
2205
2246
  },
2206
2247
  "required": [
@@ -2243,6 +2284,9 @@
2243
2284
  },
2244
2285
  "volumetricFog": {
2245
2286
  "type": "boolean"
2287
+ },
2288
+ "editorPreviews": {
2289
+ "type": "boolean"
2246
2290
  }
2247
2291
  },
2248
2292
  "required": [
@@ -40,6 +40,22 @@ the immutable inventory and checked postings without hydrating package evidence.
40
40
  and corrupt postings fail with the same typed errors as queries. Old workers reject the operation
41
41
  before accepting it.
42
42
 
43
+ Minor version 1.5 added `level_sequence` in both `protocol` and `protocol-session`. Version 1.6
44
+ advances its result to schema-5 with typed discrete channels. Its request carries `assetPath`.
45
+ Decode diagnostics, projection
46
+ coverage gaps and reference coverage gaps make the terminal outcome partial. Blueprint and
47
+ Level Sequence reads are bounded to 64 MiB before parsing. Older workers reject the new operation
48
+ before acceptance. Native/WASM fixture conformance checks the same sequence record fields.
49
+
50
+ Minor version 1.7 advances `level_sequence` records to schema 6 and `blueprint` records to schema 2.
51
+ Sequence records add shared section settings, the separately saved camera-cut track, scoped cut IDs,
52
+ possessable/spawnable metadata, and string/object channels. Blueprint records add saved declarations,
53
+ CDO overrides and construction component/template inventory. Missing fields and unsupported native
54
+ bytes remain explicit nullable evidence or coverage gaps. The public readers request minor 1.7 and
55
+ validate these record versions; older result shapes are rejected at the boundary. Optional `native_data`
56
+ retains source-checked actor/component instance records separately from tagged properties in generic
57
+ inspection and Blueprint saved objects. Unknown subclass bytes remain explicit gaps.
58
+
43
59
  Result frames use an explicit result kind. Generic inspection, authoring, scan, compact text,
44
60
  compact texture, Blueprint graph, and saved-world values each have a named schema; there is no
45
61
  untyped result field.
@@ -57,3 +73,11 @@ The TypeScript and Rust sides both run the complete shared fixture set. TypeScri
57
73
  `packages/protocol/src/uasset-io.test.ts`; Rust coverage is `cargo test -p uasset-io protocol`.
58
74
  Adding a result variant requires a valid fixture that both tests decode, plus an invalid fixture when
59
75
  the boundary rule needs a rejection case.
76
+
77
+ ### Saved translator notes
78
+
79
+ Generic keyed-text values may include `dev_notes`; new producers emit it even when empty.
80
+ StringTable entries and compact text occurrences also carry `dev_notes`. Consumers default missing
81
+ entry/occurrence notes from older producers to `""`. This additive evidence does not change the
82
+ source-only authoring value contract. The package decoder gates the serialized FString on
83
+ FortniteMain custom version >= 260 and the absence of `FILTER_EDITOR_ONLY`.