@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.
Files changed (77) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +77 -0
  3. package/THIRD_PARTY_NOTICES.md +9 -0
  4. package/dist/generated/schema-models.d.ts +1968 -0
  5. package/dist/generated/schema-models.d.ts.map +1 -0
  6. package/dist/generated/schema-models.js +76 -0
  7. package/dist/generated/schema-models.js.map +1 -0
  8. package/dist/guards.d.ts +7 -0
  9. package/dist/guards.d.ts.map +1 -0
  10. package/dist/guards.js +374 -0
  11. package/dist/guards.js.map +1 -0
  12. package/dist/host-failure.d.ts +16 -0
  13. package/dist/host-failure.d.ts.map +1 -0
  14. package/dist/host-failure.js +27 -0
  15. package/dist/host-failure.js.map +1 -0
  16. package/dist/index.d.ts +7 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +6 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/schemas.d.ts +50 -0
  21. package/dist/schemas.d.ts.map +1 -0
  22. package/dist/schemas.js +144 -0
  23. package/dist/schemas.js.map +1 -0
  24. package/dist/types.d.ts +1256 -0
  25. package/dist/types.d.ts.map +1 -0
  26. package/dist/types.js +8 -0
  27. package/dist/types.js.map +1 -0
  28. package/package.json +42 -0
  29. package/schemas/authoring-message-catalog.schema.json +45 -0
  30. package/schemas/authoring-web-vector.schema.json +236 -0
  31. package/schemas/binding-projection-vector.schema.json +127 -0
  32. package/schemas/block-definition.schema.json +227 -0
  33. package/schemas/blueprint.schema.json +273 -0
  34. package/schemas/canonical-vector.schema.json +65 -0
  35. package/schemas/command-vector.schema.json +68 -0
  36. package/schemas/command.schema.json +410 -0
  37. package/schemas/common.schema.json +222 -0
  38. package/schemas/content-model.schema.json +216 -0
  39. package/schemas/corpus-manifest.schema.json +48 -0
  40. package/schemas/design-vocabulary.schema.json +91 -0
  41. package/schemas/entry.schema.json +32 -0
  42. package/schemas/field-adapter.schema.json +51 -0
  43. package/schemas/host-capabilities.schema.json +65 -0
  44. package/schemas/host-error.schema.json +42 -0
  45. package/schemas/host-operations.schema.json +162 -0
  46. package/schemas/host-request.schema.json +71 -0
  47. package/schemas/host-result.schema.json +19 -0
  48. package/schemas/host-sequence-vector.schema.json +342 -0
  49. package/schemas/host-vector.schema.json +199 -0
  50. package/schemas/inspector.schema.json +44 -0
  51. package/schemas/manifest.json +246 -0
  52. package/schemas/media-asset.schema.json +83 -0
  53. package/schemas/media-reference.schema.json +112 -0
  54. package/schemas/media-upload-grant.schema.json +48 -0
  55. package/schemas/media-upload-session.schema.json +109 -0
  56. package/schemas/media-vector.schema.json +123 -0
  57. package/schemas/migration.schema.json +41 -0
  58. package/schemas/pattern.schema.json +50 -0
  59. package/schemas/plugin-manifest.schema.json +126 -0
  60. package/schemas/preview-message.schema.json +583 -0
  61. package/schemas/preview-vector.schema.json +52 -0
  62. package/schemas/provenance.schema.json +57 -0
  63. package/schemas/renderer-web-vector.schema.json +160 -0
  64. package/schemas/rich-text-projection.schema.json +79 -0
  65. package/schemas/rich-text.schema.json +323 -0
  66. package/schemas/schema-profile-vector.schema.json +133 -0
  67. package/schemas/schema-profile.schema.json +201 -0
  68. package/schemas/studio-chart.schema.json +35 -0
  69. package/schemas/studio-config.schema.json +244 -0
  70. package/schemas/studio-drawing.schema.json +44 -0
  71. package/schemas/studio-money.schema.json +16 -0
  72. package/schemas/studio-presentation.schema.json +31 -0
  73. package/schemas/studio-release.schema.json +81 -0
  74. package/schemas/studio-table.schema.json +27 -0
  75. package/schemas/theme.schema.json +164 -0
  76. package/schemas/unresolved-contribution.schema.json +50 -0
  77. package/studio-release.json +18 -0
@@ -0,0 +1,201 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.kumwe.org/studio/v1/schema-profile.schema.json",
4
+ "title": "Studio Schema Profile meta-schema",
5
+ "allOf": [
6
+ { "$ref": "#/$defs/schema" },
7
+ {
8
+ "type": "object",
9
+ "propertyNames": { "$ref": "common.schema.json#/$defs/safeJsonMemberName" },
10
+ "required": ["type", "additionalProperties"],
11
+ "properties": {
12
+ "type": { "const": "object" },
13
+ "additionalProperties": { "const": false }
14
+ }
15
+ }
16
+ ],
17
+ "$defs": {
18
+ "schema": {
19
+ "type": "object",
20
+ "propertyNames": {
21
+ "enum": [
22
+ "$defs",
23
+ "$ref",
24
+ "$schema",
25
+ "additionalProperties",
26
+ "allOf",
27
+ "anyOf",
28
+ "const",
29
+ "default",
30
+ "dependentRequired",
31
+ "description",
32
+ "else",
33
+ "enum",
34
+ "examples",
35
+ "exclusiveMaximum",
36
+ "exclusiveMinimum",
37
+ "if",
38
+ "items",
39
+ "maxItems",
40
+ "maxLength",
41
+ "maxProperties",
42
+ "maximum",
43
+ "minItems",
44
+ "minLength",
45
+ "minProperties",
46
+ "minimum",
47
+ "multipleOf",
48
+ "not",
49
+ "oneOf",
50
+ "prefixItems",
51
+ "properties",
52
+ "propertyNames",
53
+ "readOnly",
54
+ "required",
55
+ "then",
56
+ "title",
57
+ "type",
58
+ "uniqueItems",
59
+ "writeOnly"
60
+ ]
61
+ },
62
+ "properties": {
63
+ "$defs": { "$ref": "#/$defs/schemaMap" },
64
+ "$ref": {
65
+ "type": "string",
66
+ "maxLength": 500,
67
+ "pattern": "^#(?:/(?:[A-Za-z0-9._!$&'()*+,;=:@-]|~[01])*)*(?![\\s\\S])"
68
+ },
69
+ "$schema": { "const": "https://json-schema.org/draft/2020-12/schema" },
70
+ "additionalProperties": { "$ref": "#/$defs/subschema" },
71
+ "allOf": { "$ref": "#/$defs/schemaArray" },
72
+ "anyOf": { "$ref": "#/$defs/schemaArray" },
73
+ "const": { "$ref": "#/$defs/jsonValue" },
74
+ "default": { "$ref": "#/$defs/jsonValue" },
75
+ "dependentRequired": {
76
+ "type": "object",
77
+ "maxProperties": 512,
78
+ "propertyNames": { "$ref": "common.schema.json#/$defs/safeJsonMemberName" },
79
+ "additionalProperties": {
80
+ "type": "array",
81
+ "maxItems": 512,
82
+ "uniqueItems": true,
83
+ "items": { "$ref": "common.schema.json#/$defs/safeJsonMemberName" }
84
+ }
85
+ },
86
+ "description": { "type": "string", "maxLength": 10000 },
87
+ "else": { "$ref": "#/$defs/subschema" },
88
+ "enum": {
89
+ "type": "array",
90
+ "minItems": 1,
91
+ "maxItems": 1024,
92
+ "uniqueItems": true,
93
+ "items": { "$ref": "#/$defs/jsonValue" }
94
+ },
95
+ "examples": {
96
+ "type": "array",
97
+ "maxItems": 100,
98
+ "items": { "$ref": "#/$defs/jsonValue" }
99
+ },
100
+ "exclusiveMaximum": { "type": "number" },
101
+ "exclusiveMinimum": { "type": "number" },
102
+ "if": { "$ref": "#/$defs/subschema" },
103
+ "items": { "$ref": "#/$defs/subschema" },
104
+ "maxItems": { "type": "integer", "minimum": 0 },
105
+ "maxLength": { "type": "integer", "minimum": 0 },
106
+ "maxProperties": { "type": "integer", "minimum": 0 },
107
+ "maximum": { "type": "number" },
108
+ "minItems": { "type": "integer", "minimum": 0 },
109
+ "minLength": { "type": "integer", "minimum": 0 },
110
+ "minProperties": { "type": "integer", "minimum": 0 },
111
+ "minimum": { "type": "number" },
112
+ "multipleOf": { "type": "number", "exclusiveMinimum": 0 },
113
+ "not": { "$ref": "#/$defs/subschema" },
114
+ "oneOf": { "$ref": "#/$defs/schemaArray" },
115
+ "prefixItems": { "$ref": "#/$defs/schemaArray" },
116
+ "properties": { "$ref": "#/$defs/schemaMap" },
117
+ "propertyNames": { "$ref": "#/$defs/subschema" },
118
+ "readOnly": { "type": "boolean" },
119
+ "required": {
120
+ "type": "array",
121
+ "maxItems": 512,
122
+ "uniqueItems": true,
123
+ "items": { "$ref": "common.schema.json#/$defs/safeJsonMemberName" }
124
+ },
125
+ "then": { "$ref": "#/$defs/subschema" },
126
+ "title": { "type": "string", "maxLength": 1000 },
127
+ "type": {
128
+ "oneOf": [
129
+ { "$ref": "#/$defs/typeName" },
130
+ {
131
+ "type": "array",
132
+ "minItems": 1,
133
+ "maxItems": 7,
134
+ "uniqueItems": true,
135
+ "items": { "$ref": "#/$defs/typeName" }
136
+ }
137
+ ]
138
+ },
139
+ "uniqueItems": { "type": "boolean" },
140
+ "writeOnly": { "type": "boolean" }
141
+ }
142
+ },
143
+ "schemaArray": {
144
+ "type": "array",
145
+ "minItems": 1,
146
+ "maxItems": 64,
147
+ "items": { "$ref": "#/$defs/subschema" }
148
+ },
149
+ "schemaMap": {
150
+ "type": "object",
151
+ "maxProperties": 512,
152
+ "propertyNames": { "$ref": "common.schema.json#/$defs/safeJsonMemberName" },
153
+ "additionalProperties": { "$ref": "#/$defs/schema" }
154
+ },
155
+ "jsonValue": {
156
+ "oneOf": [
157
+ { "type": "null" },
158
+ { "type": "boolean" },
159
+ { "type": "number" },
160
+ { "type": "string" },
161
+ {
162
+ "type": "array",
163
+ "maxItems": 10000,
164
+ "items": { "$ref": "#/$defs/jsonValue" }
165
+ },
166
+ {
167
+ "type": "object",
168
+ "maxProperties": 1000,
169
+ "propertyNames": { "$ref": "common.schema.json#/$defs/safeJsonMemberName" },
170
+ "additionalProperties": { "$ref": "#/$defs/jsonValue" }
171
+ }
172
+ ]
173
+ },
174
+ "subschema": {
175
+ "oneOf": [{ "type": "boolean" }, { "$ref": "#/$defs/schema" }]
176
+ },
177
+ "typeName": {
178
+ "enum": ["array", "boolean", "integer", "null", "number", "object", "string"]
179
+ },
180
+ "limits": {
181
+ "const": {
182
+ "maxAlternatives": 64,
183
+ "maxDescriptionLength": 10000,
184
+ "maxEnumMembers": 1024,
185
+ "maxExamples": 100,
186
+ "maxJsonDepth": 64,
187
+ "maxJsonItems": 10000,
188
+ "maxJsonProperties": 1000,
189
+ "maxObjectKeyLength": 200,
190
+ "maxPropertyNames": 512,
191
+ "maxReferenceLength": 500,
192
+ "maxReferences": 128,
193
+ "maxSchemaBytes": 262144,
194
+ "maxSchemaDepth": 32,
195
+ "maxSchemaMapProperties": 512,
196
+ "maxSchemaNodes": 1024,
197
+ "maxTitleLength": 1000
198
+ }
199
+ }
200
+ }
201
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.kumwe.org/studio/v1/studio-chart.schema.json",
4
+ "title": "Studio canonical chart",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["type", "labels", "datasets"],
8
+ "properties": {
9
+ "type": { "enum": ["bar", "doughnut", "line", "pie"] },
10
+ "title": { "type": "string", "maxLength": 500 },
11
+ "labels": {
12
+ "type": "array",
13
+ "maxItems": 200,
14
+ "items": { "type": "string", "maxLength": 500 }
15
+ },
16
+ "datasets": {
17
+ "type": "array",
18
+ "minItems": 1,
19
+ "maxItems": 20,
20
+ "items": {
21
+ "type": "object",
22
+ "additionalProperties": false,
23
+ "required": ["label", "values"],
24
+ "properties": {
25
+ "label": { "type": "string", "maxLength": 500 },
26
+ "values": {
27
+ "type": "array",
28
+ "maxItems": 200,
29
+ "items": { "type": "number", "minimum": -1000000000000000, "maximum": 1000000000000000 }
30
+ }
31
+ }
32
+ }
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,244 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.kumwe.org/studio/v1/studio-config.schema.json",
4
+ "title": "Studio resolved session configuration",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "contractVersion",
9
+ "protocolVersion",
10
+ "sessionId",
11
+ "sessionGeneration",
12
+ "mode",
13
+ "composite",
14
+ "sessionState",
15
+ "actor",
16
+ "locale",
17
+ "displayPreferences",
18
+ "resourceContext",
19
+ "permissions",
20
+ "artifacts",
21
+ "blocks",
22
+ "plugins",
23
+ "hostCapabilities",
24
+ "limits",
25
+ "features",
26
+ "preview"
27
+ ],
28
+ "properties": {
29
+ "contractVersion": { "$ref": "common.schema.json#/$defs/contractVersion" },
30
+ "protocolVersion": { "$ref": "common.schema.json#/$defs/semanticVersion" },
31
+ "sessionId": { "$ref": "common.schema.json#/$defs/stableId" },
32
+ "sessionGeneration": { "$ref": "common.schema.json#/$defs/revision" },
33
+ "mode": {
34
+ "enum": ["model", "blueprint", "content"]
35
+ },
36
+ "composite": { "enum": ["single", "hybrid"] },
37
+ "sessionState": { "enum": ["editable", "read-only"] },
38
+ "actor": {
39
+ "type": "object",
40
+ "additionalProperties": false,
41
+ "required": ["id", "displayName"],
42
+ "properties": {
43
+ "id": { "$ref": "common.schema.json#/$defs/stableId" },
44
+ "displayName": { "type": "string", "minLength": 1, "maxLength": 200 }
45
+ }
46
+ },
47
+ "locale": {
48
+ "type": "object",
49
+ "additionalProperties": false,
50
+ "required": ["requested", "resolved", "fallbacks", "direction", "timeZone"],
51
+ "properties": {
52
+ "requested": { "$ref": "common.schema.json#/$defs/locale" },
53
+ "resolved": { "$ref": "common.schema.json#/$defs/locale" },
54
+ "fallbacks": {
55
+ "type": "array",
56
+ "maxItems": 10,
57
+ "uniqueItems": true,
58
+ "items": { "$ref": "common.schema.json#/$defs/locale" }
59
+ },
60
+ "direction": { "enum": ["ltr", "rtl"] },
61
+ "timeZone": { "type": "string", "minLength": 1, "maxLength": 100 }
62
+ }
63
+ },
64
+ "displayPreferences": {
65
+ "type": "object",
66
+ "additionalProperties": false,
67
+ "required": ["calendar", "numberingSystem", "hourCycle"],
68
+ "properties": {
69
+ "calendar": { "$ref": "common.schema.json#/$defs/localName" },
70
+ "numberingSystem": { "$ref": "common.schema.json#/$defs/localName" },
71
+ "hourCycle": { "enum": ["h11", "h12", "h23", "h24"] },
72
+ "measurementSystem": { "enum": ["metric", "us", "uk"] }
73
+ }
74
+ },
75
+ "resourceContext": {
76
+ "type": "object",
77
+ "additionalProperties": false,
78
+ "required": ["key", "surface", "scopes"],
79
+ "properties": {
80
+ "key": { "$ref": "common.schema.json#/$defs/stableId" },
81
+ "surface": { "$ref": "common.schema.json#/$defs/qualifiedName" },
82
+ "revision": { "$ref": "common.schema.json#/$defs/revision" },
83
+ "scopes": {
84
+ "type": "array",
85
+ "maxItems": 20,
86
+ "uniqueItems": true,
87
+ "items": {
88
+ "type": "object",
89
+ "additionalProperties": false,
90
+ "required": ["kind", "id"],
91
+ "properties": {
92
+ "kind": { "$ref": "common.schema.json#/$defs/qualifiedName" },
93
+ "id": { "$ref": "common.schema.json#/$defs/stableId" }
94
+ }
95
+ }
96
+ },
97
+ "resource": {
98
+ "type": "object",
99
+ "additionalProperties": false,
100
+ "required": ["type", "id"],
101
+ "properties": {
102
+ "type": { "$ref": "common.schema.json#/$defs/qualifiedName" },
103
+ "id": { "$ref": "common.schema.json#/$defs/stableId" }
104
+ }
105
+ }
106
+ }
107
+ },
108
+ "permissions": {
109
+ "type": "array",
110
+ "maxItems": 500,
111
+ "uniqueItems": true,
112
+ "items": { "$ref": "common.schema.json#/$defs/qualifiedName" }
113
+ },
114
+ "artifacts": {
115
+ "type": "object",
116
+ "additionalProperties": false,
117
+ "properties": {
118
+ "model": { "$ref": "common.schema.json#/$defs/lockedArtifactReference" },
119
+ "blueprint": { "$ref": "common.schema.json#/$defs/lockedArtifactReference" },
120
+ "entry": { "$ref": "common.schema.json#/$defs/resolvedEntryReference" },
121
+ "theme": { "$ref": "common.schema.json#/$defs/lockedArtifactReference" }
122
+ }
123
+ },
124
+ "plugins": {
125
+ "type": "array",
126
+ "maxItems": 100,
127
+ "uniqueItems": true,
128
+ "items": { "$ref": "common.schema.json#/$defs/lockedArtifactReference" }
129
+ },
130
+ "blocks": {
131
+ "type": "array",
132
+ "maxItems": 5000,
133
+ "items": {
134
+ "type": "object",
135
+ "additionalProperties": false,
136
+ "required": ["type", "version", "revision"],
137
+ "properties": {
138
+ "type": { "$ref": "common.schema.json#/$defs/qualifiedName" },
139
+ "version": { "$ref": "common.schema.json#/$defs/semanticVersion" },
140
+ "revision": { "$ref": "common.schema.json#/$defs/revision" },
141
+ "integrity": { "$ref": "common.schema.json#/$defs/integrity" }
142
+ }
143
+ }
144
+ },
145
+ "hostCapabilities": {
146
+ "$ref": "host-capabilities.schema.json"
147
+ },
148
+ "limits": {
149
+ "type": "object",
150
+ "additionalProperties": false,
151
+ "required": [
152
+ "maxNodes",
153
+ "maxDepth",
154
+ "maxSlotsPerNode",
155
+ "maxChildrenPerSlot",
156
+ "maxPropertyBytes",
157
+ "maxExtensionBytes",
158
+ "maxCommandBatch",
159
+ "maxHistoryEntries",
160
+ "maxRichTextBytes",
161
+ "maxRichTextDepth",
162
+ "maxPreviewRequestsPerMinute",
163
+ "maxPreviewBytes",
164
+ "maxMediaUploadBytes",
165
+ "maxMediaBatch",
166
+ "maxPluginCount",
167
+ "maxContributionsPerPlugin",
168
+ "maxLocaleBytes"
169
+ ],
170
+ "properties": {
171
+ "maxNodes": { "type": "integer", "minimum": 1, "maximum": 100000 },
172
+ "maxDepth": { "type": "integer", "minimum": 1, "maximum": 128 },
173
+ "maxSlotsPerNode": { "type": "integer", "minimum": 0, "maximum": 100 },
174
+ "maxChildrenPerSlot": { "type": "integer", "minimum": 0, "maximum": 10000 },
175
+ "maxPropertyBytes": { "type": "integer", "minimum": 0, "maximum": 10485760 },
176
+ "maxExtensionBytes": { "type": "integer", "minimum": 0, "maximum": 10485760 },
177
+ "maxCommandBatch": { "type": "integer", "minimum": 1, "maximum": 10000 },
178
+ "maxHistoryEntries": { "type": "integer", "minimum": 1, "maximum": 100000 },
179
+ "maxRichTextBytes": { "type": "integer", "minimum": 1, "maximum": 10485760 },
180
+ "maxRichTextDepth": { "type": "integer", "minimum": 1, "maximum": 128 },
181
+ "maxPreviewRequestsPerMinute": {
182
+ "type": "integer",
183
+ "minimum": 1,
184
+ "maximum": 60000
185
+ },
186
+ "maxPreviewBytes": { "type": "integer", "minimum": 1, "maximum": 52428800 },
187
+ "maxMediaUploadBytes": { "type": "integer", "minimum": 1, "maximum": 1099511627776 },
188
+ "maxMediaBatch": { "type": "integer", "minimum": 1, "maximum": 1000 },
189
+ "maxPluginCount": { "type": "integer", "minimum": 0, "maximum": 100 },
190
+ "maxContributionsPerPlugin": {
191
+ "type": "integer",
192
+ "minimum": 0,
193
+ "maximum": 5000
194
+ },
195
+ "maxLocaleBytes": { "type": "integer", "minimum": 1, "maximum": 104857600 }
196
+ }
197
+ },
198
+ "features": {
199
+ "type": "object",
200
+ "additionalProperties": false,
201
+ "required": [
202
+ "executablePlugins",
203
+ "customInspectors",
204
+ "externalMediaImport",
205
+ "clipboardMediaUpload",
206
+ "collaboration",
207
+ "offlineRecovery"
208
+ ],
209
+ "properties": {
210
+ "executablePlugins": { "type": "boolean" },
211
+ "customInspectors": { "type": "boolean" },
212
+ "externalMediaImport": { "type": "boolean" },
213
+ "clipboardMediaUpload": { "type": "boolean" },
214
+ "collaboration": { "type": "boolean" },
215
+ "offlineRecovery": { "type": "boolean" }
216
+ }
217
+ },
218
+ "preview": {
219
+ "type": "object",
220
+ "additionalProperties": false,
221
+ "required": ["enabled", "sameOriginRequired", "allowApproximateRenderer"],
222
+ "properties": {
223
+ "enabled": { "type": "boolean" },
224
+ "sameOriginRequired": { "type": "boolean" },
225
+ "allowApproximateRenderer": { "type": "boolean" },
226
+ "initialViewport": { "$ref": "common.schema.json#/$defs/localName" }
227
+ }
228
+ },
229
+ "extensions": { "$ref": "common.schema.json#/$defs/extensions" }
230
+ },
231
+ "allOf": [
232
+ {
233
+ "if": {
234
+ "properties": { "composite": { "const": "hybrid" } },
235
+ "required": ["composite"]
236
+ },
237
+ "then": {
238
+ "properties": {
239
+ "mode": { "enum": ["blueprint", "content"] }
240
+ }
241
+ }
242
+ }
243
+ ]
244
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.kumwe.org/studio/v1/studio-drawing.schema.json",
4
+ "title": "Studio canonical drawing",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["width", "height", "alt", "strokes"],
8
+ "properties": {
9
+ "width": { "type": "integer", "minimum": 1, "maximum": 4096 },
10
+ "height": { "type": "integer", "minimum": 1, "maximum": 4096 },
11
+ "alt": { "type": "string", "minLength": 1, "maxLength": 5000 },
12
+ "strokes": {
13
+ "type": "array",
14
+ "maxItems": 5000,
15
+ "items": {
16
+ "type": "object",
17
+ "additionalProperties": false,
18
+ "required": ["color", "width", "points"],
19
+ "properties": {
20
+ "color": {
21
+ "type": "string",
22
+ "pattern": "^(?:#[0-9A-Fa-f]{6}|[a-z][a-z0-9-]{0,62}/[a-z][a-z0-9-]{0,62})$",
23
+ "maxLength": 127
24
+ },
25
+ "width": { "type": "number", "minimum": 0.25, "maximum": 64 },
26
+ "points": {
27
+ "type": "array",
28
+ "minItems": 1,
29
+ "maxItems": 10000,
30
+ "items": {
31
+ "type": "object",
32
+ "additionalProperties": false,
33
+ "required": ["x", "y"],
34
+ "properties": {
35
+ "x": { "type": "number", "minimum": 0, "maximum": 4096 },
36
+ "y": { "type": "number", "minimum": 0, "maximum": 4096 }
37
+ }
38
+ }
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.kumwe.org/studio/v1/studio-money.schema.json",
4
+ "title": "Studio canonical money",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["amount", "currency"],
8
+ "properties": {
9
+ "amount": {
10
+ "type": "string",
11
+ "pattern": "^-?(?:0|[1-9][0-9]{0,17})(?:\\.[0-9]{1,6})?$",
12
+ "maxLength": 26
13
+ },
14
+ "currency": { "type": "string", "pattern": "^[A-Z]{3}$" }
15
+ }
16
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.kumwe.org/studio/v1/studio-presentation.schema.json",
4
+ "title": "Studio presentation intent",
5
+ "type": "object",
6
+ "maxProperties": 12,
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "align": { "enum": ["center", "end", "start", "stretch"] },
10
+ "animation": { "enum": ["fade", "none", "parallax", "scale", "slide"] },
11
+ "height": { "enum": ["auto", "content", "full", "viewport"] },
12
+ "inverse": { "type": "boolean" },
13
+ "margin": { "enum": ["comfortable", "compact", "none", "spacious"] },
14
+ "marker": { "enum": ["check", "decimal", "disc", "none"] },
15
+ "padding": { "enum": ["comfortable", "compact", "none", "spacious"] },
16
+ "position": { "enum": ["flow", "relative", "sticky"] },
17
+ "print": { "enum": ["hide", "only", "show"] },
18
+ "scrolling": { "enum": ["auto", "clip", "snap", "visible"] },
19
+ "visibility": {
20
+ "type": "object",
21
+ "maxProperties": 3,
22
+ "additionalProperties": false,
23
+ "properties": {
24
+ "compact": { "enum": ["hidden", "visible"] },
25
+ "expanded": { "enum": ["hidden", "visible"] },
26
+ "medium": { "enum": ["hidden", "visible"] }
27
+ }
28
+ },
29
+ "width": { "enum": ["auto", "content", "full"] }
30
+ }
31
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.kumwe.org/studio/v1/studio-release.schema.json",
4
+ "title": "Studio coordinated release record",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "contractVersion",
9
+ "kind",
10
+ "release",
11
+ "packages",
12
+ "protocolVersion",
13
+ "corpusManifestDigest",
14
+ "claimedProfiles"
15
+ ],
16
+ "properties": {
17
+ "contractVersion": {
18
+ "$ref": "common.schema.json#/$defs/contractVersion"
19
+ },
20
+ "kind": {
21
+ "const": "studio-release"
22
+ },
23
+ "release": {
24
+ "$ref": "common.schema.json#/$defs/semanticVersion"
25
+ },
26
+ "packages": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "required": [
30
+ "@kumwe/studio-core",
31
+ "@kumwe/studio-media",
32
+ "@kumwe/studio-preview",
33
+ "@kumwe/studio-protocol",
34
+ "@kumwe/studio-renderer-web",
35
+ "@kumwe/studio-rich-text",
36
+ "@kumwe/studio",
37
+ "@kumwe/studio-testkit"
38
+ ],
39
+ "properties": {
40
+ "@kumwe/studio-core": {
41
+ "$ref": "common.schema.json#/$defs/semanticVersion"
42
+ },
43
+ "@kumwe/studio-media": {
44
+ "$ref": "common.schema.json#/$defs/semanticVersion"
45
+ },
46
+ "@kumwe/studio-preview": {
47
+ "$ref": "common.schema.json#/$defs/semanticVersion"
48
+ },
49
+ "@kumwe/studio-protocol": {
50
+ "$ref": "common.schema.json#/$defs/semanticVersion"
51
+ },
52
+ "@kumwe/studio-renderer-web": {
53
+ "$ref": "common.schema.json#/$defs/semanticVersion"
54
+ },
55
+ "@kumwe/studio-rich-text": {
56
+ "$ref": "common.schema.json#/$defs/semanticVersion"
57
+ },
58
+ "@kumwe/studio": {
59
+ "$ref": "common.schema.json#/$defs/semanticVersion"
60
+ },
61
+ "@kumwe/studio-testkit": {
62
+ "$ref": "common.schema.json#/$defs/semanticVersion"
63
+ }
64
+ }
65
+ },
66
+ "protocolVersion": {
67
+ "$ref": "common.schema.json#/$defs/semanticVersion"
68
+ },
69
+ "corpusManifestDigest": {
70
+ "$ref": "common.schema.json#/$defs/integrity"
71
+ },
72
+ "claimedProfiles": {
73
+ "type": "array",
74
+ "maxItems": 32,
75
+ "uniqueItems": true,
76
+ "items": {
77
+ "$ref": "common.schema.json#/$defs/qualifiedName"
78
+ }
79
+ }
80
+ }
81
+ }