@graview/core 0.1.20 → 0.1.22

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 (196) hide show
  1. package/README.md +28 -0
  2. package/dist/blocks.d.ts +3 -0
  3. package/dist/blocks.d.ts.map +1 -1
  4. package/dist/blocks.js +2 -0
  5. package/dist/blocks.js.map +1 -1
  6. package/dist/capabilities.js +1 -1
  7. package/dist/capabilities.js.map +1 -1
  8. package/dist/cli/check/computed.d.ts +4 -2
  9. package/dist/cli/check/computed.d.ts.map +1 -1
  10. package/dist/cli/check/computed.js +7 -4
  11. package/dist/cli/check/computed.js.map +1 -1
  12. package/dist/cli/check/lenses.d.ts.map +1 -1
  13. package/dist/cli/check/lenses.js +4 -2
  14. package/dist/cli/check/lenses.js.map +1 -1
  15. package/dist/cli/check/policy.d.ts.map +1 -1
  16. package/dist/cli/check/policy.js +12 -4
  17. package/dist/cli/check/policy.js.map +1 -1
  18. package/dist/cli/check/relations.d.ts +0 -11
  19. package/dist/cli/check/relations.d.ts.map +1 -1
  20. package/dist/cli/check/relations.js +21 -46
  21. package/dist/cli/check/relations.js.map +1 -1
  22. package/dist/cli/check/views.d.ts.map +1 -1
  23. package/dist/cli/check/views.js +3 -2
  24. package/dist/cli/check/views.js.map +1 -1
  25. package/dist/cli/check.d.ts.map +1 -1
  26. package/dist/cli/check.js +1 -2
  27. package/dist/cli/check.js.map +1 -1
  28. package/dist/cli/describe.d.ts.map +1 -1
  29. package/dist/cli/describe.js +23 -2
  30. package/dist/cli/describe.js.map +1 -1
  31. package/dist/cli/doctor.d.ts +34 -0
  32. package/dist/cli/doctor.d.ts.map +1 -0
  33. package/dist/cli/doctor.js +346 -0
  34. package/dist/cli/doctor.js.map +1 -0
  35. package/dist/cli/document-schema.d.ts +6 -0
  36. package/dist/cli/document-schema.d.ts.map +1 -0
  37. package/dist/cli/document-schema.js +55 -0
  38. package/dist/cli/document-schema.js.map +1 -0
  39. package/dist/cli/index.d.ts +3 -1
  40. package/dist/cli/index.d.ts.map +1 -1
  41. package/dist/cli/index.js +41 -2
  42. package/dist/cli/index.js.map +1 -1
  43. package/dist/cli/types.d.ts +12 -0
  44. package/dist/cli/types.d.ts.map +1 -0
  45. package/dist/cli/types.js +95 -0
  46. package/dist/cli/types.js.map +1 -0
  47. package/dist/conformance/fixtures.d.ts.map +1 -1
  48. package/dist/conformance/fixtures.js +6 -3
  49. package/dist/conformance/fixtures.js.map +1 -1
  50. package/dist/describe.d.ts +3 -1
  51. package/dist/describe.d.ts.map +1 -1
  52. package/dist/describe.js +9 -0
  53. package/dist/describe.js.map +1 -1
  54. package/dist/document/block-context.d.ts +50 -0
  55. package/dist/document/block-context.d.ts.map +1 -0
  56. package/dist/document/block-context.js +69 -0
  57. package/dist/document/block-context.js.map +1 -0
  58. package/dist/document/blocks.d.ts +24 -10
  59. package/dist/document/blocks.d.ts.map +1 -1
  60. package/dist/document/blocks.js +50 -39
  61. package/dist/document/blocks.js.map +1 -1
  62. package/dist/document/compile-checked.d.ts.map +1 -1
  63. package/dist/document/compile-checked.js +6 -3
  64. package/dist/document/compile-checked.js.map +1 -1
  65. package/dist/document/compile.d.ts +1 -1
  66. package/dist/document/compile.d.ts.map +1 -1
  67. package/dist/document/compile.js +8 -3
  68. package/dist/document/compile.js.map +1 -1
  69. package/dist/document/compiled.d.ts +2 -0
  70. package/dist/document/compiled.d.ts.map +1 -1
  71. package/dist/document/compiled.js +31 -27
  72. package/dist/document/compiled.js.map +1 -1
  73. package/dist/document/computed-values.d.ts +6 -1
  74. package/dist/document/computed-values.d.ts.map +1 -1
  75. package/dist/document/computed-values.js +7 -4
  76. package/dist/document/computed-values.js.map +1 -1
  77. package/dist/document/computed.d.ts +21 -0
  78. package/dist/document/computed.d.ts.map +1 -1
  79. package/dist/document/computed.js +54 -4
  80. package/dist/document/computed.js.map +1 -1
  81. package/dist/document/describe-place.d.ts +15 -0
  82. package/dist/document/describe-place.d.ts.map +1 -1
  83. package/dist/document/describe-place.js +33 -28
  84. package/dist/document/describe-place.js.map +1 -1
  85. package/dist/document/diff.d.ts.map +1 -1
  86. package/dist/document/diff.js +22 -0
  87. package/dist/document/diff.js.map +1 -1
  88. package/dist/document/edit.d.ts.map +1 -1
  89. package/dist/document/edit.js +34 -0
  90. package/dist/document/edit.js.map +1 -1
  91. package/dist/document/expr/evaluate.d.ts +7 -1
  92. package/dist/document/expr/evaluate.d.ts.map +1 -1
  93. package/dist/document/expr/evaluate.js +19 -5
  94. package/dist/document/expr/evaluate.js.map +1 -1
  95. package/dist/document/expr/index.d.ts +1 -1
  96. package/dist/document/expr/index.d.ts.map +1 -1
  97. package/dist/document/expr/index.js +1 -1
  98. package/dist/document/expr/index.js.map +1 -1
  99. package/dist/document/expr/parse.js +1 -1
  100. package/dist/document/expr/parse.js.map +1 -1
  101. package/dist/document/fact-values.d.ts +21 -0
  102. package/dist/document/fact-values.d.ts.map +1 -0
  103. package/dist/document/fact-values.js +24 -0
  104. package/dist/document/fact-values.js.map +1 -0
  105. package/dist/document/facts-and-roles.d.ts +17 -0
  106. package/dist/document/facts-and-roles.d.ts.map +1 -0
  107. package/dist/document/facts-and-roles.js +75 -0
  108. package/dist/document/facts-and-roles.js.map +1 -0
  109. package/dist/document/resolve-for.d.ts +29 -0
  110. package/dist/document/resolve-for.d.ts.map +1 -0
  111. package/dist/document/resolve-for.js +23 -0
  112. package/dist/document/resolve-for.js.map +1 -0
  113. package/dist/document/respell.js +2 -2
  114. package/dist/document/respell.js.map +1 -1
  115. package/dist/document/rule-line.d.ts.map +1 -1
  116. package/dist/document/rule-line.js +6 -2
  117. package/dist/document/rule-line.js.map +1 -1
  118. package/dist/document/rules.d.ts.map +1 -1
  119. package/dist/document/rules.js +5 -1
  120. package/dist/document/rules.js.map +1 -1
  121. package/dist/document/schema.d.ts +8 -0
  122. package/dist/document/schema.d.ts.map +1 -1
  123. package/dist/document/schema.js +20 -3
  124. package/dist/document/schema.js.map +1 -1
  125. package/dist/document/to-document.d.ts.map +1 -1
  126. package/dist/document/to-document.js +2 -0
  127. package/dist/document/to-document.js.map +1 -1
  128. package/dist/document/views.d.ts +15 -1
  129. package/dist/document/views.d.ts.map +1 -1
  130. package/dist/document/views.js +82 -34
  131. package/dist/document/views.js.map +1 -1
  132. package/dist/document.schema.json +1655 -0
  133. package/dist/index.d.ts +1 -9
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +2 -5
  136. package/dist/index.js.map +1 -1
  137. package/dist/invariants/engine.d.ts +13 -0
  138. package/dist/invariants/engine.d.ts.map +1 -1
  139. package/dist/invariants/engine.js +16 -1
  140. package/dist/invariants/engine.js.map +1 -1
  141. package/dist/invariants/types.d.ts +7 -4
  142. package/dist/invariants/types.d.ts.map +1 -1
  143. package/dist/lines.d.ts +23 -3
  144. package/dist/lines.d.ts.map +1 -1
  145. package/dist/lines.js +38 -6
  146. package/dist/lines.js.map +1 -1
  147. package/dist/places.d.ts.map +1 -1
  148. package/dist/places.js +1 -1
  149. package/dist/places.js.map +1 -1
  150. package/dist/scaffold/project.d.ts.map +1 -1
  151. package/dist/scaffold/project.js +5 -0
  152. package/dist/scaffold/project.js.map +1 -1
  153. package/dist/schema/define-node.d.ts.map +1 -1
  154. package/dist/schema/define-node.js +6 -4
  155. package/dist/schema/define-node.js.map +1 -1
  156. package/dist/schema/schema.d.ts +10 -2
  157. package/dist/schema/schema.d.ts.map +1 -1
  158. package/dist/schema/schema.js +4 -1
  159. package/dist/schema/schema.js.map +1 -1
  160. package/dist/seen.d.ts.map +1 -1
  161. package/dist/seen.js +5 -2
  162. package/dist/seen.js.map +1 -1
  163. package/dist/snapshot.d.ts +67 -0
  164. package/dist/snapshot.d.ts.map +1 -0
  165. package/dist/snapshot.js +181 -0
  166. package/dist/snapshot.js.map +1 -0
  167. package/dist/store.d.ts +32 -2
  168. package/dist/store.d.ts.map +1 -1
  169. package/dist/store.js +48 -35
  170. package/dist/store.js.map +1 -1
  171. package/dist/sync/engine.d.ts +93 -9
  172. package/dist/sync/engine.d.ts.map +1 -1
  173. package/dist/sync/engine.js +357 -48
  174. package/dist/sync/engine.js.map +1 -1
  175. package/dist/sync/index.d.ts +11 -0
  176. package/dist/sync/index.d.ts.map +1 -0
  177. package/dist/sync/index.js +15 -0
  178. package/dist/sync/index.js.map +1 -0
  179. package/dist/sync/mcp.d.ts +124 -0
  180. package/dist/sync/mcp.d.ts.map +1 -0
  181. package/dist/sync/mcp.js +247 -0
  182. package/dist/sync/mcp.js.map +1 -0
  183. package/dist/sync/types.d.ts +35 -0
  184. package/dist/sync/types.d.ts.map +1 -1
  185. package/dist/sync/types.js.map +1 -1
  186. package/dist/testing.d.ts +30 -0
  187. package/dist/testing.d.ts.map +1 -1
  188. package/dist/testing.js +38 -0
  189. package/dist/testing.js.map +1 -1
  190. package/dist/typed.d.ts +267 -0
  191. package/dist/typed.d.ts.map +1 -0
  192. package/dist/typed.js +35 -0
  193. package/dist/typed.js.map +1 -0
  194. package/dist/version.d.ts +1 -1
  195. package/dist/version.js +1 -1
  196. package/package.json +16 -3
@@ -0,0 +1,1655 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://unpkg.com/@graview/core@0.1.22/dist/document.schema.json",
4
+ "title": "Graview declaration document, format 1 (@graview/core 0.1.22)",
5
+ "description": "A whole Graview app as one JSON object: its kinds, fields, relations, acts, rules, roles, views and brand. `graview check --document <file>` compiles it and says what is wrong in words; this schema is the same shape, for an editor. Name it in a document's \"$schema\".",
6
+ "type": "object",
7
+ "properties": {
8
+ "$schema": {
9
+ "type": "string"
10
+ },
11
+ "format": {
12
+ "type": "string",
13
+ "const": "graview-document"
14
+ },
15
+ "formatVersion": {
16
+ "type": "number",
17
+ "const": 1
18
+ },
19
+ "name": {
20
+ "type": "string",
21
+ "minLength": 1,
22
+ "maxLength": 80
23
+ },
24
+ "description": {
25
+ "type": "string",
26
+ "minLength": 1,
27
+ "maxLength": 500
28
+ },
29
+ "version": {
30
+ "type": "integer",
31
+ "minimum": 1,
32
+ "maximum": 9007199254740991
33
+ },
34
+ "kinds": {
35
+ "type": "object",
36
+ "propertyNames": {
37
+ "type": "string",
38
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
39
+ },
40
+ "additionalProperties": {
41
+ "type": "object",
42
+ "properties": {
43
+ "noun": {
44
+ "type": "string",
45
+ "minLength": 1,
46
+ "maxLength": 40
47
+ },
48
+ "plural": {
49
+ "type": "string",
50
+ "minLength": 1,
51
+ "maxLength": 40
52
+ },
53
+ "description": {
54
+ "type": "string",
55
+ "minLength": 1,
56
+ "maxLength": 500
57
+ },
58
+ "fields": {
59
+ "type": "object",
60
+ "propertyNames": {
61
+ "type": "string",
62
+ "pattern": "^[a-z][A-Za-z0-9]*$",
63
+ "not": {
64
+ "enum": [
65
+ "id",
66
+ "kind",
67
+ "constructor",
68
+ "__defineGetter__",
69
+ "__defineSetter__",
70
+ "hasOwnProperty",
71
+ "__lookupGetter__",
72
+ "__lookupSetter__",
73
+ "isPrototypeOf",
74
+ "propertyIsEnumerable",
75
+ "toString",
76
+ "valueOf",
77
+ "__proto__",
78
+ "toLocaleString"
79
+ ]
80
+ }
81
+ },
82
+ "additionalProperties": {
83
+ "type": "object",
84
+ "properties": {
85
+ "type": {
86
+ "type": "string",
87
+ "enum": [
88
+ "string",
89
+ "text",
90
+ "number",
91
+ "integer",
92
+ "boolean",
93
+ "date",
94
+ "datetime",
95
+ "enum",
96
+ "list",
97
+ "url",
98
+ "email"
99
+ ]
100
+ },
101
+ "required": {
102
+ "type": "boolean"
103
+ },
104
+ "description": {
105
+ "type": "string",
106
+ "minLength": 1,
107
+ "maxLength": 500
108
+ },
109
+ "label": {
110
+ "type": "string",
111
+ "minLength": 1,
112
+ "maxLength": 60
113
+ },
114
+ "options": {
115
+ "minItems": 1,
116
+ "maxItems": 100,
117
+ "type": "array",
118
+ "items": {
119
+ "type": "string",
120
+ "minLength": 1,
121
+ "maxLength": 80
122
+ }
123
+ },
124
+ "of": {
125
+ "type": "string",
126
+ "enum": [
127
+ "string",
128
+ "number",
129
+ "date"
130
+ ]
131
+ },
132
+ "default": {},
133
+ "unit": {
134
+ "type": "string",
135
+ "maxLength": 12
136
+ },
137
+ "format": {
138
+ "type": "string",
139
+ "enum": [
140
+ "money",
141
+ "percent",
142
+ "duration"
143
+ ]
144
+ },
145
+ "min": {
146
+ "type": "number"
147
+ },
148
+ "max": {
149
+ "type": "number"
150
+ },
151
+ "step": {
152
+ "type": "number"
153
+ },
154
+ "renamedFrom": {
155
+ "type": "string",
156
+ "pattern": "^[a-z][A-Za-z0-9]*$"
157
+ }
158
+ },
159
+ "required": [
160
+ "type"
161
+ ],
162
+ "additionalProperties": false,
163
+ "allOf": [
164
+ {
165
+ "if": {
166
+ "properties": {
167
+ "type": {
168
+ "const": "enum"
169
+ }
170
+ }
171
+ },
172
+ "then": {
173
+ "required": [
174
+ "options"
175
+ ]
176
+ },
177
+ "else": {
178
+ "not": {
179
+ "required": [
180
+ "options"
181
+ ]
182
+ }
183
+ }
184
+ },
185
+ {
186
+ "if": {
187
+ "properties": {
188
+ "type": {
189
+ "const": "list"
190
+ }
191
+ }
192
+ },
193
+ "else": {
194
+ "not": {
195
+ "required": [
196
+ "of"
197
+ ]
198
+ }
199
+ }
200
+ }
201
+ ]
202
+ },
203
+ "minProperties": 1
204
+ },
205
+ "label": {
206
+ "type": "string",
207
+ "minLength": 1,
208
+ "maxLength": 300
209
+ },
210
+ "describe": {
211
+ "type": "string",
212
+ "minLength": 1,
213
+ "maxLength": 300
214
+ },
215
+ "lifecycle": {
216
+ "type": "object",
217
+ "properties": {
218
+ "field": {
219
+ "type": "string",
220
+ "pattern": "^[a-z][A-Za-z0-9]*$",
221
+ "not": {
222
+ "enum": [
223
+ "id",
224
+ "kind",
225
+ "constructor",
226
+ "__defineGetter__",
227
+ "__defineSetter__",
228
+ "hasOwnProperty",
229
+ "__lookupGetter__",
230
+ "__lookupSetter__",
231
+ "isPrototypeOf",
232
+ "propertyIsEnumerable",
233
+ "toString",
234
+ "valueOf",
235
+ "__proto__",
236
+ "toLocaleString"
237
+ ]
238
+ }
239
+ },
240
+ "retired": {
241
+ "minItems": 1,
242
+ "type": "array",
243
+ "items": {
244
+ "type": [
245
+ "string",
246
+ "number",
247
+ "boolean"
248
+ ]
249
+ }
250
+ }
251
+ },
252
+ "required": [
253
+ "field",
254
+ "retired"
255
+ ],
256
+ "additionalProperties": false
257
+ },
258
+ "figure": {
259
+ "type": "string",
260
+ "maxLength": 20000
261
+ },
262
+ "glance": {
263
+ "minItems": 1,
264
+ "maxItems": 20,
265
+ "type": "array",
266
+ "items": {
267
+ "type": "string",
268
+ "pattern": "^[a-z][A-Za-z0-9]*$",
269
+ "not": {
270
+ "enum": [
271
+ "id",
272
+ "kind",
273
+ "constructor",
274
+ "__defineGetter__",
275
+ "__defineSetter__",
276
+ "hasOwnProperty",
277
+ "__lookupGetter__",
278
+ "__lookupSetter__",
279
+ "isPrototypeOf",
280
+ "propertyIsEnumerable",
281
+ "toString",
282
+ "valueOf",
283
+ "__proto__",
284
+ "toLocaleString"
285
+ ]
286
+ }
287
+ }
288
+ },
289
+ "page": {
290
+ "type": "object",
291
+ "properties": {
292
+ "fields": {
293
+ "minItems": 1,
294
+ "maxItems": 40,
295
+ "type": "array",
296
+ "items": {
297
+ "type": "string",
298
+ "pattern": "^[a-z][A-Za-z0-9]*$",
299
+ "not": {
300
+ "enum": [
301
+ "id",
302
+ "kind",
303
+ "constructor",
304
+ "__defineGetter__",
305
+ "__defineSetter__",
306
+ "hasOwnProperty",
307
+ "__lookupGetter__",
308
+ "__lookupSetter__",
309
+ "isPrototypeOf",
310
+ "propertyIsEnumerable",
311
+ "toString",
312
+ "valueOf",
313
+ "__proto__",
314
+ "toLocaleString"
315
+ ]
316
+ }
317
+ }
318
+ },
319
+ "groups": {
320
+ "minItems": 1,
321
+ "maxItems": 12,
322
+ "type": "array",
323
+ "items": {
324
+ "type": "object",
325
+ "properties": {
326
+ "title": {
327
+ "type": "string",
328
+ "minLength": 1,
329
+ "maxLength": 60
330
+ },
331
+ "fields": {
332
+ "minItems": 1,
333
+ "maxItems": 40,
334
+ "type": "array",
335
+ "items": {
336
+ "type": "string",
337
+ "pattern": "^[a-z][A-Za-z0-9]*$",
338
+ "not": {
339
+ "enum": [
340
+ "id",
341
+ "kind",
342
+ "constructor",
343
+ "__defineGetter__",
344
+ "__defineSetter__",
345
+ "hasOwnProperty",
346
+ "__lookupGetter__",
347
+ "__lookupSetter__",
348
+ "isPrototypeOf",
349
+ "propertyIsEnumerable",
350
+ "toString",
351
+ "valueOf",
352
+ "__proto__",
353
+ "toLocaleString"
354
+ ]
355
+ }
356
+ }
357
+ }
358
+ },
359
+ "required": [
360
+ "title",
361
+ "fields"
362
+ ],
363
+ "additionalProperties": false
364
+ }
365
+ }
366
+ },
367
+ "additionalProperties": false
368
+ },
369
+ "edges": {
370
+ "type": "object",
371
+ "propertyNames": {
372
+ "type": "string",
373
+ "pattern": "^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*|[a-z][A-Za-z0-9]*)$",
374
+ "not": {
375
+ "enum": [
376
+ "constructor",
377
+ "__defineGetter__",
378
+ "__defineSetter__",
379
+ "hasOwnProperty",
380
+ "__lookupGetter__",
381
+ "__lookupSetter__",
382
+ "isPrototypeOf",
383
+ "propertyIsEnumerable",
384
+ "toString",
385
+ "valueOf",
386
+ "__proto__",
387
+ "toLocaleString"
388
+ ]
389
+ }
390
+ },
391
+ "additionalProperties": {
392
+ "type": "object",
393
+ "properties": {
394
+ "to": {
395
+ "anyOf": [
396
+ {
397
+ "minItems": 1,
398
+ "type": "array",
399
+ "items": {
400
+ "type": "string",
401
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
402
+ }
403
+ },
404
+ {
405
+ "type": "string",
406
+ "const": "*"
407
+ }
408
+ ]
409
+ },
410
+ "cardinality": {
411
+ "type": "string",
412
+ "enum": [
413
+ "one",
414
+ "many"
415
+ ]
416
+ },
417
+ "description": {
418
+ "type": "string",
419
+ "minLength": 1,
420
+ "maxLength": 500
421
+ },
422
+ "inverse": {
423
+ "type": "string",
424
+ "minLength": 1,
425
+ "maxLength": 80
426
+ },
427
+ "appendOnly": {
428
+ "type": "boolean"
429
+ },
430
+ "renamedFrom": {
431
+ "type": "string"
432
+ }
433
+ },
434
+ "required": [
435
+ "to"
436
+ ],
437
+ "additionalProperties": false
438
+ }
439
+ },
440
+ "computed": {
441
+ "type": "object",
442
+ "propertyNames": {
443
+ "type": "string"
444
+ },
445
+ "additionalProperties": {
446
+ "anyOf": [
447
+ {
448
+ "type": "string",
449
+ "minLength": 1,
450
+ "maxLength": 2000
451
+ },
452
+ {
453
+ "type": "object",
454
+ "properties": {
455
+ "expr": {
456
+ "type": "string",
457
+ "minLength": 1,
458
+ "maxLength": 2000
459
+ },
460
+ "label": {
461
+ "type": "string",
462
+ "minLength": 1,
463
+ "maxLength": 60
464
+ },
465
+ "description": {
466
+ "type": "string",
467
+ "minLength": 1,
468
+ "maxLength": 500
469
+ }
470
+ },
471
+ "required": [
472
+ "expr"
473
+ ],
474
+ "additionalProperties": false
475
+ }
476
+ ]
477
+ },
478
+ "maxProperties": 20
479
+ },
480
+ "fieldRoles": {
481
+ "type": "object",
482
+ "propertyNames": {
483
+ "type": "string"
484
+ },
485
+ "additionalProperties": {
486
+ "type": "string"
487
+ }
488
+ },
489
+ "renamedFrom": {
490
+ "type": "string",
491
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
492
+ }
493
+ },
494
+ "required": [
495
+ "fields"
496
+ ],
497
+ "additionalProperties": false
498
+ },
499
+ "minProperties": 1,
500
+ "maxProperties": 40
501
+ },
502
+ "computed": {
503
+ "type": "object",
504
+ "propertyNames": {
505
+ "type": "string"
506
+ },
507
+ "additionalProperties": {
508
+ "anyOf": [
509
+ {
510
+ "type": "string",
511
+ "minLength": 1,
512
+ "maxLength": 2000
513
+ },
514
+ {
515
+ "type": "object",
516
+ "properties": {
517
+ "expr": {
518
+ "type": "string",
519
+ "minLength": 1,
520
+ "maxLength": 2000
521
+ },
522
+ "label": {
523
+ "type": "string",
524
+ "minLength": 1,
525
+ "maxLength": 60
526
+ },
527
+ "description": {
528
+ "type": "string",
529
+ "minLength": 1,
530
+ "maxLength": 500
531
+ }
532
+ },
533
+ "required": [
534
+ "expr"
535
+ ],
536
+ "additionalProperties": false
537
+ }
538
+ ]
539
+ }
540
+ },
541
+ "acts": {
542
+ "type": "object",
543
+ "propertyNames": {
544
+ "type": "string",
545
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
546
+ },
547
+ "additionalProperties": {
548
+ "type": "object",
549
+ "properties": {
550
+ "title": {
551
+ "type": "string",
552
+ "minLength": 1,
553
+ "maxLength": 80
554
+ },
555
+ "description": {
556
+ "type": "string",
557
+ "minLength": 1,
558
+ "maxLength": 500
559
+ },
560
+ "fromTheOtherEnd": {
561
+ "type": "string",
562
+ "minLength": 1,
563
+ "maxLength": 80
564
+ },
565
+ "on": {
566
+ "anyOf": [
567
+ {
568
+ "type": "string",
569
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
570
+ },
571
+ {
572
+ "minItems": 1,
573
+ "type": "array",
574
+ "items": {
575
+ "type": "string",
576
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
577
+ }
578
+ }
579
+ ]
580
+ },
581
+ "creates": {
582
+ "type": "string",
583
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
584
+ },
585
+ "sets": {
586
+ "type": "object",
587
+ "propertyNames": {
588
+ "type": "string",
589
+ "pattern": "^[a-z][A-Za-z0-9]*$",
590
+ "not": {
591
+ "enum": [
592
+ "id",
593
+ "kind",
594
+ "constructor",
595
+ "__defineGetter__",
596
+ "__defineSetter__",
597
+ "hasOwnProperty",
598
+ "__lookupGetter__",
599
+ "__lookupSetter__",
600
+ "isPrototypeOf",
601
+ "propertyIsEnumerable",
602
+ "toString",
603
+ "valueOf",
604
+ "__proto__",
605
+ "toLocaleString"
606
+ ]
607
+ }
608
+ },
609
+ "additionalProperties": {
610
+ "anyOf": [
611
+ {
612
+ "type": "string"
613
+ },
614
+ {
615
+ "type": "number"
616
+ },
617
+ {
618
+ "type": "boolean"
619
+ },
620
+ {
621
+ "type": "null"
622
+ },
623
+ {
624
+ "type": "array",
625
+ "items": {}
626
+ },
627
+ {
628
+ "type": "object",
629
+ "properties": {
630
+ "expr": {
631
+ "type": "string",
632
+ "minLength": 1,
633
+ "maxLength": 2000
634
+ }
635
+ },
636
+ "required": [
637
+ "expr"
638
+ ],
639
+ "additionalProperties": false
640
+ }
641
+ ]
642
+ }
643
+ },
644
+ "writes": {
645
+ "minItems": 1,
646
+ "type": "array",
647
+ "items": {
648
+ "type": "string",
649
+ "pattern": "^[a-z][A-Za-z0-9]*$",
650
+ "not": {
651
+ "enum": [
652
+ "id",
653
+ "kind",
654
+ "constructor",
655
+ "__defineGetter__",
656
+ "__defineSetter__",
657
+ "hasOwnProperty",
658
+ "__lookupGetter__",
659
+ "__lookupSetter__",
660
+ "isPrototypeOf",
661
+ "propertyIsEnumerable",
662
+ "toString",
663
+ "valueOf",
664
+ "__proto__",
665
+ "toLocaleString"
666
+ ]
667
+ }
668
+ }
669
+ },
670
+ "connects": {
671
+ "type": "string",
672
+ "pattern": "^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*|[a-z][A-Za-z0-9]*)$"
673
+ },
674
+ "severs": {
675
+ "type": "string",
676
+ "pattern": "^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*|[a-z][A-Za-z0-9]*)$"
677
+ },
678
+ "setsOther": {
679
+ "type": "object",
680
+ "propertyNames": {
681
+ "type": "string",
682
+ "pattern": "^[a-z][A-Za-z0-9]*$",
683
+ "not": {
684
+ "enum": [
685
+ "id",
686
+ "kind",
687
+ "constructor",
688
+ "__defineGetter__",
689
+ "__defineSetter__",
690
+ "hasOwnProperty",
691
+ "__lookupGetter__",
692
+ "__lookupSetter__",
693
+ "isPrototypeOf",
694
+ "propertyIsEnumerable",
695
+ "toString",
696
+ "valueOf",
697
+ "__proto__",
698
+ "toLocaleString"
699
+ ]
700
+ }
701
+ },
702
+ "additionalProperties": {
703
+ "anyOf": [
704
+ {
705
+ "type": "string"
706
+ },
707
+ {
708
+ "type": "number"
709
+ },
710
+ {
711
+ "type": "boolean"
712
+ },
713
+ {
714
+ "type": "null"
715
+ },
716
+ {
717
+ "type": "array",
718
+ "items": {}
719
+ },
720
+ {
721
+ "type": "object",
722
+ "properties": {
723
+ "expr": {
724
+ "type": "string",
725
+ "minLength": 1,
726
+ "maxLength": 2000
727
+ }
728
+ },
729
+ "required": [
730
+ "expr"
731
+ ],
732
+ "additionalProperties": false
733
+ }
734
+ ]
735
+ }
736
+ },
737
+ "replaces": {
738
+ "anyOf": [
739
+ {
740
+ "type": "boolean",
741
+ "const": true
742
+ },
743
+ {
744
+ "minItems": 1,
745
+ "maxItems": 10,
746
+ "type": "array",
747
+ "items": {
748
+ "type": "string",
749
+ "pattern": "^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*|[a-z][A-Za-z0-9]*)$",
750
+ "not": {
751
+ "enum": [
752
+ "constructor",
753
+ "__defineGetter__",
754
+ "__defineSetter__",
755
+ "hasOwnProperty",
756
+ "__lookupGetter__",
757
+ "__lookupSetter__",
758
+ "isPrototypeOf",
759
+ "propertyIsEnumerable",
760
+ "toString",
761
+ "valueOf",
762
+ "__proto__",
763
+ "toLocaleString"
764
+ ]
765
+ }
766
+ }
767
+ }
768
+ ]
769
+ },
770
+ "removes": {
771
+ "type": "boolean",
772
+ "const": true
773
+ },
774
+ "args": {
775
+ "type": "object",
776
+ "propertyNames": {
777
+ "type": "string",
778
+ "pattern": "^[a-z][A-Za-z0-9]*$",
779
+ "not": {
780
+ "enum": [
781
+ "id",
782
+ "kind",
783
+ "constructor",
784
+ "__defineGetter__",
785
+ "__defineSetter__",
786
+ "hasOwnProperty",
787
+ "__lookupGetter__",
788
+ "__lookupSetter__",
789
+ "isPrototypeOf",
790
+ "propertyIsEnumerable",
791
+ "toString",
792
+ "valueOf",
793
+ "__proto__",
794
+ "toLocaleString"
795
+ ]
796
+ }
797
+ },
798
+ "additionalProperties": {
799
+ "type": "object",
800
+ "properties": {
801
+ "type": {
802
+ "type": "string",
803
+ "enum": [
804
+ "string",
805
+ "text",
806
+ "number",
807
+ "integer",
808
+ "boolean",
809
+ "date",
810
+ "datetime",
811
+ "enum",
812
+ "list",
813
+ "url",
814
+ "email"
815
+ ]
816
+ },
817
+ "required": {
818
+ "type": "boolean"
819
+ },
820
+ "description": {
821
+ "type": "string",
822
+ "minLength": 1,
823
+ "maxLength": 500
824
+ },
825
+ "label": {
826
+ "type": "string",
827
+ "minLength": 1,
828
+ "maxLength": 60
829
+ },
830
+ "options": {
831
+ "minItems": 1,
832
+ "maxItems": 100,
833
+ "type": "array",
834
+ "items": {
835
+ "type": "string",
836
+ "minLength": 1,
837
+ "maxLength": 80
838
+ }
839
+ },
840
+ "of": {
841
+ "type": "string",
842
+ "enum": [
843
+ "string",
844
+ "number",
845
+ "date"
846
+ ]
847
+ },
848
+ "default": {},
849
+ "unit": {
850
+ "type": "string",
851
+ "maxLength": 12
852
+ },
853
+ "format": {
854
+ "type": "string",
855
+ "enum": [
856
+ "money",
857
+ "percent",
858
+ "duration"
859
+ ]
860
+ },
861
+ "min": {
862
+ "type": "number"
863
+ },
864
+ "max": {
865
+ "type": "number"
866
+ },
867
+ "step": {
868
+ "type": "number"
869
+ },
870
+ "renamedFrom": {
871
+ "type": "string",
872
+ "pattern": "^[a-z][A-Za-z0-9]*$"
873
+ }
874
+ },
875
+ "required": [
876
+ "type"
877
+ ],
878
+ "additionalProperties": false,
879
+ "allOf": [
880
+ {
881
+ "if": {
882
+ "properties": {
883
+ "type": {
884
+ "const": "enum"
885
+ }
886
+ }
887
+ },
888
+ "then": {
889
+ "required": [
890
+ "options"
891
+ ]
892
+ },
893
+ "else": {
894
+ "not": {
895
+ "required": [
896
+ "options"
897
+ ]
898
+ }
899
+ }
900
+ },
901
+ {
902
+ "if": {
903
+ "properties": {
904
+ "type": {
905
+ "const": "list"
906
+ }
907
+ }
908
+ },
909
+ "else": {
910
+ "not": {
911
+ "required": [
912
+ "of"
913
+ ]
914
+ }
915
+ }
916
+ }
917
+ ]
918
+ }
919
+ },
920
+ "effects": {
921
+ "minItems": 1,
922
+ "maxItems": 20,
923
+ "type": "array",
924
+ "items": {
925
+ "anyOf": [
926
+ {
927
+ "type": "object",
928
+ "properties": {
929
+ "create": {
930
+ "type": "string",
931
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
932
+ },
933
+ "as": {
934
+ "type": "string",
935
+ "pattern": "^[a-z][A-Za-z0-9]*$"
936
+ },
937
+ "set": {
938
+ "type": "object",
939
+ "propertyNames": {
940
+ "type": "string",
941
+ "pattern": "^[a-z][A-Za-z0-9]*$",
942
+ "not": {
943
+ "enum": [
944
+ "id",
945
+ "kind",
946
+ "constructor",
947
+ "__defineGetter__",
948
+ "__defineSetter__",
949
+ "hasOwnProperty",
950
+ "__lookupGetter__",
951
+ "__lookupSetter__",
952
+ "isPrototypeOf",
953
+ "propertyIsEnumerable",
954
+ "toString",
955
+ "valueOf",
956
+ "__proto__",
957
+ "toLocaleString"
958
+ ]
959
+ }
960
+ },
961
+ "additionalProperties": {
962
+ "anyOf": [
963
+ {
964
+ "type": "string"
965
+ },
966
+ {
967
+ "type": "number"
968
+ },
969
+ {
970
+ "type": "boolean"
971
+ },
972
+ {
973
+ "type": "null"
974
+ },
975
+ {
976
+ "type": "array",
977
+ "items": {}
978
+ },
979
+ {
980
+ "type": "object",
981
+ "properties": {
982
+ "expr": {
983
+ "type": "string",
984
+ "minLength": 1,
985
+ "maxLength": 2000
986
+ }
987
+ },
988
+ "required": [
989
+ "expr"
990
+ ],
991
+ "additionalProperties": false
992
+ }
993
+ ]
994
+ }
995
+ }
996
+ },
997
+ "required": [
998
+ "create"
999
+ ],
1000
+ "additionalProperties": false
1001
+ },
1002
+ {
1003
+ "type": "object",
1004
+ "properties": {
1005
+ "set": {
1006
+ "type": "object",
1007
+ "propertyNames": {
1008
+ "type": "string",
1009
+ "pattern": "^[a-z][A-Za-z0-9]*$",
1010
+ "not": {
1011
+ "enum": [
1012
+ "id",
1013
+ "kind",
1014
+ "constructor",
1015
+ "__defineGetter__",
1016
+ "__defineSetter__",
1017
+ "hasOwnProperty",
1018
+ "__lookupGetter__",
1019
+ "__lookupSetter__",
1020
+ "isPrototypeOf",
1021
+ "propertyIsEnumerable",
1022
+ "toString",
1023
+ "valueOf",
1024
+ "__proto__",
1025
+ "toLocaleString"
1026
+ ]
1027
+ }
1028
+ },
1029
+ "additionalProperties": {
1030
+ "anyOf": [
1031
+ {
1032
+ "type": "string"
1033
+ },
1034
+ {
1035
+ "type": "number"
1036
+ },
1037
+ {
1038
+ "type": "boolean"
1039
+ },
1040
+ {
1041
+ "type": "null"
1042
+ },
1043
+ {
1044
+ "type": "array",
1045
+ "items": {}
1046
+ },
1047
+ {
1048
+ "type": "object",
1049
+ "properties": {
1050
+ "expr": {
1051
+ "type": "string",
1052
+ "minLength": 1,
1053
+ "maxLength": 2000
1054
+ }
1055
+ },
1056
+ "required": [
1057
+ "expr"
1058
+ ],
1059
+ "additionalProperties": false
1060
+ }
1061
+ ]
1062
+ }
1063
+ },
1064
+ "target": {
1065
+ "type": "string",
1066
+ "pattern": "^\\$[A-Za-z][A-Za-z0-9]*$"
1067
+ }
1068
+ },
1069
+ "required": [
1070
+ "set"
1071
+ ],
1072
+ "additionalProperties": false
1073
+ },
1074
+ {
1075
+ "type": "object",
1076
+ "properties": {
1077
+ "connect": {
1078
+ "type": "string",
1079
+ "pattern": "^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*|[a-z][A-Za-z0-9]*)$",
1080
+ "not": {
1081
+ "enum": [
1082
+ "constructor",
1083
+ "__defineGetter__",
1084
+ "__defineSetter__",
1085
+ "hasOwnProperty",
1086
+ "__lookupGetter__",
1087
+ "__lookupSetter__",
1088
+ "isPrototypeOf",
1089
+ "propertyIsEnumerable",
1090
+ "toString",
1091
+ "valueOf",
1092
+ "__proto__",
1093
+ "toLocaleString"
1094
+ ]
1095
+ }
1096
+ },
1097
+ "from": {
1098
+ "type": "string",
1099
+ "pattern": "^\\$[A-Za-z][A-Za-z0-9]*$"
1100
+ },
1101
+ "to": {
1102
+ "type": "string",
1103
+ "pattern": "^\\$[A-Za-z][A-Za-z0-9]*$"
1104
+ }
1105
+ },
1106
+ "required": [
1107
+ "connect",
1108
+ "from",
1109
+ "to"
1110
+ ],
1111
+ "additionalProperties": false
1112
+ },
1113
+ {
1114
+ "type": "object",
1115
+ "properties": {
1116
+ "sever": {
1117
+ "type": "string",
1118
+ "pattern": "^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*|[a-z][A-Za-z0-9]*)$",
1119
+ "not": {
1120
+ "enum": [
1121
+ "constructor",
1122
+ "__defineGetter__",
1123
+ "__defineSetter__",
1124
+ "hasOwnProperty",
1125
+ "__lookupGetter__",
1126
+ "__lookupSetter__",
1127
+ "isPrototypeOf",
1128
+ "propertyIsEnumerable",
1129
+ "toString",
1130
+ "valueOf",
1131
+ "__proto__",
1132
+ "toLocaleString"
1133
+ ]
1134
+ }
1135
+ },
1136
+ "from": {
1137
+ "type": "string",
1138
+ "pattern": "^\\$[A-Za-z][A-Za-z0-9]*$"
1139
+ },
1140
+ "to": {
1141
+ "type": "string",
1142
+ "pattern": "^\\$[A-Za-z][A-Za-z0-9]*$"
1143
+ }
1144
+ },
1145
+ "required": [
1146
+ "sever",
1147
+ "from",
1148
+ "to"
1149
+ ],
1150
+ "additionalProperties": false
1151
+ },
1152
+ {
1153
+ "type": "object",
1154
+ "properties": {
1155
+ "remove": {
1156
+ "type": "string",
1157
+ "pattern": "^\\$[A-Za-z][A-Za-z0-9]*$"
1158
+ }
1159
+ },
1160
+ "required": [
1161
+ "remove"
1162
+ ],
1163
+ "additionalProperties": false
1164
+ }
1165
+ ]
1166
+ }
1167
+ },
1168
+ "allowedWhen": {
1169
+ "type": "string",
1170
+ "minLength": 1,
1171
+ "maxLength": 2000
1172
+ },
1173
+ "refusal": {
1174
+ "type": "string",
1175
+ "minLength": 1,
1176
+ "maxLength": 300
1177
+ },
1178
+ "destructive": {
1179
+ "type": "boolean"
1180
+ }
1181
+ },
1182
+ "additionalProperties": false
1183
+ }
1184
+ },
1185
+ "rules": {
1186
+ "type": "object",
1187
+ "propertyNames": {
1188
+ "type": "string",
1189
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
1190
+ },
1191
+ "additionalProperties": {
1192
+ "type": "object",
1193
+ "properties": {
1194
+ "title": {
1195
+ "type": "string",
1196
+ "minLength": 1,
1197
+ "maxLength": 120
1198
+ },
1199
+ "description": {
1200
+ "type": "string",
1201
+ "minLength": 1,
1202
+ "maxLength": 500
1203
+ },
1204
+ "over": {
1205
+ "anyOf": [
1206
+ {
1207
+ "type": "string",
1208
+ "const": "graph"
1209
+ },
1210
+ {
1211
+ "type": "string",
1212
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
1213
+ }
1214
+ ]
1215
+ },
1216
+ "when": {
1217
+ "type": "string",
1218
+ "minLength": 1,
1219
+ "maxLength": 2000
1220
+ },
1221
+ "require": {
1222
+ "type": "string",
1223
+ "minLength": 1,
1224
+ "maxLength": 2000
1225
+ },
1226
+ "says": {
1227
+ "type": "string",
1228
+ "minLength": 1,
1229
+ "maxLength": 300
1230
+ },
1231
+ "repairs": {
1232
+ "maxItems": 10,
1233
+ "type": "array",
1234
+ "items": {
1235
+ "type": "object",
1236
+ "properties": {
1237
+ "act": {
1238
+ "type": "string",
1239
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
1240
+ },
1241
+ "label": {
1242
+ "type": "string",
1243
+ "minLength": 1,
1244
+ "maxLength": 80
1245
+ },
1246
+ "args": {
1247
+ "type": "object",
1248
+ "propertyNames": {
1249
+ "type": "string"
1250
+ },
1251
+ "additionalProperties": {
1252
+ "anyOf": [
1253
+ {
1254
+ "type": "string"
1255
+ },
1256
+ {
1257
+ "type": "number"
1258
+ },
1259
+ {
1260
+ "type": "boolean"
1261
+ },
1262
+ {
1263
+ "type": "null"
1264
+ },
1265
+ {
1266
+ "type": "array",
1267
+ "items": {}
1268
+ },
1269
+ {
1270
+ "type": "object",
1271
+ "properties": {
1272
+ "expr": {
1273
+ "type": "string",
1274
+ "minLength": 1,
1275
+ "maxLength": 2000
1276
+ }
1277
+ },
1278
+ "required": [
1279
+ "expr"
1280
+ ],
1281
+ "additionalProperties": false
1282
+ }
1283
+ ]
1284
+ }
1285
+ }
1286
+ },
1287
+ "required": [
1288
+ "act"
1289
+ ],
1290
+ "additionalProperties": false
1291
+ }
1292
+ }
1293
+ },
1294
+ "required": [
1295
+ "over",
1296
+ "require"
1297
+ ],
1298
+ "additionalProperties": false
1299
+ }
1300
+ },
1301
+ "roles": {
1302
+ "type": "array",
1303
+ "items": {
1304
+ "type": "string",
1305
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
1306
+ }
1307
+ },
1308
+ "policy": {
1309
+ "type": "object",
1310
+ "properties": {
1311
+ "grants": {
1312
+ "type": "array",
1313
+ "items": {
1314
+ "type": "object",
1315
+ "properties": {
1316
+ "roles": {
1317
+ "anyOf": [
1318
+ {
1319
+ "minItems": 1,
1320
+ "type": "array",
1321
+ "items": {
1322
+ "type": "string",
1323
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
1324
+ }
1325
+ },
1326
+ {
1327
+ "type": "string",
1328
+ "const": "*"
1329
+ }
1330
+ ]
1331
+ },
1332
+ "mutations": {
1333
+ "anyOf": [
1334
+ {
1335
+ "minItems": 1,
1336
+ "type": "array",
1337
+ "items": {
1338
+ "type": "string",
1339
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
1340
+ }
1341
+ },
1342
+ {
1343
+ "type": "string",
1344
+ "const": "*"
1345
+ }
1346
+ ]
1347
+ },
1348
+ "kinds": {
1349
+ "anyOf": [
1350
+ {
1351
+ "type": "array",
1352
+ "items": {
1353
+ "type": "string",
1354
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
1355
+ }
1356
+ },
1357
+ {
1358
+ "type": "string",
1359
+ "const": "*"
1360
+ }
1361
+ ]
1362
+ },
1363
+ "describe": {
1364
+ "type": "string",
1365
+ "minLength": 1,
1366
+ "maxLength": 500
1367
+ },
1368
+ "self": {
1369
+ "type": "boolean"
1370
+ }
1371
+ },
1372
+ "required": [
1373
+ "roles",
1374
+ "mutations"
1375
+ ],
1376
+ "additionalProperties": false
1377
+ }
1378
+ },
1379
+ "sees": {
1380
+ "type": "array",
1381
+ "items": {
1382
+ "type": "object",
1383
+ "properties": {
1384
+ "roles": {
1385
+ "anyOf": [
1386
+ {
1387
+ "minItems": 1,
1388
+ "type": "array",
1389
+ "items": {
1390
+ "type": "string",
1391
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
1392
+ }
1393
+ },
1394
+ {
1395
+ "type": "string",
1396
+ "const": "*"
1397
+ }
1398
+ ]
1399
+ },
1400
+ "kinds": {
1401
+ "minItems": 1,
1402
+ "type": "array",
1403
+ "items": {
1404
+ "type": "string",
1405
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
1406
+ }
1407
+ },
1408
+ "own": {
1409
+ "type": "boolean"
1410
+ }
1411
+ },
1412
+ "required": [
1413
+ "roles",
1414
+ "kinds"
1415
+ ],
1416
+ "additionalProperties": false
1417
+ }
1418
+ }
1419
+ },
1420
+ "required": [
1421
+ "grants"
1422
+ ],
1423
+ "additionalProperties": false
1424
+ },
1425
+ "modules": {
1426
+ "type": "object",
1427
+ "propertyNames": {
1428
+ "type": "string"
1429
+ },
1430
+ "additionalProperties": {}
1431
+ },
1432
+ "lenses": {
1433
+ "type": "array",
1434
+ "items": {
1435
+ "type": "object",
1436
+ "propertyNames": {
1437
+ "type": "string"
1438
+ },
1439
+ "additionalProperties": {}
1440
+ }
1441
+ },
1442
+ "pages": {
1443
+ "type": "object",
1444
+ "properties": {
1445
+ "order": {
1446
+ "type": "array",
1447
+ "items": {
1448
+ "type": "string"
1449
+ }
1450
+ },
1451
+ "hide": {
1452
+ "type": "array",
1453
+ "items": {
1454
+ "type": "string"
1455
+ }
1456
+ },
1457
+ "first": {
1458
+ "type": "string"
1459
+ },
1460
+ "primary": {
1461
+ "maxItems": 40,
1462
+ "type": "array",
1463
+ "items": {
1464
+ "type": "string",
1465
+ "minLength": 1,
1466
+ "maxLength": 80
1467
+ }
1468
+ },
1469
+ "scene": {
1470
+ "type": "string",
1471
+ "minLength": 1,
1472
+ "maxLength": 40
1473
+ },
1474
+ "pages": {
1475
+ "type": "string",
1476
+ "minLength": 1,
1477
+ "maxLength": 40
1478
+ }
1479
+ },
1480
+ "additionalProperties": {}
1481
+ },
1482
+ "views": {
1483
+ "type": "object",
1484
+ "propertyNames": {
1485
+ "type": "string"
1486
+ },
1487
+ "additionalProperties": {
1488
+ "anyOf": [
1489
+ {
1490
+ "type": "object",
1491
+ "properties": {
1492
+ "card": {
1493
+ "type": "array",
1494
+ "items": {}
1495
+ },
1496
+ "row": {
1497
+ "type": "array",
1498
+ "items": {}
1499
+ },
1500
+ "page": {
1501
+ "type": "array",
1502
+ "items": {}
1503
+ }
1504
+ },
1505
+ "additionalProperties": false
1506
+ },
1507
+ {
1508
+ "type": "array",
1509
+ "items": {}
1510
+ }
1511
+ ]
1512
+ }
1513
+ },
1514
+ "brand": {
1515
+ "type": "object",
1516
+ "properties": {
1517
+ "accent": {
1518
+ "type": "string",
1519
+ "pattern": "^#[0-9a-fA-F]{6}$"
1520
+ },
1521
+ "name": {
1522
+ "type": "string",
1523
+ "minLength": 1,
1524
+ "maxLength": 60
1525
+ },
1526
+ "currency": {
1527
+ "type": "string",
1528
+ "pattern": "^[A-Z]{3}$"
1529
+ },
1530
+ "locale": {
1531
+ "type": "string",
1532
+ "minLength": 2,
1533
+ "maxLength": 35
1534
+ },
1535
+ "logo": {
1536
+ "anyOf": [
1537
+ {
1538
+ "type": "string",
1539
+ "minLength": 1,
1540
+ "maxLength": 65536
1541
+ },
1542
+ {
1543
+ "type": "object",
1544
+ "properties": {
1545
+ "src": {
1546
+ "type": "string",
1547
+ "minLength": 1,
1548
+ "maxLength": 65536
1549
+ },
1550
+ "alt": {
1551
+ "type": "string",
1552
+ "minLength": 1,
1553
+ "maxLength": 120
1554
+ }
1555
+ },
1556
+ "required": [
1557
+ "src"
1558
+ ],
1559
+ "additionalProperties": false
1560
+ }
1561
+ ]
1562
+ },
1563
+ "favicon": {
1564
+ "type": "string",
1565
+ "minLength": 1,
1566
+ "maxLength": 65536
1567
+ },
1568
+ "typography": {
1569
+ "type": "object",
1570
+ "properties": {
1571
+ "display": {
1572
+ "type": "string",
1573
+ "minLength": 1,
1574
+ "maxLength": 200
1575
+ },
1576
+ "body": {
1577
+ "type": "string",
1578
+ "minLength": 1,
1579
+ "maxLength": 200
1580
+ },
1581
+ "mono": {
1582
+ "type": "string",
1583
+ "minLength": 1,
1584
+ "maxLength": 200
1585
+ }
1586
+ },
1587
+ "additionalProperties": false
1588
+ },
1589
+ "shape": {
1590
+ "type": "object",
1591
+ "properties": {
1592
+ "radius": {
1593
+ "type": "number",
1594
+ "minimum": 0,
1595
+ "maximum": 32
1596
+ },
1597
+ "density": {
1598
+ "type": "number",
1599
+ "minimum": 0.75,
1600
+ "maximum": 1.5
1601
+ }
1602
+ },
1603
+ "additionalProperties": false
1604
+ },
1605
+ "accents": {
1606
+ "type": "object",
1607
+ "propertyNames": {
1608
+ "type": "string"
1609
+ },
1610
+ "additionalProperties": {
1611
+ "type": "number",
1612
+ "minimum": 0,
1613
+ "maximum": 360
1614
+ }
1615
+ },
1616
+ "scheme": {
1617
+ "type": "string",
1618
+ "enum": [
1619
+ "light",
1620
+ "dark",
1621
+ "auto"
1622
+ ]
1623
+ }
1624
+ },
1625
+ "additionalProperties": false
1626
+ },
1627
+ "settings": {
1628
+ "type": "array",
1629
+ "items": {
1630
+ "type": "object",
1631
+ "propertyNames": {
1632
+ "type": "string"
1633
+ },
1634
+ "additionalProperties": {}
1635
+ }
1636
+ },
1637
+ "migrations": {
1638
+ "type": "array",
1639
+ "items": {
1640
+ "type": "object",
1641
+ "propertyNames": {
1642
+ "type": "string"
1643
+ },
1644
+ "additionalProperties": {}
1645
+ }
1646
+ }
1647
+ },
1648
+ "required": [
1649
+ "format",
1650
+ "formatVersion",
1651
+ "name",
1652
+ "kinds"
1653
+ ],
1654
+ "additionalProperties": false
1655
+ }