worldvm 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. package/AUTHORING.md +833 -0
  2. package/README.md +154 -2
  3. package/bin/worldvm.mjs +3 -0
  4. package/dist/_internal/forma/index.d.ts +1 -0
  5. package/dist/_internal/forma/index.js +1 -0
  6. package/dist/_internal/forma/world/authoring-help.d.ts +25 -0
  7. package/dist/_internal/forma/world/authoring-help.js +130 -0
  8. package/dist/_internal/forma/world/citations.d.ts +3 -0
  9. package/dist/_internal/forma/world/citations.js +26 -0
  10. package/dist/_internal/forma/world/clock-bindings.d.ts +4 -0
  11. package/dist/_internal/forma/world/clock-bindings.js +45 -0
  12. package/dist/_internal/forma/world/compile.d.ts +13 -0
  13. package/dist/_internal/forma/world/compile.js +190 -0
  14. package/dist/_internal/forma/world/coverage.d.ts +10 -0
  15. package/dist/_internal/forma/world/coverage.js +242 -0
  16. package/dist/_internal/forma/world/digest.d.ts +1 -0
  17. package/dist/_internal/forma/world/digest.js +1 -0
  18. package/dist/_internal/forma/world/documentation.d.ts +3 -0
  19. package/dist/_internal/forma/world/documentation.js +38 -0
  20. package/dist/_internal/forma/world/homes.d.ts +4 -0
  21. package/dist/_internal/forma/world/homes.js +202 -0
  22. package/dist/_internal/forma/world/index.d.ts +6 -0
  23. package/dist/_internal/forma/world/index.js +5 -0
  24. package/dist/_internal/forma/world/lowering/accounts.d.ts +4 -0
  25. package/dist/_internal/forma/world/lowering/accounts.js +36 -0
  26. package/dist/_internal/forma/world/lowering/action-policy.d.ts +5 -0
  27. package/dist/_internal/forma/world/lowering/action-policy.js +16 -0
  28. package/dist/_internal/forma/world/lowering/agents.d.ts +6 -0
  29. package/dist/_internal/forma/world/lowering/agents.js +116 -0
  30. package/dist/_internal/forma/world/lowering/bundles.d.ts +3 -0
  31. package/dist/_internal/forma/world/lowering/bundles.js +13 -0
  32. package/dist/_internal/forma/world/lowering/child-parameters.d.ts +14 -0
  33. package/dist/_internal/forma/world/lowering/child-parameters.js +36 -0
  34. package/dist/_internal/forma/world/lowering/collects.d.ts +3 -0
  35. package/dist/_internal/forma/world/lowering/collects.js +51 -0
  36. package/dist/_internal/forma/world/lowering/component-operations.d.ts +6 -0
  37. package/dist/_internal/forma/world/lowering/component-operations.js +26 -0
  38. package/dist/_internal/forma/world/lowering/components.d.ts +7 -0
  39. package/dist/_internal/forma/world/lowering/components.js +236 -0
  40. package/dist/_internal/forma/world/lowering/connectors.d.ts +4 -0
  41. package/dist/_internal/forma/world/lowering/connectors.js +31 -0
  42. package/dist/_internal/forma/world/lowering/context.d.ts +80 -0
  43. package/dist/_internal/forma/world/lowering/context.js +316 -0
  44. package/dist/_internal/forma/world/lowering/contracts.d.ts +7 -0
  45. package/dist/_internal/forma/world/lowering/contracts.js +73 -0
  46. package/dist/_internal/forma/world/lowering/decisions.d.ts +3 -0
  47. package/dist/_internal/forma/world/lowering/decisions.js +164 -0
  48. package/dist/_internal/forma/world/lowering/derives.d.ts +3 -0
  49. package/dist/_internal/forma/world/lowering/derives.js +22 -0
  50. package/dist/_internal/forma/world/lowering/discretionary.d.ts +7 -0
  51. package/dist/_internal/forma/world/lowering/discretionary.js +15 -0
  52. package/dist/_internal/forma/world/lowering/documents.d.ts +3 -0
  53. package/dist/_internal/forma/world/lowering/documents.js +68 -0
  54. package/dist/_internal/forma/world/lowering/effective.d.ts +5 -0
  55. package/dist/_internal/forma/world/lowering/effective.js +26 -0
  56. package/dist/_internal/forma/world/lowering/entities.d.ts +3 -0
  57. package/dist/_internal/forma/world/lowering/entities.js +43 -0
  58. package/dist/_internal/forma/world/lowering/escalations.d.ts +6 -0
  59. package/dist/_internal/forma/world/lowering/escalations.js +31 -0
  60. package/dist/_internal/forma/world/lowering/evidence.d.ts +3 -0
  61. package/dist/_internal/forma/world/lowering/evidence.js +75 -0
  62. package/dist/_internal/forma/world/lowering/files.d.ts +4 -0
  63. package/dist/_internal/forma/world/lowering/files.js +56 -0
  64. package/dist/_internal/forma/world/lowering/holds.d.ts +6 -0
  65. package/dist/_internal/forma/world/lowering/holds.js +35 -0
  66. package/dist/_internal/forma/world/lowering/index.d.ts +89 -0
  67. package/dist/_internal/forma/world/lowering/index.js +115 -0
  68. package/dist/_internal/forma/world/lowering/interactions.d.ts +7 -0
  69. package/dist/_internal/forma/world/lowering/interactions.js +190 -0
  70. package/dist/_internal/forma/world/lowering/library.d.ts +5 -0
  71. package/dist/_internal/forma/world/lowering/library.js +41 -0
  72. package/dist/_internal/forma/world/lowering/milestones.d.ts +6 -0
  73. package/dist/_internal/forma/world/lowering/milestones.js +17 -0
  74. package/dist/_internal/forma/world/lowering/notices.d.ts +3 -0
  75. package/dist/_internal/forma/world/lowering/notices.js +33 -0
  76. package/dist/_internal/forma/world/lowering/param-bounds.d.ts +15 -0
  77. package/dist/_internal/forma/world/lowering/param-bounds.js +71 -0
  78. package/dist/_internal/forma/world/lowering/policies.d.ts +6 -0
  79. package/dist/_internal/forma/world/lowering/policies.js +95 -0
  80. package/dist/_internal/forma/world/lowering/principals.d.ts +62 -0
  81. package/dist/_internal/forma/world/lowering/principals.js +32 -0
  82. package/dist/_internal/forma/world/lowering/recurrences.d.ts +9 -0
  83. package/dist/_internal/forma/world/lowering/recurrences.js +56 -0
  84. package/dist/_internal/forma/world/lowering/renewal.d.ts +5 -0
  85. package/dist/_internal/forma/world/lowering/renewal.js +21 -0
  86. package/dist/_internal/forma/world/lowering/resources.d.ts +6 -0
  87. package/dist/_internal/forma/world/lowering/resources.js +19 -0
  88. package/dist/_internal/forma/world/lowering/reuse.d.ts +5 -0
  89. package/dist/_internal/forma/world/lowering/reuse.js +75 -0
  90. package/dist/_internal/forma/world/lowering/sources.d.ts +10 -0
  91. package/dist/_internal/forma/world/lowering/sources.js +47 -0
  92. package/dist/_internal/forma/world/lowering/syntax.d.ts +84 -0
  93. package/dist/_internal/forma/world/lowering/syntax.js +94 -0
  94. package/dist/_internal/forma/world/lowering/vaults.d.ts +11 -0
  95. package/dist/_internal/forma/world/lowering/vaults.js +148 -0
  96. package/dist/_internal/forma/world/prelude.generated.d.ts +1 -0
  97. package/dist/_internal/forma/world/prelude.generated.js +2 -0
  98. package/dist/_internal/forma/world/properties.d.ts +9 -0
  99. package/dist/_internal/forma/world/properties.js +387 -0
  100. package/dist/_internal/forma/world/scenarios.d.ts +10 -0
  101. package/dist/_internal/forma/world/scenarios.js +757 -0
  102. package/dist/_internal/forma/world/sensitivity.d.ts +3 -0
  103. package/dist/_internal/forma/world/sensitivity.js +118 -0
  104. package/dist/_internal/forma/world/source-syntax.d.ts +6 -0
  105. package/dist/_internal/forma/world/source-syntax.js +27 -0
  106. package/dist/_internal/forma/world/status-handling.d.ts +3 -0
  107. package/dist/_internal/forma/world/status-handling.js +143 -0
  108. package/dist/_internal/forma/world/surface.d.ts +30 -0
  109. package/dist/_internal/forma/world/surface.js +213 -0
  110. package/dist/_internal/forma/world/table-expressions.d.ts +3 -0
  111. package/dist/_internal/forma/world/table-expressions.js +41 -0
  112. package/dist/_internal/forma-tools/index.d.ts +17 -0
  113. package/dist/_internal/forma-tools/index.js +124 -0
  114. package/dist/_internal/ir-checks/advances.d.ts +7 -0
  115. package/dist/_internal/ir-checks/advances.js +6 -0
  116. package/dist/_internal/ir-checks/agent-reads.d.ts +14 -0
  117. package/dist/_internal/ir-checks/agent-reads.js +118 -0
  118. package/dist/_internal/ir-checks/amendments.d.ts +3 -0
  119. package/dist/_internal/ir-checks/amendments.js +21 -0
  120. package/dist/_internal/ir-checks/canonical-json.d.ts +3 -0
  121. package/dist/_internal/ir-checks/canonical-json.js +85 -0
  122. package/dist/_internal/ir-checks/child-parameters.d.ts +2 -0
  123. package/dist/_internal/ir-checks/child-parameters.js +43 -0
  124. package/dist/_internal/ir-checks/clock-bindings.d.ts +3 -0
  125. package/dist/_internal/ir-checks/clock-bindings.js +43 -0
  126. package/dist/_internal/ir-checks/collect-types.d.ts +14 -0
  127. package/dist/_internal/ir-checks/collect-types.js +34 -0
  128. package/dist/_internal/ir-checks/component-operations.d.ts +4 -0
  129. package/dist/_internal/ir-checks/component-operations.js +23 -0
  130. package/dist/_internal/ir-checks/content-digest.d.ts +4 -0
  131. package/dist/_internal/ir-checks/content-digest.js +78 -0
  132. package/dist/_internal/ir-checks/contract-validation.d.ts +3 -0
  133. package/dist/_internal/ir-checks/contract-validation.js +307 -0
  134. package/dist/_internal/ir-checks/contracts.d.ts +25 -0
  135. package/dist/_internal/ir-checks/contracts.js +80 -0
  136. package/dist/_internal/ir-checks/dates.d.ts +2 -0
  137. package/dist/_internal/ir-checks/dates.js +7 -0
  138. package/dist/_internal/ir-checks/documents.d.ts +3 -0
  139. package/dist/_internal/ir-checks/documents.js +45 -0
  140. package/dist/_internal/ir-checks/evidence.d.ts +20 -0
  141. package/dist/_internal/ir-checks/evidence.js +56 -0
  142. package/dist/_internal/ir-checks/files.d.ts +7 -0
  143. package/dist/_internal/ir-checks/files.js +47 -0
  144. package/dist/_internal/ir-checks/index.d.ts +59 -0
  145. package/dist/_internal/ir-checks/index.js +166 -0
  146. package/dist/_internal/ir-checks/instants.d.ts +7 -0
  147. package/dist/_internal/ir-checks/instants.js +61 -0
  148. package/dist/_internal/ir-checks/notices.d.ts +4 -0
  149. package/dist/_internal/ir-checks/notices.js +58 -0
  150. package/dist/_internal/ir-checks/policy-bounds.d.ts +5 -0
  151. package/dist/_internal/ir-checks/policy-bounds.js +28 -0
  152. package/dist/_internal/ir-checks/principals.d.ts +26 -0
  153. package/dist/_internal/ir-checks/principals.js +162 -0
  154. package/dist/_internal/ir-checks/prior-cycle.d.ts +41 -0
  155. package/dist/_internal/ir-checks/prior-cycle.js +21 -0
  156. package/dist/_internal/ir-checks/read-classification.d.ts +12 -0
  157. package/dist/_internal/ir-checks/read-classification.js +67 -0
  158. package/dist/_internal/ir-checks/read-types.d.ts +2 -0
  159. package/dist/_internal/ir-checks/read-types.js +40 -0
  160. package/dist/_internal/ir-checks/resource-proofs.d.ts +4 -0
  161. package/dist/_internal/ir-checks/resource-proofs.js +98 -0
  162. package/dist/_internal/ir-checks/resources.d.ts +3 -0
  163. package/dist/_internal/ir-checks/resources.js +30 -0
  164. package/dist/_internal/ir-checks/reuse.d.ts +10 -0
  165. package/dist/_internal/ir-checks/reuse.js +99 -0
  166. package/dist/_internal/ir-checks/sealing.d.ts +14 -0
  167. package/dist/_internal/ir-checks/sealing.js +123 -0
  168. package/dist/_internal/ir-checks/sensitive-flow.d.ts +4 -0
  169. package/dist/_internal/ir-checks/sensitive-flow.js +240 -0
  170. package/dist/_internal/ir-checks/sensitivity.d.ts +19 -0
  171. package/dist/_internal/ir-checks/sensitivity.js +133 -0
  172. package/dist/_internal/ir-checks/signatures.d.ts +4 -0
  173. package/dist/_internal/ir-checks/signatures.js +22 -0
  174. package/dist/_internal/ir-checks/vaults.d.ts +10 -0
  175. package/dist/_internal/ir-checks/vaults.js +140 -0
  176. package/dist/_internal/protocol/index.d.ts +1234 -0
  177. package/dist/_internal/protocol/index.js +215 -0
  178. package/dist/_internal/reconciler/action-intents.d.ts +17 -0
  179. package/dist/_internal/reconciler/action-intents.js +161 -0
  180. package/dist/_internal/reconciler/actions.d.ts +7 -0
  181. package/dist/_internal/reconciler/actions.js +134 -0
  182. package/dist/_internal/reconciler/amendments.d.ts +12 -0
  183. package/dist/_internal/reconciler/amendments.js +52 -0
  184. package/dist/_internal/reconciler/basis.d.ts +253 -0
  185. package/dist/_internal/reconciler/basis.js +16 -0
  186. package/dist/_internal/reconciler/bundles.d.ts +22 -0
  187. package/dist/_internal/reconciler/bundles.js +110 -0
  188. package/dist/_internal/reconciler/change-detection.d.ts +5 -0
  189. package/dist/_internal/reconciler/change-detection.js +82 -0
  190. package/dist/_internal/reconciler/collection-rules.d.ts +7 -0
  191. package/dist/_internal/reconciler/collection-rules.js +46 -0
  192. package/dist/_internal/reconciler/collection-state.d.ts +11 -0
  193. package/dist/_internal/reconciler/collection-state.js +62 -0
  194. package/dist/_internal/reconciler/collection-values.d.ts +5 -0
  195. package/dist/_internal/reconciler/collection-values.js +60 -0
  196. package/dist/_internal/reconciler/collections.d.ts +35 -0
  197. package/dist/_internal/reconciler/collections.js +141 -0
  198. package/dist/_internal/reconciler/commands.d.ts +60 -0
  199. package/dist/_internal/reconciler/commands.js +468 -0
  200. package/dist/_internal/reconciler/component-operations.d.ts +48 -0
  201. package/dist/_internal/reconciler/component-operations.js +256 -0
  202. package/dist/_internal/reconciler/context.d.ts +38 -0
  203. package/dist/_internal/reconciler/context.js +44 -0
  204. package/dist/_internal/reconciler/coverage.d.ts +31 -0
  205. package/dist/_internal/reconciler/coverage.js +124 -0
  206. package/dist/_internal/reconciler/dates.d.ts +38 -0
  207. package/dist/_internal/reconciler/dates.js +121 -0
  208. package/dist/_internal/reconciler/decide.d.ts +25 -0
  209. package/dist/_internal/reconciler/decide.js +263 -0
  210. package/dist/_internal/reconciler/decision-evaluation.d.ts +9 -0
  211. package/dist/_internal/reconciler/decision-evaluation.js +67 -0
  212. package/dist/_internal/reconciler/decision-records.d.ts +14 -0
  213. package/dist/_internal/reconciler/decision-records.js +77 -0
  214. package/dist/_internal/reconciler/decision-release.d.ts +3 -0
  215. package/dist/_internal/reconciler/decision-release.js +12 -0
  216. package/dist/_internal/reconciler/dependencies.d.ts +179 -0
  217. package/dist/_internal/reconciler/dependencies.js +372 -0
  218. package/dist/_internal/reconciler/discovery.d.ts +9 -0
  219. package/dist/_internal/reconciler/discovery.js +65 -0
  220. package/dist/_internal/reconciler/document-corrections.d.ts +18 -0
  221. package/dist/_internal/reconciler/document-corrections.js +59 -0
  222. package/dist/_internal/reconciler/documents.d.ts +26 -0
  223. package/dist/_internal/reconciler/documents.js +88 -0
  224. package/dist/_internal/reconciler/effective.d.ts +6 -0
  225. package/dist/_internal/reconciler/effective.js +17 -0
  226. package/dist/_internal/reconciler/escalations.d.ts +4 -0
  227. package/dist/_internal/reconciler/escalations.js +76 -0
  228. package/dist/_internal/reconciler/evaluation.d.ts +56 -0
  229. package/dist/_internal/reconciler/evaluation.js +704 -0
  230. package/dist/_internal/reconciler/evidence-authority.d.ts +6 -0
  231. package/dist/_internal/reconciler/evidence-authority.js +70 -0
  232. package/dist/_internal/reconciler/evidence-history.d.ts +5 -0
  233. package/dist/_internal/reconciler/evidence-history.js +22 -0
  234. package/dist/_internal/reconciler/evidence-validity.d.ts +17 -0
  235. package/dist/_internal/reconciler/evidence-validity.js +135 -0
  236. package/dist/_internal/reconciler/fact-validation.d.ts +5 -0
  237. package/dist/_internal/reconciler/fact-validation.js +49 -0
  238. package/dist/_internal/reconciler/files.d.ts +9 -0
  239. package/dist/_internal/reconciler/files.js +56 -0
  240. package/dist/_internal/reconciler/graph.d.ts +40 -0
  241. package/dist/_internal/reconciler/graph.js +298 -0
  242. package/dist/_internal/reconciler/holds.d.ts +6 -0
  243. package/dist/_internal/reconciler/holds.js +18 -0
  244. package/dist/_internal/reconciler/home-definitions.d.ts +11 -0
  245. package/dist/_internal/reconciler/home-definitions.js +25 -0
  246. package/dist/_internal/reconciler/homes.d.ts +6 -0
  247. package/dist/_internal/reconciler/homes.js +32 -0
  248. package/dist/_internal/reconciler/index.d.ts +42 -0
  249. package/dist/_internal/reconciler/index.js +58 -0
  250. package/dist/_internal/reconciler/instants.d.ts +17 -0
  251. package/dist/_internal/reconciler/instants.js +56 -0
  252. package/dist/_internal/reconciler/interaction-fields.d.ts +10 -0
  253. package/dist/_internal/reconciler/interaction-fields.js +30 -0
  254. package/dist/_internal/reconciler/invariants.d.ts +8 -0
  255. package/dist/_internal/reconciler/invariants.js +34 -0
  256. package/dist/_internal/reconciler/journal.d.ts +3 -0
  257. package/dist/_internal/reconciler/journal.js +4 -0
  258. package/dist/_internal/reconciler/linking.d.ts +10 -0
  259. package/dist/_internal/reconciler/linking.js +259 -0
  260. package/dist/_internal/reconciler/memory.d.ts +32 -0
  261. package/dist/_internal/reconciler/memory.js +190 -0
  262. package/dist/_internal/reconciler/milestones.d.ts +7 -0
  263. package/dist/_internal/reconciler/milestones.js +58 -0
  264. package/dist/_internal/reconciler/missing.d.ts +18 -0
  265. package/dist/_internal/reconciler/missing.js +79 -0
  266. package/dist/_internal/reconciler/model.d.ts +350 -0
  267. package/dist/_internal/reconciler/model.js +9 -0
  268. package/dist/_internal/reconciler/notices.d.ts +14 -0
  269. package/dist/_internal/reconciler/notices.js +80 -0
  270. package/dist/_internal/reconciler/occurrences.d.ts +3 -0
  271. package/dist/_internal/reconciler/occurrences.js +30 -0
  272. package/dist/_internal/reconciler/outputs.d.ts +12 -0
  273. package/dist/_internal/reconciler/outputs.js +132 -0
  274. package/dist/_internal/reconciler/parameters.d.ts +4 -0
  275. package/dist/_internal/reconciler/parameters.js +27 -0
  276. package/dist/_internal/reconciler/policies.d.ts +22 -0
  277. package/dist/_internal/reconciler/policies.js +94 -0
  278. package/dist/_internal/reconciler/policy-edits.d.ts +11 -0
  279. package/dist/_internal/reconciler/policy-edits.js +42 -0
  280. package/dist/_internal/reconciler/policy-linking.d.ts +4 -0
  281. package/dist/_internal/reconciler/policy-linking.js +104 -0
  282. package/dist/_internal/reconciler/principal-types.d.ts +2 -0
  283. package/dist/_internal/reconciler/principal-types.js +38 -0
  284. package/dist/_internal/reconciler/prior-decisions.d.ts +3 -0
  285. package/dist/_internal/reconciler/prior-decisions.js +34 -0
  286. package/dist/_internal/reconciler/projections.d.ts +4 -0
  287. package/dist/_internal/reconciler/projections.js +85 -0
  288. package/dist/_internal/reconciler/proofs.d.ts +9 -0
  289. package/dist/_internal/reconciler/proofs.js +24 -0
  290. package/dist/_internal/reconciler/properties.d.ts +25 -0
  291. package/dist/_internal/reconciler/properties.js +67 -0
  292. package/dist/_internal/reconciler/property-eval.d.ts +5 -0
  293. package/dist/_internal/reconciler/property-eval.js +101 -0
  294. package/dist/_internal/reconciler/property-generator.d.ts +9 -0
  295. package/dist/_internal/reconciler/property-generator.js +288 -0
  296. package/dist/_internal/reconciler/property-shrink.d.ts +14 -0
  297. package/dist/_internal/reconciler/property-shrink.js +183 -0
  298. package/dist/_internal/reconciler/provenance.d.ts +8 -0
  299. package/dist/_internal/reconciler/provenance.js +61 -0
  300. package/dist/_internal/reconciler/reconcile.d.ts +32 -0
  301. package/dist/_internal/reconciler/reconcile.js +164 -0
  302. package/dist/_internal/reconciler/recurrence.d.ts +9 -0
  303. package/dist/_internal/reconciler/recurrence.js +44 -0
  304. package/dist/_internal/reconciler/requirements.d.ts +5 -0
  305. package/dist/_internal/reconciler/requirements.js +331 -0
  306. package/dist/_internal/reconciler/resource-generation.d.ts +9 -0
  307. package/dist/_internal/reconciler/resource-generation.js +17 -0
  308. package/dist/_internal/reconciler/resource-scenarios.d.ts +26 -0
  309. package/dist/_internal/reconciler/resource-scenarios.js +78 -0
  310. package/dist/_internal/reconciler/resources.d.ts +24 -0
  311. package/dist/_internal/reconciler/resources.js +178 -0
  312. package/dist/_internal/reconciler/result-digest.d.ts +13 -0
  313. package/dist/_internal/reconciler/result-digest.js +66 -0
  314. package/dist/_internal/reconciler/reuse.d.ts +16 -0
  315. package/dist/_internal/reconciler/reuse.js +119 -0
  316. package/dist/_internal/reconciler/scenarios.d.ts +32 -0
  317. package/dist/_internal/reconciler/scenarios.js +442 -0
  318. package/dist/_internal/reconciler/scheduling.d.ts +9 -0
  319. package/dist/_internal/reconciler/scheduling.js +203 -0
  320. package/dist/_internal/reconciler/sha256.d.ts +1 -0
  321. package/dist/_internal/reconciler/sha256.js +1 -0
  322. package/dist/_internal/reconciler/signatures.d.ts +13 -0
  323. package/dist/_internal/reconciler/signatures.js +37 -0
  324. package/dist/_internal/reconciler/temporal.d.ts +10 -0
  325. package/dist/_internal/reconciler/temporal.js +46 -0
  326. package/dist/_internal/reconciler/upgrades.d.ts +6 -0
  327. package/dist/_internal/reconciler/upgrades.js +65 -0
  328. package/dist/_internal/reconciler/wire.d.ts +2 -0
  329. package/dist/_internal/reconciler/wire.js +5 -0
  330. package/dist/_internal/reconciler/work.d.ts +32 -0
  331. package/dist/_internal/reconciler/work.js +101 -0
  332. package/dist/_internal/world-ir/schema.generated.d.ts +180 -0
  333. package/dist/_internal/world-ir/schema.generated.js +1127 -0
  334. package/dist/_internal/world-ir/types.generated.d.ts +1011 -0
  335. package/dist/_internal/world-ir/types.generated.js +1 -0
  336. package/dist/authoring.d.ts +9 -0
  337. package/dist/authoring.js +10 -0
  338. package/dist/catalogue.d.ts +20 -0
  339. package/dist/catalogue.js +531 -0
  340. package/dist/cli.d.ts +2 -0
  341. package/dist/cli.js +553 -0
  342. package/dist/codegen.d.ts +6 -0
  343. package/dist/codegen.js +89 -0
  344. package/dist/coverage.d.ts +60 -0
  345. package/dist/coverage.js +128 -0
  346. package/dist/deploy.d.ts +21 -0
  347. package/dist/deploy.js +72 -0
  348. package/dist/diagnostics.d.ts +9 -0
  349. package/dist/diagnostics.js +37 -0
  350. package/dist/diff.d.ts +17 -0
  351. package/dist/diff.js +19 -0
  352. package/dist/durable-object.d.ts +14 -0
  353. package/dist/durable-object.js +30 -0
  354. package/dist/explain.d.ts +113 -0
  355. package/dist/explain.js +225 -0
  356. package/dist/fixes.d.ts +4 -0
  357. package/dist/fixes.js +70 -0
  358. package/dist/fmt.d.ts +12 -0
  359. package/dist/fmt.js +39 -0
  360. package/dist/handle/open.d.ts +18 -0
  361. package/dist/handle/open.js +28 -0
  362. package/dist/handle/protocol.d.ts +12 -0
  363. package/dist/handle/protocol.js +96 -0
  364. package/dist/handle/store.d.ts +31 -0
  365. package/dist/handle/store.js +11 -0
  366. package/dist/handle/types.d.ts +37 -0
  367. package/dist/handle/types.js +1 -0
  368. package/dist/handle/world.d.ts +190 -0
  369. package/dist/handle/world.js +533 -0
  370. package/dist/http.d.ts +3 -0
  371. package/dist/http.js +72 -0
  372. package/dist/impact.d.ts +21 -0
  373. package/dist/impact.js +57 -0
  374. package/dist/index.d.ts +30 -0
  375. package/dist/index.js +43 -0
  376. package/dist/init.d.ts +13 -0
  377. package/dist/init.js +99 -0
  378. package/dist/ir-schema.json +4213 -0
  379. package/dist/lints.d.ts +8 -0
  380. package/dist/lints.js +154 -0
  381. package/dist/lsp.d.ts +14 -0
  382. package/dist/lsp.js +380 -0
  383. package/dist/manual/catalog.d.ts +12 -0
  384. package/dist/manual/catalog.js +23 -0
  385. package/dist/manual/examples.d.ts +15 -0
  386. package/dist/manual/examples.js +39 -0
  387. package/dist/manual/projections.d.ts +77 -0
  388. package/dist/manual/projections.js +344 -0
  389. package/dist/manual/prose.d.ts +19 -0
  390. package/dist/manual/prose.js +215 -0
  391. package/dist/manual/render.d.ts +76 -0
  392. package/dist/manual/render.js +250 -0
  393. package/dist/manual/text.d.ts +7 -0
  394. package/dist/manual/text.js +15 -0
  395. package/dist/mcp.d.ts +32 -0
  396. package/dist/mcp.js +269 -0
  397. package/dist/mutate.d.ts +36 -0
  398. package/dist/mutate.js +123 -0
  399. package/dist/project.d.ts +26 -0
  400. package/dist/project.js +80 -0
  401. package/dist/refine.d.ts +18 -0
  402. package/dist/refine.js +197 -0
  403. package/dist/release/diff.d.ts +45 -0
  404. package/dist/release/diff.js +103 -0
  405. package/dist/release/impact.d.ts +83 -0
  406. package/dist/release/impact.js +214 -0
  407. package/dist/release/nodes.d.ts +20 -0
  408. package/dist/release/nodes.js +118 -0
  409. package/dist/render.d.ts +19 -0
  410. package/dist/render.js +43 -0
  411. package/dist/serve.d.ts +18 -0
  412. package/dist/serve.js +140 -0
  413. package/dist/snapshot.d.ts +19 -0
  414. package/dist/snapshot.js +45 -0
  415. package/dist/sqlite.d.ts +16 -0
  416. package/dist/sqlite.js +151 -0
  417. package/dist/test.d.ts +54 -0
  418. package/dist/test.js +131 -0
  419. package/dist/world.d.ts +7 -0
  420. package/dist/world.js +5 -0
  421. package/docs/authoring/vendor-risk/example.forma +11 -0
  422. package/docs/authoring/vendor-risk/library/vendor.forma +76 -0
  423. package/docs/authoring/vendor-risk/scenarios/reviews.forma +107 -0
  424. package/docs/protocol.md +195 -0
  425. package/docs/reference.md +258 -0
  426. package/package.json +81 -3
@@ -0,0 +1,4213 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:worldvm:world-ir:1",
4
+ "$comment": "Generated from the WorldVM world IR definition.",
5
+ "$ref": "#/$defs/WorldIR",
6
+ "$defs": {
7
+ "Span": {
8
+ "type": "object",
9
+ "properties": {
10
+ "src": {
11
+ "type": "string"
12
+ },
13
+ "from": {
14
+ "type": "number"
15
+ },
16
+ "to": {
17
+ "type": "number"
18
+ },
19
+ "line": {
20
+ "type": "number"
21
+ },
22
+ "col": {
23
+ "type": "number"
24
+ }
25
+ },
26
+ "required": ["src", "from", "to", "line", "col"]
27
+ },
28
+ "TypeRef": {
29
+ "anyOf": [
30
+ {
31
+ "type": "string"
32
+ },
33
+ {
34
+ "type": "array",
35
+ "items": {
36
+ "$ref": "#/$defs/TypeRef"
37
+ }
38
+ }
39
+ ]
40
+ },
41
+ "Expr": {
42
+ "anyOf": [
43
+ {
44
+ "type": "object",
45
+ "properties": {
46
+ "k": {
47
+ "const": "lit"
48
+ },
49
+ "v": {
50
+ "anyOf": [
51
+ {
52
+ "type": "null"
53
+ },
54
+ {
55
+ "anyOf": [
56
+ {
57
+ "type": "string"
58
+ },
59
+ {
60
+ "type": "number"
61
+ },
62
+ {
63
+ "type": "boolean"
64
+ }
65
+ ]
66
+ }
67
+ ]
68
+ },
69
+ "at": {
70
+ "$ref": "#/$defs/Span"
71
+ }
72
+ },
73
+ "required": ["k", "v", "at"]
74
+ },
75
+ {
76
+ "type": "object",
77
+ "properties": {
78
+ "k": {
79
+ "const": "kw"
80
+ },
81
+ "v": {
82
+ "type": "string"
83
+ },
84
+ "at": {
85
+ "$ref": "#/$defs/Span"
86
+ }
87
+ },
88
+ "required": ["k", "v", "at"]
89
+ },
90
+ {
91
+ "type": "object",
92
+ "properties": {
93
+ "k": {
94
+ "const": "var"
95
+ },
96
+ "name": {
97
+ "type": "string"
98
+ },
99
+ "at": {
100
+ "$ref": "#/$defs/Span"
101
+ }
102
+ },
103
+ "required": ["k", "name", "at"]
104
+ },
105
+ {
106
+ "type": "object",
107
+ "properties": {
108
+ "k": {
109
+ "const": "ref"
110
+ },
111
+ "kind": {
112
+ "anyOf": [
113
+ {
114
+ "const": "evidence"
115
+ },
116
+ {
117
+ "const": "calendar"
118
+ },
119
+ {
120
+ "const": "decision"
121
+ },
122
+ {
123
+ "const": "notice"
124
+ }
125
+ ]
126
+ },
127
+ "name": {
128
+ "type": "string"
129
+ },
130
+ "at": {
131
+ "$ref": "#/$defs/Span"
132
+ }
133
+ },
134
+ "required": ["k", "kind", "name", "at"]
135
+ },
136
+ {
137
+ "type": "object",
138
+ "properties": {
139
+ "k": {
140
+ "const": "read"
141
+ },
142
+ "role": {
143
+ "type": "string"
144
+ },
145
+ "field": {
146
+ "type": "string"
147
+ },
148
+ "of": {
149
+ "$ref": "#/$defs/Expr"
150
+ },
151
+ "meta": {
152
+ "type": "object",
153
+ "properties": {
154
+ "path": {
155
+ "type": "string"
156
+ }
157
+ },
158
+ "required": ["path"]
159
+ },
160
+ "at": {
161
+ "$ref": "#/$defs/Span"
162
+ }
163
+ },
164
+ "required": ["k", "role", "field", "of", "meta", "at"]
165
+ },
166
+ {
167
+ "type": "object",
168
+ "properties": {
169
+ "k": {
170
+ "const": "attr"
171
+ },
172
+ "attr": {
173
+ "type": "string"
174
+ },
175
+ "of": {
176
+ "$ref": "#/$defs/Expr"
177
+ },
178
+ "meta": {
179
+ "type": "object",
180
+ "properties": {
181
+ "path": {
182
+ "type": "string"
183
+ },
184
+ "via": {
185
+ "type": "string"
186
+ }
187
+ },
188
+ "required": ["path"]
189
+ },
190
+ "at": {
191
+ "$ref": "#/$defs/Span"
192
+ }
193
+ },
194
+ "required": ["k", "attr", "of", "meta", "at"]
195
+ },
196
+ {
197
+ "type": "object",
198
+ "properties": {
199
+ "k": {
200
+ "const": "inst"
201
+ },
202
+ "field": {
203
+ "type": "string"
204
+ },
205
+ "of": {
206
+ "$ref": "#/$defs/Expr"
207
+ },
208
+ "at": {
209
+ "$ref": "#/$defs/Span"
210
+ }
211
+ },
212
+ "required": ["k", "field", "of", "at"]
213
+ },
214
+ {
215
+ "type": "object",
216
+ "properties": {
217
+ "k": {
218
+ "const": "call"
219
+ },
220
+ "fn": {
221
+ "type": "string"
222
+ },
223
+ "args": {
224
+ "type": "array",
225
+ "items": {
226
+ "$ref": "#/$defs/Expr"
227
+ }
228
+ },
229
+ "derive": {
230
+ "const": true
231
+ },
232
+ "at": {
233
+ "$ref": "#/$defs/Span"
234
+ }
235
+ },
236
+ "required": ["k", "fn", "args", "at"]
237
+ },
238
+ {
239
+ "type": "object",
240
+ "properties": {
241
+ "k": {
242
+ "const": "if"
243
+ },
244
+ "test": {
245
+ "$ref": "#/$defs/Expr"
246
+ },
247
+ "then": {
248
+ "$ref": "#/$defs/Expr"
249
+ },
250
+ "else": {
251
+ "$ref": "#/$defs/Expr"
252
+ },
253
+ "at": {
254
+ "$ref": "#/$defs/Span"
255
+ }
256
+ },
257
+ "required": ["k", "test", "then", "else", "at"]
258
+ },
259
+ {
260
+ "type": "object",
261
+ "properties": {
262
+ "k": {
263
+ "const": "fn"
264
+ },
265
+ "params": {
266
+ "type": "array",
267
+ "items": {
268
+ "type": "string"
269
+ }
270
+ },
271
+ "body": {
272
+ "$ref": "#/$defs/Expr"
273
+ },
274
+ "at": {
275
+ "$ref": "#/$defs/Span"
276
+ }
277
+ },
278
+ "required": ["k", "params", "body", "at"]
279
+ },
280
+ {
281
+ "type": "object",
282
+ "properties": {
283
+ "k": {
284
+ "const": "list"
285
+ },
286
+ "items": {
287
+ "type": "array",
288
+ "items": {
289
+ "$ref": "#/$defs/Expr"
290
+ }
291
+ },
292
+ "at": {
293
+ "$ref": "#/$defs/Span"
294
+ }
295
+ },
296
+ "required": ["k", "items", "at"]
297
+ }
298
+ ]
299
+ },
300
+ "FilePolicy": {
301
+ "type": "object",
302
+ "properties": {
303
+ "accept": {
304
+ "type": "array",
305
+ "items": {
306
+ "type": "string"
307
+ },
308
+ "minItems": 1
309
+ },
310
+ "maxBytes": {
311
+ "type": "integer",
312
+ "minimum": -9007199254740991,
313
+ "maximum": 9007199254740991
314
+ },
315
+ "at": {
316
+ "$ref": "#/$defs/Span"
317
+ }
318
+ },
319
+ "required": ["accept", "maxBytes", "at"]
320
+ },
321
+ "Seal": {
322
+ "type": "object",
323
+ "properties": {
324
+ "vault": {
325
+ "type": "string"
326
+ },
327
+ "at": {
328
+ "$ref": "#/$defs/Span"
329
+ }
330
+ },
331
+ "required": ["vault", "at"]
332
+ },
333
+ "Field": {
334
+ "type": "object",
335
+ "properties": {
336
+ "name": {
337
+ "type": "string"
338
+ },
339
+ "type": {
340
+ "$ref": "#/$defs/TypeRef"
341
+ },
342
+ "file": {
343
+ "$ref": "#/$defs/FilePolicy"
344
+ },
345
+ "sealedBy": {
346
+ "$ref": "#/$defs/Seal"
347
+ }
348
+ },
349
+ "required": ["name", "type"]
350
+ },
351
+ "Source": {
352
+ "type": "object",
353
+ "properties": {
354
+ "name": {
355
+ "type": "string"
356
+ },
357
+ "doc": {
358
+ "type": "string"
359
+ },
360
+ "kind": {
361
+ "anyOf": [
362
+ {
363
+ "const": "law"
364
+ },
365
+ {
366
+ "const": "regulation"
367
+ },
368
+ {
369
+ "const": "guidance"
370
+ },
371
+ {
372
+ "const": "framework"
373
+ },
374
+ {
375
+ "const": "contract"
376
+ },
377
+ {
378
+ "const": "policy"
379
+ }
380
+ ]
381
+ },
382
+ "jurisdiction": {
383
+ "type": "string"
384
+ },
385
+ "url": {
386
+ "type": "string"
387
+ },
388
+ "asOf": {
389
+ "type": "string"
390
+ },
391
+ "at": {
392
+ "$ref": "#/$defs/Span"
393
+ }
394
+ },
395
+ "required": ["name", "kind", "url", "asOf", "at"]
396
+ },
397
+ "Citation": {
398
+ "type": "object",
399
+ "properties": {
400
+ "source": {
401
+ "type": "string"
402
+ },
403
+ "clause": {
404
+ "type": "string"
405
+ },
406
+ "at": {
407
+ "$ref": "#/$defs/Span"
408
+ }
409
+ },
410
+ "required": ["source", "clause", "at"]
411
+ },
412
+ "SensitiveClass": {
413
+ "anyOf": [
414
+ {
415
+ "const": "pii"
416
+ },
417
+ {
418
+ "const": "financial"
419
+ },
420
+ {
421
+ "const": "health"
422
+ },
423
+ {
424
+ "const": "immigration"
425
+ }
426
+ ]
427
+ },
428
+ "AgentReadGrant": {
429
+ "type": "object",
430
+ "properties": {
431
+ "class": {
432
+ "$ref": "#/$defs/SensitiveClass"
433
+ },
434
+ "vault": {
435
+ "type": "string"
436
+ },
437
+ "at": {
438
+ "$ref": "#/$defs/Span"
439
+ }
440
+ },
441
+ "required": ["class", "vault", "at"]
442
+ },
443
+ "Agent": {
444
+ "type": "object",
445
+ "properties": {
446
+ "name": {
447
+ "type": "string"
448
+ },
449
+ "doc": {
450
+ "type": "string"
451
+ },
452
+ "of": {
453
+ "type": "string"
454
+ },
455
+ "reads": {
456
+ "type": "array",
457
+ "items": {
458
+ "$ref": "#/$defs/Expr"
459
+ },
460
+ "minItems": 1
461
+ },
462
+ "mayRead": {
463
+ "type": "array",
464
+ "items": {
465
+ "$ref": "#/$defs/AgentReadGrant"
466
+ }
467
+ },
468
+ "at": {
469
+ "$ref": "#/$defs/Span"
470
+ }
471
+ },
472
+ "required": ["name", "of", "reads", "mayRead", "at"]
473
+ },
474
+ "VaultKey": {
475
+ "type": "object",
476
+ "properties": {
477
+ "kind": {
478
+ "anyOf": [
479
+ {
480
+ "const": "occurrence"
481
+ },
482
+ {
483
+ "const": "subject"
484
+ }
485
+ ]
486
+ },
487
+ "target": {
488
+ "type": "string"
489
+ },
490
+ "at": {
491
+ "$ref": "#/$defs/Span"
492
+ }
493
+ },
494
+ "required": ["kind", "target", "at"]
495
+ },
496
+ "VaultErasure": {
497
+ "type": "object",
498
+ "properties": {
499
+ "kind": {
500
+ "anyOf": [
501
+ {
502
+ "const": "held-until-retained"
503
+ },
504
+ {
505
+ "const": "on-request"
506
+ }
507
+ ]
508
+ },
509
+ "at": {
510
+ "$ref": "#/$defs/Span"
511
+ }
512
+ },
513
+ "required": ["kind", "at"]
514
+ },
515
+ "VaultDisposal": {
516
+ "type": "object",
517
+ "properties": {
518
+ "name": {
519
+ "type": "string"
520
+ },
521
+ "by": {
522
+ "$ref": "#/$defs/Expr"
523
+ },
524
+ "byKind": {
525
+ "anyOf": [
526
+ {
527
+ "const": "individual"
528
+ },
529
+ {
530
+ "const": "group"
531
+ }
532
+ ]
533
+ },
534
+ "approvals": {
535
+ "type": "integer",
536
+ "minimum": 1,
537
+ "maximum": 9007199254740991
538
+ },
539
+ "at": {
540
+ "$ref": "#/$defs/Span"
541
+ }
542
+ },
543
+ "required": ["name", "by", "byKind", "approvals", "at"]
544
+ },
545
+ "Vault": {
546
+ "type": "object",
547
+ "properties": {
548
+ "name": {
549
+ "type": "string"
550
+ },
551
+ "doc": {
552
+ "type": "string"
553
+ },
554
+ "key": {
555
+ "$ref": "#/$defs/VaultKey"
556
+ },
557
+ "holds": {
558
+ "type": "array",
559
+ "items": {
560
+ "$ref": "#/$defs/SensitiveClass"
561
+ },
562
+ "minItems": 1
563
+ },
564
+ "retain": {
565
+ "$ref": "#/$defs/Expr"
566
+ },
567
+ "cites": {
568
+ "type": "array",
569
+ "items": {
570
+ "$ref": "#/$defs/Citation"
571
+ },
572
+ "minItems": 1
573
+ },
574
+ "erasure": {
575
+ "$ref": "#/$defs/VaultErasure"
576
+ },
577
+ "dispose": {
578
+ "$ref": "#/$defs/VaultDisposal"
579
+ },
580
+ "at": {
581
+ "$ref": "#/$defs/Span"
582
+ }
583
+ },
584
+ "required": ["name", "key", "holds", "retain", "cites", "erasure", "dispose", "at"]
585
+ },
586
+ "Library": {
587
+ "type": "object",
588
+ "properties": {
589
+ "name": {
590
+ "type": "string"
591
+ },
592
+ "doc": {
593
+ "type": "string"
594
+ },
595
+ "version": {
596
+ "type": "string"
597
+ },
598
+ "subject": {
599
+ "type": "string"
600
+ },
601
+ "digest": {
602
+ "type": "string"
603
+ },
604
+ "at": {
605
+ "$ref": "#/$defs/Span"
606
+ }
607
+ },
608
+ "required": ["name", "version", "subject", "digest", "at"]
609
+ },
610
+ "TypeAlias": {
611
+ "type": "object",
612
+ "properties": {
613
+ "name": {
614
+ "type": "string"
615
+ },
616
+ "type": {
617
+ "$ref": "#/$defs/TypeRef"
618
+ },
619
+ "at": {
620
+ "$ref": "#/$defs/Span"
621
+ }
622
+ },
623
+ "required": ["name", "type", "at"]
624
+ },
625
+ "Role": {
626
+ "type": "object",
627
+ "properties": {
628
+ "name": {
629
+ "type": "string"
630
+ },
631
+ "doc": {
632
+ "type": "string"
633
+ },
634
+ "fields": {
635
+ "type": "array",
636
+ "items": {
637
+ "$ref": "#/$defs/Field"
638
+ }
639
+ },
640
+ "at": {
641
+ "$ref": "#/$defs/Span"
642
+ }
643
+ },
644
+ "required": ["name", "fields", "at"]
645
+ },
646
+ "EntityField": {
647
+ "type": "object",
648
+ "properties": {
649
+ "name": {
650
+ "type": "string"
651
+ },
652
+ "type": {
653
+ "$ref": "#/$defs/TypeRef"
654
+ },
655
+ "attr": {
656
+ "type": "string"
657
+ },
658
+ "file": {
659
+ "$ref": "#/$defs/FilePolicy"
660
+ },
661
+ "sealedBy": {
662
+ "$ref": "#/$defs/Seal"
663
+ }
664
+ },
665
+ "required": ["name", "type", "attr"]
666
+ },
667
+ "Binding": {
668
+ "type": "object",
669
+ "properties": {
670
+ "role": {
671
+ "type": "string"
672
+ },
673
+ "field": {
674
+ "type": "string"
675
+ },
676
+ "path": {
677
+ "type": "array",
678
+ "items": {
679
+ "type": "string"
680
+ }
681
+ },
682
+ "attrs": {
683
+ "type": "array",
684
+ "items": {
685
+ "type": "string"
686
+ }
687
+ },
688
+ "at": {
689
+ "$ref": "#/$defs/Span"
690
+ }
691
+ },
692
+ "required": ["role", "field", "path", "attrs", "at"]
693
+ },
694
+ "Entity": {
695
+ "type": "object",
696
+ "properties": {
697
+ "name": {
698
+ "type": "string"
699
+ },
700
+ "doc": {
701
+ "type": "string"
702
+ },
703
+ "ns": {
704
+ "type": "string"
705
+ },
706
+ "nsDeclared": {
707
+ "type": "boolean"
708
+ },
709
+ "display": {
710
+ "type": "string"
711
+ },
712
+ "fields": {
713
+ "type": "array",
714
+ "items": {
715
+ "$ref": "#/$defs/EntityField"
716
+ }
717
+ },
718
+ "implements": {
719
+ "type": "array",
720
+ "items": {
721
+ "$ref": "#/$defs/Binding"
722
+ }
723
+ },
724
+ "at": {
725
+ "$ref": "#/$defs/Span"
726
+ }
727
+ },
728
+ "required": ["name", "ns", "nsDeclared", "fields", "implements", "at"]
729
+ },
730
+ "Holiday": {
731
+ "type": "object",
732
+ "properties": {
733
+ "name": {
734
+ "type": "string"
735
+ },
736
+ "label": {
737
+ "type": "string"
738
+ },
739
+ "month": {
740
+ "type": "number"
741
+ },
742
+ "day": {
743
+ "type": "number"
744
+ },
745
+ "weekday": {
746
+ "type": "string"
747
+ },
748
+ "nth": {
749
+ "type": "number"
750
+ },
751
+ "observed": {
752
+ "type": "boolean"
753
+ }
754
+ },
755
+ "required": ["name", "label", "month", "observed"]
756
+ },
757
+ "Calendar": {
758
+ "type": "object",
759
+ "properties": {
760
+ "name": {
761
+ "type": "string"
762
+ },
763
+ "doc": {
764
+ "type": "string"
765
+ },
766
+ "version": {
767
+ "type": "string"
768
+ },
769
+ "weekend": {
770
+ "type": "array",
771
+ "items": {
772
+ "type": "string"
773
+ }
774
+ },
775
+ "holidays": {
776
+ "type": "array",
777
+ "items": {
778
+ "$ref": "#/$defs/Holiday"
779
+ }
780
+ },
781
+ "at": {
782
+ "$ref": "#/$defs/Span"
783
+ }
784
+ },
785
+ "required": ["name", "version", "weekend", "holidays", "at"]
786
+ },
787
+ "Derive": {
788
+ "type": "object",
789
+ "properties": {
790
+ "name": {
791
+ "type": "string"
792
+ },
793
+ "doc": {
794
+ "type": "string"
795
+ },
796
+ "params": {
797
+ "type": "array",
798
+ "items": {
799
+ "$ref": "#/$defs/Field"
800
+ }
801
+ },
802
+ "returns": {
803
+ "$ref": "#/$defs/TypeRef"
804
+ },
805
+ "body": {
806
+ "$ref": "#/$defs/Expr"
807
+ },
808
+ "at": {
809
+ "$ref": "#/$defs/Span"
810
+ }
811
+ },
812
+ "required": ["name", "params", "returns", "body", "at"]
813
+ },
814
+ "Rule": {
815
+ "type": "object",
816
+ "properties": {
817
+ "name": {
818
+ "type": "string"
819
+ },
820
+ "when": {
821
+ "$ref": "#/$defs/Expr"
822
+ },
823
+ "requires": {
824
+ "type": "object",
825
+ "properties": {
826
+ "mode": {
827
+ "anyOf": [
828
+ {
829
+ "const": "all"
830
+ },
831
+ {
832
+ "const": "one-of"
833
+ }
834
+ ]
835
+ },
836
+ "fields": {
837
+ "type": "array",
838
+ "items": {
839
+ "type": "string"
840
+ }
841
+ }
842
+ },
843
+ "required": ["mode", "fields"]
844
+ },
845
+ "at": {
846
+ "$ref": "#/$defs/Span"
847
+ }
848
+ },
849
+ "required": ["name", "requires", "at"]
850
+ },
851
+ "AmendmentPolicy": {
852
+ "type": "object",
853
+ "properties": {
854
+ "at": {
855
+ "$ref": "#/$defs/Span"
856
+ }
857
+ },
858
+ "required": ["at"]
859
+ },
860
+ "AmendmentInput": {
861
+ "type": "object",
862
+ "properties": {
863
+ "previous": {
864
+ "type": "string"
865
+ },
866
+ "reason": {
867
+ "type": "string"
868
+ }
869
+ },
870
+ "required": ["previous", "reason"]
871
+ },
872
+ "SignaturePolicy": {
873
+ "type": "object",
874
+ "properties": {
875
+ "consent": {
876
+ "type": "string"
877
+ },
878
+ "intent": {
879
+ "type": "string"
880
+ }
881
+ },
882
+ "required": ["consent", "intent"]
883
+ },
884
+ "SignatureInput": {
885
+ "type": "object",
886
+ "properties": {
887
+ "consent": {
888
+ "type": "boolean"
889
+ },
890
+ "intent": {
891
+ "type": "boolean"
892
+ },
893
+ "method": {
894
+ "type": "string"
895
+ },
896
+ "device": {
897
+ "type": "string"
898
+ }
899
+ },
900
+ "required": ["consent", "intent", "method", "device"]
901
+ },
902
+ "Evidence": {
903
+ "type": "object",
904
+ "properties": {
905
+ "name": {
906
+ "type": "string"
907
+ },
908
+ "doc": {
909
+ "type": "string"
910
+ },
911
+ "of": {
912
+ "type": "string"
913
+ },
914
+ "label": {
915
+ "type": "string"
916
+ },
917
+ "fields": {
918
+ "type": "array",
919
+ "items": {
920
+ "$ref": "#/$defs/Field"
921
+ }
922
+ },
923
+ "sealedBy": {
924
+ "$ref": "#/$defs/Seal"
925
+ },
926
+ "expires": {
927
+ "$ref": "#/$defs/Expr"
928
+ },
929
+ "rules": {
930
+ "type": "array",
931
+ "items": {
932
+ "$ref": "#/$defs/Rule"
933
+ }
934
+ },
935
+ "amend": {
936
+ "$ref": "#/$defs/AmendmentPolicy"
937
+ },
938
+ "attest": {
939
+ "type": "object",
940
+ "properties": {
941
+ "signer": {
942
+ "type": "string"
943
+ },
944
+ "covers": {
945
+ "type": "string"
946
+ },
947
+ "method": {
948
+ "type": "string"
949
+ },
950
+ "audit": {
951
+ "$ref": "#/$defs/SignaturePolicy"
952
+ }
953
+ },
954
+ "required": ["signer", "covers", "method"]
955
+ },
956
+ "at": {
957
+ "$ref": "#/$defs/Span"
958
+ }
959
+ },
960
+ "required": ["name", "of", "fields", "rules", "at"]
961
+ },
962
+ "InteractionBinding": {
963
+ "type": "object",
964
+ "properties": {
965
+ "field": {
966
+ "type": "string"
967
+ },
968
+ "from": {
969
+ "$ref": "#/$defs/Expr"
970
+ },
971
+ "target": {
972
+ "$ref": "#/$defs/Expr"
973
+ }
974
+ },
975
+ "required": ["field"]
976
+ },
977
+ "Interaction": {
978
+ "type": "object",
979
+ "properties": {
980
+ "name": {
981
+ "type": "string"
982
+ },
983
+ "doc": {
984
+ "type": "string"
985
+ },
986
+ "actor": {
987
+ "type": "string"
988
+ },
989
+ "produces": {
990
+ "type": "string"
991
+ },
992
+ "binds": {
993
+ "type": "array",
994
+ "items": {
995
+ "$ref": "#/$defs/InteractionBinding"
996
+ }
997
+ },
998
+ "fixes": {
999
+ "type": "array",
1000
+ "items": {
1001
+ "type": "object",
1002
+ "properties": {
1003
+ "field": {
1004
+ "type": "string"
1005
+ },
1006
+ "value": {
1007
+ "anyOf": [
1008
+ {
1009
+ "type": "string"
1010
+ },
1011
+ {
1012
+ "type": "number"
1013
+ },
1014
+ {
1015
+ "type": "boolean"
1016
+ }
1017
+ ]
1018
+ }
1019
+ },
1020
+ "required": ["field", "value"]
1021
+ }
1022
+ },
1023
+ "layout": {
1024
+ "type": "string"
1025
+ },
1026
+ "at": {
1027
+ "$ref": "#/$defs/Span"
1028
+ }
1029
+ },
1030
+ "required": ["name", "actor", "produces", "binds", "at"]
1031
+ },
1032
+ "LayoutItem": {
1033
+ "anyOf": [
1034
+ {
1035
+ "type": "object",
1036
+ "properties": {
1037
+ "kind": {
1038
+ "const": "field"
1039
+ },
1040
+ "name": {
1041
+ "type": "string"
1042
+ },
1043
+ "label": {
1044
+ "type": "string"
1045
+ },
1046
+ "showWhen": {
1047
+ "$ref": "#/$defs/Expr"
1048
+ },
1049
+ "options": {
1050
+ "type": "array",
1051
+ "items": {
1052
+ "type": "object",
1053
+ "properties": {
1054
+ "value": {
1055
+ "type": "string"
1056
+ },
1057
+ "label": {
1058
+ "type": "string"
1059
+ }
1060
+ },
1061
+ "required": ["value", "label"]
1062
+ }
1063
+ },
1064
+ "at": {
1065
+ "$ref": "#/$defs/Span"
1066
+ }
1067
+ },
1068
+ "required": ["kind", "name", "at"]
1069
+ },
1070
+ {
1071
+ "type": "object",
1072
+ "properties": {
1073
+ "kind": {
1074
+ "const": "group"
1075
+ },
1076
+ "name": {
1077
+ "type": "string"
1078
+ },
1079
+ "label": {
1080
+ "type": "string"
1081
+ },
1082
+ "showWhen": {
1083
+ "$ref": "#/$defs/Expr"
1084
+ },
1085
+ "items": {
1086
+ "type": "array",
1087
+ "items": {
1088
+ "$ref": "#/$defs/LayoutItem"
1089
+ }
1090
+ },
1091
+ "at": {
1092
+ "$ref": "#/$defs/Span"
1093
+ }
1094
+ },
1095
+ "required": ["kind", "name", "items", "at"]
1096
+ },
1097
+ {
1098
+ "type": "object",
1099
+ "properties": {
1100
+ "kind": {
1101
+ "const": "widget"
1102
+ },
1103
+ "name": {
1104
+ "type": "string"
1105
+ },
1106
+ "at": {
1107
+ "$ref": "#/$defs/Span"
1108
+ }
1109
+ },
1110
+ "required": ["kind", "name", "at"]
1111
+ },
1112
+ {
1113
+ "type": "object",
1114
+ "properties": {
1115
+ "kind": {
1116
+ "const": "sign"
1117
+ },
1118
+ "at": {
1119
+ "$ref": "#/$defs/Span"
1120
+ }
1121
+ },
1122
+ "required": ["kind", "at"]
1123
+ }
1124
+ ]
1125
+ },
1126
+ "Layout": {
1127
+ "type": "object",
1128
+ "properties": {
1129
+ "name": {
1130
+ "type": "string"
1131
+ },
1132
+ "doc": {
1133
+ "type": "string"
1134
+ },
1135
+ "steps": {
1136
+ "type": "array",
1137
+ "items": {
1138
+ "type": "object",
1139
+ "properties": {
1140
+ "name": {
1141
+ "type": "string"
1142
+ },
1143
+ "label": {
1144
+ "type": "string"
1145
+ },
1146
+ "items": {
1147
+ "type": "array",
1148
+ "items": {
1149
+ "$ref": "#/$defs/LayoutItem"
1150
+ }
1151
+ },
1152
+ "at": {
1153
+ "$ref": "#/$defs/Span"
1154
+ }
1155
+ },
1156
+ "required": ["name", "items", "at"]
1157
+ }
1158
+ },
1159
+ "at": {
1160
+ "$ref": "#/$defs/Span"
1161
+ }
1162
+ },
1163
+ "required": ["name", "steps", "at"]
1164
+ },
1165
+ "Connector": {
1166
+ "type": "object",
1167
+ "properties": {
1168
+ "name": {
1169
+ "type": "string"
1170
+ },
1171
+ "doc": {
1172
+ "type": "string"
1173
+ },
1174
+ "capabilities": {
1175
+ "type": "array",
1176
+ "items": {
1177
+ "type": "string"
1178
+ }
1179
+ },
1180
+ "signals": {
1181
+ "type": "array",
1182
+ "items": {
1183
+ "type": "string"
1184
+ }
1185
+ },
1186
+ "owns": {
1187
+ "type": "array",
1188
+ "items": {
1189
+ "type": "string"
1190
+ }
1191
+ },
1192
+ "at": {
1193
+ "$ref": "#/$defs/Span"
1194
+ }
1195
+ },
1196
+ "required": ["name", "capabilities", "signals", "owns", "at"]
1197
+ },
1198
+ "Machine": {
1199
+ "type": "object",
1200
+ "properties": {
1201
+ "name": {
1202
+ "type": "string"
1203
+ },
1204
+ "doc": {
1205
+ "type": "string"
1206
+ },
1207
+ "signal": {
1208
+ "type": "string"
1209
+ },
1210
+ "initial": {
1211
+ "type": "string"
1212
+ },
1213
+ "final": {
1214
+ "type": "array",
1215
+ "items": {
1216
+ "type": "string"
1217
+ }
1218
+ },
1219
+ "states": {
1220
+ "type": "array",
1221
+ "items": {
1222
+ "type": "object",
1223
+ "properties": {
1224
+ "name": {
1225
+ "type": "string"
1226
+ },
1227
+ "label": {
1228
+ "type": "string"
1229
+ }
1230
+ },
1231
+ "required": ["name", "label"]
1232
+ }
1233
+ },
1234
+ "transitions": {
1235
+ "type": "array",
1236
+ "items": {
1237
+ "type": "object",
1238
+ "properties": {
1239
+ "from": {
1240
+ "type": "string"
1241
+ },
1242
+ "to": {
1243
+ "type": "string"
1244
+ }
1245
+ },
1246
+ "required": ["from", "to"]
1247
+ }
1248
+ },
1249
+ "at": {
1250
+ "$ref": "#/$defs/Span"
1251
+ }
1252
+ },
1253
+ "required": ["name", "signal", "initial", "final", "states", "transitions", "at"]
1254
+ },
1255
+ "InputHome": {
1256
+ "type": "object",
1257
+ "properties": {
1258
+ "kind": {
1259
+ "const": "input"
1260
+ },
1261
+ "path": {
1262
+ "type": "array",
1263
+ "items": {
1264
+ "type": "string"
1265
+ },
1266
+ "minItems": 1
1267
+ }
1268
+ },
1269
+ "required": ["kind", "path"]
1270
+ },
1271
+ "Home": {
1272
+ "$ref": "#/$defs/InputHome"
1273
+ },
1274
+ "Milestone": {
1275
+ "type": "object",
1276
+ "properties": {
1277
+ "name": {
1278
+ "type": "string"
1279
+ },
1280
+ "label": {
1281
+ "type": "string"
1282
+ },
1283
+ "when": {
1284
+ "$ref": "#/$defs/Expr"
1285
+ },
1286
+ "at": {
1287
+ "$ref": "#/$defs/Span"
1288
+ }
1289
+ },
1290
+ "required": ["name", "when", "at"]
1291
+ },
1292
+ "DayOffset": {
1293
+ "type": "integer",
1294
+ "minimum": 0,
1295
+ "maximum": 9007199254740991
1296
+ },
1297
+ "Escalation": {
1298
+ "type": "object",
1299
+ "properties": {
1300
+ "afterDays": {
1301
+ "$ref": "#/$defs/DayOffset"
1302
+ },
1303
+ "kind": {
1304
+ "anyOf": [
1305
+ {
1306
+ "const": "notify"
1307
+ },
1308
+ {
1309
+ "const": "reassign"
1310
+ }
1311
+ ]
1312
+ },
1313
+ "who": {
1314
+ "$ref": "#/$defs/Expr"
1315
+ },
1316
+ "whoKind": {
1317
+ "anyOf": [
1318
+ {
1319
+ "const": "entity"
1320
+ },
1321
+ {
1322
+ "const": "group"
1323
+ }
1324
+ ]
1325
+ },
1326
+ "at": {
1327
+ "$ref": "#/$defs/Span"
1328
+ }
1329
+ },
1330
+ "required": ["afterDays", "kind", "who", "at"]
1331
+ },
1332
+ "Hold": {
1333
+ "type": "object",
1334
+ "properties": {
1335
+ "name": {
1336
+ "type": "string"
1337
+ },
1338
+ "label": {
1339
+ "type": "string"
1340
+ },
1341
+ "while": {
1342
+ "$ref": "#/$defs/Expr"
1343
+ },
1344
+ "pauses": {
1345
+ "type": "array",
1346
+ "items": {
1347
+ "anyOf": [
1348
+ {
1349
+ "const": "dispatch"
1350
+ },
1351
+ {
1352
+ "const": "remind"
1353
+ },
1354
+ {
1355
+ "const": "escalate"
1356
+ }
1357
+ ]
1358
+ },
1359
+ "minItems": 1
1360
+ },
1361
+ "cites": {
1362
+ "type": "array",
1363
+ "items": {
1364
+ "$ref": "#/$defs/Citation"
1365
+ }
1366
+ },
1367
+ "at": {
1368
+ "$ref": "#/$defs/Span"
1369
+ }
1370
+ },
1371
+ "required": ["name", "while", "pauses", "at"]
1372
+ },
1373
+ "Accepts": {
1374
+ "type": "object",
1375
+ "properties": {
1376
+ "kind": {
1377
+ "const": "prior-cycle"
1378
+ },
1379
+ "from": {
1380
+ "type": "string"
1381
+ },
1382
+ "with": {
1383
+ "type": "string"
1384
+ },
1385
+ "within": {
1386
+ "$ref": "#/$defs/Expr"
1387
+ },
1388
+ "confirm": {
1389
+ "$ref": "#/$defs/Expr"
1390
+ },
1391
+ "label": {
1392
+ "type": "string"
1393
+ }
1394
+ },
1395
+ "required": ["kind"]
1396
+ },
1397
+ "Recurrence": {
1398
+ "type": "object",
1399
+ "properties": {
1400
+ "every": {
1401
+ "type": "object",
1402
+ "properties": {
1403
+ "n": {
1404
+ "type": "integer",
1405
+ "minimum": -9007199254740991,
1406
+ "maximum": 9007199254740991,
1407
+ "exclusiveMinimum": 0
1408
+ },
1409
+ "unit": {
1410
+ "anyOf": [
1411
+ {
1412
+ "const": "days"
1413
+ },
1414
+ {
1415
+ "const": "years"
1416
+ }
1417
+ ]
1418
+ }
1419
+ },
1420
+ "required": ["n", "unit"]
1421
+ },
1422
+ "from": {
1423
+ "$ref": "#/$defs/Expr"
1424
+ },
1425
+ "at": {
1426
+ "$ref": "#/$defs/Span"
1427
+ }
1428
+ },
1429
+ "required": ["every", "from", "at"]
1430
+ },
1431
+ "Effective": {
1432
+ "anyOf": [
1433
+ {
1434
+ "type": "object",
1435
+ "properties": {
1436
+ "from": {
1437
+ "type": "string",
1438
+ "format": "date",
1439
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
1440
+ },
1441
+ "until": {
1442
+ "type": "string",
1443
+ "format": "date",
1444
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
1445
+ },
1446
+ "at": {
1447
+ "$ref": "#/$defs/Span"
1448
+ }
1449
+ },
1450
+ "required": ["from", "at"]
1451
+ },
1452
+ {
1453
+ "type": "object",
1454
+ "properties": {
1455
+ "from": {
1456
+ "type": "string",
1457
+ "format": "date",
1458
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
1459
+ },
1460
+ "until": {
1461
+ "type": "string",
1462
+ "format": "date",
1463
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
1464
+ },
1465
+ "at": {
1466
+ "$ref": "#/$defs/Span"
1467
+ }
1468
+ },
1469
+ "required": ["until", "at"]
1470
+ }
1471
+ ]
1472
+ },
1473
+ "RenewalWindow": {
1474
+ "type": "object",
1475
+ "properties": {
1476
+ "n": {
1477
+ "type": "integer",
1478
+ "minimum": 0,
1479
+ "maximum": 9007199254740991
1480
+ },
1481
+ "unit": {
1482
+ "anyOf": [
1483
+ {
1484
+ "const": "days"
1485
+ },
1486
+ {
1487
+ "const": "years"
1488
+ }
1489
+ ]
1490
+ },
1491
+ "at": {
1492
+ "$ref": "#/$defs/Span"
1493
+ }
1494
+ },
1495
+ "required": ["n", "unit", "at"]
1496
+ },
1497
+ "Reuse": {
1498
+ "type": "object",
1499
+ "properties": {
1500
+ "scope": {
1501
+ "type": "array",
1502
+ "items": {
1503
+ "$ref": "#/$defs/Expr"
1504
+ },
1505
+ "minItems": 1
1506
+ },
1507
+ "within": {
1508
+ "$ref": "#/$defs/ConfirmationWindow"
1509
+ },
1510
+ "confirm": {
1511
+ "$ref": "#/$defs/Expr"
1512
+ },
1513
+ "confirmKind": {
1514
+ "anyOf": [
1515
+ {
1516
+ "const": "entity"
1517
+ },
1518
+ {
1519
+ "const": "group"
1520
+ }
1521
+ ]
1522
+ },
1523
+ "at": {
1524
+ "$ref": "#/$defs/Span"
1525
+ }
1526
+ },
1527
+ "required": ["scope", "within", "at"]
1528
+ },
1529
+ "Notice": {
1530
+ "type": "object",
1531
+ "properties": {
1532
+ "name": {
1533
+ "type": "string"
1534
+ },
1535
+ "doc": {
1536
+ "type": "string"
1537
+ },
1538
+ "of": {
1539
+ "type": "string"
1540
+ },
1541
+ "document": {
1542
+ "type": "string"
1543
+ },
1544
+ "to": {
1545
+ "$ref": "#/$defs/Expr"
1546
+ },
1547
+ "sealedBy": {
1548
+ "$ref": "#/$defs/Seal"
1549
+ },
1550
+ "at": {
1551
+ "$ref": "#/$defs/Span"
1552
+ }
1553
+ },
1554
+ "required": ["name", "of", "document", "to", "at"]
1555
+ },
1556
+ "DocumentField": {
1557
+ "type": "object",
1558
+ "properties": {
1559
+ "label": {
1560
+ "type": "string"
1561
+ },
1562
+ "evidence": {
1563
+ "type": "string"
1564
+ },
1565
+ "field": {
1566
+ "type": "string"
1567
+ },
1568
+ "at": {
1569
+ "$ref": "#/$defs/Span"
1570
+ }
1571
+ },
1572
+ "required": ["label", "evidence", "field", "at"]
1573
+ },
1574
+ "Document": {
1575
+ "type": "object",
1576
+ "properties": {
1577
+ "name": {
1578
+ "type": "string"
1579
+ },
1580
+ "doc": {
1581
+ "type": "string"
1582
+ },
1583
+ "of": {
1584
+ "type": "string"
1585
+ },
1586
+ "resource": {
1587
+ "type": "object",
1588
+ "properties": {
1589
+ "name": {
1590
+ "type": "string"
1591
+ },
1592
+ "at": {
1593
+ "$ref": "#/$defs/Span"
1594
+ }
1595
+ },
1596
+ "required": ["name", "at"]
1597
+ },
1598
+ "sources": {
1599
+ "type": "array",
1600
+ "items": {
1601
+ "type": "string"
1602
+ },
1603
+ "minItems": 1
1604
+ },
1605
+ "edition": {
1606
+ "type": "string"
1607
+ },
1608
+ "effective": {
1609
+ "$ref": "#/$defs/Effective"
1610
+ },
1611
+ "title": {
1612
+ "type": "string"
1613
+ },
1614
+ "fields": {
1615
+ "type": "array",
1616
+ "items": {
1617
+ "$ref": "#/$defs/DocumentField"
1618
+ },
1619
+ "minItems": 1
1620
+ },
1621
+ "sealedBy": {
1622
+ "$ref": "#/$defs/Seal"
1623
+ },
1624
+ "at": {
1625
+ "$ref": "#/$defs/Span"
1626
+ }
1627
+ },
1628
+ "required": ["name", "of", "sources", "edition", "effective", "title", "fields", "at"]
1629
+ },
1630
+ "Requirement": {
1631
+ "type": "object",
1632
+ "properties": {
1633
+ "discretionary": {
1634
+ "type": "string"
1635
+ },
1636
+ "escalate": {
1637
+ "type": "array",
1638
+ "items": {
1639
+ "$ref": "#/$defs/Escalation"
1640
+ }
1641
+ },
1642
+ "name": {
1643
+ "type": "string"
1644
+ },
1645
+ "label": {
1646
+ "type": "string"
1647
+ },
1648
+ "appliesWhen": {
1649
+ "$ref": "#/$defs/Expr"
1650
+ },
1651
+ "satisfiedBy": {
1652
+ "$ref": "#/$defs/Expr"
1653
+ },
1654
+ "cites": {
1655
+ "type": "array",
1656
+ "items": {
1657
+ "$ref": "#/$defs/Citation"
1658
+ }
1659
+ },
1660
+ "accepts": {
1661
+ "$ref": "#/$defs/Accepts"
1662
+ },
1663
+ "reuse": {
1664
+ "$ref": "#/$defs/Reuse"
1665
+ },
1666
+ "cycle": {
1667
+ "$ref": "#/$defs/Expr"
1668
+ },
1669
+ "recur": {
1670
+ "$ref": "#/$defs/Recurrence"
1671
+ },
1672
+ "effective": {
1673
+ "$ref": "#/$defs/Effective"
1674
+ },
1675
+ "due": {
1676
+ "$ref": "#/$defs/Expr"
1677
+ },
1678
+ "remind": {
1679
+ "$ref": "#/$defs/Expr"
1680
+ },
1681
+ "renewWithin": {
1682
+ "$ref": "#/$defs/RenewalWindow"
1683
+ },
1684
+ "at": {
1685
+ "$ref": "#/$defs/Span"
1686
+ }
1687
+ },
1688
+ "required": ["name", "satisfiedBy", "at"]
1689
+ },
1690
+ "Via": {
1691
+ "anyOf": [
1692
+ {
1693
+ "type": "object",
1694
+ "properties": {
1695
+ "kind": {
1696
+ "const": "interaction"
1697
+ },
1698
+ "name": {
1699
+ "type": "string"
1700
+ }
1701
+ },
1702
+ "required": ["kind", "name"]
1703
+ },
1704
+ {
1705
+ "type": "object",
1706
+ "properties": {
1707
+ "kind": {
1708
+ "const": "connector"
1709
+ },
1710
+ "connector": {
1711
+ "type": "string"
1712
+ },
1713
+ "capability": {
1714
+ "type": "string"
1715
+ }
1716
+ },
1717
+ "required": ["kind", "connector", "capability"]
1718
+ }
1719
+ ]
1720
+ },
1721
+ "Action": {
1722
+ "type": "object",
1723
+ "properties": {
1724
+ "assigneeKind": {
1725
+ "anyOf": [
1726
+ {
1727
+ "const": "entity"
1728
+ },
1729
+ {
1730
+ "const": "group"
1731
+ }
1732
+ ]
1733
+ },
1734
+ "dispatch": {
1735
+ "anyOf": [
1736
+ {
1737
+ "const": "auto"
1738
+ },
1739
+ {
1740
+ "const": "claim"
1741
+ },
1742
+ {
1743
+ "const": "manual"
1744
+ }
1745
+ ]
1746
+ },
1747
+ "onIneligible": {
1748
+ "anyOf": [
1749
+ {
1750
+ "const": "withdraw"
1751
+ },
1752
+ {
1753
+ "const": "keep"
1754
+ },
1755
+ {
1756
+ "const": "review"
1757
+ }
1758
+ ]
1759
+ },
1760
+ "name": {
1761
+ "type": "string"
1762
+ },
1763
+ "label": {
1764
+ "type": "string"
1765
+ },
1766
+ "advances": {
1767
+ "anyOf": [
1768
+ {
1769
+ "type": "string"
1770
+ },
1771
+ {
1772
+ "type": "array",
1773
+ "items": {
1774
+ "type": "string"
1775
+ },
1776
+ "minItems": 1
1777
+ }
1778
+ ]
1779
+ },
1780
+ "needs": {
1781
+ "type": "array",
1782
+ "items": {
1783
+ "type": "object",
1784
+ "properties": {
1785
+ "expr": {
1786
+ "$ref": "#/$defs/Expr"
1787
+ },
1788
+ "text": {
1789
+ "type": "string"
1790
+ }
1791
+ },
1792
+ "required": ["expr", "text"]
1793
+ }
1794
+ },
1795
+ "assignee": {
1796
+ "$ref": "#/$defs/Expr"
1797
+ },
1798
+ "via": {
1799
+ "$ref": "#/$defs/Via"
1800
+ },
1801
+ "idempotency": {
1802
+ "type": "array",
1803
+ "items": {
1804
+ "$ref": "#/$defs/Expr"
1805
+ }
1806
+ },
1807
+ "at": {
1808
+ "$ref": "#/$defs/Span"
1809
+ }
1810
+ },
1811
+ "required": ["name", "advances", "needs", "via", "at"]
1812
+ },
1813
+ "Slot": {
1814
+ "type": "object",
1815
+ "properties": {
1816
+ "discretionary": {
1817
+ "type": "string"
1818
+ },
1819
+ "mode": {
1820
+ "anyOf": [
1821
+ {
1822
+ "const": "child"
1823
+ },
1824
+ {
1825
+ "const": "attach"
1826
+ }
1827
+ ]
1828
+ },
1829
+ "name": {
1830
+ "type": "string"
1831
+ },
1832
+ "component": {
1833
+ "type": "string"
1834
+ },
1835
+ "bind": {
1836
+ "type": "array",
1837
+ "items": {
1838
+ "type": "object",
1839
+ "properties": {
1840
+ "input": {
1841
+ "type": "string"
1842
+ },
1843
+ "expr": {
1844
+ "$ref": "#/$defs/Expr"
1845
+ }
1846
+ },
1847
+ "required": ["input", "expr"]
1848
+ }
1849
+ },
1850
+ "with": {
1851
+ "type": "array",
1852
+ "items": {
1853
+ "type": "object",
1854
+ "properties": {
1855
+ "name": {
1856
+ "type": "string"
1857
+ },
1858
+ "value": {
1859
+ "$ref": "#/$defs/PolicyNumber"
1860
+ },
1861
+ "at": {
1862
+ "$ref": "#/$defs/Span"
1863
+ }
1864
+ },
1865
+ "required": ["name", "value", "at"]
1866
+ },
1867
+ "minItems": 1
1868
+ },
1869
+ "appliesWhen": {
1870
+ "$ref": "#/$defs/Expr"
1871
+ },
1872
+ "at": {
1873
+ "$ref": "#/$defs/Span"
1874
+ }
1875
+ },
1876
+ "required": ["mode", "name", "component", "bind", "at"]
1877
+ },
1878
+ "Output": {
1879
+ "type": "object",
1880
+ "properties": {
1881
+ "name": {
1882
+ "type": "string"
1883
+ },
1884
+ "label": {
1885
+ "type": "string"
1886
+ },
1887
+ "op": {
1888
+ "anyOf": [
1889
+ {
1890
+ "const": "all-of"
1891
+ },
1892
+ {
1893
+ "const": "any-of"
1894
+ },
1895
+ {
1896
+ "const": "status-of"
1897
+ }
1898
+ ]
1899
+ },
1900
+ "paths": {
1901
+ "type": "array",
1902
+ "items": {
1903
+ "type": "object",
1904
+ "properties": {
1905
+ "segments": {
1906
+ "type": "array",
1907
+ "items": {
1908
+ "type": "string"
1909
+ }
1910
+ },
1911
+ "at": {
1912
+ "$ref": "#/$defs/Span"
1913
+ }
1914
+ },
1915
+ "required": ["segments", "at"]
1916
+ }
1917
+ },
1918
+ "at": {
1919
+ "$ref": "#/$defs/Span"
1920
+ }
1921
+ },
1922
+ "required": ["name", "op", "paths", "at"]
1923
+ },
1924
+ "PolicyNumber": {
1925
+ "type": "object",
1926
+ "properties": {
1927
+ "n": {
1928
+ "type": "integer",
1929
+ "minimum": 0,
1930
+ "maximum": 9007199254740991
1931
+ },
1932
+ "unit": {
1933
+ "anyOf": [
1934
+ {
1935
+ "const": "integer"
1936
+ },
1937
+ {
1938
+ "const": "days"
1939
+ },
1940
+ {
1941
+ "const": "years"
1942
+ },
1943
+ {
1944
+ "const": "hours"
1945
+ },
1946
+ {
1947
+ "const": "minutes"
1948
+ }
1949
+ ]
1950
+ }
1951
+ },
1952
+ "required": ["n", "unit"]
1953
+ },
1954
+ "ParamBound": {
1955
+ "type": "object",
1956
+ "properties": {
1957
+ "name": {
1958
+ "type": "string"
1959
+ },
1960
+ "default": {
1961
+ "$ref": "#/$defs/PolicyNumber"
1962
+ },
1963
+ "min": {
1964
+ "$ref": "#/$defs/PolicyNumber"
1965
+ },
1966
+ "max": {
1967
+ "$ref": "#/$defs/PolicyNumber"
1968
+ },
1969
+ "tighten": {
1970
+ "anyOf": [
1971
+ {
1972
+ "const": "lower"
1973
+ },
1974
+ {
1975
+ "const": "higher"
1976
+ }
1977
+ ]
1978
+ },
1979
+ "at": {
1980
+ "$ref": "#/$defs/Span"
1981
+ }
1982
+ },
1983
+ "required": ["name", "default", "min", "max", "tighten", "at"]
1984
+ },
1985
+ "AccountPolicy": {
1986
+ "type": "object",
1987
+ "properties": {
1988
+ "name": {
1989
+ "type": "string"
1990
+ },
1991
+ "doc": {
1992
+ "type": "string"
1993
+ },
1994
+ "of": {
1995
+ "type": "string"
1996
+ },
1997
+ "cites": {
1998
+ "type": "array",
1999
+ "items": {
2000
+ "$ref": "#/$defs/Citation"
2001
+ },
2002
+ "minItems": 1
2003
+ },
2004
+ "when": {
2005
+ "$ref": "#/$defs/Expr"
2006
+ },
2007
+ "require": {
2008
+ "$ref": "#/$defs/Expr"
2009
+ },
2010
+ "params": {
2011
+ "type": "array",
2012
+ "items": {
2013
+ "type": "object",
2014
+ "properties": {
2015
+ "name": {
2016
+ "type": "string"
2017
+ },
2018
+ "value": {
2019
+ "$ref": "#/$defs/PolicyNumber"
2020
+ },
2021
+ "at": {
2022
+ "$ref": "#/$defs/Span"
2023
+ }
2024
+ },
2025
+ "required": ["name", "value", "at"]
2026
+ }
2027
+ },
2028
+ "assign": {
2029
+ "type": "array",
2030
+ "items": {
2031
+ "type": "object",
2032
+ "properties": {
2033
+ "action": {
2034
+ "type": "string"
2035
+ },
2036
+ "assignee": {
2037
+ "$ref": "#/$defs/Expr"
2038
+ },
2039
+ "assigneeKind": {
2040
+ "anyOf": [
2041
+ {
2042
+ "const": "entity"
2043
+ },
2044
+ {
2045
+ "const": "group"
2046
+ }
2047
+ ]
2048
+ },
2049
+ "at": {
2050
+ "$ref": "#/$defs/Span"
2051
+ }
2052
+ },
2053
+ "required": ["action", "assignee", "assigneeKind", "at"]
2054
+ }
2055
+ },
2056
+ "effective": {
2057
+ "$ref": "#/$defs/Effective"
2058
+ },
2059
+ "at": {
2060
+ "$ref": "#/$defs/Span"
2061
+ }
2062
+ },
2063
+ "required": ["name", "doc", "of", "cites", "params", "assign", "at"]
2064
+ },
2065
+ "ResourceCall": {
2066
+ "type": "object",
2067
+ "properties": {
2068
+ "connector": {
2069
+ "type": "string"
2070
+ },
2071
+ "capability": {
2072
+ "type": "string"
2073
+ },
2074
+ "at": {
2075
+ "$ref": "#/$defs/Span"
2076
+ }
2077
+ },
2078
+ "required": ["connector", "capability", "at"]
2079
+ },
2080
+ "Resource": {
2081
+ "type": "object",
2082
+ "properties": {
2083
+ "name": {
2084
+ "type": "string"
2085
+ },
2086
+ "acquire": {
2087
+ "$ref": "#/$defs/ResourceCall"
2088
+ },
2089
+ "release": {
2090
+ "$ref": "#/$defs/ResourceCall"
2091
+ },
2092
+ "releaseWhen": {
2093
+ "$ref": "#/$defs/Expr"
2094
+ },
2095
+ "at": {
2096
+ "$ref": "#/$defs/Span"
2097
+ }
2098
+ },
2099
+ "required": ["name", "acquire", "release", "releaseWhen", "at"]
2100
+ },
2101
+ "Component": {
2102
+ "type": "object",
2103
+ "properties": {
2104
+ "library": {
2105
+ "type": "string"
2106
+ },
2107
+ "operations": {
2108
+ "type": "array",
2109
+ "items": {
2110
+ "type": "string"
2111
+ }
2112
+ },
2113
+ "milestones": {
2114
+ "type": "array",
2115
+ "items": {
2116
+ "$ref": "#/$defs/Milestone"
2117
+ }
2118
+ },
2119
+ "holds": {
2120
+ "type": "array",
2121
+ "items": {
2122
+ "$ref": "#/$defs/Hold"
2123
+ }
2124
+ },
2125
+ "resources": {
2126
+ "type": "array",
2127
+ "items": {
2128
+ "$ref": "#/$defs/Resource"
2129
+ },
2130
+ "minItems": 1
2131
+ },
2132
+ "name": {
2133
+ "type": "string"
2134
+ },
2135
+ "doc": {
2136
+ "type": "string"
2137
+ },
2138
+ "key": {
2139
+ "type": "array",
2140
+ "items": {
2141
+ "type": "string"
2142
+ }
2143
+ },
2144
+ "home": {
2145
+ "$ref": "#/$defs/Home"
2146
+ },
2147
+ "inputs": {
2148
+ "type": "array",
2149
+ "items": {
2150
+ "$ref": "#/$defs/Field"
2151
+ }
2152
+ },
2153
+ "params": {
2154
+ "type": "array",
2155
+ "items": {
2156
+ "$ref": "#/$defs/Field"
2157
+ }
2158
+ },
2159
+ "paramBounds": {
2160
+ "type": "array",
2161
+ "items": {
2162
+ "$ref": "#/$defs/ParamBound"
2163
+ },
2164
+ "minItems": 1
2165
+ },
2166
+ "cycle": {
2167
+ "$ref": "#/$defs/Expr"
2168
+ },
2169
+ "requirements": {
2170
+ "type": "array",
2171
+ "items": {
2172
+ "$ref": "#/$defs/Requirement"
2173
+ }
2174
+ },
2175
+ "actions": {
2176
+ "type": "array",
2177
+ "items": {
2178
+ "$ref": "#/$defs/Action"
2179
+ }
2180
+ },
2181
+ "slots": {
2182
+ "type": "array",
2183
+ "items": {
2184
+ "$ref": "#/$defs/Slot"
2185
+ }
2186
+ },
2187
+ "outputs": {
2188
+ "type": "array",
2189
+ "items": {
2190
+ "$ref": "#/$defs/Output"
2191
+ }
2192
+ },
2193
+ "machines": {
2194
+ "type": "array",
2195
+ "items": {
2196
+ "type": "object",
2197
+ "properties": {
2198
+ "name": {
2199
+ "type": "string"
2200
+ },
2201
+ "protocol": {
2202
+ "type": "string"
2203
+ },
2204
+ "at": {
2205
+ "$ref": "#/$defs/Span"
2206
+ }
2207
+ },
2208
+ "required": ["name", "protocol", "at"]
2209
+ }
2210
+ },
2211
+ "invariants": {
2212
+ "type": "array",
2213
+ "items": {
2214
+ "type": "object",
2215
+ "properties": {
2216
+ "name": {
2217
+ "type": "string"
2218
+ },
2219
+ "cites": {
2220
+ "type": "array",
2221
+ "items": {
2222
+ "$ref": "#/$defs/Citation"
2223
+ }
2224
+ },
2225
+ "forbids": {
2226
+ "type": "object",
2227
+ "properties": {
2228
+ "action": {
2229
+ "type": "string"
2230
+ },
2231
+ "subject": {
2232
+ "$ref": "#/$defs/Expr"
2233
+ }
2234
+ },
2235
+ "required": ["action", "subject"]
2236
+ },
2237
+ "while": {
2238
+ "$ref": "#/$defs/Expr"
2239
+ },
2240
+ "at": {
2241
+ "$ref": "#/$defs/Span"
2242
+ }
2243
+ },
2244
+ "required": ["name", "forbids", "while", "at"]
2245
+ }
2246
+ },
2247
+ "retention": {
2248
+ "type": "object",
2249
+ "properties": {
2250
+ "until": {
2251
+ "$ref": "#/$defs/Expr"
2252
+ },
2253
+ "disposal": {
2254
+ "type": "string"
2255
+ },
2256
+ "cites": {
2257
+ "type": "array",
2258
+ "items": {
2259
+ "$ref": "#/$defs/Citation"
2260
+ }
2261
+ },
2262
+ "at": {
2263
+ "$ref": "#/$defs/Span"
2264
+ }
2265
+ },
2266
+ "required": ["until", "disposal", "at"]
2267
+ },
2268
+ "at": {
2269
+ "$ref": "#/$defs/Span"
2270
+ }
2271
+ },
2272
+ "required": [
2273
+ "name",
2274
+ "key",
2275
+ "home",
2276
+ "inputs",
2277
+ "params",
2278
+ "requirements",
2279
+ "actions",
2280
+ "slots",
2281
+ "outputs",
2282
+ "machines",
2283
+ "invariants",
2284
+ "at"
2285
+ ]
2286
+ },
2287
+ "Account": {
2288
+ "type": "object",
2289
+ "properties": {
2290
+ "name": {
2291
+ "type": "string"
2292
+ },
2293
+ "doc": {
2294
+ "type": "string"
2295
+ },
2296
+ "requires": {
2297
+ "type": "array",
2298
+ "items": {
2299
+ "type": "object",
2300
+ "properties": {
2301
+ "library": {
2302
+ "type": "string"
2303
+ },
2304
+ "version": {
2305
+ "type": "string"
2306
+ }
2307
+ },
2308
+ "required": ["library", "version"]
2309
+ }
2310
+ },
2311
+ "package": {
2312
+ "type": "object",
2313
+ "properties": {
2314
+ "name": {
2315
+ "type": "string"
2316
+ },
2317
+ "version": {
2318
+ "type": "string"
2319
+ },
2320
+ "digest": {
2321
+ "type": "string"
2322
+ }
2323
+ },
2324
+ "required": ["name", "digest"]
2325
+ },
2326
+ "params": {
2327
+ "type": "array",
2328
+ "items": {
2329
+ "type": "object",
2330
+ "properties": {
2331
+ "name": {
2332
+ "type": "string"
2333
+ },
2334
+ "value": {
2335
+ "$ref": "#/$defs/Expr"
2336
+ }
2337
+ },
2338
+ "required": ["name", "value"]
2339
+ }
2340
+ },
2341
+ "policies": {
2342
+ "type": "array",
2343
+ "items": {
2344
+ "$ref": "#/$defs/AccountPolicy"
2345
+ },
2346
+ "minItems": 1
2347
+ },
2348
+ "upgrade": {
2349
+ "anyOf": [
2350
+ {
2351
+ "const": "open-only"
2352
+ },
2353
+ {
2354
+ "const": "review"
2355
+ },
2356
+ {
2357
+ "const": "next-cycle"
2358
+ }
2359
+ ]
2360
+ },
2361
+ "forEach": {
2362
+ "type": "array",
2363
+ "items": {
2364
+ "type": "object",
2365
+ "properties": {
2366
+ "role": {
2367
+ "type": "string"
2368
+ },
2369
+ "component": {
2370
+ "type": "string"
2371
+ }
2372
+ },
2373
+ "required": ["role", "component"]
2374
+ }
2375
+ },
2376
+ "at": {
2377
+ "$ref": "#/$defs/Span"
2378
+ }
2379
+ },
2380
+ "required": ["name", "requires", "package", "params", "upgrade", "forEach", "at"]
2381
+ },
2382
+ "ScenarioValue": {
2383
+ "anyOf": [
2384
+ {
2385
+ "type": "object",
2386
+ "properties": {
2387
+ "k": {
2388
+ "const": "literal"
2389
+ },
2390
+ "value": {
2391
+ "anyOf": [
2392
+ {
2393
+ "type": "string"
2394
+ },
2395
+ {
2396
+ "type": "number"
2397
+ },
2398
+ {
2399
+ "type": "boolean"
2400
+ },
2401
+ {
2402
+ "type": "null"
2403
+ }
2404
+ ]
2405
+ },
2406
+ "at": {
2407
+ "$ref": "#/$defs/Span"
2408
+ }
2409
+ },
2410
+ "required": ["k", "value", "at"]
2411
+ },
2412
+ {
2413
+ "type": "object",
2414
+ "properties": {
2415
+ "k": {
2416
+ "const": "entity"
2417
+ },
2418
+ "name": {
2419
+ "type": "string"
2420
+ },
2421
+ "at": {
2422
+ "$ref": "#/$defs/Span"
2423
+ }
2424
+ },
2425
+ "required": ["k", "name", "at"]
2426
+ },
2427
+ {
2428
+ "type": "object",
2429
+ "properties": {
2430
+ "k": {
2431
+ "const": "instance"
2432
+ },
2433
+ "component": {
2434
+ "type": "string"
2435
+ },
2436
+ "key": {
2437
+ "type": "array",
2438
+ "items": {
2439
+ "$ref": "#/$defs/ScenarioValue"
2440
+ }
2441
+ },
2442
+ "cycle": {
2443
+ "type": "integer",
2444
+ "minimum": -9007199254740991,
2445
+ "maximum": 9007199254740991,
2446
+ "exclusiveMinimum": 0
2447
+ },
2448
+ "at": {
2449
+ "$ref": "#/$defs/Span"
2450
+ }
2451
+ },
2452
+ "required": ["k", "component", "key", "at"]
2453
+ }
2454
+ ]
2455
+ },
2456
+ "ScenarioInstance": {
2457
+ "type": "object",
2458
+ "properties": {
2459
+ "k": {
2460
+ "const": "instance"
2461
+ },
2462
+ "component": {
2463
+ "type": "string"
2464
+ },
2465
+ "key": {
2466
+ "type": "array",
2467
+ "items": {
2468
+ "$ref": "#/$defs/ScenarioValue"
2469
+ }
2470
+ },
2471
+ "cycle": {
2472
+ "type": "integer",
2473
+ "minimum": -9007199254740991,
2474
+ "maximum": 9007199254740991,
2475
+ "exclusiveMinimum": 0
2476
+ },
2477
+ "at": {
2478
+ "$ref": "#/$defs/Span"
2479
+ }
2480
+ },
2481
+ "required": ["k", "component", "key", "at"]
2482
+ },
2483
+ "ScenarioStatus": {
2484
+ "anyOf": [
2485
+ {
2486
+ "const": "Unknown"
2487
+ },
2488
+ {
2489
+ "const": "NotApplicable"
2490
+ },
2491
+ {
2492
+ "const": "Open"
2493
+ },
2494
+ {
2495
+ "const": "Overdue"
2496
+ },
2497
+ {
2498
+ "const": "Satisfied"
2499
+ },
2500
+ {
2501
+ "const": "Waived"
2502
+ }
2503
+ ]
2504
+ },
2505
+ "ScenarioExpect": {
2506
+ "anyOf": [
2507
+ {
2508
+ "type": "object",
2509
+ "properties": {
2510
+ "kind": {
2511
+ "const": "resource"
2512
+ },
2513
+ "target": {
2514
+ "$ref": "#/$defs/ScenarioInstance"
2515
+ },
2516
+ "name": {
2517
+ "type": "string"
2518
+ },
2519
+ "expected": {
2520
+ "anyOf": [
2521
+ {
2522
+ "const": "acquire"
2523
+ },
2524
+ {
2525
+ "const": "release"
2526
+ },
2527
+ {
2528
+ "const": "acquiring"
2529
+ },
2530
+ {
2531
+ "const": "acquired"
2532
+ },
2533
+ {
2534
+ "const": "releasing"
2535
+ },
2536
+ {
2537
+ "const": "released"
2538
+ },
2539
+ {
2540
+ "const": "failed"
2541
+ },
2542
+ {
2543
+ "const": "uncertain"
2544
+ },
2545
+ {
2546
+ "const": "timed-out"
2547
+ },
2548
+ {
2549
+ "const": "waiting"
2550
+ },
2551
+ {
2552
+ "const": "unknown"
2553
+ },
2554
+ {
2555
+ "const": "absent"
2556
+ }
2557
+ ]
2558
+ },
2559
+ "at": {
2560
+ "$ref": "#/$defs/Span"
2561
+ }
2562
+ },
2563
+ "required": ["kind", "target", "name", "expected", "at"]
2564
+ },
2565
+ {
2566
+ "type": "object",
2567
+ "properties": {
2568
+ "kind": {
2569
+ "const": "retention"
2570
+ },
2571
+ "target": {
2572
+ "$ref": "#/$defs/ScenarioInstance"
2573
+ },
2574
+ "name": {
2575
+ "const": "retention"
2576
+ },
2577
+ "field": {
2578
+ "anyOf": [
2579
+ {
2580
+ "const": "until"
2581
+ },
2582
+ {
2583
+ "const": "eligible"
2584
+ }
2585
+ ]
2586
+ },
2587
+ "expected": {
2588
+ "anyOf": [
2589
+ {
2590
+ "type": "string"
2591
+ },
2592
+ {
2593
+ "type": "boolean"
2594
+ },
2595
+ {
2596
+ "type": "null"
2597
+ }
2598
+ ]
2599
+ },
2600
+ "at": {
2601
+ "$ref": "#/$defs/Span"
2602
+ }
2603
+ },
2604
+ "required": ["kind", "target", "name", "field", "expected", "at"]
2605
+ },
2606
+ {
2607
+ "type": "object",
2608
+ "properties": {
2609
+ "kind": {
2610
+ "const": "property"
2611
+ },
2612
+ "name": {
2613
+ "type": "string"
2614
+ },
2615
+ "binding": {
2616
+ "type": "string"
2617
+ },
2618
+ "expected": {
2619
+ "type": "boolean"
2620
+ },
2621
+ "at": {
2622
+ "$ref": "#/$defs/Span"
2623
+ }
2624
+ },
2625
+ "required": ["kind", "name", "binding", "expected", "at"]
2626
+ },
2627
+ {
2628
+ "type": "object",
2629
+ "properties": {
2630
+ "kind": {
2631
+ "const": "work"
2632
+ },
2633
+ "target": {
2634
+ "$ref": "#/$defs/ScenarioInstance"
2635
+ },
2636
+ "name": {
2637
+ "type": "string"
2638
+ },
2639
+ "expected": {
2640
+ "anyOf": [
2641
+ {
2642
+ "const": "eligible"
2643
+ },
2644
+ {
2645
+ "const": "waiting"
2646
+ },
2647
+ {
2648
+ "const": "dispatched"
2649
+ },
2650
+ {
2651
+ "const": "held"
2652
+ },
2653
+ {
2654
+ "const": "absent"
2655
+ }
2656
+ ]
2657
+ },
2658
+ "at": {
2659
+ "$ref": "#/$defs/Span"
2660
+ }
2661
+ },
2662
+ "required": ["kind", "target", "name", "expected", "at"]
2663
+ },
2664
+ {
2665
+ "type": "object",
2666
+ "properties": {
2667
+ "kind": {
2668
+ "const": "why"
2669
+ },
2670
+ "target": {
2671
+ "$ref": "#/$defs/ScenarioInstance"
2672
+ },
2673
+ "name": {
2674
+ "type": "string"
2675
+ },
2676
+ "expected": {
2677
+ "type": "string"
2678
+ },
2679
+ "at": {
2680
+ "$ref": "#/$defs/Span"
2681
+ }
2682
+ },
2683
+ "required": ["kind", "target", "name", "expected", "at"]
2684
+ },
2685
+ {
2686
+ "type": "object",
2687
+ "properties": {
2688
+ "kind": {
2689
+ "const": "blocked"
2690
+ },
2691
+ "target": {
2692
+ "$ref": "#/$defs/ScenarioInstance"
2693
+ },
2694
+ "name": {
2695
+ "type": "string"
2696
+ },
2697
+ "expected": {
2698
+ "type": "boolean"
2699
+ },
2700
+ "at": {
2701
+ "$ref": "#/$defs/Span"
2702
+ }
2703
+ },
2704
+ "required": ["kind", "target", "name", "expected", "at"]
2705
+ },
2706
+ {
2707
+ "type": "object",
2708
+ "properties": {
2709
+ "kind": {
2710
+ "const": "rejected"
2711
+ },
2712
+ "command": {
2713
+ "type": "integer",
2714
+ "minimum": -9007199254740991,
2715
+ "maximum": 9007199254740991,
2716
+ "exclusiveMinimum": 0
2717
+ },
2718
+ "expected": {
2719
+ "anyOf": [
2720
+ {
2721
+ "type": "string"
2722
+ },
2723
+ {
2724
+ "type": "boolean"
2725
+ }
2726
+ ]
2727
+ },
2728
+ "at": {
2729
+ "$ref": "#/$defs/Span"
2730
+ }
2731
+ },
2732
+ "required": ["kind", "command", "expected", "at"]
2733
+ },
2734
+ {
2735
+ "type": "object",
2736
+ "properties": {
2737
+ "kind": {
2738
+ "const": "status"
2739
+ },
2740
+ "target": {
2741
+ "$ref": "#/$defs/ScenarioInstance"
2742
+ },
2743
+ "name": {
2744
+ "type": "string"
2745
+ },
2746
+ "expected": {
2747
+ "$ref": "#/$defs/ScenarioStatus"
2748
+ },
2749
+ "at": {
2750
+ "$ref": "#/$defs/Span"
2751
+ }
2752
+ },
2753
+ "required": ["kind", "target", "name", "expected", "at"]
2754
+ },
2755
+ {
2756
+ "type": "object",
2757
+ "properties": {
2758
+ "kind": {
2759
+ "const": "due"
2760
+ },
2761
+ "target": {
2762
+ "$ref": "#/$defs/ScenarioInstance"
2763
+ },
2764
+ "name": {
2765
+ "type": "string"
2766
+ },
2767
+ "expected": {
2768
+ "anyOf": [
2769
+ {
2770
+ "type": "string"
2771
+ },
2772
+ {
2773
+ "type": "null"
2774
+ }
2775
+ ]
2776
+ },
2777
+ "at": {
2778
+ "$ref": "#/$defs/Span"
2779
+ }
2780
+ },
2781
+ "required": ["kind", "target", "name", "expected", "at"]
2782
+ }
2783
+ ]
2784
+ },
2785
+ "ScenarioField": {
2786
+ "type": "object",
2787
+ "properties": {
2788
+ "name": {
2789
+ "type": "string"
2790
+ },
2791
+ "value": {
2792
+ "$ref": "#/$defs/ScenarioValue"
2793
+ },
2794
+ "at": {
2795
+ "$ref": "#/$defs/Span"
2796
+ }
2797
+ },
2798
+ "required": ["name", "value", "at"]
2799
+ },
2800
+ "ScenarioFields": {
2801
+ "type": "array",
2802
+ "items": {
2803
+ "$ref": "#/$defs/ScenarioField"
2804
+ }
2805
+ },
2806
+ "ScenarioRecord": {
2807
+ "anyOf": [
2808
+ {
2809
+ "type": "object",
2810
+ "properties": {
2811
+ "target": {
2812
+ "$ref": "#/$defs/ScenarioInstance"
2813
+ },
2814
+ "by": {
2815
+ "$ref": "#/$defs/ScenarioValue"
2816
+ },
2817
+ "date": {
2818
+ "type": "string"
2819
+ },
2820
+ "at": {
2821
+ "$ref": "#/$defs/Span"
2822
+ },
2823
+ "kind": {
2824
+ "const": "evidence"
2825
+ },
2826
+ "evidence": {
2827
+ "type": "string"
2828
+ },
2829
+ "requirement": {
2830
+ "type": "string"
2831
+ },
2832
+ "requirementCycle": {
2833
+ "type": "integer",
2834
+ "minimum": -9007199254740991,
2835
+ "maximum": 9007199254740991,
2836
+ "exclusiveMinimum": 0
2837
+ },
2838
+ "status": {
2839
+ "anyOf": [
2840
+ {
2841
+ "const": "submitted"
2842
+ },
2843
+ {
2844
+ "const": "attested"
2845
+ },
2846
+ {
2847
+ "const": "superseded"
2848
+ }
2849
+ ]
2850
+ },
2851
+ "values": {
2852
+ "$ref": "#/$defs/ScenarioFields"
2853
+ }
2854
+ },
2855
+ "required": ["target", "by", "at", "kind", "evidence", "requirement", "status", "values"]
2856
+ },
2857
+ {
2858
+ "type": "object",
2859
+ "properties": {
2860
+ "target": {
2861
+ "$ref": "#/$defs/ScenarioInstance"
2862
+ },
2863
+ "by": {
2864
+ "$ref": "#/$defs/ScenarioValue"
2865
+ },
2866
+ "date": {
2867
+ "type": "string"
2868
+ },
2869
+ "at": {
2870
+ "$ref": "#/$defs/Span"
2871
+ },
2872
+ "kind": {
2873
+ "const": "signal"
2874
+ },
2875
+ "machine": {
2876
+ "type": "string"
2877
+ },
2878
+ "state": {
2879
+ "type": "string"
2880
+ }
2881
+ },
2882
+ "required": ["target", "by", "at", "kind", "machine", "state"]
2883
+ }
2884
+ ]
2885
+ },
2886
+ "ScenarioCommand": {
2887
+ "anyOf": [
2888
+ {
2889
+ "type": "object",
2890
+ "properties": {
2891
+ "kind": {
2892
+ "const": "resource"
2893
+ },
2894
+ "target": {
2895
+ "$ref": "#/$defs/ScenarioInstance"
2896
+ },
2897
+ "name": {
2898
+ "type": "string"
2899
+ },
2900
+ "phase": {
2901
+ "anyOf": [
2902
+ {
2903
+ "const": "acquire"
2904
+ },
2905
+ {
2906
+ "const": "release"
2907
+ }
2908
+ ]
2909
+ },
2910
+ "handle": {
2911
+ "type": "string"
2912
+ },
2913
+ "state": {
2914
+ "type": "string"
2915
+ },
2916
+ "by": {
2917
+ "$ref": "#/$defs/ScenarioValue"
2918
+ },
2919
+ "at": {
2920
+ "$ref": "#/$defs/Span"
2921
+ }
2922
+ },
2923
+ "required": ["kind", "target", "name", "phase", "handle", "by", "at"]
2924
+ },
2925
+ {
2926
+ "type": "object",
2927
+ "properties": {
2928
+ "kind": {
2929
+ "const": "decide"
2930
+ },
2931
+ "target": {
2932
+ "$ref": "#/$defs/ScenarioInstance"
2933
+ },
2934
+ "decision": {
2935
+ "type": "string"
2936
+ },
2937
+ "by": {
2938
+ "$ref": "#/$defs/ScenarioValue"
2939
+ },
2940
+ "id": {
2941
+ "type": "string"
2942
+ },
2943
+ "revoke": {
2944
+ "type": "string"
2945
+ },
2946
+ "reason": {
2947
+ "anyOf": [
2948
+ {
2949
+ "type": "null"
2950
+ },
2951
+ {
2952
+ "anyOf": [
2953
+ {
2954
+ "type": "string"
2955
+ },
2956
+ {
2957
+ "type": "number"
2958
+ },
2959
+ {
2960
+ "type": "boolean"
2961
+ }
2962
+ ]
2963
+ }
2964
+ ]
2965
+ },
2966
+ "at": {
2967
+ "$ref": "#/$defs/Span"
2968
+ }
2969
+ },
2970
+ "required": ["kind", "target", "decision", "by", "at"]
2971
+ },
2972
+ {
2973
+ "$ref": "#/$defs/ScenarioRecord"
2974
+ },
2975
+ {
2976
+ "type": "object",
2977
+ "properties": {
2978
+ "kind": {
2979
+ "const": "accept"
2980
+ },
2981
+ "target": {
2982
+ "$ref": "#/$defs/ScenarioInstance"
2983
+ },
2984
+ "requirement": {
2985
+ "type": "string"
2986
+ },
2987
+ "decision": {
2988
+ "anyOf": [
2989
+ {
2990
+ "const": "accepted"
2991
+ },
2992
+ {
2993
+ "const": "declined"
2994
+ }
2995
+ ]
2996
+ },
2997
+ "by": {
2998
+ "$ref": "#/$defs/ScenarioValue"
2999
+ },
3000
+ "id": {
3001
+ "type": "string"
3002
+ },
3003
+ "revoke": {
3004
+ "type": "string"
3005
+ },
3006
+ "reason": {
3007
+ "anyOf": [
3008
+ {
3009
+ "type": "null"
3010
+ },
3011
+ {
3012
+ "anyOf": [
3013
+ {
3014
+ "type": "string"
3015
+ },
3016
+ {
3017
+ "type": "number"
3018
+ },
3019
+ {
3020
+ "type": "boolean"
3021
+ }
3022
+ ]
3023
+ }
3024
+ ]
3025
+ },
3026
+ "at": {
3027
+ "$ref": "#/$defs/Span"
3028
+ }
3029
+ },
3030
+ "required": ["kind", "target", "requirement", "decision", "by", "at"]
3031
+ },
3032
+ {
3033
+ "type": "object",
3034
+ "properties": {
3035
+ "kind": {
3036
+ "const": "set"
3037
+ },
3038
+ "entity": {
3039
+ "type": "string"
3040
+ },
3041
+ "commandKind": {
3042
+ "type": "string"
3043
+ },
3044
+ "subject": {
3045
+ "type": "string"
3046
+ },
3047
+ "field": {
3048
+ "type": "string"
3049
+ },
3050
+ "value": {
3051
+ "$ref": "#/$defs/ScenarioValue"
3052
+ },
3053
+ "by": {
3054
+ "$ref": "#/$defs/ScenarioValue"
3055
+ },
3056
+ "at": {
3057
+ "$ref": "#/$defs/Span"
3058
+ }
3059
+ },
3060
+ "required": ["kind", "entity", "field", "value", "by", "at"]
3061
+ },
3062
+ {
3063
+ "type": "object",
3064
+ "properties": {
3065
+ "kind": {
3066
+ "const": "perform"
3067
+ },
3068
+ "target": {
3069
+ "$ref": "#/$defs/ScenarioInstance"
3070
+ },
3071
+ "action": {
3072
+ "type": "string"
3073
+ },
3074
+ "by": {
3075
+ "$ref": "#/$defs/ScenarioValue"
3076
+ },
3077
+ "unsigned": {
3078
+ "type": "boolean"
3079
+ },
3080
+ "signature": {
3081
+ "$ref": "#/$defs/SignatureInput"
3082
+ },
3083
+ "amend": {
3084
+ "$ref": "#/$defs/AmendmentInput"
3085
+ },
3086
+ "values": {
3087
+ "$ref": "#/$defs/ScenarioFields"
3088
+ },
3089
+ "at": {
3090
+ "$ref": "#/$defs/Span"
3091
+ }
3092
+ },
3093
+ "required": ["kind", "target", "action", "by", "unsigned", "values", "at"]
3094
+ }
3095
+ ]
3096
+ },
3097
+ "ScenarioActor": {
3098
+ "type": "object",
3099
+ "properties": {
3100
+ "name": {
3101
+ "type": "string"
3102
+ },
3103
+ "kind": {
3104
+ "anyOf": [
3105
+ {
3106
+ "const": "human"
3107
+ },
3108
+ {
3109
+ "const": "agent"
3110
+ }
3111
+ ]
3112
+ },
3113
+ "groups": {
3114
+ "type": "array",
3115
+ "items": {
3116
+ "type": "string"
3117
+ }
3118
+ },
3119
+ "at": {
3120
+ "$ref": "#/$defs/Span"
3121
+ }
3122
+ },
3123
+ "required": ["name", "kind", "groups", "at"]
3124
+ },
3125
+ "ScenarioEntity": {
3126
+ "type": "object",
3127
+ "properties": {
3128
+ "name": {
3129
+ "type": "string"
3130
+ },
3131
+ "entity": {
3132
+ "type": "string"
3133
+ },
3134
+ "fields": {
3135
+ "type": "array",
3136
+ "items": {
3137
+ "type": "object",
3138
+ "properties": {
3139
+ "name": {
3140
+ "type": "string"
3141
+ },
3142
+ "value": {
3143
+ "$ref": "#/$defs/ScenarioValue"
3144
+ },
3145
+ "at": {
3146
+ "$ref": "#/$defs/Span"
3147
+ }
3148
+ },
3149
+ "required": ["name", "value", "at"]
3150
+ }
3151
+ },
3152
+ "at": {
3153
+ "$ref": "#/$defs/Span"
3154
+ }
3155
+ },
3156
+ "required": ["name", "entity", "fields", "at"]
3157
+ },
3158
+ "ScenarioFile": {
3159
+ "type": "object",
3160
+ "properties": {
3161
+ "home": {
3162
+ "type": "string"
3163
+ },
3164
+ "digest": {
3165
+ "type": "string"
3166
+ },
3167
+ "mediaType": {
3168
+ "type": "string"
3169
+ },
3170
+ "size": {
3171
+ "type": "integer",
3172
+ "minimum": -9007199254740991,
3173
+ "maximum": 9007199254740991
3174
+ },
3175
+ "scan": {
3176
+ "anyOf": [
3177
+ {
3178
+ "const": "pending"
3179
+ },
3180
+ {
3181
+ "const": "clean"
3182
+ },
3183
+ {
3184
+ "const": "rejected"
3185
+ }
3186
+ ]
3187
+ },
3188
+ "redacted": {
3189
+ "type": "boolean"
3190
+ },
3191
+ "date": {
3192
+ "type": "string"
3193
+ },
3194
+ "at": {
3195
+ "$ref": "#/$defs/Span"
3196
+ }
3197
+ },
3198
+ "required": ["home", "digest", "mediaType", "size", "scan", "redacted", "at"]
3199
+ },
3200
+ "Scenario": {
3201
+ "type": "object",
3202
+ "properties": {
3203
+ "name": {
3204
+ "type": "string"
3205
+ },
3206
+ "doc": {
3207
+ "type": "string"
3208
+ },
3209
+ "world": {
3210
+ "type": "string"
3211
+ },
3212
+ "given": {
3213
+ "type": "array",
3214
+ "items": {
3215
+ "$ref": "#/$defs/ScenarioEntity"
3216
+ }
3217
+ },
3218
+ "files": {
3219
+ "type": "array",
3220
+ "items": {
3221
+ "$ref": "#/$defs/ScenarioFile"
3222
+ }
3223
+ },
3224
+ "actors": {
3225
+ "type": "array",
3226
+ "items": {
3227
+ "$ref": "#/$defs/ScenarioActor"
3228
+ }
3229
+ },
3230
+ "records": {
3231
+ "type": "array",
3232
+ "items": {
3233
+ "$ref": "#/$defs/ScenarioRecord"
3234
+ }
3235
+ },
3236
+ "steps": {
3237
+ "type": "array",
3238
+ "items": {
3239
+ "type": "object",
3240
+ "properties": {
3241
+ "kind": {
3242
+ "const": "at"
3243
+ },
3244
+ "date": {
3245
+ "type": "string"
3246
+ },
3247
+ "expects": {
3248
+ "type": "array",
3249
+ "items": {
3250
+ "$ref": "#/$defs/ScenarioExpect"
3251
+ }
3252
+ },
3253
+ "commands": {
3254
+ "type": "array",
3255
+ "items": {
3256
+ "$ref": "#/$defs/ScenarioCommand"
3257
+ }
3258
+ },
3259
+ "at": {
3260
+ "$ref": "#/$defs/Span"
3261
+ }
3262
+ },
3263
+ "required": ["kind", "date", "expects", "at"]
3264
+ }
3265
+ },
3266
+ "at": {
3267
+ "$ref": "#/$defs/Span"
3268
+ }
3269
+ },
3270
+ "required": ["name", "world", "given", "steps", "at"]
3271
+ },
3272
+ "PropertyTarget": {
3273
+ "type": "object",
3274
+ "properties": {
3275
+ "component": {
3276
+ "type": "string"
3277
+ },
3278
+ "key": {
3279
+ "type": "array",
3280
+ "items": {
3281
+ "$ref": "#/$defs/PropertyExpr"
3282
+ }
3283
+ },
3284
+ "cycle": {
3285
+ "type": "integer",
3286
+ "minimum": -9007199254740991,
3287
+ "maximum": 9007199254740991,
3288
+ "exclusiveMinimum": 0
3289
+ },
3290
+ "attachedTo": {
3291
+ "$ref": "#/$defs/PropertyExpr"
3292
+ },
3293
+ "at": {
3294
+ "$ref": "#/$defs/Span"
3295
+ }
3296
+ },
3297
+ "required": ["component", "key", "at"]
3298
+ },
3299
+ "PropertyStatus": {
3300
+ "type": "object",
3301
+ "properties": {
3302
+ "k": {
3303
+ "const": "status"
3304
+ },
3305
+ "target": {
3306
+ "$ref": "#/$defs/PropertyTarget"
3307
+ },
3308
+ "name": {
3309
+ "type": "string"
3310
+ },
3311
+ "at": {
3312
+ "$ref": "#/$defs/Span"
3313
+ }
3314
+ },
3315
+ "required": ["k", "target", "name", "at"]
3316
+ },
3317
+ "PropertyOperator": {
3318
+ "anyOf": [
3319
+ {
3320
+ "const": "implies"
3321
+ },
3322
+ {
3323
+ "const": "and"
3324
+ },
3325
+ {
3326
+ "const": "or"
3327
+ },
3328
+ {
3329
+ "const": "not"
3330
+ },
3331
+ {
3332
+ "const": "="
3333
+ },
3334
+ {
3335
+ "const": "!="
3336
+ },
3337
+ {
3338
+ "const": "<"
3339
+ },
3340
+ {
3341
+ "const": "<="
3342
+ },
3343
+ {
3344
+ "const": ">"
3345
+ },
3346
+ {
3347
+ "const": ">="
3348
+ },
3349
+ {
3350
+ "const": "known?"
3351
+ },
3352
+ {
3353
+ "const": "unknown?"
3354
+ },
3355
+ {
3356
+ "const": "satisfied?"
3357
+ },
3358
+ {
3359
+ "const": "not-applicable?"
3360
+ }
3361
+ ]
3362
+ },
3363
+ "PropertyExpr": {
3364
+ "anyOf": [
3365
+ {
3366
+ "type": "object",
3367
+ "properties": {
3368
+ "k": {
3369
+ "const": "observation"
3370
+ },
3371
+ "of": {
3372
+ "$ref": "#/$defs/PropertyStatus"
3373
+ },
3374
+ "query": {
3375
+ "const": "work"
3376
+ },
3377
+ "action": {
3378
+ "type": "string"
3379
+ },
3380
+ "at": {
3381
+ "$ref": "#/$defs/Span"
3382
+ }
3383
+ },
3384
+ "required": ["k", "of", "query", "action", "at"]
3385
+ },
3386
+ {
3387
+ "type": "object",
3388
+ "properties": {
3389
+ "k": {
3390
+ "const": "observation"
3391
+ },
3392
+ "of": {
3393
+ "$ref": "#/$defs/PropertyStatus"
3394
+ },
3395
+ "query": {
3396
+ "const": "due"
3397
+ },
3398
+ "at": {
3399
+ "$ref": "#/$defs/Span"
3400
+ }
3401
+ },
3402
+ "required": ["k", "of", "query", "at"]
3403
+ },
3404
+ {
3405
+ "type": "object",
3406
+ "properties": {
3407
+ "k": {
3408
+ "const": "observation"
3409
+ },
3410
+ "of": {
3411
+ "$ref": "#/$defs/PropertyStatus"
3412
+ },
3413
+ "query": {
3414
+ "const": "occurrence-count"
3415
+ },
3416
+ "cycle": {
3417
+ "$ref": "#/$defs/PropertyExpr"
3418
+ },
3419
+ "at": {
3420
+ "$ref": "#/$defs/Span"
3421
+ }
3422
+ },
3423
+ "required": ["k", "of", "query", "at"]
3424
+ },
3425
+ {
3426
+ "type": "object",
3427
+ "properties": {
3428
+ "k": {
3429
+ "const": "literal"
3430
+ },
3431
+ "value": {
3432
+ "anyOf": [
3433
+ {
3434
+ "type": "string"
3435
+ },
3436
+ {
3437
+ "type": "number"
3438
+ },
3439
+ {
3440
+ "type": "boolean"
3441
+ },
3442
+ {
3443
+ "type": "null"
3444
+ }
3445
+ ]
3446
+ },
3447
+ "at": {
3448
+ "$ref": "#/$defs/Span"
3449
+ }
3450
+ },
3451
+ "required": ["k", "value", "at"]
3452
+ },
3453
+ {
3454
+ "type": "object",
3455
+ "properties": {
3456
+ "k": {
3457
+ "const": "read"
3458
+ },
3459
+ "root": {
3460
+ "type": "string"
3461
+ },
3462
+ "attrs": {
3463
+ "type": "array",
3464
+ "items": {
3465
+ "type": "string"
3466
+ }
3467
+ },
3468
+ "at": {
3469
+ "$ref": "#/$defs/Span"
3470
+ }
3471
+ },
3472
+ "required": ["k", "root", "attrs", "at"]
3473
+ },
3474
+ {
3475
+ "type": "object",
3476
+ "properties": {
3477
+ "k": {
3478
+ "const": "instance"
3479
+ },
3480
+ "target": {
3481
+ "$ref": "#/$defs/PropertyTarget"
3482
+ },
3483
+ "at": {
3484
+ "$ref": "#/$defs/Span"
3485
+ }
3486
+ },
3487
+ "required": ["k", "target", "at"]
3488
+ },
3489
+ {
3490
+ "$ref": "#/$defs/PropertyStatus"
3491
+ },
3492
+ {
3493
+ "type": "object",
3494
+ "properties": {
3495
+ "k": {
3496
+ "const": "attested"
3497
+ },
3498
+ "target": {
3499
+ "$ref": "#/$defs/PropertyTarget"
3500
+ },
3501
+ "evidence": {
3502
+ "type": "string"
3503
+ },
3504
+ "at": {
3505
+ "$ref": "#/$defs/Span"
3506
+ }
3507
+ },
3508
+ "required": ["k", "target", "evidence", "at"]
3509
+ },
3510
+ {
3511
+ "type": "object",
3512
+ "properties": {
3513
+ "k": {
3514
+ "const": "call"
3515
+ },
3516
+ "op": {
3517
+ "$ref": "#/$defs/PropertyOperator"
3518
+ },
3519
+ "args": {
3520
+ "type": "array",
3521
+ "items": {
3522
+ "$ref": "#/$defs/PropertyExpr"
3523
+ }
3524
+ },
3525
+ "at": {
3526
+ "$ref": "#/$defs/Span"
3527
+ }
3528
+ },
3529
+ "required": ["k", "op", "args", "at"]
3530
+ }
3531
+ ]
3532
+ },
3533
+ "Property": {
3534
+ "type": "object",
3535
+ "properties": {
3536
+ "name": {
3537
+ "type": "string"
3538
+ },
3539
+ "doc": {
3540
+ "type": "string"
3541
+ },
3542
+ "world": {
3543
+ "type": "string"
3544
+ },
3545
+ "date": {
3546
+ "type": "string"
3547
+ },
3548
+ "binding": {
3549
+ "type": "object",
3550
+ "properties": {
3551
+ "name": {
3552
+ "type": "string"
3553
+ },
3554
+ "entity": {
3555
+ "type": "string"
3556
+ },
3557
+ "at": {
3558
+ "$ref": "#/$defs/Span"
3559
+ }
3560
+ },
3561
+ "required": ["name", "entity", "at"]
3562
+ },
3563
+ "given": {
3564
+ "type": "array",
3565
+ "items": {
3566
+ "$ref": "#/$defs/ScenarioEntity"
3567
+ }
3568
+ },
3569
+ "records": {
3570
+ "type": "array",
3571
+ "items": {
3572
+ "$ref": "#/$defs/ScenarioRecord"
3573
+ }
3574
+ },
3575
+ "predicate": {
3576
+ "$ref": "#/$defs/PropertyExpr"
3577
+ },
3578
+ "at": {
3579
+ "$ref": "#/$defs/Span"
3580
+ }
3581
+ },
3582
+ "required": ["name", "world", "date", "binding", "predicate", "at"]
3583
+ },
3584
+ "Decision": {
3585
+ "type": "object",
3586
+ "properties": {
3587
+ "name": {
3588
+ "type": "string"
3589
+ },
3590
+ "doc": {
3591
+ "type": "string"
3592
+ },
3593
+ "of": {
3594
+ "type": "string"
3595
+ },
3596
+ "by": {
3597
+ "$ref": "#/$defs/Expr"
3598
+ },
3599
+ "byKind": {
3600
+ "anyOf": [
3601
+ {
3602
+ "const": "individual"
3603
+ },
3604
+ {
3605
+ "const": "group"
3606
+ }
3607
+ ]
3608
+ },
3609
+ "applies": {
3610
+ "type": "string"
3611
+ },
3612
+ "when": {
3613
+ "$ref": "#/$defs/Expr"
3614
+ },
3615
+ "effect": {
3616
+ "anyOf": [
3617
+ {
3618
+ "const": "approve"
3619
+ },
3620
+ {
3621
+ "const": "reject"
3622
+ },
3623
+ {
3624
+ "const": "waive"
3625
+ },
3626
+ {
3627
+ "const": "defer"
3628
+ },
3629
+ {
3630
+ "const": "accept"
3631
+ },
3632
+ {
3633
+ "const": "add"
3634
+ }
3635
+ ]
3636
+ },
3637
+ "reason": {
3638
+ "$ref": "#/$defs/TypeRef"
3639
+ },
3640
+ "until": {
3641
+ "$ref": "#/$defs/Expr"
3642
+ },
3643
+ "expires": {
3644
+ "$ref": "#/$defs/Expr"
3645
+ },
3646
+ "approvals": {
3647
+ "$ref": "#/$defs/Expr"
3648
+ },
3649
+ "distinctFrom": {
3650
+ "type": "array",
3651
+ "items": {
3652
+ "$ref": "#/$defs/Expr"
3653
+ }
3654
+ },
3655
+ "cites": {
3656
+ "type": "array",
3657
+ "items": {
3658
+ "$ref": "#/$defs/Citation"
3659
+ }
3660
+ },
3661
+ "at": {
3662
+ "$ref": "#/$defs/Span"
3663
+ }
3664
+ },
3665
+ "required": ["name", "of", "by", "applies", "effect", "reason", "at"]
3666
+ },
3667
+ "ConfirmationWindow": {
3668
+ "type": "object",
3669
+ "properties": {
3670
+ "n": {
3671
+ "type": "integer",
3672
+ "minimum": 1,
3673
+ "maximum": 9007199254740991
3674
+ },
3675
+ "unit": {
3676
+ "anyOf": [
3677
+ {
3678
+ "const": "days"
3679
+ },
3680
+ {
3681
+ "const": "years"
3682
+ },
3683
+ {
3684
+ "const": "hours"
3685
+ },
3686
+ {
3687
+ "const": "minutes"
3688
+ }
3689
+ ]
3690
+ },
3691
+ "at": {
3692
+ "$ref": "#/$defs/Span"
3693
+ }
3694
+ },
3695
+ "required": ["n", "unit", "at"]
3696
+ },
3697
+ "Collect": {
3698
+ "type": "object",
3699
+ "properties": {
3700
+ "name": {
3701
+ "type": "string"
3702
+ },
3703
+ "doc": {
3704
+ "type": "string"
3705
+ },
3706
+ "from": {
3707
+ "type": "string"
3708
+ },
3709
+ "facts": {
3710
+ "type": "array",
3711
+ "items": {
3712
+ "type": "string"
3713
+ },
3714
+ "minItems": 1
3715
+ },
3716
+ "layout": {
3717
+ "type": "string"
3718
+ },
3719
+ "confirmAfter": {
3720
+ "$ref": "#/$defs/ConfirmationWindow"
3721
+ },
3722
+ "at": {
3723
+ "$ref": "#/$defs/Span"
3724
+ }
3725
+ },
3726
+ "required": ["name", "from", "facts", "layout", "at"]
3727
+ },
3728
+ "Bundle": {
3729
+ "type": "object",
3730
+ "properties": {
3731
+ "name": {
3732
+ "type": "string"
3733
+ },
3734
+ "doc": {
3735
+ "type": "string"
3736
+ },
3737
+ "role": {
3738
+ "type": "string"
3739
+ },
3740
+ "label": {
3741
+ "type": "string"
3742
+ },
3743
+ "at": {
3744
+ "$ref": "#/$defs/Span"
3745
+ }
3746
+ },
3747
+ "required": ["name", "role", "label", "at"]
3748
+ },
3749
+ "ContractOperation": {
3750
+ "type": "object",
3751
+ "properties": {
3752
+ "name": {
3753
+ "type": "string"
3754
+ },
3755
+ "kind": {
3756
+ "anyOf": [
3757
+ {
3758
+ "const": "action"
3759
+ },
3760
+ {
3761
+ "const": "decision"
3762
+ }
3763
+ ]
3764
+ },
3765
+ "input": {
3766
+ "type": "array",
3767
+ "items": {
3768
+ "$ref": "#/$defs/Field"
3769
+ }
3770
+ },
3771
+ "result": {
3772
+ "type": "string"
3773
+ },
3774
+ "sealedBy": {
3775
+ "$ref": "#/$defs/Seal"
3776
+ },
3777
+ "amendable": {
3778
+ "type": "boolean"
3779
+ },
3780
+ "signature": {
3781
+ "type": "object",
3782
+ "properties": {
3783
+ "method": {
3784
+ "type": "string"
3785
+ },
3786
+ "audit": {
3787
+ "$ref": "#/$defs/SignaturePolicy"
3788
+ }
3789
+ },
3790
+ "required": ["method", "audit"]
3791
+ }
3792
+ },
3793
+ "required": ["name", "kind", "input", "result"]
3794
+ },
3795
+ "ComponentContract": {
3796
+ "type": "object",
3797
+ "properties": {
3798
+ "name": {
3799
+ "type": "string"
3800
+ },
3801
+ "doc": {
3802
+ "type": "string"
3803
+ },
3804
+ "library": {
3805
+ "type": "string"
3806
+ },
3807
+ "component": {
3808
+ "type": "string"
3809
+ },
3810
+ "key": {
3811
+ "type": "array",
3812
+ "items": {
3813
+ "type": "string"
3814
+ }
3815
+ },
3816
+ "home": {
3817
+ "$ref": "#/$defs/Home"
3818
+ },
3819
+ "inputs": {
3820
+ "type": "array",
3821
+ "items": {
3822
+ "$ref": "#/$defs/Field"
3823
+ }
3824
+ },
3825
+ "params": {
3826
+ "type": "array",
3827
+ "items": {
3828
+ "$ref": "#/$defs/Field"
3829
+ }
3830
+ },
3831
+ "paramBounds": {
3832
+ "type": "array",
3833
+ "items": {
3834
+ "$ref": "#/$defs/ParamBound"
3835
+ }
3836
+ },
3837
+ "types": {
3838
+ "type": "array",
3839
+ "items": {
3840
+ "$ref": "#/$defs/Field"
3841
+ }
3842
+ },
3843
+ "roles": {
3844
+ "type": "array",
3845
+ "items": {
3846
+ "type": "object",
3847
+ "properties": {
3848
+ "name": {
3849
+ "type": "string"
3850
+ },
3851
+ "fields": {
3852
+ "type": "array",
3853
+ "items": {
3854
+ "$ref": "#/$defs/Field"
3855
+ }
3856
+ }
3857
+ },
3858
+ "required": ["name", "fields"]
3859
+ }
3860
+ },
3861
+ "vaults": {
3862
+ "type": "array",
3863
+ "items": {
3864
+ "$ref": "#/$defs/Vault"
3865
+ },
3866
+ "minItems": 1
3867
+ },
3868
+ "outputs": {
3869
+ "type": "array",
3870
+ "items": {
3871
+ "type": "object",
3872
+ "properties": {
3873
+ "name": {
3874
+ "type": "string"
3875
+ },
3876
+ "type": {
3877
+ "const": "Status"
3878
+ }
3879
+ },
3880
+ "required": ["name", "type"]
3881
+ }
3882
+ },
3883
+ "operations": {
3884
+ "type": "array",
3885
+ "items": {
3886
+ "$ref": "#/$defs/ContractOperation"
3887
+ }
3888
+ },
3889
+ "capabilities": {
3890
+ "type": "array",
3891
+ "items": {
3892
+ "type": "object",
3893
+ "properties": {
3894
+ "connector": {
3895
+ "type": "string"
3896
+ },
3897
+ "capabilities": {
3898
+ "type": "array",
3899
+ "items": {
3900
+ "type": "string"
3901
+ }
3902
+ }
3903
+ },
3904
+ "required": ["connector", "capabilities"]
3905
+ }
3906
+ },
3907
+ "digest": {
3908
+ "type": "string"
3909
+ },
3910
+ "at": {
3911
+ "$ref": "#/$defs/Span"
3912
+ }
3913
+ },
3914
+ "required": [
3915
+ "name",
3916
+ "library",
3917
+ "component",
3918
+ "key",
3919
+ "home",
3920
+ "inputs",
3921
+ "params",
3922
+ "paramBounds",
3923
+ "types",
3924
+ "roles",
3925
+ "outputs",
3926
+ "operations",
3927
+ "capabilities",
3928
+ "digest",
3929
+ "at"
3930
+ ]
3931
+ },
3932
+ "ComponentImport": {
3933
+ "type": "object",
3934
+ "properties": {
3935
+ "name": {
3936
+ "type": "string"
3937
+ },
3938
+ "doc": {
3939
+ "type": "string"
3940
+ },
3941
+ "library": {
3942
+ "type": "string"
3943
+ },
3944
+ "from": {
3945
+ "type": "string"
3946
+ },
3947
+ "version": {
3948
+ "type": "string"
3949
+ },
3950
+ "contract": {
3951
+ "type": "string"
3952
+ },
3953
+ "digest": {
3954
+ "type": "string"
3955
+ },
3956
+ "at": {
3957
+ "$ref": "#/$defs/Span"
3958
+ }
3959
+ },
3960
+ "required": ["name", "library", "from", "version", "contract", "digest", "at"]
3961
+ },
3962
+ "WorldIR": {
3963
+ "type": "object",
3964
+ "properties": {
3965
+ "format": {
3966
+ "const": "worldvm/world-ir@1"
3967
+ },
3968
+ "sources": {
3969
+ "type": "array",
3970
+ "items": {
3971
+ "type": "object",
3972
+ "properties": {
3973
+ "id": {
3974
+ "type": "string"
3975
+ },
3976
+ "sha256": {
3977
+ "type": "string"
3978
+ }
3979
+ },
3980
+ "required": ["id", "sha256"]
3981
+ }
3982
+ },
3983
+ "references": {
3984
+ "type": "array",
3985
+ "items": {
3986
+ "$ref": "#/$defs/Source"
3987
+ }
3988
+ },
3989
+ "scenarios": {
3990
+ "type": "array",
3991
+ "items": {
3992
+ "$ref": "#/$defs/Scenario"
3993
+ }
3994
+ },
3995
+ "properties": {
3996
+ "type": "array",
3997
+ "items": {
3998
+ "$ref": "#/$defs/Property"
3999
+ }
4000
+ },
4001
+ "decisions": {
4002
+ "type": "array",
4003
+ "items": {
4004
+ "$ref": "#/$defs/Decision"
4005
+ }
4006
+ },
4007
+ "collects": {
4008
+ "type": "array",
4009
+ "items": {
4010
+ "$ref": "#/$defs/Collect"
4011
+ }
4012
+ },
4013
+ "bundles": {
4014
+ "type": "array",
4015
+ "items": {
4016
+ "$ref": "#/$defs/Bundle"
4017
+ }
4018
+ },
4019
+ "documents": {
4020
+ "type": "array",
4021
+ "items": {
4022
+ "$ref": "#/$defs/Document"
4023
+ }
4024
+ },
4025
+ "notices": {
4026
+ "type": "array",
4027
+ "items": {
4028
+ "$ref": "#/$defs/Notice"
4029
+ }
4030
+ },
4031
+ "vaults": {
4032
+ "type": "array",
4033
+ "items": {
4034
+ "$ref": "#/$defs/Vault"
4035
+ },
4036
+ "minItems": 1
4037
+ },
4038
+ "agents": {
4039
+ "type": "array",
4040
+ "items": {
4041
+ "$ref": "#/$defs/Agent"
4042
+ },
4043
+ "minItems": 1
4044
+ },
4045
+ "libraries": {
4046
+ "type": "array",
4047
+ "items": {
4048
+ "$ref": "#/$defs/Library"
4049
+ }
4050
+ },
4051
+ "types": {
4052
+ "type": "array",
4053
+ "items": {
4054
+ "$ref": "#/$defs/TypeAlias"
4055
+ }
4056
+ },
4057
+ "roles": {
4058
+ "type": "array",
4059
+ "items": {
4060
+ "$ref": "#/$defs/Role"
4061
+ }
4062
+ },
4063
+ "entities": {
4064
+ "type": "array",
4065
+ "items": {
4066
+ "$ref": "#/$defs/Entity"
4067
+ }
4068
+ },
4069
+ "calendars": {
4070
+ "type": "array",
4071
+ "items": {
4072
+ "$ref": "#/$defs/Calendar"
4073
+ }
4074
+ },
4075
+ "derives": {
4076
+ "type": "array",
4077
+ "items": {
4078
+ "$ref": "#/$defs/Derive"
4079
+ }
4080
+ },
4081
+ "evidence": {
4082
+ "type": "array",
4083
+ "items": {
4084
+ "$ref": "#/$defs/Evidence"
4085
+ }
4086
+ },
4087
+ "interactions": {
4088
+ "type": "array",
4089
+ "items": {
4090
+ "$ref": "#/$defs/Interaction"
4091
+ }
4092
+ },
4093
+ "layouts": {
4094
+ "type": "array",
4095
+ "items": {
4096
+ "$ref": "#/$defs/Layout"
4097
+ }
4098
+ },
4099
+ "connectors": {
4100
+ "type": "array",
4101
+ "items": {
4102
+ "$ref": "#/$defs/Connector"
4103
+ }
4104
+ },
4105
+ "machines": {
4106
+ "type": "array",
4107
+ "items": {
4108
+ "$ref": "#/$defs/Machine"
4109
+ }
4110
+ },
4111
+ "componentContracts": {
4112
+ "type": "array",
4113
+ "items": {
4114
+ "$ref": "#/$defs/ComponentContract"
4115
+ },
4116
+ "minItems": 1
4117
+ },
4118
+ "componentImports": {
4119
+ "type": "array",
4120
+ "items": {
4121
+ "$ref": "#/$defs/ComponentImport"
4122
+ },
4123
+ "minItems": 1
4124
+ },
4125
+ "components": {
4126
+ "type": "array",
4127
+ "items": {
4128
+ "$ref": "#/$defs/Component"
4129
+ }
4130
+ },
4131
+ "accounts": {
4132
+ "type": "array",
4133
+ "items": {
4134
+ "$ref": "#/$defs/Account"
4135
+ }
4136
+ }
4137
+ },
4138
+ "required": [
4139
+ "format",
4140
+ "sources",
4141
+ "libraries",
4142
+ "types",
4143
+ "roles",
4144
+ "entities",
4145
+ "calendars",
4146
+ "derives",
4147
+ "evidence",
4148
+ "interactions",
4149
+ "layouts",
4150
+ "connectors",
4151
+ "machines",
4152
+ "components",
4153
+ "accounts"
4154
+ ]
4155
+ },
4156
+ "Diagnostic": {
4157
+ "type": "object",
4158
+ "properties": {
4159
+ "code": {
4160
+ "type": "string"
4161
+ },
4162
+ "severity": {
4163
+ "anyOf": [
4164
+ {
4165
+ "const": "error"
4166
+ },
4167
+ {
4168
+ "const": "warning"
4169
+ },
4170
+ {
4171
+ "const": "info"
4172
+ }
4173
+ ]
4174
+ },
4175
+ "message": {
4176
+ "type": "string"
4177
+ },
4178
+ "help": {
4179
+ "type": "string"
4180
+ },
4181
+ "at": {
4182
+ "$ref": "#/$defs/Span"
4183
+ }
4184
+ },
4185
+ "required": ["code", "severity", "message"]
4186
+ },
4187
+ "Compiled": {
4188
+ "type": "object",
4189
+ "properties": {
4190
+ "ok": {
4191
+ "type": "boolean"
4192
+ },
4193
+ "ir": {
4194
+ "anyOf": [
4195
+ {
4196
+ "type": "null"
4197
+ },
4198
+ {
4199
+ "$ref": "#/$defs/WorldIR"
4200
+ }
4201
+ ]
4202
+ },
4203
+ "diagnostics": {
4204
+ "type": "array",
4205
+ "items": {
4206
+ "$ref": "#/$defs/Diagnostic"
4207
+ }
4208
+ }
4209
+ },
4210
+ "required": ["ok", "ir", "diagnostics"]
4211
+ }
4212
+ }
4213
+ }