@adobe/design-data-spec 4.8.0 → 4.9.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/conformance/README.md +32 -9
- package/conformance/invalid/SPEC-051/dataset.json +9 -3
- package/conformance/invalid/SPEC-052/dataset.json +14 -4
- package/conformance/invalid/SPEC-053/dataset.json +16 -4
- package/conformance/invalid/SPEC-054/dataset.json +18 -5
- package/conformance/invalid/SPEC-055/dataset.json +9 -3
- package/conformance/invalid/SPEC-057/dataset.json +5 -2
- package/conformance/invalid/SPEC-058/dataset.json +8 -3
- package/conformance/invalid/SPEC-059/dataset.json +28 -0
- package/conformance/invalid/SPEC-059/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-060/dataset.json +44 -0
- package/conformance/invalid/SPEC-060/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-061/dataset.json +63 -0
- package/conformance/invalid/SPEC-061/expected-errors.json +15 -0
- package/conformance/invalid/SPEC-062/dataset.json +50 -0
- package/conformance/invalid/SPEC-062/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-063/dataset.json +57 -0
- package/conformance/invalid/SPEC-063/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-064/dataset.json +53 -0
- package/conformance/invalid/SPEC-064/expected-errors.json +15 -0
- package/conformance/invalid/SPEC-065/dataset.json +78 -0
- package/conformance/invalid/SPEC-065/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-066/dataset.json +37 -0
- package/conformance/invalid/SPEC-066/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-067/dataset.json +60 -0
- package/conformance/invalid/SPEC-067/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-068/dataset.json +37 -0
- package/conformance/invalid/SPEC-068/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-069/dataset.json +63 -0
- package/conformance/invalid/SPEC-069/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-070/dataset.json +71 -0
- package/conformance/invalid/SPEC-070/expected-errors.json +15 -0
- package/conformance/invalid/SPEC-071/dataset.json +77 -0
- package/conformance/invalid/SPEC-071/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-072/dataset.json +52 -0
- package/conformance/invalid/SPEC-072/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-073/dataset.json +59 -0
- package/conformance/invalid/SPEC-073/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-074/dataset.json +36 -0
- package/conformance/invalid/SPEC-074/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-075/dataset.json +53 -0
- package/conformance/invalid/SPEC-075/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-076/dataset.json +62 -0
- package/conformance/invalid/SPEC-076/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-076/manifest.json +6 -0
- package/conformance/invalid/SPEC-079/dataset.json +62 -0
- package/conformance/invalid/SPEC-079/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-079/manifest.json +58 -0
- package/conformance/invalid/SPEC-080/dataset.json +62 -0
- package/conformance/invalid/SPEC-080/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-080/manifest.json +32 -0
- package/conformance/invalid/SPEC-081/dataset.json +62 -0
- package/conformance/invalid/SPEC-081/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-081/manifest.json +7 -0
- package/conformance/invalid/SPEC-082/dataset.json +62 -0
- package/conformance/invalid/SPEC-082/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-082/manifest.json +14 -0
- package/conformance/invalid/SPEC-083/dataset.json +47 -0
- package/conformance/invalid/SPEC-083/expected-errors.json +10 -0
- package/conformance/invalid/SPEC-084/dataset.json +16 -0
- package/conformance/invalid/SPEC-084/expected-errors.json +10 -0
- package/conformance/valid/SPEC-025/dataset.json +1 -1
- package/conformance/valid/SPEC-049/dataset.json +1 -1
- package/conformance/valid/SPEC-051/dataset.json +40 -9
- package/conformance/valid/SPEC-064/dataset.json +64 -0
- package/conformance/valid/SPEC-064/expected-errors.json +4 -0
- package/conformance/valid/SPEC-065/dataset.json +89 -0
- package/conformance/valid/SPEC-065/expected-errors.json +4 -0
- package/conformance/valid/SPEC-079/dataset.json +62 -0
- package/conformance/valid/SPEC-079/manifest.json +58 -0
- package/package.json +1 -1
- package/rules/rules.yaml +373 -0
- package/schemas/anatomy-part.schema.json +11 -0
- package/schemas/component-changelog.schema.json +306 -0
- package/schemas/component-spec-sheet.schema.json +215 -0
- package/schemas/component-visual.schema.json +287 -0
- package/schemas/component.schema.json +80 -0
- package/schemas/manifest.schema.json +5 -0
- package/schemas/relationship.schema.json +8 -6
- package/spec/anatomy-format.md +97 -10
- package/spec/artifact-moves.md +157 -0
- package/spec/component-changelog.md +49 -0
- package/spec/component-format.md +4 -0
- package/spec/component-visuals.md +210 -0
- package/spec/index.md +5 -0
- package/spec/manifest.md +46 -29
- package/spec/option-constraints.md +87 -0
- package/spec/relationship-format.md +14 -11
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/component-changelog.schema.json",
|
|
4
|
+
"title": "Component changelog (draft)",
|
|
5
|
+
"description": "Per-component changelog generated by `design-data changelog` and committed as changelog/<component>.json. Releases are append-only. The component version is derived from the entries (see spec/component-changelog.md); it is never authored.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["specVersion", "component", "releases"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"$schema": {
|
|
11
|
+
"type": "string"
|
|
12
|
+
},
|
|
13
|
+
"specVersion": {
|
|
14
|
+
"type": "string"
|
|
15
|
+
},
|
|
16
|
+
"component": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "Component name, the `name` of its component file."
|
|
19
|
+
},
|
|
20
|
+
"baseline": {
|
|
21
|
+
"description": "Present when the component already existed before the first recorded release; its version is the starting 1.0.0.",
|
|
22
|
+
"$ref": "#/$defs/baseline"
|
|
23
|
+
},
|
|
24
|
+
"releases": {
|
|
25
|
+
"type": "array",
|
|
26
|
+
"description": "Oldest first. A release already recorded is never rewritten.",
|
|
27
|
+
"items": {
|
|
28
|
+
"$ref": "#/$defs/release"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"$defs": {
|
|
33
|
+
"baseline": {
|
|
34
|
+
"type": "object",
|
|
35
|
+
"required": ["release", "version", "commit"],
|
|
36
|
+
"additionalProperties": false,
|
|
37
|
+
"properties": {
|
|
38
|
+
"release": {
|
|
39
|
+
"type": "string"
|
|
40
|
+
},
|
|
41
|
+
"version": {
|
|
42
|
+
"$ref": "#/$defs/semver"
|
|
43
|
+
},
|
|
44
|
+
"commit": {
|
|
45
|
+
"type": "string"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"semver": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+$"
|
|
52
|
+
},
|
|
53
|
+
"release": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"required": ["release", "version", "date", "commit", "commits"],
|
|
56
|
+
"additionalProperties": false,
|
|
57
|
+
"properties": {
|
|
58
|
+
"release": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"description": "The package release the changes shipped in, e.g. a package version. `unreleased` holds changes not yet in a release; the next release takes them over."
|
|
61
|
+
},
|
|
62
|
+
"version": {
|
|
63
|
+
"$ref": "#/$defs/semver",
|
|
64
|
+
"description": "Component semver after this release. 1.0.0 at the component's first release."
|
|
65
|
+
},
|
|
66
|
+
"bump": {
|
|
67
|
+
"$ref": "#/$defs/bump",
|
|
68
|
+
"description": "The highest bump among the entries; absent for the first release."
|
|
69
|
+
},
|
|
70
|
+
"date": {
|
|
71
|
+
"type": "string"
|
|
72
|
+
},
|
|
73
|
+
"commit": {
|
|
74
|
+
"type": "string",
|
|
75
|
+
"description": "Dataset commit the release was taken at."
|
|
76
|
+
},
|
|
77
|
+
"commits": {
|
|
78
|
+
"type": "array",
|
|
79
|
+
"description": "The changes of each commit in the release, oldest first.",
|
|
80
|
+
"items": {
|
|
81
|
+
"$ref": "#/$defs/commitChanges"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"bump": {
|
|
87
|
+
"enum": ["patch", "minor", "major"],
|
|
88
|
+
"description": "Semver bump."
|
|
89
|
+
},
|
|
90
|
+
"class": {
|
|
91
|
+
"enum": ["visual", "api", "documentation"],
|
|
92
|
+
"description": "visual: how the component looks or behaves (values, bindings, recipes). api: options, option values, states, anatomy, relationships present or removed, lifecycle. documentation: descriptions, document blocks, rationale. Metadata-class changes (legacy keys, ids, ordering, implementations, spec bookkeeping) are not entries; see commitChanges.metadata."
|
|
93
|
+
},
|
|
94
|
+
"change": {
|
|
95
|
+
"enum": [
|
|
96
|
+
"added",
|
|
97
|
+
"removed",
|
|
98
|
+
"updated",
|
|
99
|
+
"renamed",
|
|
100
|
+
"deprecated",
|
|
101
|
+
"reverted"
|
|
102
|
+
]
|
|
103
|
+
},
|
|
104
|
+
"source": {
|
|
105
|
+
"type": "object",
|
|
106
|
+
"required": ["type"],
|
|
107
|
+
"additionalProperties": false,
|
|
108
|
+
"description": "The PR number from the squash subject (#NNN), otherwise the commit sha and subject.",
|
|
109
|
+
"properties": {
|
|
110
|
+
"type": {
|
|
111
|
+
"enum": ["pr", "commit"]
|
|
112
|
+
},
|
|
113
|
+
"repo": {
|
|
114
|
+
"type": "string"
|
|
115
|
+
},
|
|
116
|
+
"number": {
|
|
117
|
+
"type": "integer"
|
|
118
|
+
},
|
|
119
|
+
"title": {
|
|
120
|
+
"type": "string"
|
|
121
|
+
},
|
|
122
|
+
"sha": {
|
|
123
|
+
"type": "string"
|
|
124
|
+
},
|
|
125
|
+
"subject": {
|
|
126
|
+
"type": "string"
|
|
127
|
+
},
|
|
128
|
+
"url": {
|
|
129
|
+
"type": "string"
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
"oneOf": [
|
|
133
|
+
{
|
|
134
|
+
"properties": {
|
|
135
|
+
"type": {
|
|
136
|
+
"const": "pr"
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"required": ["number"]
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"properties": {
|
|
143
|
+
"type": {
|
|
144
|
+
"const": "commit"
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
"required": ["sha"]
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
"field": {
|
|
152
|
+
"type": "object",
|
|
153
|
+
"required": ["path"],
|
|
154
|
+
"additionalProperties": false,
|
|
155
|
+
"properties": {
|
|
156
|
+
"path": {
|
|
157
|
+
"type": "string",
|
|
158
|
+
"description": "Dot path of the changed field."
|
|
159
|
+
},
|
|
160
|
+
"before": {},
|
|
161
|
+
"after": {}
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
"entry": {
|
|
165
|
+
"type": "object",
|
|
166
|
+
"additionalProperties": false,
|
|
167
|
+
"required": [
|
|
168
|
+
"id",
|
|
169
|
+
"kind",
|
|
170
|
+
"change",
|
|
171
|
+
"class",
|
|
172
|
+
"bump",
|
|
173
|
+
"indirect",
|
|
174
|
+
"contexts",
|
|
175
|
+
"record",
|
|
176
|
+
"name",
|
|
177
|
+
"fields"
|
|
178
|
+
],
|
|
179
|
+
"properties": {
|
|
180
|
+
"id": {
|
|
181
|
+
"type": "string"
|
|
182
|
+
},
|
|
183
|
+
"kind": {
|
|
184
|
+
"enum": [
|
|
185
|
+
"relationship",
|
|
186
|
+
"token",
|
|
187
|
+
"option",
|
|
188
|
+
"option-value",
|
|
189
|
+
"anatomy-part",
|
|
190
|
+
"state",
|
|
191
|
+
"slot",
|
|
192
|
+
"document-block",
|
|
193
|
+
"implementation",
|
|
194
|
+
"lifecycle",
|
|
195
|
+
"component",
|
|
196
|
+
"visual-recipe",
|
|
197
|
+
"visual-part",
|
|
198
|
+
"visual"
|
|
199
|
+
],
|
|
200
|
+
"description": "A token entry is a Values updated change; a relationship entry is a Bindings changed change."
|
|
201
|
+
},
|
|
202
|
+
"change": {
|
|
203
|
+
"$ref": "#/$defs/change"
|
|
204
|
+
},
|
|
205
|
+
"class": {
|
|
206
|
+
"$ref": "#/$defs/class"
|
|
207
|
+
},
|
|
208
|
+
"bump": {
|
|
209
|
+
"$ref": "#/$defs/bump",
|
|
210
|
+
"description": "Semver bump this entry implies. major: an option, option value, state, anatomy part, slot or relationship removed; an option, state, anatomy part or slot renamed; an option type changed; the component deprecated or removed. minor: anything added, including a recipe. patch: everything else."
|
|
211
|
+
},
|
|
212
|
+
"indirect": {
|
|
213
|
+
"type": "boolean",
|
|
214
|
+
"description": "True when a bound token's own record is unchanged but its alias-resolved value changed."
|
|
215
|
+
},
|
|
216
|
+
"contexts": {
|
|
217
|
+
"type": "array",
|
|
218
|
+
"items": {
|
|
219
|
+
"type": "string"
|
|
220
|
+
},
|
|
221
|
+
"description": "Relationship contexts (spec-sheet block titles) the change appears under."
|
|
222
|
+
},
|
|
223
|
+
"scope": {
|
|
224
|
+
"type": "object",
|
|
225
|
+
"properties": {
|
|
226
|
+
"property": {
|
|
227
|
+
"type": ["string", "null"]
|
|
228
|
+
},
|
|
229
|
+
"options": {
|
|
230
|
+
"type": ["object", "null"]
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
"record": {
|
|
235
|
+
"type": "string",
|
|
236
|
+
"description": "Record uuid, or a component-relative path such as options/size/values/xl."
|
|
237
|
+
},
|
|
238
|
+
"name": {
|
|
239
|
+
"type": "string"
|
|
240
|
+
},
|
|
241
|
+
"fields": {
|
|
242
|
+
"type": "array",
|
|
243
|
+
"items": {
|
|
244
|
+
"$ref": "#/$defs/field"
|
|
245
|
+
}
|
|
246
|
+
},
|
|
247
|
+
"before": {
|
|
248
|
+
"description": "Added and removed records: the bound token or value for relationships and tokens, the record otherwise."
|
|
249
|
+
},
|
|
250
|
+
"after": {},
|
|
251
|
+
"via": {
|
|
252
|
+
"type": "array",
|
|
253
|
+
"items": {
|
|
254
|
+
"type": "string"
|
|
255
|
+
},
|
|
256
|
+
"description": "Indirect entries: uuids of the aliased tokens whose own record changed."
|
|
257
|
+
},
|
|
258
|
+
"rationale": {
|
|
259
|
+
"type": "string",
|
|
260
|
+
"description": "The record's own rationale, read where it exists. Not required."
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
"commitChanges": {
|
|
265
|
+
"type": "object",
|
|
266
|
+
"required": ["commit", "date", "source", "entries"],
|
|
267
|
+
"additionalProperties": false,
|
|
268
|
+
"properties": {
|
|
269
|
+
"commit": {
|
|
270
|
+
"type": "string"
|
|
271
|
+
},
|
|
272
|
+
"date": {
|
|
273
|
+
"type": "string"
|
|
274
|
+
},
|
|
275
|
+
"source": {
|
|
276
|
+
"$ref": "#/$defs/source"
|
|
277
|
+
},
|
|
278
|
+
"entries": {
|
|
279
|
+
"type": "array",
|
|
280
|
+
"items": {
|
|
281
|
+
"$ref": "#/$defs/entry"
|
|
282
|
+
},
|
|
283
|
+
"description": "Listed changes (visual, api, documentation). Each is written on one line in the committed file."
|
|
284
|
+
},
|
|
285
|
+
"metadata": {
|
|
286
|
+
"type": "object",
|
|
287
|
+
"required": ["count", "fields"],
|
|
288
|
+
"additionalProperties": false,
|
|
289
|
+
"description": "Metadata-class changes of the commit, counted rather than listed. fields are the changed field paths; a record added or removed is named `<kind> <change>`, e.g. `implementation added`.",
|
|
290
|
+
"properties": {
|
|
291
|
+
"count": {
|
|
292
|
+
"type": "integer",
|
|
293
|
+
"minimum": 1
|
|
294
|
+
},
|
|
295
|
+
"fields": {
|
|
296
|
+
"type": "array",
|
|
297
|
+
"items": {
|
|
298
|
+
"type": "string"
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/component-spec-sheet.schema.json",
|
|
4
|
+
"title": "Component spec sheet (draft)",
|
|
5
|
+
"description": "Draft model of a per-component spec sheet generated by `design-data spec-sheet`: pages of blocks, one block per relationship context. Renderers draw each block's scene and add no layout of their own.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["specVersion", "component", "size", "block", "pages"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"$schema": { "type": "string" },
|
|
10
|
+
"specVersion": { "type": "string" },
|
|
11
|
+
"component": { "type": "string" },
|
|
12
|
+
"displayName": { "type": "string" },
|
|
13
|
+
"datasetRevision": {
|
|
14
|
+
"description": "Dataset revision (git commit) the sheet and its changelog were generated from.",
|
|
15
|
+
"type": ["string", "null"]
|
|
16
|
+
},
|
|
17
|
+
"size": {
|
|
18
|
+
"description": "Size key every block visual renders at.",
|
|
19
|
+
"type": "string"
|
|
20
|
+
},
|
|
21
|
+
"block": {
|
|
22
|
+
"description": "Block visual size in px.",
|
|
23
|
+
"type": "object",
|
|
24
|
+
"required": ["width", "height"],
|
|
25
|
+
"properties": {
|
|
26
|
+
"width": { "type": "number" },
|
|
27
|
+
"height": { "type": "number" }
|
|
28
|
+
},
|
|
29
|
+
"additionalProperties": false
|
|
30
|
+
},
|
|
31
|
+
"pages": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"items": { "$ref": "#/$defs/page" }
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"additionalProperties": false,
|
|
37
|
+
"$defs": {
|
|
38
|
+
"page": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"required": ["title", "blocks"],
|
|
41
|
+
"properties": {
|
|
42
|
+
"title": { "type": "string" },
|
|
43
|
+
"blocks": { "type": "array", "items": { "$ref": "#/$defs/block" } }
|
|
44
|
+
},
|
|
45
|
+
"additionalProperties": false
|
|
46
|
+
},
|
|
47
|
+
"block": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"required": [
|
|
50
|
+
"id",
|
|
51
|
+
"page",
|
|
52
|
+
"title",
|
|
53
|
+
"render",
|
|
54
|
+
"rows",
|
|
55
|
+
"notes",
|
|
56
|
+
"changes",
|
|
57
|
+
"badges"
|
|
58
|
+
],
|
|
59
|
+
"properties": {
|
|
60
|
+
"id": { "type": "string" },
|
|
61
|
+
"page": { "type": "string" },
|
|
62
|
+
"title": {
|
|
63
|
+
"description": "The relationship context string the block documents.",
|
|
64
|
+
"type": "string"
|
|
65
|
+
},
|
|
66
|
+
"render": { "$ref": "#/$defs/render" },
|
|
67
|
+
"rows": { "type": "array", "items": { "$ref": "#/$defs/row" } },
|
|
68
|
+
"notes": { "type": "array", "items": { "type": "string" } },
|
|
69
|
+
"changes": {
|
|
70
|
+
"description": "Ids of changelog entries whose relationship context equals the title.",
|
|
71
|
+
"type": "array",
|
|
72
|
+
"items": { "type": "string" }
|
|
73
|
+
},
|
|
74
|
+
"badges": {
|
|
75
|
+
"description": "Badges to show, for example \"Values updated\".",
|
|
76
|
+
"type": "array",
|
|
77
|
+
"items": { "type": "string" }
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"additionalProperties": false
|
|
81
|
+
},
|
|
82
|
+
"render": {
|
|
83
|
+
"type": "object",
|
|
84
|
+
"required": [
|
|
85
|
+
"view",
|
|
86
|
+
"request",
|
|
87
|
+
"scene",
|
|
88
|
+
"highlight",
|
|
89
|
+
"markers",
|
|
90
|
+
"measurements"
|
|
91
|
+
],
|
|
92
|
+
"properties": {
|
|
93
|
+
"view": {
|
|
94
|
+
"description": "Fit of the scene into the block visual: scene px to block px scale, and the offset of the scene's origin in the block.",
|
|
95
|
+
"type": "object",
|
|
96
|
+
"required": ["scale", "x", "y"],
|
|
97
|
+
"properties": {
|
|
98
|
+
"scale": { "type": "number" },
|
|
99
|
+
"x": { "type": "number" },
|
|
100
|
+
"y": { "type": "number" }
|
|
101
|
+
},
|
|
102
|
+
"additionalProperties": false
|
|
103
|
+
},
|
|
104
|
+
"request": {
|
|
105
|
+
"description": "The render request the scene was solved from.",
|
|
106
|
+
"type": "object",
|
|
107
|
+
"required": ["component", "size", "states", "options", "mode"],
|
|
108
|
+
"properties": {
|
|
109
|
+
"component": { "type": "string" },
|
|
110
|
+
"size": { "type": "string" },
|
|
111
|
+
"states": { "type": "array", "items": { "type": "string" } },
|
|
112
|
+
"options": { "type": "object" },
|
|
113
|
+
"mode": {
|
|
114
|
+
"type": "object",
|
|
115
|
+
"additionalProperties": { "type": "string" }
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"additionalProperties": false
|
|
119
|
+
},
|
|
120
|
+
"scene": {
|
|
121
|
+
"description": "The resolved scene graph (`design-data render --format scene`).",
|
|
122
|
+
"type": "object",
|
|
123
|
+
"required": ["component", "width", "height", "nodes"]
|
|
124
|
+
},
|
|
125
|
+
"highlight": {
|
|
126
|
+
"description": "Recipe part and prop pairs bound to the block's relationship context.",
|
|
127
|
+
"type": "array",
|
|
128
|
+
"items": {
|
|
129
|
+
"type": "object",
|
|
130
|
+
"required": ["part", "prop"],
|
|
131
|
+
"properties": {
|
|
132
|
+
"part": { "type": "string" },
|
|
133
|
+
"prop": { "type": "string" }
|
|
134
|
+
},
|
|
135
|
+
"additionalProperties": false
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"markers": {
|
|
139
|
+
"description": "Numbered markers 1..n, one per group of token rows that share a recipe property template. `part` is the recipe part the marker sits on, or null when no recipe binding fits.",
|
|
140
|
+
"type": "array",
|
|
141
|
+
"items": {
|
|
142
|
+
"type": "object",
|
|
143
|
+
"required": ["n", "part", "label"],
|
|
144
|
+
"properties": {
|
|
145
|
+
"n": { "type": "integer", "minimum": 1 },
|
|
146
|
+
"part": { "type": ["string", "null"] },
|
|
147
|
+
"label": { "type": "string" }
|
|
148
|
+
},
|
|
149
|
+
"additionalProperties": false
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
"measurements": {
|
|
153
|
+
"description": "Scene measurements the block shows: those whose relationship context is the block title. `index` points into scene.measurements and `label` is the relationship property.",
|
|
154
|
+
"type": "array",
|
|
155
|
+
"items": {
|
|
156
|
+
"type": "object",
|
|
157
|
+
"required": ["index", "prop", "kind", "label"],
|
|
158
|
+
"properties": {
|
|
159
|
+
"index": { "type": "integer", "minimum": 0 },
|
|
160
|
+
"prop": { "type": "string" },
|
|
161
|
+
"kind": { "type": "string" },
|
|
162
|
+
"label": { "type": "string" },
|
|
163
|
+
"relationship": { "type": ["string", "null"] }
|
|
164
|
+
},
|
|
165
|
+
"additionalProperties": false
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"additionalProperties": false
|
|
170
|
+
},
|
|
171
|
+
"row": {
|
|
172
|
+
"type": "object",
|
|
173
|
+
"required": ["conditions", "items"],
|
|
174
|
+
"properties": {
|
|
175
|
+
"conditions": {
|
|
176
|
+
"description": "Scalar component options the relationship records pin for this row.",
|
|
177
|
+
"type": "object"
|
|
178
|
+
},
|
|
179
|
+
"items": { "type": "array", "items": { "$ref": "#/$defs/item" } }
|
|
180
|
+
},
|
|
181
|
+
"additionalProperties": false
|
|
182
|
+
},
|
|
183
|
+
"item": {
|
|
184
|
+
"type": "object",
|
|
185
|
+
"required": ["label", "marker", "size", "states", "token", "values"],
|
|
186
|
+
"properties": {
|
|
187
|
+
"label": {
|
|
188
|
+
"description": "Option label from component options or the registry.",
|
|
189
|
+
"type": "string"
|
|
190
|
+
},
|
|
191
|
+
"marker": {
|
|
192
|
+
"description": "Number of the render marker this token belongs to, matching render.markers[].n.",
|
|
193
|
+
"type": ["integer", "null"]
|
|
194
|
+
},
|
|
195
|
+
"size": { "type": ["string", "null"] },
|
|
196
|
+
"states": { "type": "array", "items": { "type": "string" } },
|
|
197
|
+
"token": {
|
|
198
|
+
"type": "object",
|
|
199
|
+
"required": ["name", "uuid", "property"],
|
|
200
|
+
"properties": {
|
|
201
|
+
"name": { "type": "string" },
|
|
202
|
+
"uuid": { "type": ["string", "null"] },
|
|
203
|
+
"property": { "type": "string" }
|
|
204
|
+
},
|
|
205
|
+
"additionalProperties": false
|
|
206
|
+
},
|
|
207
|
+
"values": {
|
|
208
|
+
"description": "Token value per scale (`desktop`, `mobile`), or `value` when the token has no scale. An alias shows as {\"alias\": name}.",
|
|
209
|
+
"type": "object"
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
"additionalProperties": false
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|