@ue-shed/protocol 0.7.0 → 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
@@ -0,0 +1,50 @@
1
+ # Camera authoring contract v1
2
+
3
+ The package and native bridge exchange bounded JSON requests, snapshots, panel events, and published
4
+ panel state over unreal-rc. These checked-in schemas are checked against the public Effect decoders.
5
+
6
+ The host owns durable arrangements and immutable saved Views. The optional native bridge owns a
7
+ transient camera set and editor lease; the optional menu is a replaceable producer of `panel-event` actions.
8
+ A command names the arrangement, expected revision, operation ID and explicit scope. Camera/group
9
+ membership is validated before a host mutation. The bridge reports a queued event, not a committed
10
+ edit. The host acknowledges after persisting its outcome; transport errors leave the event available.
11
+
12
+ Regeneration is a proposal followed by explicit acceptance. Retained identities keep their exceptions;
13
+ removed customized identities require acknowledgement. Removing a draft camera does not remove its
14
+ saved View until explicit approval includes that retired View. Batch approval is atomic.
15
+
16
+ Discovery advertises `multiCameraEditing` for whole-set editing. Attach/apply accept bounded `cameras`
17
+ with stable IDs, resolved poses and optional draft definitions. Snapshots expose all cameras, native
18
+ selection, changed poses, additions and removals. The host commits one `poses` command before acknowledging
19
+ the native sequence. Definitions let native duplication allocate independent camera/View IDs and let
20
+ Undo restore the same deleted identity. Retained actors are updated in place. `select_cameras` supports
21
+ empty selection and multi-selection; `pilot_camera` switches the existing actor. Legacy single-camera
22
+ requests/snapshots remain supported. Sequence/revision checks apply to the entire set, not just the
23
+ active camera; only a verified chain of the same producer's commits permits acknowledgement-race rebasing.
24
+
25
+ Framing `recipe` documents omit actor references and destination View identities. `visibility-preset`
26
+ documents are project/map-specific immutable values; adopting a replacement copies its lists into a
27
+ chosen scope. Changes do not mutate previously approved View snapshots.
28
+
29
+ Native/package validation also enforces semantic rules not expressible in the generated JSON Schema:
30
+ revision freshness, unique IDs and scope membership, map/project ownership, immutable replacement,
31
+ profile references, exact requested artifact variants, and matching renderer visibility evidence.
32
+ GUIDs are authoritative; path aliases deduplicate only after resolving to the same loaded actor.
33
+ Protection wins. Advertised geometry is loaded opaque non-Nanite static-mesh actors only.
34
+
35
+ Discovery also advertises `nativeSetup`. `setup_status` reads host availability and the editor's
36
+ single selected subject before any set is attached. `setup_create` queues one explicit actor path,
37
+ map path, name and validated layout under a request ID. A matching-project host uses `setup_poll`
38
+ with its own identity to renew a 30-second lease, consume the intent and acknowledge an outcome
39
+ (`error: null` or an actionable failure). This queue does not persist drafts or attach actors itself.
40
+ Another host is rejected while the lease is held. Loss of the host or a pending request's editor
41
+ world cancels the pending intent; it is not silently handed to a replacement host. The public
42
+ `makeCameraSetupHost` caches an outcome before acknowledgement to avoid duplicate creation when
43
+ a reply is lost during that host lifetime. Inspect saved data after interruption before retrying.
44
+ `setup_release` requires the owning host identity; hosts use it on graceful shutdown so reconnecting
45
+ does not have to wait for the old lease. The public host exposes this as `close`.
46
+
47
+ Consumers negotiate `cameras.authoring.v1` plus `arrangementPanel` before attaching this panel protocol.
48
+ Capture-only consumers need Core+Cameras, never the menu or bridge. Render capabilities independently
49
+ advertise authored visibility. Generic synchronization and the production recovery matrix remain
50
+ separate work.
@@ -0,0 +1,106 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://ue-shed.dev/contracts/cameras/authoring/v1/approval.schema.json",
4
+ "anyOf": [
5
+ {
6
+ "type": "object",
7
+ "properties": {
8
+ "operationId": {
9
+ "type": "string",
10
+ "allOf": [
11
+ {
12
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
13
+ }
14
+ ]
15
+ },
16
+ "expectedRevision": {
17
+ "type": "integer"
18
+ },
19
+ "destination": {
20
+ "type": "string",
21
+ "allOf": [
22
+ {
23
+ "minLength": 1
24
+ }
25
+ ]
26
+ },
27
+ "cameraId": {
28
+ "type": "string",
29
+ "allOf": [
30
+ {
31
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
32
+ }
33
+ ]
34
+ }
35
+ },
36
+ "required": ["operationId", "expectedRevision", "destination", "cameraId"],
37
+ "additionalProperties": false
38
+ },
39
+ {
40
+ "type": "object",
41
+ "properties": {
42
+ "operationId": {
43
+ "type": "string",
44
+ "allOf": [
45
+ {
46
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
47
+ }
48
+ ]
49
+ },
50
+ "expectedRevision": {
51
+ "type": "integer"
52
+ },
53
+ "destination": {
54
+ "type": "string",
55
+ "allOf": [
56
+ {
57
+ "minLength": 1
58
+ }
59
+ ]
60
+ },
61
+ "cameraIds": {
62
+ "type": "array",
63
+ "items": {
64
+ "type": "string",
65
+ "allOf": [
66
+ {
67
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
68
+ }
69
+ ]
70
+ },
71
+ "allOf": [
72
+ {
73
+ "minItems": 1
74
+ },
75
+ {
76
+ "maxItems": 256
77
+ }
78
+ ]
79
+ },
80
+ "removeRetiredViewIds": {
81
+ "type": "array",
82
+ "items": {
83
+ "type": "string",
84
+ "allOf": [
85
+ {
86
+ "minLength": 1
87
+ },
88
+ {
89
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
90
+ }
91
+ ]
92
+ }
93
+ }
94
+ },
95
+ "required": [
96
+ "operationId",
97
+ "expectedRevision",
98
+ "destination",
99
+ "cameraIds",
100
+ "removeRetiredViewIds"
101
+ ],
102
+ "additionalProperties": false
103
+ }
104
+ ],
105
+ "$defs": {}
106
+ }