@graview/core 0.1.28 → 0.1.30

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 (647) hide show
  1. package/README.md +17 -0
  2. package/dist/amount-input.d.ts +21 -0
  3. package/dist/amount-input.d.ts.map +1 -0
  4. package/dist/amount-input.js +96 -0
  5. package/dist/amount-input.js.map +1 -0
  6. package/dist/answer-seen.d.ts +38 -0
  7. package/dist/answer-seen.d.ts.map +1 -0
  8. package/dist/answer-seen.js +122 -0
  9. package/dist/answer-seen.js.map +1 -0
  10. package/dist/app-places.d.ts +56 -0
  11. package/dist/app-places.d.ts.map +1 -0
  12. package/dist/app-places.js +203 -0
  13. package/dist/app-places.js.map +1 -0
  14. package/dist/app.d.ts +16 -0
  15. package/dist/app.d.ts.map +1 -1
  16. package/dist/app.js.map +1 -1
  17. package/dist/arrange.d.ts +4 -2
  18. package/dist/arrange.d.ts.map +1 -1
  19. package/dist/arrange.js +4 -2
  20. package/dist/arrange.js.map +1 -1
  21. package/dist/arrangement-words.d.ts +3 -0
  22. package/dist/arrangement-words.d.ts.map +1 -0
  23. package/dist/arrangement-words.js +50 -0
  24. package/dist/arrangement-words.js.map +1 -0
  25. package/dist/arrangement.d.ts +43 -3
  26. package/dist/arrangement.d.ts.map +1 -1
  27. package/dist/arrangement.js +69 -31
  28. package/dist/arrangement.js.map +1 -1
  29. package/dist/arranging.d.ts.map +1 -1
  30. package/dist/arranging.js +36 -14
  31. package/dist/arranging.js.map +1 -1
  32. package/dist/bind.d.ts +3 -0
  33. package/dist/bind.d.ts.map +1 -1
  34. package/dist/bind.js.map +1 -1
  35. package/dist/blocks.d.ts +1 -1
  36. package/dist/blocks.d.ts.map +1 -1
  37. package/dist/capabilities.js +1 -1
  38. package/dist/capabilities.js.map +1 -1
  39. package/dist/check.d.ts +3 -0
  40. package/dist/check.d.ts.map +1 -1
  41. package/dist/check.js +3 -0
  42. package/dist/check.js.map +1 -1
  43. package/dist/city.d.ts +58 -50
  44. package/dist/city.d.ts.map +1 -1
  45. package/dist/city.js +160 -147
  46. package/dist/city.js.map +1 -1
  47. package/dist/cli/check/brand.d.ts.map +1 -1
  48. package/dist/cli/check/brand.js +30 -2
  49. package/dist/cli/check/brand.js.map +1 -1
  50. package/dist/cli/check/clock-rules.d.ts +4 -0
  51. package/dist/cli/check/clock-rules.d.ts.map +1 -0
  52. package/dist/cli/check/clock-rules.js +26 -0
  53. package/dist/cli/check/clock-rules.js.map +1 -0
  54. package/dist/cli/check/field-sight.d.ts +11 -0
  55. package/dist/cli/check/field-sight.d.ts.map +1 -0
  56. package/dist/cli/check/field-sight.js +113 -0
  57. package/dist/cli/check/field-sight.js.map +1 -0
  58. package/dist/cli/check/index.d.ts +2 -0
  59. package/dist/cli/check/index.d.ts.map +1 -1
  60. package/dist/cli/check/index.js +2 -0
  61. package/dist/cli/check/index.js.map +1 -1
  62. package/dist/cli/check/lenses.d.ts +1 -1
  63. package/dist/cli/check/lenses.d.ts.map +1 -1
  64. package/dist/cli/check/lenses.js +48 -2
  65. package/dist/cli/check/lenses.js.map +1 -1
  66. package/dist/cli/check/relations.d.ts +23 -0
  67. package/dist/cli/check/relations.d.ts.map +1 -1
  68. package/dist/cli/check/relations.js +55 -4
  69. package/dist/cli/check/relations.js.map +1 -1
  70. package/dist/cli/check.d.ts.map +1 -1
  71. package/dist/cli/check.js +7 -4
  72. package/dist/cli/check.js.map +1 -1
  73. package/dist/cli/create.d.ts.map +1 -1
  74. package/dist/cli/create.js +32 -0
  75. package/dist/cli/create.js.map +1 -1
  76. package/dist/cli/describe.d.ts.map +1 -1
  77. package/dist/cli/describe.js +71 -7
  78. package/dist/cli/describe.js.map +1 -1
  79. package/dist/cli/docs.d.ts.map +1 -1
  80. package/dist/cli/docs.js +4 -3
  81. package/dist/cli/docs.js.map +1 -1
  82. package/dist/cli/doctor.d.ts +18 -1
  83. package/dist/cli/doctor.d.ts.map +1 -1
  84. package/dist/cli/doctor.js +58 -5
  85. package/dist/cli/doctor.js.map +1 -1
  86. package/dist/cli/document-schema.d.ts +2 -0
  87. package/dist/cli/document-schema.d.ts.map +1 -1
  88. package/dist/cli/document-schema.js +154 -5
  89. package/dist/cli/document-schema.js.map +1 -1
  90. package/dist/cli/index.d.ts +1 -1
  91. package/dist/cli/index.d.ts.map +1 -1
  92. package/dist/cli/types.d.ts.map +1 -1
  93. package/dist/cli/types.js +16 -2
  94. package/dist/cli/types.js.map +1 -1
  95. package/dist/clock-readers.d.ts +18 -0
  96. package/dist/clock-readers.d.ts.map +1 -0
  97. package/dist/clock-readers.js +70 -0
  98. package/dist/clock-readers.js.map +1 -0
  99. package/dist/clock.d.ts +30 -0
  100. package/dist/clock.d.ts.map +1 -0
  101. package/dist/clock.js +41 -0
  102. package/dist/clock.js.map +1 -0
  103. package/dist/columns.d.ts.map +1 -1
  104. package/dist/columns.js +2 -1
  105. package/dist/columns.js.map +1 -1
  106. package/dist/conformance/fixtures.d.ts.map +1 -1
  107. package/dist/conformance/fixtures.js +491 -43
  108. package/dist/conformance/fixtures.js.map +1 -1
  109. package/dist/coverage-words.d.ts +18 -0
  110. package/dist/coverage-words.d.ts.map +1 -0
  111. package/dist/coverage-words.js +18 -0
  112. package/dist/coverage-words.js.map +1 -0
  113. package/dist/days.d.ts +53 -4
  114. package/dist/days.d.ts.map +1 -1
  115. package/dist/days.js +136 -16
  116. package/dist/days.js.map +1 -1
  117. package/dist/describe.d.ts +1 -0
  118. package/dist/describe.d.ts.map +1 -1
  119. package/dist/describe.js +1 -0
  120. package/dist/describe.js.map +1 -1
  121. package/dist/document/act-findings.d.ts.map +1 -1
  122. package/dist/document/act-findings.js +32 -4
  123. package/dist/document/act-findings.js.map +1 -1
  124. package/dist/document/amount.d.ts +4 -0
  125. package/dist/document/amount.d.ts.map +1 -0
  126. package/dist/document/amount.js +22 -0
  127. package/dist/document/amount.js.map +1 -0
  128. package/dist/document/block-context.d.ts.map +1 -1
  129. package/dist/document/block-context.js +1 -0
  130. package/dist/document/block-context.js.map +1 -1
  131. package/dist/document/blocks.d.ts +33 -10
  132. package/dist/document/blocks.d.ts.map +1 -1
  133. package/dist/document/blocks.js +139 -25
  134. package/dist/document/blocks.js.map +1 -1
  135. package/dist/document/brand-check.d.ts +5 -0
  136. package/dist/document/brand-check.d.ts.map +1 -1
  137. package/dist/document/brand-check.js +16 -2
  138. package/dist/document/brand-check.js.map +1 -1
  139. package/dist/document/compile-checked.d.ts.map +1 -1
  140. package/dist/document/compile-checked.js +12 -4
  141. package/dist/document/compile-checked.js.map +1 -1
  142. package/dist/document/compile.d.ts +0 -2
  143. package/dist/document/compile.d.ts.map +1 -1
  144. package/dist/document/compile.js +49 -24
  145. package/dist/document/compile.js.map +1 -1
  146. package/dist/document/compiled.d.ts +6 -2
  147. package/dist/document/compiled.d.ts.map +1 -1
  148. package/dist/document/compiled.js +94 -26
  149. package/dist/document/compiled.js.map +1 -1
  150. package/dist/document/computed-values.d.ts +3 -0
  151. package/dist/document/computed-values.d.ts.map +1 -1
  152. package/dist/document/computed-values.js +12 -2
  153. package/dist/document/computed-values.js.map +1 -1
  154. package/dist/document/describe-coverage.d.ts +3 -0
  155. package/dist/document/describe-coverage.d.ts.map +1 -1
  156. package/dist/document/describe-coverage.js +14 -6
  157. package/dist/document/describe-coverage.js.map +1 -1
  158. package/dist/document/describe-place.d.ts +6 -2
  159. package/dist/document/describe-place.d.ts.map +1 -1
  160. package/dist/document/describe-place.js +17 -9
  161. package/dist/document/describe-place.js.map +1 -1
  162. package/dist/document/diff.d.ts +2 -0
  163. package/dist/document/diff.d.ts.map +1 -1
  164. package/dist/document/diff.js +70 -11
  165. package/dist/document/diff.js.map +1 -1
  166. package/dist/document/durations.d.ts +8 -0
  167. package/dist/document/durations.d.ts.map +1 -0
  168. package/dist/document/durations.js +82 -0
  169. package/dist/document/durations.js.map +1 -0
  170. package/dist/document/edit.d.ts +1 -1
  171. package/dist/document/edit.d.ts.map +1 -1
  172. package/dist/document/edit.js +436 -27
  173. package/dist/document/edit.js.map +1 -1
  174. package/dist/document/expr/evaluate.d.ts +26 -1
  175. package/dist/document/expr/evaluate.d.ts.map +1 -1
  176. package/dist/document/expr/evaluate.js +55 -4
  177. package/dist/document/expr/evaluate.js.map +1 -1
  178. package/dist/document/field-spec.d.ts.map +1 -1
  179. package/dist/document/field-spec.js +15 -1
  180. package/dist/document/field-spec.js.map +1 -1
  181. package/dist/document/format-findings.d.ts +4 -0
  182. package/dist/document/format-findings.d.ts.map +1 -0
  183. package/dist/document/format-findings.js +39 -0
  184. package/dist/document/format-findings.js.map +1 -0
  185. package/dist/document/format-rules.d.ts +8 -0
  186. package/dist/document/format-rules.d.ts.map +1 -0
  187. package/dist/document/format-rules.js +19 -0
  188. package/dist/document/format-rules.js.map +1 -0
  189. package/dist/document/format-words.d.ts +9 -0
  190. package/dist/document/format-words.d.ts.map +1 -0
  191. package/dist/document/format-words.js +31 -0
  192. package/dist/document/format-words.js.map +1 -0
  193. package/dist/document/framework-path.d.ts +11 -0
  194. package/dist/document/framework-path.d.ts.map +1 -0
  195. package/dist/document/framework-path.js +122 -0
  196. package/dist/document/framework-path.js.map +1 -0
  197. package/dist/document/graview-template.d.ts +2 -2
  198. package/dist/document/index.d.ts +2 -2
  199. package/dist/document/index.d.ts.map +1 -1
  200. package/dist/document/index.js +1 -1
  201. package/dist/document/index.js.map +1 -1
  202. package/dist/document/linked-findings.d.ts +5 -0
  203. package/dist/document/linked-findings.d.ts.map +1 -0
  204. package/dist/document/linked-findings.js +100 -0
  205. package/dist/document/linked-findings.js.map +1 -0
  206. package/dist/document/migrate.d.ts +1 -0
  207. package/dist/document/migrate.d.ts.map +1 -1
  208. package/dist/document/migrate.js +48 -1
  209. package/dist/document/migrate.js.map +1 -1
  210. package/dist/document/money.d.ts +14 -0
  211. package/dist/document/money.d.ts.map +1 -0
  212. package/dist/document/money.js +14 -0
  213. package/dist/document/money.js.map +1 -0
  214. package/dist/document/policy-words.d.ts +4 -0
  215. package/dist/document/policy-words.d.ts.map +1 -1
  216. package/dist/document/policy-words.js +34 -4
  217. package/dist/document/policy-words.js.map +1 -1
  218. package/dist/document/right-names.d.ts +10 -0
  219. package/dist/document/right-names.d.ts.map +1 -0
  220. package/dist/document/right-names.js +57 -0
  221. package/dist/document/right-names.js.map +1 -0
  222. package/dist/document/rule-line.d.ts.map +1 -1
  223. package/dist/document/rule-line.js +16 -12
  224. package/dist/document/rule-line.js.map +1 -1
  225. package/dist/document/rules.d.ts.map +1 -1
  226. package/dist/document/rules.js +15 -6
  227. package/dist/document/rules.js.map +1 -1
  228. package/dist/document/schema.d.ts +142 -22
  229. package/dist/document/schema.d.ts.map +1 -1
  230. package/dist/document/schema.js +86 -10
  231. package/dist/document/schema.js.map +1 -1
  232. package/dist/document/template-parse.d.ts.map +1 -1
  233. package/dist/document/template-parse.js +45 -5
  234. package/dist/document/template-parse.js.map +1 -1
  235. package/dist/document/template.d.ts +16 -14
  236. package/dist/document/template.d.ts.map +1 -1
  237. package/dist/document/template.js +52 -30
  238. package/dist/document/template.js.map +1 -1
  239. package/dist/document/thumbnail.d.ts.map +1 -1
  240. package/dist/document/thumbnail.js +4 -3
  241. package/dist/document/thumbnail.js.map +1 -1
  242. package/dist/document/to-document.d.ts +0 -1
  243. package/dist/document/to-document.d.ts.map +1 -1
  244. package/dist/document/to-document.js +30 -2
  245. package/dist/document/to-document.js.map +1 -1
  246. package/dist/document/view-specs.d.ts.map +1 -1
  247. package/dist/document/view-specs.js +3 -0
  248. package/dist/document/view-specs.js.map +1 -1
  249. package/dist/document/views.d.ts +38 -4
  250. package/dist/document/views.d.ts.map +1 -1
  251. package/dist/document/views.js +81 -26
  252. package/dist/document/views.js.map +1 -1
  253. package/dist/document.schema.json +1184 -141
  254. package/dist/excerpt-of.d.ts +14 -0
  255. package/dist/excerpt-of.d.ts.map +1 -0
  256. package/dist/excerpt-of.js +120 -0
  257. package/dist/excerpt-of.js.map +1 -0
  258. package/dist/excerpt.d.ts +9 -0
  259. package/dist/excerpt.d.ts.map +1 -0
  260. package/dist/excerpt.js +43 -0
  261. package/dist/excerpt.js.map +1 -0
  262. package/dist/field-sight.d.ts +33 -0
  263. package/dist/field-sight.d.ts.map +1 -0
  264. package/dist/field-sight.js +313 -0
  265. package/dist/field-sight.js.map +1 -0
  266. package/dist/forms.d.ts +2 -0
  267. package/dist/forms.d.ts.map +1 -1
  268. package/dist/forms.js +3 -0
  269. package/dist/forms.js.map +1 -1
  270. package/dist/graph/archived.d.ts +34 -0
  271. package/dist/graph/archived.d.ts.map +1 -0
  272. package/dist/graph/archived.js +25 -0
  273. package/dist/graph/archived.js.map +1 -0
  274. package/dist/graph/diff.d.ts +16 -0
  275. package/dist/graph/diff.d.ts.map +1 -1
  276. package/dist/graph/diff.js +20 -1
  277. package/dist/graph/diff.js.map +1 -1
  278. package/dist/graph/graph.d.ts +37 -13
  279. package/dist/graph/graph.d.ts.map +1 -1
  280. package/dist/graph/graph.js +84 -41
  281. package/dist/graph/graph.js.map +1 -1
  282. package/dist/graph/tracked.d.ts +8 -8
  283. package/dist/graph/tracked.d.ts.map +1 -1
  284. package/dist/graph/tracked.js +15 -20
  285. package/dist/graph/tracked.js.map +1 -1
  286. package/dist/graph/types.d.ts +16 -8
  287. package/dist/graph/types.d.ts.map +1 -1
  288. package/dist/graph/types.js.map +1 -1
  289. package/dist/grid-sort.d.ts +20 -0
  290. package/dist/grid-sort.d.ts.map +1 -0
  291. package/dist/grid-sort.js +58 -0
  292. package/dist/grid-sort.js.map +1 -0
  293. package/dist/history.d.ts +88 -0
  294. package/dist/history.d.ts.map +1 -0
  295. package/dist/history.js +146 -0
  296. package/dist/history.js.map +1 -0
  297. package/dist/import/coerce.d.ts +45 -0
  298. package/dist/import/coerce.d.ts.map +1 -0
  299. package/dist/import/coerce.js +252 -0
  300. package/dist/import/coerce.js.map +1 -0
  301. package/dist/import/csv.d.ts +16 -0
  302. package/dist/import/csv.d.ts.map +1 -0
  303. package/dist/import/csv.js +77 -0
  304. package/dist/import/csv.js.map +1 -0
  305. package/dist/import/index.d.ts +17 -0
  306. package/dist/import/index.d.ts.map +1 -0
  307. package/dist/import/index.js +13 -0
  308. package/dist/import/index.js.map +1 -0
  309. package/dist/import/mapping.d.ts +99 -0
  310. package/dist/import/mapping.d.ts.map +1 -0
  311. package/dist/import/mapping.js +182 -0
  312. package/dist/import/mapping.js.map +1 -0
  313. package/dist/import/rows.d.ts +116 -0
  314. package/dist/import/rows.d.ts.map +1 -0
  315. package/dist/import/rows.js +584 -0
  316. package/dist/import/rows.js.map +1 -0
  317. package/dist/index.d.ts +53 -26
  318. package/dist/index.d.ts.map +1 -1
  319. package/dist/index.js +38 -18
  320. package/dist/index.js.map +1 -1
  321. package/dist/invariants/engine.d.ts +5 -1
  322. package/dist/invariants/engine.d.ts.map +1 -1
  323. package/dist/invariants/engine.js +4 -3
  324. package/dist/invariants/engine.js.map +1 -1
  325. package/dist/invariants/types.d.ts +18 -3
  326. package/dist/invariants/types.d.ts.map +1 -1
  327. package/dist/json-schema.d.ts +1 -0
  328. package/dist/json-schema.d.ts.map +1 -1
  329. package/dist/json-schema.js +2 -0
  330. package/dist/json-schema.js.map +1 -1
  331. package/dist/kind-list.d.ts +78 -0
  332. package/dist/kind-list.d.ts.map +1 -0
  333. package/dist/kind-list.js +176 -0
  334. package/dist/kind-list.js.map +1 -0
  335. package/dist/labels.d.ts.map +1 -1
  336. package/dist/labels.js +2 -1
  337. package/dist/labels.js.map +1 -1
  338. package/dist/lines.d.ts +1 -0
  339. package/dist/lines.d.ts.map +1 -1
  340. package/dist/lines.js +5 -3
  341. package/dist/lines.js.map +1 -1
  342. package/dist/linked.d.ts +95 -0
  343. package/dist/linked.d.ts.map +1 -0
  344. package/dist/linked.js +181 -0
  345. package/dist/linked.js.map +1 -0
  346. package/dist/markdown.d.ts +102 -0
  347. package/dist/markdown.d.ts.map +1 -0
  348. package/dist/markdown.js +460 -0
  349. package/dist/markdown.js.map +1 -0
  350. package/dist/mutations/arg-shape.d.ts +95 -0
  351. package/dist/mutations/arg-shape.d.ts.map +1 -0
  352. package/dist/mutations/arg-shape.js +101 -0
  353. package/dist/mutations/arg-shape.js.map +1 -0
  354. package/dist/mutations/define-mutation.d.ts +48 -2
  355. package/dist/mutations/define-mutation.d.ts.map +1 -1
  356. package/dist/mutations/define-mutation.js +103 -36
  357. package/dist/mutations/define-mutation.js.map +1 -1
  358. package/dist/mutations/derive-edits.d.ts +16 -1
  359. package/dist/mutations/derive-edits.d.ts.map +1 -1
  360. package/dist/mutations/derive-edits.js +146 -56
  361. package/dist/mutations/derive-edits.js.map +1 -1
  362. package/dist/mutations/derive-repeats.d.ts +8 -0
  363. package/dist/mutations/derive-repeats.d.ts.map +1 -0
  364. package/dist/mutations/derive-repeats.js +118 -0
  365. package/dist/mutations/derive-repeats.js.map +1 -0
  366. package/dist/mutations/derived-names.d.ts +22 -0
  367. package/dist/mutations/derived-names.d.ts.map +1 -0
  368. package/dist/mutations/derived-names.js +21 -0
  369. package/dist/mutations/derived-names.js.map +1 -0
  370. package/dist/mutations/edit-start.d.ts +28 -0
  371. package/dist/mutations/edit-start.d.ts.map +1 -0
  372. package/dist/mutations/edit-start.js +24 -0
  373. package/dist/mutations/edit-start.js.map +1 -0
  374. package/dist/mutations/form.d.ts +33 -1
  375. package/dist/mutations/form.d.ts.map +1 -1
  376. package/dist/mutations/form.js +23 -2
  377. package/dist/mutations/form.js.map +1 -1
  378. package/dist/mutations/invalid-arguments.d.ts +14 -0
  379. package/dist/mutations/invalid-arguments.d.ts.map +1 -0
  380. package/dist/mutations/invalid-arguments.js +18 -0
  381. package/dist/mutations/invalid-arguments.js.map +1 -0
  382. package/dist/mutations/keep-link.d.ts +27 -0
  383. package/dist/mutations/keep-link.d.ts.map +1 -0
  384. package/dist/mutations/keep-link.js +56 -0
  385. package/dist/mutations/keep-link.js.map +1 -0
  386. package/dist/mutations/kept-arguments.d.ts +26 -0
  387. package/dist/mutations/kept-arguments.d.ts.map +1 -0
  388. package/dist/mutations/kept-arguments.js +77 -0
  389. package/dist/mutations/kept-arguments.js.map +1 -0
  390. package/dist/mutations/node-ref.d.ts +0 -80
  391. package/dist/mutations/node-ref.d.ts.map +1 -1
  392. package/dist/mutations/node-ref.js +0 -93
  393. package/dist/mutations/node-ref.js.map +1 -1
  394. package/dist/mutations/types.d.ts +17 -1
  395. package/dist/mutations/types.d.ts.map +1 -1
  396. package/dist/mutations/words.d.ts +0 -13
  397. package/dist/mutations/words.d.ts.map +1 -1
  398. package/dist/mutations/words.js +1 -12
  399. package/dist/mutations/words.js.map +1 -1
  400. package/dist/navigate.d.ts +13 -0
  401. package/dist/navigate.d.ts.map +1 -0
  402. package/dist/navigate.js +13 -0
  403. package/dist/navigate.js.map +1 -0
  404. package/dist/ops/digest.d.ts +33 -0
  405. package/dist/ops/digest.d.ts.map +1 -0
  406. package/dist/ops/digest.js +47 -0
  407. package/dist/ops/digest.js.map +1 -0
  408. package/dist/ops/kept-fields.d.ts +7 -0
  409. package/dist/ops/kept-fields.d.ts.map +1 -0
  410. package/dist/ops/kept-fields.js +24 -0
  411. package/dist/ops/kept-fields.js.map +1 -0
  412. package/dist/ops/lineage.d.ts +43 -0
  413. package/dist/ops/lineage.d.ts.map +1 -0
  414. package/dist/ops/lineage.js +27 -0
  415. package/dist/ops/lineage.js.map +1 -0
  416. package/dist/ops/log.d.ts +6 -0
  417. package/dist/ops/log.d.ts.map +1 -1
  418. package/dist/ops/log.js +20 -12
  419. package/dist/ops/log.js.map +1 -1
  420. package/dist/ops/provenance.d.ts +68 -0
  421. package/dist/ops/provenance.d.ts.map +1 -0
  422. package/dist/ops/provenance.js +83 -0
  423. package/dist/ops/provenance.js.map +1 -0
  424. package/dist/ops/suggestions.d.ts +26 -0
  425. package/dist/ops/suggestions.d.ts.map +1 -0
  426. package/dist/ops/suggestions.js +21 -0
  427. package/dist/ops/suggestions.js.map +1 -0
  428. package/dist/ops/tidying.d.ts +48 -0
  429. package/dist/ops/tidying.d.ts.map +1 -0
  430. package/dist/ops/tidying.js +84 -0
  431. package/dist/ops/tidying.js.map +1 -0
  432. package/dist/ops/types.d.ts +42 -0
  433. package/dist/ops/types.d.ts.map +1 -1
  434. package/dist/ops/undo.d.ts.map +1 -1
  435. package/dist/ops/undo.js +10 -0
  436. package/dist/ops/undo.js.map +1 -1
  437. package/dist/ops/withheld.d.ts +25 -2
  438. package/dist/ops/withheld.d.ts.map +1 -1
  439. package/dist/ops/withheld.js +6 -15
  440. package/dist/ops/withheld.js.map +1 -1
  441. package/dist/past.d.ts +35 -0
  442. package/dist/past.d.ts.map +1 -0
  443. package/dist/past.js +173 -0
  444. package/dist/past.js.map +1 -0
  445. package/dist/permissions/policy.d.ts +13 -1
  446. package/dist/permissions/policy.d.ts.map +1 -1
  447. package/dist/permissions/policy.js +44 -9
  448. package/dist/permissions/policy.js.map +1 -1
  449. package/dist/permissions/sight.d.ts +40 -2
  450. package/dist/permissions/sight.d.ts.map +1 -1
  451. package/dist/permissions/sight.js +25 -2
  452. package/dist/permissions/sight.js.map +1 -1
  453. package/dist/permissions/types.d.ts +21 -0
  454. package/dist/permissions/types.d.ts.map +1 -1
  455. package/dist/permissions/types.js.map +1 -1
  456. package/dist/places.d.ts +6 -51
  457. package/dist/places.d.ts.map +1 -1
  458. package/dist/places.js +50 -144
  459. package/dist/places.js.map +1 -1
  460. package/dist/provenance.d.ts +14 -0
  461. package/dist/provenance.d.ts.map +1 -0
  462. package/dist/provenance.js +13 -0
  463. package/dist/provenance.js.map +1 -0
  464. package/dist/repeat-words.d.ts +13 -0
  465. package/dist/repeat-words.d.ts.map +1 -0
  466. package/dist/repeat-words.js +56 -0
  467. package/dist/repeat-words.js.map +1 -0
  468. package/dist/repeat.d.ts +59 -0
  469. package/dist/repeat.d.ts.map +1 -0
  470. package/dist/repeat.js +155 -0
  471. package/dist/repeat.js.map +1 -0
  472. package/dist/scaffold/agents.d.ts.map +1 -1
  473. package/dist/scaffold/agents.js +13 -0
  474. package/dist/scaffold/agents.js.map +1 -1
  475. package/dist/scaffold/project.d.ts.map +1 -1
  476. package/dist/scaffold/project.js +18 -0
  477. package/dist/scaffold/project.js.map +1 -1
  478. package/dist/scaffold/ui.d.ts.map +1 -1
  479. package/dist/scaffold/ui.js +17 -7
  480. package/dist/scaffold/ui.js.map +1 -1
  481. package/dist/scene-districts.d.ts +2 -1
  482. package/dist/scene-districts.d.ts.map +1 -1
  483. package/dist/scene-districts.js +2 -1
  484. package/dist/scene-districts.js.map +1 -1
  485. package/dist/scene.d.ts +4 -2
  486. package/dist/scene.d.ts.map +1 -1
  487. package/dist/scene.js +2 -1
  488. package/dist/scene.js.map +1 -1
  489. package/dist/schema/amount-mark.d.ts +13 -0
  490. package/dist/schema/amount-mark.d.ts.map +1 -0
  491. package/dist/schema/amount-mark.js +20 -0
  492. package/dist/schema/amount-mark.js.map +1 -0
  493. package/dist/schema/amount-words.d.ts +12 -0
  494. package/dist/schema/amount-words.d.ts.map +1 -0
  495. package/dist/schema/amount-words.js +31 -0
  496. package/dist/schema/amount-words.js.map +1 -0
  497. package/dist/schema/app-address.d.ts +5 -0
  498. package/dist/schema/app-address.d.ts.map +1 -0
  499. package/dist/schema/app-address.js +10 -0
  500. package/dist/schema/app-address.js.map +1 -0
  501. package/dist/schema/app-link-field.d.ts +4 -0
  502. package/dist/schema/app-link-field.d.ts.map +1 -0
  503. package/dist/schema/app-link-field.js +19 -0
  504. package/dist/schema/app-link-field.js.map +1 -0
  505. package/dist/schema/app-link.d.ts +38 -0
  506. package/dist/schema/app-link.d.ts.map +1 -0
  507. package/dist/schema/app-link.js +38 -0
  508. package/dist/schema/app-link.js.map +1 -0
  509. package/dist/schema/define-node.d.ts +39 -92
  510. package/dist/schema/define-node.d.ts.map +1 -1
  511. package/dist/schema/define-node.js +8 -246
  512. package/dist/schema/define-node.js.map +1 -1
  513. package/dist/schema/field-words.d.ts +45 -0
  514. package/dist/schema/field-words.d.ts.map +1 -0
  515. package/dist/schema/field-words.js +124 -0
  516. package/dist/schema/field-words.js.map +1 -0
  517. package/dist/schema/files.d.ts +8 -0
  518. package/dist/schema/files.d.ts.map +1 -1
  519. package/dist/schema/files.js.map +1 -1
  520. package/dist/schema/json-schema.d.ts +6 -1
  521. package/dist/schema/json-schema.d.ts.map +1 -1
  522. package/dist/schema/json-schema.js +101 -2
  523. package/dist/schema/json-schema.js.map +1 -1
  524. package/dist/schema/linked-field.d.ts +6 -0
  525. package/dist/schema/linked-field.d.ts.map +1 -0
  526. package/dist/schema/linked-field.js +34 -0
  527. package/dist/schema/linked-field.js.map +1 -0
  528. package/dist/schema/linked-reads.d.ts +20 -0
  529. package/dist/schema/linked-reads.d.ts.map +1 -0
  530. package/dist/schema/linked-reads.js +69 -0
  531. package/dist/schema/linked-reads.js.map +1 -0
  532. package/dist/schema/linked-schema.d.ts +5 -0
  533. package/dist/schema/linked-schema.d.ts.map +1 -0
  534. package/dist/schema/linked-schema.js +9 -0
  535. package/dist/schema/linked-schema.js.map +1 -0
  536. package/dist/schema/linked.d.ts +147 -0
  537. package/dist/schema/linked.d.ts.map +1 -0
  538. package/dist/schema/linked.js +151 -0
  539. package/dist/schema/linked.js.map +1 -0
  540. package/dist/schema/markdown-field.d.ts +4 -0
  541. package/dist/schema/markdown-field.d.ts.map +1 -0
  542. package/dist/schema/markdown-field.js +20 -0
  543. package/dist/schema/markdown-field.js.map +1 -0
  544. package/dist/schema/markdown.d.ts +6 -0
  545. package/dist/schema/markdown.d.ts.map +1 -0
  546. package/dist/schema/markdown.js +27 -0
  547. package/dist/schema/markdown.js.map +1 -0
  548. package/dist/schema/reading.d.ts +86 -0
  549. package/dist/schema/reading.d.ts.map +1 -0
  550. package/dist/schema/reading.js +325 -0
  551. package/dist/schema/reading.js.map +1 -0
  552. package/dist/schema/repeat-field.d.ts +5 -0
  553. package/dist/schema/repeat-field.d.ts.map +1 -0
  554. package/dist/schema/repeat-field.js +20 -0
  555. package/dist/schema/repeat-field.js.map +1 -0
  556. package/dist/schema/schema.d.ts.map +1 -1
  557. package/dist/schema/schema.js +12 -1
  558. package/dist/schema/schema.js.map +1 -1
  559. package/dist/schema/to-json-schema.d.ts +14 -0
  560. package/dist/schema/to-json-schema.d.ts.map +1 -0
  561. package/dist/schema/to-json-schema.js +616 -0
  562. package/dist/schema/to-json-schema.js.map +1 -0
  563. package/dist/schema/typed-field-builders.d.ts +8 -0
  564. package/dist/schema/typed-field-builders.d.ts.map +1 -0
  565. package/dist/schema/typed-field-builders.js +30 -0
  566. package/dist/schema/typed-field-builders.js.map +1 -0
  567. package/dist/schema/typed-field-of.d.ts +4 -0
  568. package/dist/schema/typed-field-of.d.ts.map +1 -0
  569. package/dist/schema/typed-field-of.js +14 -0
  570. package/dist/schema/typed-field-of.js.map +1 -0
  571. package/dist/schema/typed-fields.d.ts +11 -0
  572. package/dist/schema/typed-fields.d.ts.map +1 -0
  573. package/dist/schema/typed-fields.js +16 -0
  574. package/dist/schema/typed-fields.js.map +1 -0
  575. package/dist/schema/types.d.ts +31 -0
  576. package/dist/schema/types.d.ts.map +1 -1
  577. package/dist/schema/value-words.d.ts +21 -0
  578. package/dist/schema/value-words.d.ts.map +1 -0
  579. package/dist/schema/value-words.js +32 -0
  580. package/dist/schema/value-words.js.map +1 -0
  581. package/dist/search.d.ts +91 -4
  582. package/dist/search.d.ts.map +1 -1
  583. package/dist/search.js +317 -54
  584. package/dist/search.js.map +1 -1
  585. package/dist/seat-of.d.ts +9 -0
  586. package/dist/seat-of.d.ts.map +1 -0
  587. package/dist/seat-of.js +14 -0
  588. package/dist/seat-of.js.map +1 -0
  589. package/dist/seat.d.ts +19 -0
  590. package/dist/seat.d.ts.map +1 -0
  591. package/dist/seat.js +19 -0
  592. package/dist/seat.js.map +1 -0
  593. package/dist/seen.d.ts +15 -45
  594. package/dist/seen.d.ts.map +1 -1
  595. package/dist/seen.js +49 -135
  596. package/dist/seen.js.map +1 -1
  597. package/dist/store.d.ts +104 -1
  598. package/dist/store.d.ts.map +1 -1
  599. package/dist/store.js +214 -30
  600. package/dist/store.js.map +1 -1
  601. package/dist/theme/derive.d.ts +16 -0
  602. package/dist/theme/derive.d.ts.map +1 -1
  603. package/dist/theme/derive.js +14 -0
  604. package/dist/theme/derive.js.map +1 -1
  605. package/dist/theme/marks.d.ts +19 -2
  606. package/dist/theme/marks.d.ts.map +1 -1
  607. package/dist/theme/marks.js +67 -2
  608. package/dist/theme/marks.js.map +1 -1
  609. package/dist/theme/types.d.ts +14 -3
  610. package/dist/theme/types.d.ts.map +1 -1
  611. package/dist/theme/types.js.map +1 -1
  612. package/dist/tidying.d.ts +62 -0
  613. package/dist/tidying.d.ts.map +1 -0
  614. package/dist/tidying.js +131 -0
  615. package/dist/tidying.js.map +1 -0
  616. package/dist/typed.d.ts +12 -3
  617. package/dist/typed.d.ts.map +1 -1
  618. package/dist/typed.js.map +1 -1
  619. package/dist/validate-graph.d.ts.map +1 -1
  620. package/dist/validate-graph.js +3 -10
  621. package/dist/validate-graph.js.map +1 -1
  622. package/dist/version.d.ts +1 -1
  623. package/dist/version.js +1 -1
  624. package/dist/via.d.ts.map +1 -1
  625. package/dist/via.js +2 -1
  626. package/dist/via.js.map +1 -1
  627. package/dist/views/address.d.ts +13 -0
  628. package/dist/views/address.d.ts.map +1 -0
  629. package/dist/views/address.js +29 -0
  630. package/dist/views/address.js.map +1 -0
  631. package/dist/views/types.d.ts +106 -8
  632. package/dist/views/types.d.ts.map +1 -1
  633. package/dist/views/types.js +24 -4
  634. package/dist/views/types.js.map +1 -1
  635. package/dist/village.d.ts +63 -0
  636. package/dist/village.d.ts.map +1 -0
  637. package/dist/village.js +143 -0
  638. package/dist/village.js.map +1 -0
  639. package/dist/watched.d.ts +12 -45
  640. package/dist/watched.d.ts.map +1 -1
  641. package/dist/watched.js +7 -119
  642. package/dist/watched.js.map +1 -1
  643. package/dist/words.d.ts +33 -0
  644. package/dist/words.d.ts.map +1 -0
  645. package/dist/words.js +36 -0
  646. package/dist/words.js.map +1 -0
  647. package/package.json +57 -2
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://unpkg.com/@graview/core@0.1.28/dist/document.schema.json",
4
- "title": "Graview declaration document, format 1 (@graview/core 0.1.28)",
3
+ "$id": "https://unpkg.com/@graview/core@0.1.30/dist/document.schema.json",
4
+ "title": "Graview declaration document, format 1 (@graview/core 0.1.30)",
5
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
6
  "type": "object",
7
7
  "properties": {
@@ -35,7 +35,8 @@
35
35
  "type": "object",
36
36
  "propertyNames": {
37
37
  "type": "string",
38
- "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
38
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$",
39
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
39
40
  },
40
41
  "additionalProperties": {
41
42
  "type": "object",
@@ -77,7 +78,8 @@
77
78
  "__proto__",
78
79
  "toLocaleString"
79
80
  ]
80
- }
81
+ },
82
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
81
83
  },
82
84
  "additionalProperties": {
83
85
  "type": "object",
@@ -97,7 +99,11 @@
97
99
  "url",
98
100
  "email",
99
101
  "image",
100
- "file"
102
+ "file",
103
+ "app-link",
104
+ "phone",
105
+ "place",
106
+ "duration"
101
107
  ]
102
108
  },
103
109
  "required": {
@@ -143,7 +149,8 @@
143
149
  "enum": [
144
150
  "money",
145
151
  "percent",
146
- "duration"
152
+ "duration",
153
+ "markdown"
147
154
  ]
148
155
  },
149
156
  "min": {
@@ -158,6 +165,9 @@
158
165
  "renamedFrom": {
159
166
  "type": "string",
160
167
  "pattern": "^[a-z][A-Za-z0-9]*$"
168
+ },
169
+ "repeats": {
170
+ "type": "boolean"
161
171
  }
162
172
  },
163
173
  "required": [
@@ -204,7 +214,8 @@
204
214
  }
205
215
  ]
206
216
  },
207
- "minProperties": 1
217
+ "minProperties": 1,
218
+ "description": "The kind's fields, by name. Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
208
219
  },
209
220
  "label": {
210
221
  "type": "string",
@@ -239,7 +250,8 @@
239
250
  "__proto__",
240
251
  "toLocaleString"
241
252
  ]
242
- }
253
+ },
254
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
243
255
  },
244
256
  "retired": {
245
257
  "minItems": 1,
@@ -287,7 +299,8 @@
287
299
  "__proto__",
288
300
  "toLocaleString"
289
301
  ]
290
- }
302
+ },
303
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
291
304
  }
292
305
  },
293
306
  "page": {
@@ -317,7 +330,8 @@
317
330
  "__proto__",
318
331
  "toLocaleString"
319
332
  ]
320
- }
333
+ },
334
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
321
335
  }
322
336
  },
323
337
  "groups": {
@@ -356,7 +370,8 @@
356
370
  "__proto__",
357
371
  "toLocaleString"
358
372
  ]
359
- }
373
+ },
374
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
360
375
  }
361
376
  }
362
377
  },
@@ -390,7 +405,8 @@
390
405
  "__proto__",
391
406
  "toLocaleString"
392
407
  ]
393
- }
408
+ },
409
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
394
410
  },
395
411
  "additionalProperties": {
396
412
  "type": "object",
@@ -402,7 +418,7 @@
402
418
  "type": "array",
403
419
  "items": {
404
420
  "type": "string",
405
- "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
421
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$|^@(?:https?:\\/\\/[^\\s<>\"'`\\\\#?]+|[A-Za-z0-9][\\w.~-]*(?:\\/[\\w.~-]+)*)\\/[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
406
422
  }
407
423
  },
408
424
  {
@@ -433,13 +449,18 @@
433
449
  },
434
450
  "renamedFrom": {
435
451
  "type": "string"
452
+ },
453
+ "tidying": {
454
+ "type": "string",
455
+ "const": "never"
436
456
  }
437
457
  },
438
458
  "required": [
439
459
  "to"
440
460
  ],
441
461
  "additionalProperties": false
442
- }
462
+ },
463
+ "description": "The kind's relations, by name. Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
443
464
  },
444
465
  "computed": {
445
466
  "type": "object",
@@ -496,6 +517,17 @@
496
517
  },
497
518
  "people": {
498
519
  "type": "boolean"
520
+ },
521
+ "archives": {
522
+ "type": "boolean",
523
+ "const": false
524
+ },
525
+ "tidying": {
526
+ "type": "string",
527
+ "enum": [
528
+ "never",
529
+ "no-links"
530
+ ]
499
531
  }
500
532
  },
501
533
  "required": [
@@ -504,7 +536,8 @@
504
536
  "additionalProperties": false
505
537
  },
506
538
  "minProperties": 1,
507
- "maxProperties": 40
539
+ "maxProperties": 40,
540
+ "description": "The kinds of record, by name. Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
508
541
  },
509
542
  "computed": {
510
543
  "type": "object",
@@ -549,7 +582,8 @@
549
582
  "type": "object",
550
583
  "propertyNames": {
551
584
  "type": "string",
552
- "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
585
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$",
586
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
553
587
  },
554
588
  "additionalProperties": {
555
589
  "type": "object",
@@ -611,7 +645,8 @@
611
645
  "__proto__",
612
646
  "toLocaleString"
613
647
  ]
614
- }
648
+ },
649
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
615
650
  },
616
651
  "additionalProperties": {
617
652
  "anyOf": [
@@ -671,7 +706,8 @@
671
706
  "__proto__",
672
707
  "toLocaleString"
673
708
  ]
674
- }
709
+ },
710
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
675
711
  }
676
712
  },
677
713
  "connects": {
@@ -704,7 +740,8 @@
704
740
  "__proto__",
705
741
  "toLocaleString"
706
742
  ]
707
- }
743
+ },
744
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
708
745
  },
709
746
  "additionalProperties": {
710
747
  "anyOf": [
@@ -769,7 +806,8 @@
769
806
  "__proto__",
770
807
  "toLocaleString"
771
808
  ]
772
- }
809
+ },
810
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
773
811
  }
774
812
  }
775
813
  ]
@@ -800,7 +838,8 @@
800
838
  "__proto__",
801
839
  "toLocaleString"
802
840
  ]
803
- }
841
+ },
842
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
804
843
  },
805
844
  "additionalProperties": {
806
845
  "type": "object",
@@ -820,7 +859,11 @@
820
859
  "url",
821
860
  "email",
822
861
  "image",
823
- "file"
862
+ "file",
863
+ "app-link",
864
+ "phone",
865
+ "place",
866
+ "duration"
824
867
  ]
825
868
  },
826
869
  "required": {
@@ -866,7 +909,8 @@
866
909
  "enum": [
867
910
  "money",
868
911
  "percent",
869
- "duration"
912
+ "duration",
913
+ "markdown"
870
914
  ]
871
915
  },
872
916
  "min": {
@@ -881,6 +925,9 @@
881
925
  "renamedFrom": {
882
926
  "type": "string",
883
927
  "pattern": "^[a-z][A-Za-z0-9]*$"
928
+ },
929
+ "repeats": {
930
+ "type": "boolean"
884
931
  }
885
932
  },
886
933
  "required": [
@@ -967,7 +1014,8 @@
967
1014
  "__proto__",
968
1015
  "toLocaleString"
969
1016
  ]
970
- }
1017
+ },
1018
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
971
1019
  },
972
1020
  "additionalProperties": {
973
1021
  "anyOf": [
@@ -1035,7 +1083,8 @@
1035
1083
  "__proto__",
1036
1084
  "toLocaleString"
1037
1085
  ]
1038
- }
1086
+ },
1087
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
1039
1088
  },
1040
1089
  "additionalProperties": {
1041
1090
  "anyOf": [
@@ -1103,7 +1152,8 @@
1103
1152
  "__proto__",
1104
1153
  "toLocaleString"
1105
1154
  ]
1106
- }
1155
+ },
1156
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
1107
1157
  },
1108
1158
  "from": {
1109
1159
  "type": "string",
@@ -1142,7 +1192,8 @@
1142
1192
  "__proto__",
1143
1193
  "toLocaleString"
1144
1194
  ]
1145
- }
1195
+ },
1196
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
1146
1197
  },
1147
1198
  "from": {
1148
1199
  "type": "string",
@@ -1197,7 +1248,8 @@
1197
1248
  "type": "object",
1198
1249
  "propertyNames": {
1199
1250
  "type": "string",
1200
- "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
1251
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$",
1252
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
1201
1253
  },
1202
1254
  "additionalProperties": {
1203
1255
  "type": "object",
@@ -1425,6 +1477,22 @@
1425
1477
  "via": {
1426
1478
  "type": "string",
1427
1479
  "pattern": "^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*|[a-z][A-Za-z0-9]*)$"
1480
+ },
1481
+ "fields": {
1482
+ "minItems": 1,
1483
+ "type": "array",
1484
+ "items": {
1485
+ "type": "string",
1486
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
1487
+ }
1488
+ },
1489
+ "hide": {
1490
+ "minItems": 1,
1491
+ "type": "array",
1492
+ "items": {
1493
+ "type": "string",
1494
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
1495
+ }
1428
1496
  }
1429
1497
  },
1430
1498
  "required": [
@@ -1448,140 +1516,663 @@
1448
1516
  "additionalProperties": {}
1449
1517
  },
1450
1518
  "lenses": {
1519
+ "description": "The pictures the app draws beside its lists: each names a lens Graview ships, binds it to the kinds it stands on, and, with a title, is a place of its own.",
1451
1520
  "type": "array",
1452
1521
  "items": {
1453
1522
  "type": "object",
1454
- "propertyNames": {
1455
- "type": "string"
1456
- },
1457
- "additionalProperties": {}
1458
- }
1459
- },
1460
- "pages": {
1461
- "type": "object",
1462
- "properties": {
1463
- "order": {
1464
- "type": "array",
1465
- "items": {
1466
- "type": "string"
1467
- }
1468
- },
1469
- "hide": {
1470
- "type": "array",
1471
- "items": {
1472
- "type": "string"
1473
- }
1474
- },
1475
- "first": {
1476
- "type": "string"
1477
- },
1478
- "primary": {
1479
- "maxItems": 40,
1480
- "type": "array",
1481
- "items": {
1523
+ "required": [
1524
+ "name"
1525
+ ],
1526
+ "properties": {
1527
+ "name": {
1528
+ "description": "Which lens: timeline, calendar, coverage, board, plan, reach, blocks, columns.",
1529
+ "enum": [
1530
+ "timeline",
1531
+ "calendar",
1532
+ "coverage",
1533
+ "board",
1534
+ "plan",
1535
+ "reach",
1536
+ "blocks",
1537
+ "columns"
1538
+ ]
1539
+ },
1540
+ "title": {
1482
1541
  "type": "string",
1483
1542
  "minLength": 1,
1484
- "maxLength": 80
1543
+ "maxLength": 80,
1544
+ "description": "With a title, the lens is a place: a pill on the bar and a page of its own."
1545
+ },
1546
+ "on": {
1547
+ "type": "string",
1548
+ "description": "The kind it is a place over, when its bindings do not say."
1549
+ },
1550
+ "options": {
1551
+ "type": "object"
1552
+ },
1553
+ "bindings": {
1554
+ "type": "object"
1555
+ },
1556
+ "binds": {
1557
+ "enum": [
1558
+ "fields",
1559
+ "entities"
1560
+ ]
1561
+ },
1562
+ "requiredRoles": {
1563
+ "type": "array",
1564
+ "items": {
1565
+ "type": "string"
1566
+ }
1567
+ },
1568
+ "provenBy": {
1569
+ "type": "string"
1570
+ },
1571
+ "arrangedBy": {
1572
+ "description": "What the picture opens arranged by, in the arrangement grammar."
1573
+ },
1574
+ "hidden": {
1575
+ "type": "boolean",
1576
+ "description": "Kept off the lists: reached by its address, a link or navigate."
1577
+ },
1578
+ "create": {
1579
+ "type": "boolean"
1485
1580
  }
1486
1581
  },
1487
- "scene": {
1488
- "type": "string",
1489
- "minLength": 1,
1490
- "maxLength": 40
1491
- },
1492
- "pages": {
1493
- "type": "string",
1494
- "minLength": 1,
1495
- "maxLength": 40
1496
- }
1497
- },
1498
- "additionalProperties": {}
1499
- },
1500
- "views": {
1501
- "type": "object",
1502
- "propertyNames": {
1503
- "type": "string"
1504
- },
1505
- "additionalProperties": {
1506
- "anyOf": [
1582
+ "additionalProperties": false,
1583
+ "allOf": [
1507
1584
  {
1508
- "type": "object",
1509
- "properties": {
1510
- "card": {
1511
- "type": "array",
1512
- "items": {}
1513
- },
1514
- "row": {
1515
- "type": "array",
1516
- "items": {}
1585
+ "if": {
1586
+ "properties": {
1587
+ "name": {
1588
+ "const": "timeline"
1589
+ }
1517
1590
  },
1518
- "page": {
1519
- "type": "array",
1520
- "items": {}
1521
- }
1591
+ "required": [
1592
+ "name"
1593
+ ]
1522
1594
  },
1523
- "additionalProperties": false
1595
+ "then": {
1596
+ "properties": {
1597
+ "options": {
1598
+ "description": "What the timeline lens takes besides its roles: columns, extent, tick, minWindow, arranging.",
1599
+ "type": "object",
1600
+ "properties": {
1601
+ "columns": {},
1602
+ "extent": {},
1603
+ "tick": {},
1604
+ "minWindow": {},
1605
+ "arranging": {}
1606
+ },
1607
+ "additionalProperties": false
1608
+ },
1609
+ "bindings": {
1610
+ "description": "Per kind, each role bound to a field — \"start\": \"due\" — or to a field and the values that make it true — { \"field\": \"status\", \"is\": [\"done\"] }. It binds start, end.",
1611
+ "type": "object",
1612
+ "additionalProperties": {
1613
+ "type": "object",
1614
+ "additionalProperties": {
1615
+ "anyOf": [
1616
+ {
1617
+ "type": "string"
1618
+ },
1619
+ {
1620
+ "type": "object",
1621
+ "properties": {
1622
+ "field": {
1623
+ "type": "string"
1624
+ },
1625
+ "is": {
1626
+ "type": "array"
1627
+ }
1628
+ },
1629
+ "required": [
1630
+ "field",
1631
+ "is"
1632
+ ],
1633
+ "additionalProperties": false
1634
+ }
1635
+ ]
1636
+ }
1637
+ }
1638
+ }
1639
+ }
1640
+ }
1524
1641
  },
1525
1642
  {
1526
- "type": "array",
1527
- "items": {}
1528
- }
1529
- ]
1530
- }
1531
- },
1532
- "brand": {
1533
- "type": "object",
1534
- "properties": {
1535
- "accent": {
1536
- "type": "string",
1537
- "pattern": "^#[0-9a-fA-F]{6}$"
1538
- },
1539
- "name": {
1540
- "type": "string",
1541
- "minLength": 1,
1542
- "maxLength": 60
1543
- },
1544
- "currency": {
1545
- "type": "string",
1546
- "pattern": "^[A-Z]{3}$"
1547
- },
1548
- "locale": {
1549
- "type": "string",
1550
- "minLength": 2,
1551
- "maxLength": 35
1552
- },
1553
- "logo": {
1554
- "anyOf": [
1555
- {
1556
- "type": "string",
1557
- "minLength": 1,
1558
- "maxLength": 65536
1643
+ "if": {
1644
+ "properties": {
1645
+ "name": {
1646
+ "const": "calendar"
1647
+ }
1648
+ },
1649
+ "required": [
1650
+ "name"
1651
+ ]
1559
1652
  },
1560
- {
1561
- "type": "object",
1653
+ "then": {
1562
1654
  "properties": {
1563
- "src": {
1564
- "type": "string",
1565
- "minLength": 1,
1566
- "maxLength": 65536
1655
+ "options": {
1656
+ "description": "What the calendar lens takes besides its roles: today, range, weekStartsOn, perCell, horizon, arranging.",
1657
+ "type": "object",
1658
+ "properties": {
1659
+ "today": {},
1660
+ "range": {},
1661
+ "weekStartsOn": {},
1662
+ "perCell": {},
1663
+ "horizon": {},
1664
+ "arranging": {}
1665
+ },
1666
+ "additionalProperties": false
1567
1667
  },
1568
- "alt": {
1569
- "type": "string",
1570
- "minLength": 1,
1571
- "maxLength": 120
1668
+ "bindings": {
1669
+ "description": "Per kind, each role bound to a field — \"start\": \"due\" — or to a field and the values that make it true — { \"field\": \"status\", \"is\": [\"done\"] }. It binds start.",
1670
+ "type": "object",
1671
+ "additionalProperties": {
1672
+ "type": "object",
1673
+ "additionalProperties": {
1674
+ "anyOf": [
1675
+ {
1676
+ "type": "string"
1677
+ },
1678
+ {
1679
+ "type": "object",
1680
+ "properties": {
1681
+ "field": {
1682
+ "type": "string"
1683
+ },
1684
+ "is": {
1685
+ "type": "array"
1686
+ }
1687
+ },
1688
+ "required": [
1689
+ "field",
1690
+ "is"
1691
+ ],
1692
+ "additionalProperties": false
1693
+ }
1694
+ ]
1695
+ }
1696
+ }
1697
+ }
1698
+ }
1699
+ }
1700
+ },
1701
+ {
1702
+ "if": {
1703
+ "properties": {
1704
+ "name": {
1705
+ "const": "coverage"
1572
1706
  }
1573
1707
  },
1574
1708
  "required": [
1575
- "src"
1576
- ],
1577
- "additionalProperties": false
1709
+ "name"
1710
+ ]
1711
+ },
1712
+ "then": {
1713
+ "properties": {
1714
+ "options": {
1715
+ "description": "What the coverage lens takes besides its roles: rowRef, rowGroup, groupOrder, requiredGroups, requiredVia, badge, columnGroup, sort, columnSort.",
1716
+ "type": "object",
1717
+ "properties": {
1718
+ "rowRef": {},
1719
+ "rowGroup": {},
1720
+ "groupOrder": {},
1721
+ "requiredGroups": {},
1722
+ "requiredVia": {},
1723
+ "badge": {},
1724
+ "columnGroup": {},
1725
+ "sort": {},
1726
+ "columnSort": {}
1727
+ },
1728
+ "additionalProperties": false
1729
+ }
1730
+ }
1578
1731
  }
1579
- ]
1732
+ },
1733
+ {
1734
+ "if": {
1735
+ "properties": {
1736
+ "name": {
1737
+ "const": "board"
1738
+ }
1739
+ },
1740
+ "required": [
1741
+ "name"
1742
+ ]
1743
+ },
1744
+ "then": {
1745
+ "properties": {
1746
+ "options": {
1747
+ "description": "What the board lens takes besides its roles: fillFrom, slotCode, zones, aspect, emptyLabel, pickTarget, arranging, arrange.",
1748
+ "type": "object",
1749
+ "properties": {
1750
+ "fillFrom": {},
1751
+ "slotCode": {},
1752
+ "zones": {},
1753
+ "aspect": {},
1754
+ "emptyLabel": {},
1755
+ "pickTarget": {},
1756
+ "arranging": {},
1757
+ "arrange": {}
1758
+ },
1759
+ "additionalProperties": false
1760
+ }
1761
+ }
1762
+ }
1763
+ },
1764
+ {
1765
+ "if": {
1766
+ "properties": {
1767
+ "name": {
1768
+ "const": "plan"
1769
+ }
1770
+ },
1771
+ "required": [
1772
+ "name"
1773
+ ]
1774
+ },
1775
+ "then": {
1776
+ "properties": {
1777
+ "options": {
1778
+ "description": "What the plan lens takes besides its roles: hues, aspect, undrawnLabel, strayLabel, draw, place, help.",
1779
+ "type": "object",
1780
+ "properties": {
1781
+ "hues": {},
1782
+ "aspect": {},
1783
+ "undrawnLabel": {},
1784
+ "strayLabel": {},
1785
+ "draw": {},
1786
+ "place": {},
1787
+ "help": {}
1788
+ },
1789
+ "additionalProperties": false
1790
+ }
1791
+ }
1792
+ }
1793
+ },
1794
+ {
1795
+ "if": {
1796
+ "properties": {
1797
+ "name": {
1798
+ "const": "reach"
1799
+ }
1800
+ },
1801
+ "required": [
1802
+ "name"
1803
+ ]
1804
+ },
1805
+ "then": {
1806
+ "properties": {
1807
+ "options": {
1808
+ "description": "The reach lens takes no options.",
1809
+ "type": "object",
1810
+ "properties": {},
1811
+ "additionalProperties": false
1812
+ }
1813
+ }
1814
+ }
1815
+ },
1816
+ {
1817
+ "if": {
1818
+ "properties": {
1819
+ "name": {
1820
+ "const": "blocks"
1821
+ }
1822
+ },
1823
+ "required": [
1824
+ "name"
1825
+ ]
1826
+ },
1827
+ "then": {
1828
+ "properties": {
1829
+ "options": {
1830
+ "description": "What the blocks lens takes besides its roles: blocks.",
1831
+ "type": "object",
1832
+ "properties": {
1833
+ "blocks": {
1834
+ "description": "The blocks the lens draws, about no one record.",
1835
+ "type": "array",
1836
+ "items": {
1837
+ "$ref": "#/$defs/ViewBlock"
1838
+ }
1839
+ }
1840
+ },
1841
+ "additionalProperties": false
1842
+ }
1843
+ }
1844
+ }
1845
+ },
1846
+ {
1847
+ "if": {
1848
+ "properties": {
1849
+ "name": {
1850
+ "const": "columns"
1851
+ }
1852
+ },
1853
+ "required": [
1854
+ "name"
1855
+ ]
1856
+ },
1857
+ "then": {
1858
+ "properties": {
1859
+ "options": {
1860
+ "description": "What the columns lens takes besides its roles: sort.",
1861
+ "type": "object",
1862
+ "properties": {
1863
+ "sort": {}
1864
+ },
1865
+ "additionalProperties": false
1866
+ },
1867
+ "bindings": {
1868
+ "description": "Per kind, each role bound to a field — \"start\": \"due\" — or to a field and the values that make it true — { \"field\": \"status\", \"is\": [\"done\"] }. It binds column.",
1869
+ "type": "object",
1870
+ "additionalProperties": {
1871
+ "type": "object",
1872
+ "additionalProperties": {
1873
+ "anyOf": [
1874
+ {
1875
+ "type": "string"
1876
+ },
1877
+ {
1878
+ "type": "object",
1879
+ "properties": {
1880
+ "field": {
1881
+ "type": "string"
1882
+ },
1883
+ "is": {
1884
+ "type": "array"
1885
+ }
1886
+ },
1887
+ "required": [
1888
+ "field",
1889
+ "is"
1890
+ ],
1891
+ "additionalProperties": false
1892
+ }
1893
+ ]
1894
+ }
1895
+ }
1896
+ }
1897
+ }
1898
+ }
1899
+ }
1900
+ ]
1901
+ }
1902
+ },
1903
+ "pages": {
1904
+ "type": "object",
1905
+ "properties": {
1906
+ "order": {
1907
+ "type": "array",
1908
+ "items": {
1909
+ "type": "string"
1910
+ }
1580
1911
  },
1581
- "favicon": {
1912
+ "hide": {
1913
+ "type": "array",
1914
+ "items": {
1915
+ "type": "string"
1916
+ }
1917
+ },
1918
+ "first": {
1919
+ "type": "string"
1920
+ },
1921
+ "primary": {
1922
+ "maxItems": 40,
1923
+ "type": "array",
1924
+ "items": {
1925
+ "type": "string",
1926
+ "minLength": 1,
1927
+ "maxLength": 80
1928
+ }
1929
+ },
1930
+ "scene": {
1931
+ "type": "string",
1932
+ "minLength": 1,
1933
+ "maxLength": 40
1934
+ },
1935
+ "pages": {
1936
+ "type": "string",
1937
+ "minLength": 1,
1938
+ "maxLength": 40
1939
+ },
1940
+ "lists": {
1941
+ "type": "object",
1942
+ "propertyNames": {
1943
+ "type": "string"
1944
+ },
1945
+ "additionalProperties": {
1946
+ "type": "object",
1947
+ "properties": {
1948
+ "filters": {
1949
+ "maxItems": 40,
1950
+ "type": "array",
1951
+ "items": {
1952
+ "type": "string",
1953
+ "minLength": 1,
1954
+ "maxLength": 120
1955
+ }
1956
+ },
1957
+ "sort": {
1958
+ "anyOf": [
1959
+ {
1960
+ "type": "string",
1961
+ "minLength": 1,
1962
+ "maxLength": 120
1963
+ },
1964
+ {
1965
+ "type": "object",
1966
+ "properties": {
1967
+ "by": {
1968
+ "type": "string",
1969
+ "minLength": 1,
1970
+ "maxLength": 120
1971
+ },
1972
+ "direction": {
1973
+ "type": "string",
1974
+ "enum": [
1975
+ "asc",
1976
+ "desc"
1977
+ ]
1978
+ },
1979
+ "then": {
1980
+ "anyOf": [
1981
+ {
1982
+ "type": "string",
1983
+ "minLength": 1,
1984
+ "maxLength": 120
1985
+ },
1986
+ {
1987
+ "type": "object",
1988
+ "properties": {
1989
+ "by": {
1990
+ "type": "string",
1991
+ "minLength": 1,
1992
+ "maxLength": 120
1993
+ },
1994
+ "direction": {
1995
+ "type": "string",
1996
+ "enum": [
1997
+ "asc",
1998
+ "desc"
1999
+ ]
2000
+ }
2001
+ },
2002
+ "required": [
2003
+ "by"
2004
+ ],
2005
+ "additionalProperties": false
2006
+ }
2007
+ ]
2008
+ }
2009
+ },
2010
+ "required": [
2011
+ "by"
2012
+ ],
2013
+ "additionalProperties": false
2014
+ }
2015
+ ]
2016
+ },
2017
+ "group": {
2018
+ "anyOf": [
2019
+ {
2020
+ "type": "string",
2021
+ "minLength": 1,
2022
+ "maxLength": 120
2023
+ },
2024
+ {
2025
+ "type": "object",
2026
+ "properties": {
2027
+ "by": {
2028
+ "type": "string",
2029
+ "minLength": 1,
2030
+ "maxLength": 120
2031
+ },
2032
+ "order": {
2033
+ "maxItems": 40,
2034
+ "type": "array",
2035
+ "items": {
2036
+ "type": "string",
2037
+ "minLength": 1,
2038
+ "maxLength": 80
2039
+ }
2040
+ },
2041
+ "closed": {
2042
+ "maxItems": 40,
2043
+ "type": "array",
2044
+ "items": {
2045
+ "type": "string",
2046
+ "minLength": 1,
2047
+ "maxLength": 80
2048
+ }
2049
+ }
2050
+ },
2051
+ "required": [
2052
+ "by"
2053
+ ],
2054
+ "additionalProperties": false
2055
+ }
2056
+ ]
2057
+ }
2058
+ },
2059
+ "additionalProperties": false
2060
+ }
2061
+ }
2062
+ },
2063
+ "additionalProperties": {}
2064
+ },
2065
+ "views": {
2066
+ "description": "Each kind's views by kind — its card, row and page, each a list of blocks — and `home`: the home view, a list of blocks about no one record.",
2067
+ "type": "object",
2068
+ "additionalProperties": {
2069
+ "anyOf": [
2070
+ {
2071
+ "type": "object",
2072
+ "properties": {
2073
+ "card": {
2074
+ "description": "The blocks a card draws.",
2075
+ "type": "array",
2076
+ "items": {
2077
+ "$ref": "#/$defs/ViewBlock"
2078
+ }
2079
+ },
2080
+ "row": {
2081
+ "description": "The blocks a row draws.",
2082
+ "type": "array",
2083
+ "items": {
2084
+ "$ref": "#/$defs/ViewBlock"
2085
+ }
2086
+ },
2087
+ "page": {
2088
+ "description": "The blocks a page draws.",
2089
+ "type": "array",
2090
+ "items": {
2091
+ "$ref": "#/$defs/ViewBlock"
2092
+ }
2093
+ }
2094
+ },
2095
+ "additionalProperties": false
2096
+ },
2097
+ {
2098
+ "description": "The home view's blocks (under `home`).",
2099
+ "type": "array",
2100
+ "items": {
2101
+ "$ref": "#/$defs/ViewBlock"
2102
+ }
2103
+ }
2104
+ ]
2105
+ }
2106
+ },
2107
+ "brand": {
2108
+ "type": "object",
2109
+ "properties": {
2110
+ "accent": {
2111
+ "type": "string",
2112
+ "pattern": "^#[0-9a-fA-F]{6}$"
2113
+ },
2114
+ "name": {
1582
2115
  "type": "string",
1583
2116
  "minLength": 1,
1584
- "maxLength": 65536
2117
+ "maxLength": 60
2118
+ },
2119
+ "currency": {
2120
+ "type": "string",
2121
+ "pattern": "^[A-Z]{3}$"
2122
+ },
2123
+ "locale": {
2124
+ "type": "string",
2125
+ "minLength": 2,
2126
+ "maxLength": 35
2127
+ },
2128
+ "logo": {
2129
+ "anyOf": [
2130
+ {
2131
+ "type": "string",
2132
+ "minLength": 1,
2133
+ "maxLength": 65536
2134
+ },
2135
+ {
2136
+ "type": "object",
2137
+ "properties": {
2138
+ "src": {
2139
+ "type": "string",
2140
+ "minLength": 1,
2141
+ "maxLength": 65536
2142
+ },
2143
+ "alt": {
2144
+ "type": "string",
2145
+ "minLength": 1,
2146
+ "maxLength": 120
2147
+ }
2148
+ },
2149
+ "required": [
2150
+ "src"
2151
+ ],
2152
+ "additionalProperties": false
2153
+ }
2154
+ ]
2155
+ },
2156
+ "favicon": {
2157
+ "anyOf": [
2158
+ {
2159
+ "type": "string",
2160
+ "minLength": 1,
2161
+ "maxLength": 65536
2162
+ },
2163
+ {
2164
+ "type": "object",
2165
+ "properties": {
2166
+ "emoji": {
2167
+ "type": "string"
2168
+ }
2169
+ },
2170
+ "required": [
2171
+ "emoji"
2172
+ ],
2173
+ "additionalProperties": false
2174
+ }
2175
+ ]
1585
2176
  },
1586
2177
  "typography": {
1587
2178
  "type": "object",
@@ -1669,5 +2260,457 @@
1669
2260
  "name",
1670
2261
  "kinds"
1671
2262
  ],
1672
- "additionalProperties": false
2263
+ "additionalProperties": false,
2264
+ "$defs": {
2265
+ "ViewBlock": {
2266
+ "description": "A block from the closed set every view is written in: title, headline, list, text, badge, field, image, progress, group, when, divider, figure.",
2267
+ "anyOf": [
2268
+ {
2269
+ "type": "object",
2270
+ "properties": {
2271
+ "title": {
2272
+ "type": "string",
2273
+ "minLength": 1,
2274
+ "maxLength": 300,
2275
+ "description": "Words with {field} in braces, like \"{name}\" or \"{quote|money}\"."
2276
+ },
2277
+ "key": {
2278
+ "type": "string",
2279
+ "description": "What a face claims this block by."
2280
+ }
2281
+ },
2282
+ "required": [
2283
+ "title"
2284
+ ],
2285
+ "additionalProperties": false
2286
+ },
2287
+ {
2288
+ "type": "object",
2289
+ "properties": {
2290
+ "headline": {
2291
+ "type": "string",
2292
+ "minLength": 1,
2293
+ "maxLength": 300,
2294
+ "description": "Words with {field} in braces, like \"{name}\" or \"{quote|money}\"."
2295
+ },
2296
+ "key": {
2297
+ "type": "string",
2298
+ "description": "What a face claims this block by."
2299
+ }
2300
+ },
2301
+ "required": [
2302
+ "headline"
2303
+ ],
2304
+ "additionalProperties": false
2305
+ },
2306
+ {
2307
+ "type": "object",
2308
+ "properties": {
2309
+ "list": {
2310
+ "type": "string",
2311
+ "minLength": 1,
2312
+ "maxLength": 2000,
2313
+ "description": "A line of the rule language, like \"status == 'booked'\" or \"count(all('offer'))\"."
2314
+ },
2315
+ "sort": {
2316
+ "description": "A key read from each record, lowest first, or { \"by\": key, \"direction\": \"asc\" | \"desc\" | \"choices\" }.",
2317
+ "anyOf": [
2318
+ {
2319
+ "type": "string",
2320
+ "minLength": 1,
2321
+ "maxLength": 2000,
2322
+ "description": "A line of the rule language, like \"status == 'booked'\" or \"count(all('offer'))\"."
2323
+ },
2324
+ {
2325
+ "type": "object",
2326
+ "properties": {
2327
+ "by": {
2328
+ "type": "string",
2329
+ "minLength": 1,
2330
+ "maxLength": 2000,
2331
+ "description": "A line of the rule language, like \"status == 'booked'\" or \"count(all('offer'))\"."
2332
+ },
2333
+ "direction": {
2334
+ "enum": [
2335
+ "asc",
2336
+ "desc",
2337
+ "choices"
2338
+ ]
2339
+ }
2340
+ },
2341
+ "required": [
2342
+ "by"
2343
+ ],
2344
+ "additionalProperties": false
2345
+ }
2346
+ ]
2347
+ },
2348
+ "limit": {
2349
+ "type": "integer",
2350
+ "minimum": 1,
2351
+ "maximum": 1000
2352
+ },
2353
+ "group": {
2354
+ "description": "A choice field, or { \"by\": field, \"headings\": { choice: words } }.",
2355
+ "anyOf": [
2356
+ {
2357
+ "type": "string",
2358
+ "minLength": 1
2359
+ },
2360
+ {
2361
+ "type": "object",
2362
+ "properties": {
2363
+ "by": {
2364
+ "type": "string",
2365
+ "minLength": 1
2366
+ },
2367
+ "headings": {
2368
+ "type": "object",
2369
+ "additionalProperties": {
2370
+ "type": "string"
2371
+ }
2372
+ }
2373
+ },
2374
+ "required": [
2375
+ "by"
2376
+ ],
2377
+ "additionalProperties": false
2378
+ }
2379
+ ]
2380
+ },
2381
+ "empty": {
2382
+ "type": "string",
2383
+ "minLength": 1
2384
+ },
2385
+ "as": {
2386
+ "enum": [
2387
+ "card",
2388
+ "row"
2389
+ ]
2390
+ },
2391
+ "key": {
2392
+ "type": "string",
2393
+ "description": "What a face claims this block by."
2394
+ }
2395
+ },
2396
+ "required": [
2397
+ "list"
2398
+ ],
2399
+ "additionalProperties": false
2400
+ },
2401
+ {
2402
+ "type": "object",
2403
+ "properties": {
2404
+ "text": {
2405
+ "type": "string",
2406
+ "minLength": 1,
2407
+ "maxLength": 300,
2408
+ "description": "Words with {field} in braces, like \"{name}\" or \"{quote|money}\"."
2409
+ },
2410
+ "tone": {
2411
+ "description": "good, warn, bad, neutral, accent, or { \"expr\": … } that works one out.",
2412
+ "anyOf": [
2413
+ {
2414
+ "enum": [
2415
+ "good",
2416
+ "warn",
2417
+ "bad",
2418
+ "neutral",
2419
+ "accent"
2420
+ ]
2421
+ },
2422
+ {
2423
+ "type": "object",
2424
+ "properties": {
2425
+ "expr": {
2426
+ "type": "string",
2427
+ "minLength": 1,
2428
+ "maxLength": 2000,
2429
+ "description": "A line of the rule language, like \"status == 'booked'\" or \"count(all('offer'))\"."
2430
+ }
2431
+ },
2432
+ "required": [
2433
+ "expr"
2434
+ ],
2435
+ "additionalProperties": false
2436
+ }
2437
+ ]
2438
+ },
2439
+ "key": {
2440
+ "type": "string",
2441
+ "description": "What a face claims this block by."
2442
+ }
2443
+ },
2444
+ "required": [
2445
+ "text"
2446
+ ],
2447
+ "additionalProperties": false
2448
+ },
2449
+ {
2450
+ "type": "object",
2451
+ "properties": {
2452
+ "badge": {
2453
+ "type": "string",
2454
+ "minLength": 1,
2455
+ "maxLength": 300,
2456
+ "description": "Words with {field} in braces, like \"{name}\" or \"{quote|money}\"."
2457
+ },
2458
+ "tone": {
2459
+ "description": "good, warn, bad, neutral, accent, or { \"expr\": … } that works one out.",
2460
+ "anyOf": [
2461
+ {
2462
+ "enum": [
2463
+ "good",
2464
+ "warn",
2465
+ "bad",
2466
+ "neutral",
2467
+ "accent"
2468
+ ]
2469
+ },
2470
+ {
2471
+ "type": "object",
2472
+ "properties": {
2473
+ "expr": {
2474
+ "type": "string",
2475
+ "minLength": 1,
2476
+ "maxLength": 2000,
2477
+ "description": "A line of the rule language, like \"status == 'booked'\" or \"count(all('offer'))\"."
2478
+ }
2479
+ },
2480
+ "required": [
2481
+ "expr"
2482
+ ],
2483
+ "additionalProperties": false
2484
+ }
2485
+ ]
2486
+ },
2487
+ "key": {
2488
+ "type": "string",
2489
+ "description": "What a face claims this block by."
2490
+ }
2491
+ },
2492
+ "required": [
2493
+ "badge"
2494
+ ],
2495
+ "additionalProperties": false
2496
+ },
2497
+ {
2498
+ "type": "object",
2499
+ "properties": {
2500
+ "field": {
2501
+ "type": "string",
2502
+ "description": "A field of the record, drawn as it is declared."
2503
+ },
2504
+ "as": {
2505
+ "enum": [
2506
+ "money",
2507
+ "percent",
2508
+ "date",
2509
+ "relative",
2510
+ "count"
2511
+ ]
2512
+ },
2513
+ "currency": {
2514
+ "type": "string",
2515
+ "minLength": 1
2516
+ },
2517
+ "label": {
2518
+ "type": "string",
2519
+ "minLength": 1
2520
+ },
2521
+ "key": {
2522
+ "type": "string",
2523
+ "description": "What a face claims this block by."
2524
+ }
2525
+ },
2526
+ "required": [
2527
+ "field"
2528
+ ],
2529
+ "additionalProperties": false
2530
+ },
2531
+ {
2532
+ "type": "object",
2533
+ "properties": {
2534
+ "image": {
2535
+ "type": "string",
2536
+ "description": "A field holding pictures."
2537
+ },
2538
+ "as": {
2539
+ "enum": [
2540
+ "thumb",
2541
+ "gallery"
2542
+ ]
2543
+ },
2544
+ "label": {
2545
+ "type": "string",
2546
+ "minLength": 1
2547
+ },
2548
+ "key": {
2549
+ "type": "string",
2550
+ "description": "What a face claims this block by."
2551
+ }
2552
+ },
2553
+ "required": [
2554
+ "image"
2555
+ ],
2556
+ "additionalProperties": false
2557
+ },
2558
+ {
2559
+ "type": "object",
2560
+ "properties": {
2561
+ "progress": {
2562
+ "type": "object",
2563
+ "properties": {
2564
+ "value": {
2565
+ "type": "string",
2566
+ "minLength": 1,
2567
+ "maxLength": 2000,
2568
+ "description": "A line of the rule language, like \"status == 'booked'\" or \"count(all('offer'))\"."
2569
+ },
2570
+ "max": {
2571
+ "type": "string",
2572
+ "minLength": 1,
2573
+ "maxLength": 2000,
2574
+ "description": "A line of the rule language, like \"status == 'booked'\" or \"count(all('offer'))\"."
2575
+ }
2576
+ },
2577
+ "required": [
2578
+ "value",
2579
+ "max"
2580
+ ],
2581
+ "additionalProperties": false
2582
+ },
2583
+ "label": {
2584
+ "type": "string",
2585
+ "minLength": 1
2586
+ },
2587
+ "key": {
2588
+ "type": "string",
2589
+ "description": "What a face claims this block by."
2590
+ }
2591
+ },
2592
+ "required": [
2593
+ "progress"
2594
+ ],
2595
+ "additionalProperties": false
2596
+ },
2597
+ {
2598
+ "type": "object",
2599
+ "properties": {
2600
+ "group": {
2601
+ "description": "The blocks drawn together.",
2602
+ "type": "array",
2603
+ "items": {
2604
+ "$ref": "#/$defs/ViewBlock"
2605
+ }
2606
+ },
2607
+ "direction": {
2608
+ "enum": [
2609
+ "row",
2610
+ "column"
2611
+ ]
2612
+ },
2613
+ "key": {
2614
+ "type": "string",
2615
+ "description": "What a face claims this block by."
2616
+ }
2617
+ },
2618
+ "required": [
2619
+ "group"
2620
+ ],
2621
+ "additionalProperties": false
2622
+ },
2623
+ {
2624
+ "type": "object",
2625
+ "properties": {
2626
+ "when": {
2627
+ "type": "string",
2628
+ "minLength": 1,
2629
+ "maxLength": 2000,
2630
+ "description": "A line of the rule language, like \"status == 'booked'\" or \"count(all('offer'))\"."
2631
+ },
2632
+ "show": {
2633
+ "description": "The blocks shown while the expression holds.",
2634
+ "type": "array",
2635
+ "items": {
2636
+ "$ref": "#/$defs/ViewBlock"
2637
+ }
2638
+ },
2639
+ "key": {
2640
+ "type": "string",
2641
+ "description": "What a face claims this block by."
2642
+ }
2643
+ },
2644
+ "required": [
2645
+ "when",
2646
+ "show"
2647
+ ],
2648
+ "additionalProperties": false
2649
+ },
2650
+ {
2651
+ "type": "object",
2652
+ "properties": {
2653
+ "divider": {
2654
+ "const": true
2655
+ },
2656
+ "key": {
2657
+ "type": "string",
2658
+ "description": "What a face claims this block by."
2659
+ }
2660
+ },
2661
+ "required": [
2662
+ "divider"
2663
+ ],
2664
+ "additionalProperties": false
2665
+ },
2666
+ {
2667
+ "type": "object",
2668
+ "properties": {
2669
+ "figure": {
2670
+ "description": "An expression for a number worked out, or true for the kind's picture: {\"figure\": true}.",
2671
+ "anyOf": [
2672
+ {
2673
+ "type": "string",
2674
+ "minLength": 1,
2675
+ "maxLength": 2000,
2676
+ "description": "A line of the rule language, like \"status == 'booked'\" or \"count(all('offer'))\"."
2677
+ },
2678
+ {
2679
+ "const": true
2680
+ }
2681
+ ]
2682
+ },
2683
+ "as": {
2684
+ "enum": [
2685
+ "number",
2686
+ "money",
2687
+ "percent"
2688
+ ]
2689
+ },
2690
+ "currency": {
2691
+ "type": "string",
2692
+ "minLength": 1
2693
+ },
2694
+ "label": {
2695
+ "type": "string",
2696
+ "minLength": 1
2697
+ },
2698
+ "emphasis": {
2699
+ "enum": [
2700
+ "large"
2701
+ ]
2702
+ },
2703
+ "key": {
2704
+ "type": "string",
2705
+ "description": "What a face claims this block by."
2706
+ }
2707
+ },
2708
+ "required": [
2709
+ "figure"
2710
+ ],
2711
+ "additionalProperties": false
2712
+ }
2713
+ ]
2714
+ }
2715
+ }
1673
2716
  }