@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.
- package/contracts/cameras/authoring/v1/README.md +50 -0
- package/contracts/cameras/authoring/v1/approval.schema.json +106 -0
- package/contracts/cameras/authoring/v1/arrangement.schema.json +1801 -0
- package/contracts/cameras/authoring/v1/bridge-request.schema.json +10862 -0
- package/contracts/cameras/authoring/v1/bridge-response.schema.json +10323 -0
- package/contracts/cameras/authoring/v1/command.schema.json +4109 -0
- package/contracts/cameras/authoring/v1/document.schema.json +4409 -0
- package/contracts/cameras/authoring/v1/panel-event.schema.json +4885 -0
- package/contracts/cameras/authoring/v1/panel-state.schema.json +3548 -0
- package/contracts/cameras/authoring/v1/recipe.schema.json +340 -0
- package/contracts/cameras/authoring/v1/visibility-preset.schema.json +205 -0
- package/contracts/cameras/map-tile/v1/README.md +4 -1
- package/contracts/cameras/map-tile/v1/capture-operation.schema.json +1621 -30
- package/contracts/cameras/map-tile/v1/capture-request.schema.json +497 -48
- package/contracts/cameras/map-tile/v1/capture-response.schema.json +1383 -96
- package/contracts/cameras/map-tile/v1/manifest.schema.json +1760 -110
- package/contracts/cameras/map-tile/v1/plan.schema.json +394 -200
- package/contracts/cameras/map-tile/v1/release-result.schema.json +7 -2
- package/contracts/cameras/provisioning/v1/provision-request.schema.json +663 -141
- package/contracts/cameras/render/v1/begin-result.schema.json +167 -0
- package/contracts/cameras/render/v1/capabilities.schema.json +25 -0
- package/contracts/cameras/render/v1/frame-evidence.schema.json +240 -0
- package/contracts/cameras/render/v1/frame-status.schema.json +249 -0
- package/contracts/cameras/render/v1/policy.schema.json +159 -0
- package/contracts/cameras/render/v1/review-inspection-result.schema.json +263 -0
- package/contracts/cameras/render/v1/session-request.schema.json +167 -0
- package/contracts/cameras/review/v1/README.md +6 -0
- package/contracts/cameras/review/v1/capture-request.schema.json +221 -3
- package/contracts/cameras/review/v1/capture-response.schema.json +3648 -0
- package/contracts/cameras/review/v1/fixtures/capture-authored.json +205 -0
- package/contracts/core/v1/WINDOW-ACTIVATION.md +21 -0
- package/contracts/core/v1/window-activation-request.schema.json +20 -0
- package/contracts/core/v1/window-activation-result.schema.json +49 -0
- package/contracts/editor-world/v1/README.md +27 -0
- package/contracts/editor-world/v1/operation.schema.json +761 -0
- package/contracts/editor-world/v1/state.schema.json +92 -0
- package/contracts/uasset-io/v1/event.schema.json +613 -171
- package/contracts/uasset-io/v1/fixtures/invalid/inspect-string-table-nonstring-metadata.json +53 -0
- package/contracts/uasset-io/v1/fixtures/invalid/negative-instanced-size.json +97 -0
- package/contracts/uasset-io/v1/fixtures/invalid/non-string-metadata.json +97 -0
- package/contracts/uasset-io/v1/fixtures/invalid/unknown-native-value.json +97 -0
- package/contracts/uasset-io/v1/fixtures/valid/extract-text-string-table-occurrence-result-event.json +30 -0
- package/contracts/uasset-io/v1/fixtures/valid/inspect-native-result-event.json +97 -0
- package/contracts/uasset-io/v1/fixtures/valid/inspect-string-table-metadata-result-event.json +53 -0
- package/contracts/world/preparation/v1/fixtures/invalid-contract-version.json +10 -0
- package/contracts/world/preparation/v1/fixtures/invalid-extra-field.json +11 -0
- package/contracts/world/preparation/v1/fixtures/invalid-negative-budget.json +37 -0
- package/contracts/world/preparation/v1/fixtures/invalid-region-negative-extent.json +40 -0
- package/contracts/world/preparation/v1/fixtures/valid-actor-context.json +37 -0
- package/contracts/world/preparation/v1/fixtures/valid-describe.json +10 -0
- package/contracts/world/preparation/v1/request.schema.json +897 -0
- package/contracts/world/preparation/v1/response.schema.json +449 -0
- package/dist/cameras.d.ts +16 -12
- package/dist/cameras.d.ts.map +1 -1
- package/dist/cameras.js +1 -0
- package/dist/cameras.js.map +1 -1
- package/dist/companion.d.ts +6 -0
- package/dist/companion.d.ts.map +1 -1
- package/dist/companion.js +3 -0
- package/dist/companion.js.map +1 -1
- package/dist/editor-window-activation.d.ts +16 -0
- package/dist/editor-window-activation.d.ts.map +1 -0
- package/dist/editor-window-activation.js +19 -0
- package/dist/editor-window-activation.js.map +1 -0
- package/dist/editor-world-control.d.ts +125 -0
- package/dist/editor-world-control.d.ts.map +1 -1
- package/dist/editor-world-control.js +25 -0
- package/dist/editor-world-control.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/uasset-inspection.d.ts +112 -55
- package/dist/uasset-inspection.d.ts.map +1 -1
- package/dist/uasset-inspection.js +29 -0
- package/dist/uasset-inspection.js.map +1 -1
- package/dist/uasset-io.d.ts +54 -0
- package/dist/uasset-io.d.ts.map +1 -1
- 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
|
+
}
|