@kumwe/studio-protocol 0.1.0-alpha.10
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/LICENSE +21 -0
- package/README.md +77 -0
- package/THIRD_PARTY_NOTICES.md +9 -0
- package/dist/generated/schema-models.d.ts +1968 -0
- package/dist/generated/schema-models.d.ts.map +1 -0
- package/dist/generated/schema-models.js +76 -0
- package/dist/generated/schema-models.js.map +1 -0
- package/dist/guards.d.ts +7 -0
- package/dist/guards.d.ts.map +1 -0
- package/dist/guards.js +374 -0
- package/dist/guards.js.map +1 -0
- package/dist/host-failure.d.ts +16 -0
- package/dist/host-failure.d.ts.map +1 -0
- package/dist/host-failure.js +27 -0
- package/dist/host-failure.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas.d.ts +50 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +144 -0
- package/dist/schemas.js.map +1 -0
- package/dist/types.d.ts +1256 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/package.json +42 -0
- package/schemas/authoring-message-catalog.schema.json +45 -0
- package/schemas/authoring-web-vector.schema.json +236 -0
- package/schemas/binding-projection-vector.schema.json +127 -0
- package/schemas/block-definition.schema.json +227 -0
- package/schemas/blueprint.schema.json +273 -0
- package/schemas/canonical-vector.schema.json +65 -0
- package/schemas/command-vector.schema.json +68 -0
- package/schemas/command.schema.json +410 -0
- package/schemas/common.schema.json +222 -0
- package/schemas/content-model.schema.json +216 -0
- package/schemas/corpus-manifest.schema.json +48 -0
- package/schemas/design-vocabulary.schema.json +91 -0
- package/schemas/entry.schema.json +32 -0
- package/schemas/field-adapter.schema.json +51 -0
- package/schemas/host-capabilities.schema.json +65 -0
- package/schemas/host-error.schema.json +42 -0
- package/schemas/host-operations.schema.json +162 -0
- package/schemas/host-request.schema.json +71 -0
- package/schemas/host-result.schema.json +19 -0
- package/schemas/host-sequence-vector.schema.json +342 -0
- package/schemas/host-vector.schema.json +199 -0
- package/schemas/inspector.schema.json +44 -0
- package/schemas/manifest.json +246 -0
- package/schemas/media-asset.schema.json +83 -0
- package/schemas/media-reference.schema.json +112 -0
- package/schemas/media-upload-grant.schema.json +48 -0
- package/schemas/media-upload-session.schema.json +109 -0
- package/schemas/media-vector.schema.json +123 -0
- package/schemas/migration.schema.json +41 -0
- package/schemas/pattern.schema.json +50 -0
- package/schemas/plugin-manifest.schema.json +126 -0
- package/schemas/preview-message.schema.json +583 -0
- package/schemas/preview-vector.schema.json +52 -0
- package/schemas/provenance.schema.json +57 -0
- package/schemas/renderer-web-vector.schema.json +160 -0
- package/schemas/rich-text-projection.schema.json +79 -0
- package/schemas/rich-text.schema.json +323 -0
- package/schemas/schema-profile-vector.schema.json +133 -0
- package/schemas/schema-profile.schema.json +201 -0
- package/schemas/studio-chart.schema.json +35 -0
- package/schemas/studio-config.schema.json +244 -0
- package/schemas/studio-drawing.schema.json +44 -0
- package/schemas/studio-money.schema.json +16 -0
- package/schemas/studio-presentation.schema.json +31 -0
- package/schemas/studio-release.schema.json +81 -0
- package/schemas/studio-table.schema.json +27 -0
- package/schemas/theme.schema.json +164 -0
- package/schemas/unresolved-contribution.schema.json +50 -0
- package/studio-release.json +18 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.kumwe.org/studio/v1/host-vector.schema.json",
|
|
4
|
+
"title": "Studio canonical host conformance vector",
|
|
5
|
+
"description": "One canonical host-port exchange: the host state a conforming implementation is seeded with, the request envelope and argument Studio sends, and either the accepted result or the exact error category the closed taxonomy requires. Every precondition is a condition a real host can reproduce - a seeded revision, a withheld permission, an unknown identifier, an unsupported wire version - so the corpus is replayable by any implementation in any language without executing Studio code.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"contractVersion",
|
|
10
|
+
"kind",
|
|
11
|
+
"id",
|
|
12
|
+
"description",
|
|
13
|
+
"profile",
|
|
14
|
+
"port",
|
|
15
|
+
"operation",
|
|
16
|
+
"given",
|
|
17
|
+
"context",
|
|
18
|
+
"expect"
|
|
19
|
+
],
|
|
20
|
+
"properties": {
|
|
21
|
+
"contractVersion": { "$ref": "common.schema.json#/$defs/contractVersion" },
|
|
22
|
+
"kind": { "const": "host-vector" },
|
|
23
|
+
"id": { "$ref": "common.schema.json#/$defs/stableId" },
|
|
24
|
+
"description": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"minLength": 1,
|
|
27
|
+
"maxLength": 500
|
|
28
|
+
},
|
|
29
|
+
"profile": {
|
|
30
|
+
"description": "The conformance profile whose assertion set this vector belongs to.",
|
|
31
|
+
"$ref": "common.schema.json#/$defs/qualifiedName"
|
|
32
|
+
},
|
|
33
|
+
"port": {
|
|
34
|
+
"enum": [
|
|
35
|
+
"artifact",
|
|
36
|
+
"localization",
|
|
37
|
+
"media",
|
|
38
|
+
"model",
|
|
39
|
+
"permission",
|
|
40
|
+
"preview",
|
|
41
|
+
"recovery",
|
|
42
|
+
"resource",
|
|
43
|
+
"telemetry"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"operation": { "$ref": "common.schema.json#/$defs/localName" },
|
|
47
|
+
"given": {
|
|
48
|
+
"description": "The reproducible host state before the request. A conforming host seeds exactly this state; nothing here is a test double.",
|
|
49
|
+
"type": "object",
|
|
50
|
+
"additionalProperties": false,
|
|
51
|
+
"required": ["artifacts", "permissions"],
|
|
52
|
+
"properties": {
|
|
53
|
+
"artifacts": {
|
|
54
|
+
"description": "Artifact identities the host already stores, with the revision each is stored at.",
|
|
55
|
+
"type": "array",
|
|
56
|
+
"maxItems": 20,
|
|
57
|
+
"items": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"additionalProperties": false,
|
|
60
|
+
"required": ["id", "kind", "revision"],
|
|
61
|
+
"properties": {
|
|
62
|
+
"id": { "$ref": "common.schema.json#/$defs/stableId" },
|
|
63
|
+
"kind": { "enum": ["blueprint", "content-model", "entry"] },
|
|
64
|
+
"revision": { "$ref": "common.schema.json#/$defs/revision" }
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"permissions": {
|
|
69
|
+
"description": "Operations the acting identity is authorized for. An operation absent here is withheld.",
|
|
70
|
+
"type": "array",
|
|
71
|
+
"maxItems": 50,
|
|
72
|
+
"uniqueItems": true,
|
|
73
|
+
"items": { "$ref": "common.schema.json#/$defs/qualifiedName" }
|
|
74
|
+
},
|
|
75
|
+
"sessionGeneration": {
|
|
76
|
+
"description": "The host's live session generation. A request naming any other generation is stale.",
|
|
77
|
+
"$ref": "common.schema.json#/$defs/revision"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"context": {
|
|
82
|
+
"description": "The request envelope every port operation carries.",
|
|
83
|
+
"type": "object",
|
|
84
|
+
"additionalProperties": false,
|
|
85
|
+
"required": [
|
|
86
|
+
"operationId",
|
|
87
|
+
"protocolVersion",
|
|
88
|
+
"requestId",
|
|
89
|
+
"resourceContextKey",
|
|
90
|
+
"sessionGeneration"
|
|
91
|
+
],
|
|
92
|
+
"properties": {
|
|
93
|
+
"expectedRevision": { "$ref": "common.schema.json#/$defs/revision" },
|
|
94
|
+
"idempotencyKey": { "$ref": "common.schema.json#/$defs/stableId" },
|
|
95
|
+
"locale": { "$ref": "common.schema.json#/$defs/locale" },
|
|
96
|
+
"operationId": { "$ref": "common.schema.json#/$defs/qualifiedName" },
|
|
97
|
+
"protocolVersion": {
|
|
98
|
+
"description": "Deliberately looser than the negotiated wire version so a vector can carry a version the host must refuse.",
|
|
99
|
+
"type": "string",
|
|
100
|
+
"maxLength": 100
|
|
101
|
+
},
|
|
102
|
+
"requestId": {
|
|
103
|
+
"description": "Deliberately looser than the canonical stable identifier so a vector can carry a structurally invalid envelope the host must refuse.",
|
|
104
|
+
"type": "string",
|
|
105
|
+
"maxLength": 240
|
|
106
|
+
},
|
|
107
|
+
"resourceContextKey": { "$ref": "common.schema.json#/$defs/stableId" },
|
|
108
|
+
"sessionGeneration": { "$ref": "common.schema.json#/$defs/revision" }
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"argument": {
|
|
112
|
+
"description": "The port argument, shaped by the operation. Absent for operations that take only the envelope.",
|
|
113
|
+
"$ref": "common.schema.json#/$defs/jsonValue"
|
|
114
|
+
},
|
|
115
|
+
"expect": {
|
|
116
|
+
"oneOf": [
|
|
117
|
+
{
|
|
118
|
+
"type": "object",
|
|
119
|
+
"additionalProperties": false,
|
|
120
|
+
"required": ["outcome"],
|
|
121
|
+
"properties": {
|
|
122
|
+
"outcome": { "const": "result" },
|
|
123
|
+
"revision": {
|
|
124
|
+
"description": "The accepted revision the result carries. A mutation MUST advance it beyond the stored revision.",
|
|
125
|
+
"$ref": "common.schema.json#/$defs/revision"
|
|
126
|
+
},
|
|
127
|
+
"revisionAdvances": {
|
|
128
|
+
"description": "True when the operation mutates and the returned revision must differ from the stored one.",
|
|
129
|
+
"type": "boolean"
|
|
130
|
+
},
|
|
131
|
+
"value": {
|
|
132
|
+
"description": "The value shape the result carries.",
|
|
133
|
+
"enum": [
|
|
134
|
+
"artifact",
|
|
135
|
+
"artifact-references",
|
|
136
|
+
"content-model",
|
|
137
|
+
"content-models",
|
|
138
|
+
"media-asset",
|
|
139
|
+
"media-page",
|
|
140
|
+
"message-bundle",
|
|
141
|
+
"null",
|
|
142
|
+
"permission-explanation",
|
|
143
|
+
"permission-snapshot",
|
|
144
|
+
"recovery-envelope",
|
|
145
|
+
"rendered",
|
|
146
|
+
"search-page",
|
|
147
|
+
"upload-accepted",
|
|
148
|
+
"upload-grant"
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"type": "object",
|
|
155
|
+
"additionalProperties": false,
|
|
156
|
+
"required": ["outcome", "category"],
|
|
157
|
+
"properties": {
|
|
158
|
+
"outcome": { "const": "error" },
|
|
159
|
+
"category": {
|
|
160
|
+
"enum": [
|
|
161
|
+
"cancelled",
|
|
162
|
+
"conflict",
|
|
163
|
+
"forbidden",
|
|
164
|
+
"incompatible",
|
|
165
|
+
"internal",
|
|
166
|
+
"invalid-request",
|
|
167
|
+
"limit-exceeded",
|
|
168
|
+
"not-found",
|
|
169
|
+
"rate-limited",
|
|
170
|
+
"unauthenticated",
|
|
171
|
+
"unavailable",
|
|
172
|
+
"validation-failed"
|
|
173
|
+
]
|
|
174
|
+
},
|
|
175
|
+
"retryable": {
|
|
176
|
+
"description": "The retry classification the error MUST carry.",
|
|
177
|
+
"type": "boolean"
|
|
178
|
+
},
|
|
179
|
+
"revision": {
|
|
180
|
+
"description": "The safe current revision a conflict MUST return so the client can resolve without a second read.",
|
|
181
|
+
"$ref": "common.schema.json#/$defs/revision"
|
|
182
|
+
},
|
|
183
|
+
"messageMustNotContain": {
|
|
184
|
+
"description": "Values the user-facing message MUST NOT echo, so a rejection never discloses private resource existence or request internals.",
|
|
185
|
+
"type": "array",
|
|
186
|
+
"minItems": 1,
|
|
187
|
+
"maxItems": 10,
|
|
188
|
+
"items": {
|
|
189
|
+
"type": "string",
|
|
190
|
+
"minLength": 1,
|
|
191
|
+
"maxLength": 200
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
]
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.kumwe.org/studio/v1/inspector.schema.json",
|
|
4
|
+
"title": "Studio inspector contribution",
|
|
5
|
+
"description": "The declarative payload behind an `inspector` plugin contribution: a panel an extension offers for inspecting or configuring the block types it declares. The declaration is inert data; whether its executable half runs, and in which realm, stays a host decision recorded in the plugin manifest.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"contractVersion",
|
|
10
|
+
"kind",
|
|
11
|
+
"id",
|
|
12
|
+
"version",
|
|
13
|
+
"owner",
|
|
14
|
+
"label",
|
|
15
|
+
"blockTypes",
|
|
16
|
+
"placement"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"contractVersion": { "$ref": "common.schema.json#/$defs/contractVersion" },
|
|
20
|
+
"kind": { "const": "inspector" },
|
|
21
|
+
"id": { "$ref": "common.schema.json#/$defs/qualifiedName" },
|
|
22
|
+
"version": { "$ref": "common.schema.json#/$defs/semanticVersion" },
|
|
23
|
+
"owner": { "$ref": "common.schema.json#/$defs/ownerReference" },
|
|
24
|
+
"label": { "$ref": "common.schema.json#/$defs/messageReference" },
|
|
25
|
+
"description": { "$ref": "common.schema.json#/$defs/messageReference" },
|
|
26
|
+
"blockTypes": {
|
|
27
|
+
"description": "The block types this inspector applies to. It never sees a node of any other type.",
|
|
28
|
+
"type": "array",
|
|
29
|
+
"minItems": 1,
|
|
30
|
+
"maxItems": 500,
|
|
31
|
+
"uniqueItems": true,
|
|
32
|
+
"items": { "$ref": "common.schema.json#/$defs/qualifiedName" }
|
|
33
|
+
},
|
|
34
|
+
"placement": {
|
|
35
|
+
"description": "Whether the panel augments the built-in inspector or replaces it for the declared block types. Replacement never removes the host's own policy and accessibility surfaces.",
|
|
36
|
+
"enum": ["augment", "replace"]
|
|
37
|
+
},
|
|
38
|
+
"requiredCapability": {
|
|
39
|
+
"description": "The capability the executable half requires. A declaration without one is inspectable but never executed.",
|
|
40
|
+
"$ref": "common.schema.json#/$defs/qualifiedName"
|
|
41
|
+
},
|
|
42
|
+
"extensions": { "$ref": "common.schema.json#/$defs/extensions" }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contractVersion": "0.1-draft",
|
|
3
|
+
"epoch": "https://schemas.kumwe.org/studio/v1/",
|
|
4
|
+
"generator": {
|
|
5
|
+
"name": "@kumwe/studio/schema-manifest",
|
|
6
|
+
"version": "1.0.0"
|
|
7
|
+
},
|
|
8
|
+
"kind": "schema-manifest",
|
|
9
|
+
"schemas": [
|
|
10
|
+
{
|
|
11
|
+
"digest": "sha256-WvSNMOQ3OZWs7ZKBCCRRwLtw5byZBtn6Rwvxz74vfAY=",
|
|
12
|
+
"file": "authoring-message-catalog.schema.json",
|
|
13
|
+
"id": "https://schemas.kumwe.org/studio/v1/authoring-message-catalog.schema.json"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"digest": "sha256-hZBNrpwHkLuUu/mPeU2UWtuOXfvZgrd8MO7vB9fJWog=",
|
|
17
|
+
"file": "authoring-web-vector.schema.json",
|
|
18
|
+
"id": "https://schemas.kumwe.org/studio/v1/authoring-web-vector.schema.json"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"digest": "sha256-GCk2z8XalwUUKM6R146c7WeCj3CY00kTMRKtPjaeehs=",
|
|
22
|
+
"file": "binding-projection-vector.schema.json",
|
|
23
|
+
"id": "https://schemas.kumwe.org/studio/v1/binding-projection-vector.schema.json"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"digest": "sha256-S3sx0m9PQs2vMFNvYIapBXc8W184cEng5MFF54C6RwQ=",
|
|
27
|
+
"file": "block-definition.schema.json",
|
|
28
|
+
"id": "https://schemas.kumwe.org/studio/v1/block-definition.schema.json"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"digest": "sha256-MsFQU2lUG7oNfV9WyzVraH3uwd/+AHpdlsh9inHgBu0=",
|
|
32
|
+
"file": "blueprint.schema.json",
|
|
33
|
+
"id": "https://schemas.kumwe.org/studio/v1/blueprint.schema.json"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"digest": "sha256-WrqnuGMzdcSi5geh9LXT5uhL1AsimMgw1jhizsAKyBA=",
|
|
37
|
+
"file": "canonical-vector.schema.json",
|
|
38
|
+
"id": "https://schemas.kumwe.org/studio/v1/canonical-vector.schema.json"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"digest": "sha256-GEoWp72qtRDvyf9V7pyQzshlqDecOjtUxIYCY7TJ8SA=",
|
|
42
|
+
"file": "command-vector.schema.json",
|
|
43
|
+
"id": "https://schemas.kumwe.org/studio/v1/command-vector.schema.json"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"digest": "sha256-WbphD4VZ5xZqAP4fkJ1ghebx/PAMLUpqCRHpE9SBjRQ=",
|
|
47
|
+
"file": "command.schema.json",
|
|
48
|
+
"id": "https://schemas.kumwe.org/studio/v1/command.schema.json"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"digest": "sha256-htSwJXFIhBnC96NxNxKgr+h2Fbo/qg8/ydtwguXEesA=",
|
|
52
|
+
"file": "common.schema.json",
|
|
53
|
+
"id": "https://schemas.kumwe.org/studio/v1/common.schema.json"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"digest": "sha256-M4vvgiYXf1WbIryDzJNdde91fJd5npzfaM8E495eQRw=",
|
|
57
|
+
"file": "content-model.schema.json",
|
|
58
|
+
"id": "https://schemas.kumwe.org/studio/v1/content-model.schema.json"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"digest": "sha256-DuM7fZghcN9YsMdEHf5Eap7jijiPBLl4B68OFMFIJZo=",
|
|
62
|
+
"file": "corpus-manifest.schema.json",
|
|
63
|
+
"id": "https://schemas.kumwe.org/studio/v1/corpus-manifest.schema.json"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"digest": "sha256-KoGp/qlqlsqabqtELbd/bdRHyM1wU8sRxyyLvOg/OFg=",
|
|
67
|
+
"file": "design-vocabulary.schema.json",
|
|
68
|
+
"id": "https://schemas.kumwe.org/studio/v1/design-vocabulary.schema.json"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"digest": "sha256-BQFVJmT3bwZOfCmXuQrZnYYxjB0FAUV7j1XrdZdIkdw=",
|
|
72
|
+
"file": "entry.schema.json",
|
|
73
|
+
"id": "https://schemas.kumwe.org/studio/v1/entry.schema.json"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"digest": "sha256-pmSxOOQO2G0OAxej15ISDEd9tS16w3XwZXyBxXyalzk=",
|
|
77
|
+
"file": "field-adapter.schema.json",
|
|
78
|
+
"id": "https://schemas.kumwe.org/studio/v1/field-adapter.schema.json"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"digest": "sha256-dcyPPmPmKLyU3jwajgfQd17xBtrI8sL9nhweAF3LsnY=",
|
|
82
|
+
"file": "host-capabilities.schema.json",
|
|
83
|
+
"id": "https://schemas.kumwe.org/studio/v1/host-capabilities.schema.json"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"digest": "sha256-6FWXIBdUaiuxpwLJUWnHxnRdcYmR6Ni6WWFCEQFekGw=",
|
|
87
|
+
"file": "host-error.schema.json",
|
|
88
|
+
"id": "https://schemas.kumwe.org/studio/v1/host-error.schema.json"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"digest": "sha256-dKcbTVV2gn4IWAAH1RMpK5Ve12V+RswsDuhlrC1Ohm4=",
|
|
92
|
+
"file": "host-operations.schema.json",
|
|
93
|
+
"id": "https://schemas.kumwe.org/studio/v1/host-operations.schema.json"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"digest": "sha256-pOVrjkIA0RiBKF2aKfmOnmE1DlAFYgg+QBuiH+L5hIk=",
|
|
97
|
+
"file": "host-request.schema.json",
|
|
98
|
+
"id": "https://schemas.kumwe.org/studio/v1/host-request.schema.json"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"digest": "sha256-yNKi6fS95rlh9UubTz2FA+neXY0KDNYKs3NX0vGY+c0=",
|
|
102
|
+
"file": "host-result.schema.json",
|
|
103
|
+
"id": "https://schemas.kumwe.org/studio/v1/host-result.schema.json"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"digest": "sha256-pYvWThxhigEI7S1XeKyUkkN1KMZZPeRj/d5HV3ke+kQ=",
|
|
107
|
+
"file": "host-sequence-vector.schema.json",
|
|
108
|
+
"id": "https://schemas.kumwe.org/studio/v1/host-sequence-vector.schema.json"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"digest": "sha256-v2LFWwqpa0hS9XnYaVP9xC7Ohyw+Dl7ZG4e038+LqtI=",
|
|
112
|
+
"file": "host-vector.schema.json",
|
|
113
|
+
"id": "https://schemas.kumwe.org/studio/v1/host-vector.schema.json"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"digest": "sha256-gCIQyhwXC4DwTYwg2g+L05rrw2HIu0Ckni22Y7CDbEQ=",
|
|
117
|
+
"file": "inspector.schema.json",
|
|
118
|
+
"id": "https://schemas.kumwe.org/studio/v1/inspector.schema.json"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"digest": "sha256-tOiXLsL+sv+gnL3sUeAjA/+oumRb5AGSjkeC/1GI+/8=",
|
|
122
|
+
"file": "media-asset.schema.json",
|
|
123
|
+
"id": "https://schemas.kumwe.org/studio/v1/media-asset.schema.json"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"digest": "sha256-bbC4d8OOPy3/TLpFurhW3IFwzeykLFHZeWQzf8gVeRs=",
|
|
127
|
+
"file": "media-reference.schema.json",
|
|
128
|
+
"id": "https://schemas.kumwe.org/studio/v1/media-reference.schema.json"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"digest": "sha256-sJCtOlIcYAvnMhMS2zPdFo8xJFzKjNlgJLz+HT7J2mg=",
|
|
132
|
+
"file": "media-upload-grant.schema.json",
|
|
133
|
+
"id": "https://schemas.kumwe.org/studio/v1/media-upload-grant.schema.json"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"digest": "sha256-46XVlSre/jC+J75IDUDtCBq8yawymUGuVmUWyhM0GV8=",
|
|
137
|
+
"file": "media-upload-session.schema.json",
|
|
138
|
+
"id": "https://schemas.kumwe.org/studio/v1/media-upload-session.schema.json"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"digest": "sha256-ZiI0nqS4VFwWTEdSKHsXbDCLUr9V9A2pG9myKXf9i+0=",
|
|
142
|
+
"file": "media-vector.schema.json",
|
|
143
|
+
"id": "https://schemas.kumwe.org/studio/v1/media-vector.schema.json"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"digest": "sha256-hlwTWpwFCpBpyHSkB+UhCPV2ks1Pu3UutuuT34frYMI=",
|
|
147
|
+
"file": "migration.schema.json",
|
|
148
|
+
"id": "https://schemas.kumwe.org/studio/v1/migration.schema.json"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"digest": "sha256-ys69OuX6KO1efqLjTmOV3K0gQC2GZiAXDXkH06Ddh88=",
|
|
152
|
+
"file": "pattern.schema.json",
|
|
153
|
+
"id": "https://schemas.kumwe.org/studio/v1/pattern.schema.json"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"digest": "sha256-WWBFJmWz4p0F1PhOwup1rgBJuAkelWZz83SJX7mshGE=",
|
|
157
|
+
"file": "plugin-manifest.schema.json",
|
|
158
|
+
"id": "https://schemas.kumwe.org/studio/v1/plugin-manifest.schema.json"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"digest": "sha256-7yQWc2+cZ+LoVmq2nZ5h4NsTO8tRjpODN7vIyJnbDKU=",
|
|
162
|
+
"file": "preview-message.schema.json",
|
|
163
|
+
"id": "https://schemas.kumwe.org/studio/v1/preview-message.schema.json"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"digest": "sha256-h4au/6iI71X7lArbz5moSOxk29g+I+W/1Ewkeh7MqoI=",
|
|
167
|
+
"file": "preview-vector.schema.json",
|
|
168
|
+
"id": "https://schemas.kumwe.org/studio/v1/preview-vector.schema.json"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"digest": "sha256-QURE0s0zSfvGXEvy3meE4rQeofecsUVZksqQKfKv4ys=",
|
|
172
|
+
"file": "provenance.schema.json",
|
|
173
|
+
"id": "https://schemas.kumwe.org/studio/v1/provenance.schema.json"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"digest": "sha256-oi//2JX617h+s50otcRWB4/ZTnv4iVo+gngpr73i+EA=",
|
|
177
|
+
"file": "renderer-web-vector.schema.json",
|
|
178
|
+
"id": "https://schemas.kumwe.org/studio/v1/renderer-web-vector.schema.json"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"digest": "sha256-74OcoS9iGzRnDOjo/opHhlXZdxMLcCUkw0Ol4ipzkws=",
|
|
182
|
+
"file": "rich-text-projection.schema.json",
|
|
183
|
+
"id": "https://schemas.kumwe.org/studio/v1/rich-text-projection.schema.json"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"digest": "sha256-r+wYEvy3tvMdQhmU0272K1cklAiYcEiD7nICWDdFFPs=",
|
|
187
|
+
"file": "rich-text.schema.json",
|
|
188
|
+
"id": "https://schemas.kumwe.org/studio/v1/rich-text.schema.json"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"digest": "sha256-200BYrY2bR/TvZGo852CHKtkxFn+7Yf2ULiVirg1R/o=",
|
|
192
|
+
"file": "schema-profile-vector.schema.json",
|
|
193
|
+
"id": "https://schemas.kumwe.org/studio/v1/schema-profile-vector.schema.json"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"digest": "sha256-DbxBTu984mB1oo3O1kcDuqkxbmPJjtTXq65GptM8Xkw=",
|
|
197
|
+
"file": "schema-profile.schema.json",
|
|
198
|
+
"id": "https://schemas.kumwe.org/studio/v1/schema-profile.schema.json"
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"digest": "sha256-3jvAa7VGd6F7uAOR82AcTOSMGXWvgaMVmGsG1UzSXiI=",
|
|
202
|
+
"file": "studio-chart.schema.json",
|
|
203
|
+
"id": "https://schemas.kumwe.org/studio/v1/studio-chart.schema.json"
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"digest": "sha256-FC0lGnAqTIdHLvlwbGyYGdXEK5mwtyhdyrCwt7WzVhY=",
|
|
207
|
+
"file": "studio-config.schema.json",
|
|
208
|
+
"id": "https://schemas.kumwe.org/studio/v1/studio-config.schema.json"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"digest": "sha256-SAP1i3VfZS51FRsqnN2frFxE/UmI9xEUsSREUp/cA+E=",
|
|
212
|
+
"file": "studio-drawing.schema.json",
|
|
213
|
+
"id": "https://schemas.kumwe.org/studio/v1/studio-drawing.schema.json"
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"digest": "sha256-6jp6QkIqqUrNSVAQJHOlK8BCb8vdAZF5QRZmyRUqfgM=",
|
|
217
|
+
"file": "studio-money.schema.json",
|
|
218
|
+
"id": "https://schemas.kumwe.org/studio/v1/studio-money.schema.json"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"digest": "sha256-+dyYyHfQcUz4n5BUNMmGODJ6J7n2ysm9/+rWpSrbODA=",
|
|
222
|
+
"file": "studio-presentation.schema.json",
|
|
223
|
+
"id": "https://schemas.kumwe.org/studio/v1/studio-presentation.schema.json"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"digest": "sha256-8U3Im000ka2Zdfeo9J/ixmPLnMaLj3JE8vo8DrA6HMI=",
|
|
227
|
+
"file": "studio-release.schema.json",
|
|
228
|
+
"id": "https://schemas.kumwe.org/studio/v1/studio-release.schema.json"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"digest": "sha256-txf6OXjSyFvOcoepU01qNY2WWlTyDA3iquMVXrFC2tQ=",
|
|
232
|
+
"file": "studio-table.schema.json",
|
|
233
|
+
"id": "https://schemas.kumwe.org/studio/v1/studio-table.schema.json"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"digest": "sha256-xzhCb8J2nx+K6kBMciFj1glB4Q6jT8+KUdbUBsNM4h8=",
|
|
237
|
+
"file": "theme.schema.json",
|
|
238
|
+
"id": "https://schemas.kumwe.org/studio/v1/theme.schema.json"
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"digest": "sha256-ne4c7LoBJl5IZVIAbMJF3Z0ankI4CqUQlpNpxrGXEcE=",
|
|
242
|
+
"file": "unresolved-contribution.schema.json",
|
|
243
|
+
"id": "https://schemas.kumwe.org/studio/v1/unresolved-contribution.schema.json"
|
|
244
|
+
}
|
|
245
|
+
]
|
|
246
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.kumwe.org/studio/v1/media-asset.schema.json",
|
|
4
|
+
"title": "Studio host-owned media asset",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"contractVersion",
|
|
9
|
+
"kind",
|
|
10
|
+
"id",
|
|
11
|
+
"revision",
|
|
12
|
+
"state",
|
|
13
|
+
"mediaKind",
|
|
14
|
+
"mediaType",
|
|
15
|
+
"byteSize",
|
|
16
|
+
"filename",
|
|
17
|
+
"metadata"
|
|
18
|
+
],
|
|
19
|
+
"properties": {
|
|
20
|
+
"contractVersion": { "$ref": "common.schema.json#/$defs/contractVersion" },
|
|
21
|
+
"kind": { "const": "media-asset" },
|
|
22
|
+
"id": {
|
|
23
|
+
"description": "Host-assigned stable asset identity. Its presence does not grant access, readiness, publication, or delivery authority.",
|
|
24
|
+
"$ref": "common.schema.json#/$defs/stableId"
|
|
25
|
+
},
|
|
26
|
+
"revision": { "$ref": "common.schema.json#/$defs/revision" },
|
|
27
|
+
"state": {
|
|
28
|
+
"description": "Host lifecycle projection. An accepted stable asset can remain processing; every use and publication decision is host-policy gated.",
|
|
29
|
+
"enum": ["processing", "ready", "rejected", "quarantined", "archived"]
|
|
30
|
+
},
|
|
31
|
+
"mediaKind": { "enum": ["image", "video", "audio", "document", "archive", "other"] },
|
|
32
|
+
"mediaType": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"pattern": "^[a-z0-9!#$&^_.+-]+/[a-z0-9!#$&^_.+-]+(?![\\s\\S])",
|
|
35
|
+
"maxLength": 200
|
|
36
|
+
},
|
|
37
|
+
"byteSize": { "type": "integer", "minimum": 0, "maximum": 1099511627776 },
|
|
38
|
+
"filename": { "type": "string", "minLength": 1, "maxLength": 500 },
|
|
39
|
+
"metadata": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"additionalProperties": false,
|
|
42
|
+
"properties": {
|
|
43
|
+
"width": { "type": "integer", "minimum": 1, "maximum": 1000000 },
|
|
44
|
+
"height": { "type": "integer", "minimum": 1, "maximum": 1000000 },
|
|
45
|
+
"durationMilliseconds": { "type": "integer", "minimum": 0, "maximum": 864000000 },
|
|
46
|
+
"altText": { "type": "string", "maxLength": 5000 },
|
|
47
|
+
"decorative": { "type": "boolean" },
|
|
48
|
+
"caption": { "type": "string", "maxLength": 20000 },
|
|
49
|
+
"credit": { "type": "string", "maxLength": 2000 },
|
|
50
|
+
"license": { "type": "string", "maxLength": 500 },
|
|
51
|
+
"focalPoint": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"additionalProperties": false,
|
|
54
|
+
"required": ["x", "y"],
|
|
55
|
+
"properties": {
|
|
56
|
+
"x": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
57
|
+
"y": { "type": "number", "minimum": 0, "maximum": 1 }
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"renditions": {
|
|
63
|
+
"type": "array",
|
|
64
|
+
"maxItems": 100,
|
|
65
|
+
"items": {
|
|
66
|
+
"type": "object",
|
|
67
|
+
"additionalProperties": false,
|
|
68
|
+
"required": ["id", "mediaType", "width", "height"],
|
|
69
|
+
"properties": {
|
|
70
|
+
"id": { "$ref": "common.schema.json#/$defs/localName" },
|
|
71
|
+
"mediaType": {
|
|
72
|
+
"type": "string",
|
|
73
|
+
"pattern": "^[a-z0-9!#$&^_.+-]+/[a-z0-9!#$&^_.+-]+(?![\\s\\S])",
|
|
74
|
+
"maxLength": 200
|
|
75
|
+
},
|
|
76
|
+
"width": { "type": "integer", "minimum": 1, "maximum": 1000000 },
|
|
77
|
+
"height": { "type": "integer", "minimum": 1, "maximum": 1000000 }
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"extensions": { "$ref": "common.schema.json#/$defs/extensions" }
|
|
82
|
+
}
|
|
83
|
+
}
|