@kumwe/studio-protocol 0.1.0-alpha.6 → 0.1.0-beta.2

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 (56) hide show
  1. package/README.md +67 -7
  2. package/THIRD_PARTY_NOTICES.md +9 -0
  3. package/dist/generated/schema-models.d.ts +2750 -0
  4. package/dist/generated/schema-models.d.ts.map +1 -0
  5. package/dist/generated/schema-models.js +1 -0
  6. package/dist/guards.d.ts.map +1 -1
  7. package/dist/guards.js +1 -374
  8. package/dist/host-failure.d.ts +16 -0
  9. package/dist/host-failure.d.ts.map +1 -0
  10. package/dist/host-failure.js +1 -0
  11. package/dist/index.d.ts +6 -2
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -4
  14. package/dist/release.d.ts +8 -0
  15. package/dist/release.d.ts.map +1 -0
  16. package/dist/release.js +1 -0
  17. package/dist/schemas.d.ts +22 -0
  18. package/dist/schemas.d.ts.map +1 -1
  19. package/dist/schemas.js +1 -102
  20. package/dist/types.d.ts +435 -2
  21. package/dist/types.d.ts.map +1 -1
  22. package/dist/types.js +1 -3
  23. package/package.json +7 -3
  24. package/schemas/authoring-http-vector.schema.json +195 -0
  25. package/schemas/authoring-http.schema.json +505 -0
  26. package/schemas/authoring-message-catalog.schema.json +45 -0
  27. package/schemas/authoring-save.schema.json +188 -0
  28. package/schemas/authoring-session.schema.json +151 -0
  29. package/schemas/authoring-target.schema.json +160 -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 +10 -1
  33. package/schemas/common.schema.json +45 -0
  34. package/schemas/host-error.schema.json +22 -1
  35. package/schemas/host-operations.schema.json +16 -0
  36. package/schemas/host-vector.schema.json +2 -0
  37. package/schemas/manifest.json +103 -9
  38. package/schemas/plugin-manifest.schema.json +1 -0
  39. package/schemas/renderer-web-vector.schema.json +273 -0
  40. package/schemas/reusable-content-type.schema.json +99 -0
  41. package/schemas/rich-text-projection.schema.json +12 -3
  42. package/schemas/rich-text.schema.json +156 -7
  43. package/schemas/studio-browser-assets.schema.json +376 -0
  44. package/schemas/studio-chart.schema.json +35 -0
  45. package/schemas/studio-config.schema.json +1 -33
  46. package/schemas/studio-deployment.schema.json +347 -0
  47. package/schemas/studio-drawing.schema.json +44 -0
  48. package/schemas/studio-money.schema.json +16 -0
  49. package/schemas/studio-presentation.schema.json +31 -0
  50. package/schemas/studio-release.schema.json +125 -0
  51. package/schemas/studio-table.schema.json +27 -0
  52. package/studio-release.json +35 -0
  53. package/dist/guards.js.map +0 -1
  54. package/dist/index.js.map +0 -1
  55. package/dist/schemas.js.map +0 -1
  56. package/dist/types.js.map +0 -1
@@ -1,10 +1,54 @@
1
1
  {
2
2
  "contractVersion": "0.1-draft",
3
3
  "epoch": "https://schemas.kumwe.org/studio/v1/",
4
+ "generator": {
5
+ "name": "@kumwe/studio/schema-manifest",
6
+ "version": "1.0.0"
7
+ },
4
8
  "kind": "schema-manifest",
5
9
  "schemas": [
6
10
  {
7
- "digest": "sha256-sx4nxAo1fq7Mjp2J3gfsIWRq9vD6nkDDrc1PtWLzfNE=",
11
+ "digest": "sha256-nzk5hko590N58UQlQ04bR31Jk2pw+sDwXLJXu2re174=",
12
+ "file": "authoring-http-vector.schema.json",
13
+ "id": "https://schemas.kumwe.org/studio/v1/authoring-http-vector.schema.json"
14
+ },
15
+ {
16
+ "digest": "sha256-1G8TtRsEvzqO9ixuoaMRAOBJZ2FdSM82xLA6zziA5Rk=",
17
+ "file": "authoring-http.schema.json",
18
+ "id": "https://schemas.kumwe.org/studio/v1/authoring-http.schema.json"
19
+ },
20
+ {
21
+ "digest": "sha256-WvSNMOQ3OZWs7ZKBCCRRwLtw5byZBtn6Rwvxz74vfAY=",
22
+ "file": "authoring-message-catalog.schema.json",
23
+ "id": "https://schemas.kumwe.org/studio/v1/authoring-message-catalog.schema.json"
24
+ },
25
+ {
26
+ "digest": "sha256-/rKcDdqp9AomUUzMlcpUbEVUTTydH9rduu5BumhfN9s=",
27
+ "file": "authoring-save.schema.json",
28
+ "id": "https://schemas.kumwe.org/studio/v1/authoring-save.schema.json"
29
+ },
30
+ {
31
+ "digest": "sha256-YOuMdnT6L/BkfGv9D9gqQjXP1yvriLufPLVKWeKmQh0=",
32
+ "file": "authoring-session.schema.json",
33
+ "id": "https://schemas.kumwe.org/studio/v1/authoring-session.schema.json"
34
+ },
35
+ {
36
+ "digest": "sha256-N3sgQ/9iEAOvKwpkoRPbTeJF/KwK1kLWheMKuGRU+PY=",
37
+ "file": "authoring-target.schema.json",
38
+ "id": "https://schemas.kumwe.org/studio/v1/authoring-target.schema.json"
39
+ },
40
+ {
41
+ "digest": "sha256-hZBNrpwHkLuUu/mPeU2UWtuOXfvZgrd8MO7vB9fJWog=",
42
+ "file": "authoring-web-vector.schema.json",
43
+ "id": "https://schemas.kumwe.org/studio/v1/authoring-web-vector.schema.json"
44
+ },
45
+ {
46
+ "digest": "sha256-GCk2z8XalwUUKM6R146c7WeCj3CY00kTMRKtPjaeehs=",
47
+ "file": "binding-projection-vector.schema.json",
48
+ "id": "https://schemas.kumwe.org/studio/v1/binding-projection-vector.schema.json"
49
+ },
50
+ {
51
+ "digest": "sha256-S3sx0m9PQs2vMFNvYIapBXc8W184cEng5MFF54C6RwQ=",
8
52
  "file": "block-definition.schema.json",
9
53
  "id": "https://schemas.kumwe.org/studio/v1/block-definition.schema.json"
10
54
  },
@@ -29,7 +73,7 @@
29
73
  "id": "https://schemas.kumwe.org/studio/v1/command.schema.json"
30
74
  },
31
75
  {
32
- "digest": "sha256-htSwJXFIhBnC96NxNxKgr+h2Fbo/qg8/ydtwguXEesA=",
76
+ "digest": "sha256-O2nKQ4qeVaHzqM6pseB6R1NXflQyPd2TWzucR5Lf/Ss=",
33
77
  "file": "common.schema.json",
34
78
  "id": "https://schemas.kumwe.org/studio/v1/common.schema.json"
35
79
  },
@@ -64,12 +108,12 @@
64
108
  "id": "https://schemas.kumwe.org/studio/v1/host-capabilities.schema.json"
65
109
  },
66
110
  {
67
- "digest": "sha256-6FWXIBdUaiuxpwLJUWnHxnRdcYmR6Ni6WWFCEQFekGw=",
111
+ "digest": "sha256-7tYC8PpuMQd3DHt4zrB3A+w5bZVMOman4gYvfugXdc8=",
68
112
  "file": "host-error.schema.json",
69
113
  "id": "https://schemas.kumwe.org/studio/v1/host-error.schema.json"
70
114
  },
71
115
  {
72
- "digest": "sha256-dKcbTVV2gn4IWAAH1RMpK5Ve12V+RswsDuhlrC1Ohm4=",
116
+ "digest": "sha256-Sd/PcwJSh/qPuxVz7L1durLmavdALdCbya/BMMxzZvs=",
73
117
  "file": "host-operations.schema.json",
74
118
  "id": "https://schemas.kumwe.org/studio/v1/host-operations.schema.json"
75
119
  },
@@ -89,7 +133,7 @@
89
133
  "id": "https://schemas.kumwe.org/studio/v1/host-sequence-vector.schema.json"
90
134
  },
91
135
  {
92
- "digest": "sha256-KETVqPMNQCSN8faoNW7fHuSWc6rT/Jkp4+Lh31gQuQM=",
136
+ "digest": "sha256-v2LFWwqpa0hS9XnYaVP9xC7Ohyw+Dl7ZG4e038+LqtI=",
93
137
  "file": "host-vector.schema.json",
94
138
  "id": "https://schemas.kumwe.org/studio/v1/host-vector.schema.json"
95
139
  },
@@ -134,7 +178,7 @@
134
178
  "id": "https://schemas.kumwe.org/studio/v1/pattern.schema.json"
135
179
  },
136
180
  {
137
- "digest": "sha256-WWBFJmWz4p0F1PhOwup1rgBJuAkelWZz83SJX7mshGE=",
181
+ "digest": "sha256-UyyZAvE8JJcZqrKucPPK4oy2HPELR3q+zAl3pWPkWOU=",
138
182
  "file": "plugin-manifest.schema.json",
139
183
  "id": "https://schemas.kumwe.org/studio/v1/plugin-manifest.schema.json"
140
184
  },
@@ -154,12 +198,22 @@
154
198
  "id": "https://schemas.kumwe.org/studio/v1/provenance.schema.json"
155
199
  },
156
200
  {
157
- "digest": "sha256-PKyCGI95WZ6Uojq9u5HvS2wwWU97+V+nmsY4l/Vc040=",
201
+ "digest": "sha256-cu3tmXzzoKCru9GNHj7QiUbprOf+zrcuiUhQZ3iTX1M=",
202
+ "file": "renderer-web-vector.schema.json",
203
+ "id": "https://schemas.kumwe.org/studio/v1/renderer-web-vector.schema.json"
204
+ },
205
+ {
206
+ "digest": "sha256-/DKHbScEb8525pjXQIhQipCSnS90y21f+2L8JMnRqJc=",
207
+ "file": "reusable-content-type.schema.json",
208
+ "id": "https://schemas.kumwe.org/studio/v1/reusable-content-type.schema.json"
209
+ },
210
+ {
211
+ "digest": "sha256-74OcoS9iGzRnDOjo/opHhlXZdxMLcCUkw0Ol4ipzkws=",
158
212
  "file": "rich-text-projection.schema.json",
159
213
  "id": "https://schemas.kumwe.org/studio/v1/rich-text-projection.schema.json"
160
214
  },
161
215
  {
162
- "digest": "sha256-PgFfnylfsJzq7B0wQq1gAxYA0r6gMx+xiKeT3NiDVqc=",
216
+ "digest": "sha256-r+wYEvy3tvMdQhmU0272K1cklAiYcEiD7nICWDdFFPs=",
163
217
  "file": "rich-text.schema.json",
164
218
  "id": "https://schemas.kumwe.org/studio/v1/rich-text.schema.json"
165
219
  },
@@ -174,10 +228,50 @@
174
228
  "id": "https://schemas.kumwe.org/studio/v1/schema-profile.schema.json"
175
229
  },
176
230
  {
177
- "digest": "sha256-FC0lGnAqTIdHLvlwbGyYGdXEK5mwtyhdyrCwt7WzVhY=",
231
+ "digest": "sha256-JyV/s49f+XgMI+zBVAmx9UgCXwK1qpMBWR7flnu9NW4=",
232
+ "file": "studio-browser-assets.schema.json",
233
+ "id": "https://schemas.kumwe.org/studio/v1/studio-browser-assets.schema.json"
234
+ },
235
+ {
236
+ "digest": "sha256-3jvAa7VGd6F7uAOR82AcTOSMGXWvgaMVmGsG1UzSXiI=",
237
+ "file": "studio-chart.schema.json",
238
+ "id": "https://schemas.kumwe.org/studio/v1/studio-chart.schema.json"
239
+ },
240
+ {
241
+ "digest": "sha256-LK81tgJb05u/pwRymTrccKbZiQHD7QXMYv14myilfGs=",
178
242
  "file": "studio-config.schema.json",
179
243
  "id": "https://schemas.kumwe.org/studio/v1/studio-config.schema.json"
180
244
  },
245
+ {
246
+ "digest": "sha256-T37m573XBWGK0mV7UAN/r+juuJ1Q5/cVen2B6iwPzw4=",
247
+ "file": "studio-deployment.schema.json",
248
+ "id": "https://schemas.kumwe.org/studio/v1/studio-deployment.schema.json"
249
+ },
250
+ {
251
+ "digest": "sha256-SAP1i3VfZS51FRsqnN2frFxE/UmI9xEUsSREUp/cA+E=",
252
+ "file": "studio-drawing.schema.json",
253
+ "id": "https://schemas.kumwe.org/studio/v1/studio-drawing.schema.json"
254
+ },
255
+ {
256
+ "digest": "sha256-6jp6QkIqqUrNSVAQJHOlK8BCb8vdAZF5QRZmyRUqfgM=",
257
+ "file": "studio-money.schema.json",
258
+ "id": "https://schemas.kumwe.org/studio/v1/studio-money.schema.json"
259
+ },
260
+ {
261
+ "digest": "sha256-+dyYyHfQcUz4n5BUNMmGODJ6J7n2ysm9/+rWpSrbODA=",
262
+ "file": "studio-presentation.schema.json",
263
+ "id": "https://schemas.kumwe.org/studio/v1/studio-presentation.schema.json"
264
+ },
265
+ {
266
+ "digest": "sha256-mQ98exmrEHcyy26sSav8dQ65BCdswHDh2zGvTkdlfB8=",
267
+ "file": "studio-release.schema.json",
268
+ "id": "https://schemas.kumwe.org/studio/v1/studio-release.schema.json"
269
+ },
270
+ {
271
+ "digest": "sha256-txf6OXjSyFvOcoepU01qNY2WWlTyDA3iquMVXrFC2tQ=",
272
+ "file": "studio-table.schema.json",
273
+ "id": "https://schemas.kumwe.org/studio/v1/studio-table.schema.json"
274
+ },
181
275
  {
182
276
  "digest": "sha256-xzhCb8J2nx+K6kBMciFj1glB4Q6jT8+KUdbUBsNM4h8=",
183
277
  "file": "theme.schema.json",
@@ -52,6 +52,7 @@
52
52
  "properties": {
53
53
  "kind": {
54
54
  "enum": [
55
+ "authoring-target",
55
56
  "block",
56
57
  "command",
57
58
  "design-vocabulary",
@@ -0,0 +1,273 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.kumwe.org/studio/v1/renderer-web-vector.schema.json",
4
+ "title": "Studio renderer-web conformance vector",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["id", "coverage", "roots", "bindings", "media", "expect"],
8
+ "properties": {
9
+ "id": { "$ref": "common.schema.json#/$defs/stableId" },
10
+ "coverage": {
11
+ "type": "object",
12
+ "additionalProperties": false,
13
+ "required": ["blockTypes", "behaviors", "presentation", "security"],
14
+ "properties": {
15
+ "blockTypes": {
16
+ "type": "array",
17
+ "maxItems": 100,
18
+ "uniqueItems": true,
19
+ "items": { "$ref": "common.schema.json#/$defs/qualifiedName" }
20
+ },
21
+ "behaviors": {
22
+ "type": "array",
23
+ "maxItems": 50,
24
+ "uniqueItems": true,
25
+ "items": {
26
+ "enum": [
27
+ "accordion-native",
28
+ "countdown",
29
+ "dialog",
30
+ "lightbox",
31
+ "navigation-disclosure",
32
+ "notice-dismiss",
33
+ "popover",
34
+ "slideshow",
35
+ "tabs"
36
+ ]
37
+ }
38
+ },
39
+ "presentation": {
40
+ "type": "array",
41
+ "maxItems": 50,
42
+ "uniqueItems": true,
43
+ "items": {
44
+ "enum": [
45
+ "alignment",
46
+ "inverse",
47
+ "markers",
48
+ "motion",
49
+ "position",
50
+ "print",
51
+ "responsive-visibility",
52
+ "scrolling",
53
+ "sizing",
54
+ "spacing"
55
+ ]
56
+ }
57
+ },
58
+ "security": {
59
+ "type": "array",
60
+ "maxItems": 50,
61
+ "uniqueItems": true,
62
+ "items": {
63
+ "enum": [
64
+ "active-media-deny",
65
+ "blob-default-deny",
66
+ "escaped-text",
67
+ "safe-url-deny",
68
+ "typed-data-fallback"
69
+ ]
70
+ }
71
+ }
72
+ }
73
+ },
74
+ "context": {
75
+ "type": "object",
76
+ "additionalProperties": false,
77
+ "properties": {
78
+ "allowBlobMedia": { "type": "boolean" },
79
+ "scopedStyles": {
80
+ "description": "Trusted structured host style input keyed by the exact Blueprint node ID.",
81
+ "type": "object",
82
+ "maxProperties": 100,
83
+ "propertyNames": { "$ref": "common.schema.json#/$defs/stableId" },
84
+ "additionalProperties": {
85
+ "type": "object",
86
+ "additionalProperties": false,
87
+ "required": ["rules"],
88
+ "properties": {
89
+ "rules": {
90
+ "type": "array",
91
+ "maxItems": 100,
92
+ "items": {
93
+ "type": "object",
94
+ "additionalProperties": false,
95
+ "required": ["target", "declarations"],
96
+ "properties": {
97
+ "target": {
98
+ "enum": ["action", "content", "heading", "media", "self"]
99
+ },
100
+ "declarations": {
101
+ "type": "object",
102
+ "maxProperties": 50,
103
+ "propertyNames": {
104
+ "enum": [
105
+ "background-color",
106
+ "border-color",
107
+ "border-radius",
108
+ "border-style",
109
+ "border-width",
110
+ "color",
111
+ "font-family",
112
+ "font-size",
113
+ "font-style",
114
+ "font-weight",
115
+ "gap",
116
+ "letter-spacing",
117
+ "line-height",
118
+ "margin-block",
119
+ "margin-inline",
120
+ "max-inline-size",
121
+ "min-block-size",
122
+ "opacity",
123
+ "padding-block",
124
+ "padding-inline",
125
+ "text-align",
126
+ "text-decoration",
127
+ "text-transform"
128
+ ]
129
+ },
130
+ "additionalProperties": {
131
+ "type": "string",
132
+ "maxLength": 256,
133
+ "pattern": "^(?:#[0-9A-Fa-f]{3,8}|-?[0-9]+(?:\\.[0-9]+)?(?:ch|em|rem|%|px)?|[a-z][a-z0-9 -]{0,126}|var\\(--studio-[a-z0-9-]{1,100}\\))$"
134
+ }
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+ }
142
+ }
143
+ },
144
+ "roots": {
145
+ "type": "array",
146
+ "minItems": 1,
147
+ "maxItems": 100,
148
+ "items": { "$ref": "blueprint.schema.json#/$defs/node" }
149
+ },
150
+ "bindings": {
151
+ "type": "array",
152
+ "maxItems": 1000,
153
+ "items": {
154
+ "type": "object",
155
+ "additionalProperties": false,
156
+ "required": ["nodeId", "port", "value"],
157
+ "properties": {
158
+ "nodeId": { "$ref": "common.schema.json#/$defs/stableId" },
159
+ "port": { "$ref": "common.schema.json#/$defs/localName" },
160
+ "value": { "$ref": "common.schema.json#/$defs/jsonValue" }
161
+ }
162
+ }
163
+ },
164
+ "media": {
165
+ "type": "array",
166
+ "maxItems": 1000,
167
+ "items": {
168
+ "type": "object",
169
+ "additionalProperties": false,
170
+ "required": ["assetId", "src", "altText"],
171
+ "properties": {
172
+ "assetId": { "$ref": "common.schema.json#/$defs/stableId" },
173
+ "src": { "type": "string", "minLength": 1, "maxLength": 2048 },
174
+ "altText": { "type": "string", "maxLength": 5000 },
175
+ "mediaType": { "type": "string", "maxLength": 255 },
176
+ "caption": { "type": "string", "maxLength": 20000 },
177
+ "width": { "type": "integer", "minimum": 1, "maximum": 100000 },
178
+ "height": { "type": "integer", "minimum": 1, "maximum": 100000 }
179
+ }
180
+ }
181
+ },
182
+ "expect": {
183
+ "type": "object",
184
+ "additionalProperties": false,
185
+ "required": [
186
+ "htmlContains",
187
+ "htmlExcludes",
188
+ "htmlBytes",
189
+ "htmlSha256",
190
+ "cssBytes",
191
+ "cssContains",
192
+ "cssSha256",
193
+ "publicStyleAsset",
194
+ "enhancements",
195
+ "activationMarkers"
196
+ ],
197
+ "properties": {
198
+ "activationMarkers": {
199
+ "description": "The complete renderer-emitted data-attribute vocabulary a public enhancement runtime is allowed to discover in this vector.",
200
+ "type": "array",
201
+ "maxItems": 100,
202
+ "uniqueItems": true,
203
+ "items": {
204
+ "type": "string",
205
+ "minLength": 12,
206
+ "maxLength": 100,
207
+ "pattern": "^data-studio-[a-z0-9]+(?:-[a-z0-9]+)*$"
208
+ }
209
+ },
210
+ "htmlContains": {
211
+ "type": "array",
212
+ "maxItems": 100,
213
+ "items": { "type": "string", "maxLength": 10000 }
214
+ },
215
+ "htmlExcludes": {
216
+ "type": "array",
217
+ "maxItems": 100,
218
+ "items": { "type": "string", "maxLength": 10000 }
219
+ },
220
+ "htmlBytes": {
221
+ "description": "Exact UTF-8 byte length of the canonical renderer HTML, closing activation-marker topology as wire output.",
222
+ "type": "integer",
223
+ "minimum": 1,
224
+ "maximum": 1048576
225
+ },
226
+ "htmlSha256": {
227
+ "description": "Lowercase SHA-256 of the exact canonical renderer HTML bytes.",
228
+ "type": "string",
229
+ "pattern": "^[a-f0-9]{64}$"
230
+ },
231
+ "cssContains": {
232
+ "type": "array",
233
+ "maxItems": 100,
234
+ "items": { "type": "string", "maxLength": 10000 }
235
+ },
236
+ "cssBytes": {
237
+ "description": "Exact UTF-8 byte length of the canonical compact renderer stylesheet.",
238
+ "type": "integer",
239
+ "minimum": 1,
240
+ "maximum": 262144
241
+ },
242
+ "cssSha256": {
243
+ "description": "Lowercase SHA-256 of the exact canonical renderer stylesheet bytes.",
244
+ "type": "string",
245
+ "pattern": "^[a-f0-9]{64}$"
246
+ },
247
+ "publicStyleAsset": {
248
+ "$ref": "studio-browser-assets.schema.json#/$defs/publicStyleAsset"
249
+ },
250
+ "enhancements": {
251
+ "type": "array",
252
+ "maxItems": 100,
253
+ "items": {
254
+ "enum": [
255
+ "chart",
256
+ "countdown",
257
+ "diagram",
258
+ "dialog",
259
+ "lightbox",
260
+ "math",
261
+ "motion",
262
+ "navigation",
263
+ "notice",
264
+ "popover",
265
+ "slideshow",
266
+ "tabs"
267
+ ]
268
+ }
269
+ }
270
+ }
271
+ }
272
+ }
273
+ }
@@ -0,0 +1,99 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.kumwe.org/studio/v1/reusable-content-type.schema.json",
4
+ "title": "Studio host-owned reusable content type projection",
5
+ "description": "The host-facing definition that coordinates exact Model and Blueprint revisions. It is not a portable Studio artifact and never contains Entry values.",
6
+ "$ref": "#/$defs/definition",
7
+ "$defs": {
8
+ "reference": {
9
+ "type": "object",
10
+ "additionalProperties": false,
11
+ "required": ["id", "version", "revision"],
12
+ "properties": {
13
+ "id": { "$ref": "common.schema.json#/$defs/stableId" },
14
+ "version": { "$ref": "common.schema.json#/$defs/semanticVersion" },
15
+ "revision": { "$ref": "common.schema.json#/$defs/revision" }
16
+ }
17
+ },
18
+ "authoringPolicy": {
19
+ "type": "object",
20
+ "additionalProperties": false,
21
+ "required": ["modes", "itemComposition"],
22
+ "properties": {
23
+ "modes": {
24
+ "type": "array",
25
+ "minItems": 1,
26
+ "maxItems": 3,
27
+ "uniqueItems": true,
28
+ "items": { "enum": ["model", "blueprint", "content"] }
29
+ },
30
+ "itemComposition": { "enum": ["denied", "overrides"] }
31
+ }
32
+ },
33
+ "definition": {
34
+ "type": "object",
35
+ "additionalProperties": false,
36
+ "required": [
37
+ "contractVersion",
38
+ "kind",
39
+ "id",
40
+ "version",
41
+ "revision",
42
+ "label",
43
+ "status",
44
+ "model",
45
+ "blueprint",
46
+ "authoringPolicy"
47
+ ],
48
+ "properties": {
49
+ "contractVersion": { "$ref": "common.schema.json#/$defs/contractVersion" },
50
+ "kind": { "const": "reusable-content-type" },
51
+ "id": { "$ref": "common.schema.json#/$defs/stableId" },
52
+ "version": { "$ref": "common.schema.json#/$defs/semanticVersion" },
53
+ "revision": { "$ref": "common.schema.json#/$defs/revision" },
54
+ "label": { "$ref": "common.schema.json#/$defs/messageReference" },
55
+ "status": { "enum": ["draft", "published", "retired"] },
56
+ "model": { "$ref": "common.schema.json#/$defs/lockedArtifactReference" },
57
+ "blueprint": { "$ref": "common.schema.json#/$defs/lockedArtifactReference" },
58
+ "authoringPolicy": { "$ref": "#/$defs/authoringPolicy" },
59
+ "extensions": { "$ref": "common.schema.json#/$defs/extensions" }
60
+ }
61
+ },
62
+ "summary": {
63
+ "type": "object",
64
+ "additionalProperties": false,
65
+ "required": ["reference", "label", "model", "blueprint"],
66
+ "properties": {
67
+ "reference": { "$ref": "#/$defs/reference" },
68
+ "label": { "$ref": "common.schema.json#/$defs/messageReference" },
69
+ "model": { "$ref": "common.schema.json#/$defs/lockedArtifactReference" },
70
+ "blueprint": { "$ref": "common.schema.json#/$defs/lockedArtifactReference" }
71
+ }
72
+ },
73
+ "listQuery": {
74
+ "type": "object",
75
+ "additionalProperties": false,
76
+ "required": ["targetId", "resourceContext", "limit"],
77
+ "properties": {
78
+ "targetId": { "$ref": "common.schema.json#/$defs/qualifiedName" },
79
+ "resourceContext": { "$ref": "common.schema.json#/$defs/resourceContext" },
80
+ "cursor": { "type": "string", "minLength": 1, "maxLength": 500 },
81
+ "limit": { "type": "integer", "minimum": 1, "maximum": 100 },
82
+ "search": { "type": "string", "maxLength": 500 }
83
+ }
84
+ },
85
+ "listPage": {
86
+ "type": "object",
87
+ "additionalProperties": false,
88
+ "required": ["items"],
89
+ "properties": {
90
+ "items": {
91
+ "type": "array",
92
+ "maxItems": 100,
93
+ "items": { "$ref": "#/$defs/summary" }
94
+ },
95
+ "nextCursor": { "type": "string", "minLength": 1, "maxLength": 500 }
96
+ }
97
+ }
98
+ }
99
+ }
@@ -24,7 +24,16 @@
24
24
  "additionalProperties": false,
25
25
  "required": ["type", "text", "spans", "embeds"],
26
26
  "properties": {
27
- "type": { "enum": ["heading", "horizontalRule", "paragraph"] },
27
+ "type": {
28
+ "enum": [
29
+ "checklistItem",
30
+ "codeBlock",
31
+ "heading",
32
+ "horizontalRule",
33
+ "paragraph",
34
+ "tableCell"
35
+ ]
36
+ },
28
37
  "text": {
29
38
  "type": "string",
30
39
  "maxLength": 250000
@@ -51,9 +60,9 @@
51
60
  "marks": {
52
61
  "type": "array",
53
62
  "minItems": 1,
54
- "maxItems": 4,
63
+ "maxItems": 5,
55
64
  "uniqueItems": true,
56
- "items": { "enum": ["bold", "code", "italic", "strike"] }
65
+ "items": { "enum": ["bold", "code", "highlight", "italic", "strike"] }
57
66
  }
58
67
  }
59
68
  },