@oimlsmart/primmel-packages 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 (460) hide show
  1. package/AGENTS.md +60 -0
  2. package/LICENSE +21 -0
  3. package/README.md +68 -0
  4. package/acme-cgm-200/model/cgm200.prl +284 -0
  5. package/acme-cgm-200/model/r144-map.prl +337 -0
  6. package/acme-cgm-200/package.primmel +39 -0
  7. package/acme-cgm-system/model/cgm-system.prl +125 -0
  8. package/acme-cgm-system/model/r144-map.prl +75 -0
  9. package/acme-cgm-system/model/sample-line.prl +42 -0
  10. package/acme-cgm-system/package.primmel +23 -0
  11. package/acme-lc500/model/lc500.prl +218 -0
  12. package/acme-lc500/model/passport.prl +43 -0
  13. package/acme-lc500/model/r60-map.prl +161 -0
  14. package/acme-lc500/model/twin-cert-map.prl +114 -0
  15. package/acme-lc500/package.primmel +35 -0
  16. package/acme-md3xx/model/md350.prl +317 -0
  17. package/acme-md3xx/model/r129-map.prl +346 -0
  18. package/acme-md3xx/package.primmel +49 -0
  19. package/acme-rs180/model/r91-map.prl +234 -0
  20. package/acme-rs180/model/rs180.prl +236 -0
  21. package/acme-rs180/package.primmel +47 -0
  22. package/ims-demo/model/ims.prl +23 -0
  23. package/ims-demo/model/isms-map.prl +60 -0
  24. package/ims-demo/model/qms-map.prl +73 -0
  25. package/ims-demo/package.primmel +42 -0
  26. package/isms-ref/model/isms.prl +34 -0
  27. package/isms-ref/package.primmel +35 -0
  28. package/iso-iec-17000/package.primmel +8 -0
  29. package/iso-iec-17000/terminology.prl +268 -0
  30. package/iso-iec-17025/package.primmel +10 -0
  31. package/iso-iec-17025/specification/requirements/lab.prl +474 -0
  32. package/iso-iec-17025/terminology.prl +72 -0
  33. package/iso-iec-17065/package.primmel +10 -0
  34. package/iso-iec-17065/specification/requirements/body.prl +446 -0
  35. package/iso-iec-17065/terminology.prl +103 -0
  36. package/iso-iec-17067/package.primmel +10 -0
  37. package/iso-iec-17067/specification/requirements/scheme-content.prl +300 -0
  38. package/iso-iec-17067/terminology.prl +24 -0
  39. package/oiml-cs/package.primmel +10 -0
  40. package/oiml-cs/specification/discrepancies.prl +26 -0
  41. package/oiml-cs/specification/requirements/cs.prl +515 -0
  42. package/oiml-cs-dataspace/.primmel-allowlist.prl +25 -0
  43. package/oiml-cs-dataspace/package.primmel +9 -0
  44. package/oiml-cs-dataspace/specification/dataspace.prl +73 -0
  45. package/oiml-cs-dataspace/specification/policies.prl +68 -0
  46. package/oiml-integrated-ref/model/probe-pairing.prl +71 -0
  47. package/oiml-integrated-ref/package.primmel +10 -0
  48. package/oiml-r129/.primmel-allowlist.prl +2 -0
  49. package/oiml-r129/evaluation/processes.prl +152 -0
  50. package/oiml-r129/evaluation/workflow.prl +48 -0
  51. package/oiml-r129/execution/forms/admin/adjustments-modifications.prl +30 -0
  52. package/oiml-r129/execution/forms/admin/checklist.prl +70 -0
  53. package/oiml-r129/execution/forms/admin/configuration.prl +31 -0
  54. package/oiml-r129/execution/forms/admin/equipment-info.prl +27 -0
  55. package/oiml-r129/execution/forms/admin/general-info.prl +63 -0
  56. package/oiml-r129/execution/forms/admin/identification.prl +49 -0
  57. package/oiml-r129/execution/forms/admin/sample-selection.prl +30 -0
  58. package/oiml-r129/execution/forms/admin/summary-results.prl +50 -0
  59. package/oiml-r129/execution/forms/emc/bursts.prl +88 -0
  60. package/oiml-r129/execution/forms/emc/esd.prl +66 -0
  61. package/oiml-r129/execution/forms/emc/low-voltage-battery.prl +58 -0
  62. package/oiml-r129/execution/forms/emc/rf-immunity-conducted.prl +59 -0
  63. package/oiml-r129/execution/forms/emc/rf-immunity-radiated.prl +59 -0
  64. package/oiml-r129/execution/forms/emc/surge.prl +61 -0
  65. package/oiml-r129/execution/forms/emc/voltage-dips.prl +62 -0
  66. package/oiml-r129/execution/forms/emc/voltage-variation.prl +58 -0
  67. package/oiml-r129/execution/forms/env/damp-heat-cyclic.prl +43 -0
  68. package/oiml-r129/execution/forms/env/damp-heat-steady.prl +50 -0
  69. package/oiml-r129/execution/forms/env/static-temperatures.prl +61 -0
  70. package/oiml-r129/execution/forms/shared/headers.prl +86 -0
  71. package/oiml-r129/execution/forms/tests/acoustics.prl +44 -0
  72. package/oiml-r129/execution/forms/tests/ambient-light.prl +46 -0
  73. package/oiml-r129/execution/forms/tests/construction-examination.prl +46 -0
  74. package/oiml-r129/execution/forms/tests/examination-checklist.prl +51 -0
  75. package/oiml-r129/execution/forms/tests/object-shape.prl +43 -0
  76. package/oiml-r129/execution/forms/tests/orientation-position.prl +31 -0
  77. package/oiml-r129/execution/forms/tests/repeatability.prl +65 -0
  78. package/oiml-r129/execution/forms/tests/speed-movement.prl +59 -0
  79. package/oiml-r129/execution/forms/tests/surface-characteristics.prl +44 -0
  80. package/oiml-r129/execution/forms/tests/warm-up-time.prl +35 -0
  81. package/oiml-r129/execution/subforms/dimension-measurement.prl +93 -0
  82. package/oiml-r129/layers.prl +50 -0
  83. package/oiml-r129/model/attributes.prl +243 -0
  84. package/oiml-r129/model/behaviors.prl +79 -0
  85. package/oiml-r129/model/capabilities.prl +29 -0
  86. package/oiml-r129/model/characteristics.prl +8 -0
  87. package/oiml-r129/model/conditions.prl +23 -0
  88. package/oiml-r129/model/instrument.prl +67 -0
  89. package/oiml-r129/model/state.prl +22 -0
  90. package/oiml-r129/model/twin.prl +23 -0
  91. package/oiml-r129/package.primmel +15 -0
  92. package/oiml-r129/payload/application.yaml +40 -0
  93. package/oiml-r129/payload/conditions-common-test.yaml +8 -0
  94. package/oiml-r129/payload/formulas-variants.yaml +33 -0
  95. package/oiml-r129/payload/promises.yaml +102 -0
  96. package/oiml-r129/payload/sample-data.yaml +300 -0
  97. package/oiml-r129/references.prl +306 -0
  98. package/oiml-r129/sources-prd/coverage.json +59 -0
  99. package/oiml-r129/sources-prd/r129-1.sentences.json +4238 -0
  100. package/oiml-r129/sources-prd/r129-2.sentences.json +1139 -0
  101. package/oiml-r129/sources-prd/r129-3.sentences.json +3809 -0
  102. package/oiml-r129/sources-prd/r129-4.sentences.json +1227 -0
  103. package/oiml-r129/specification/calculations.prl +83 -0
  104. package/oiml-r129/specification/conformance/disturbance-tests.prl +212 -0
  105. package/oiml-r129/specification/conformance/effect-tests.prl +70 -0
  106. package/oiml-r129/specification/conformance/examinations.prl +83 -0
  107. package/oiml-r129/specification/conformance/metrological-tests.prl +178 -0
  108. package/oiml-r129/specification/formulas.prl +9 -0
  109. package/oiml-r129/specification/requirements/electronic.prl +46 -0
  110. package/oiml-r129/specification/requirements/metrological.prl +83 -0
  111. package/oiml-r129/specification/requirements/object-limitations.prl +99 -0
  112. package/oiml-r129/specification/requirements/software.prl +57 -0
  113. package/oiml-r129/specification/requirements/technical.prl +134 -0
  114. package/oiml-r129/specification/symbols.prl +187 -0
  115. package/oiml-r129/specification/tables.prl +74 -0
  116. package/oiml-r129/terminology.prl +415 -0
  117. package/oiml-r129/value-types.prl +40 -0
  118. package/oiml-r144/.primmel-allowlist.prl +2 -0
  119. package/oiml-r144/entities/instrument.prl +360 -0
  120. package/oiml-r144/entities/test-execution.prl +228 -0
  121. package/oiml-r144/entities/workflow.prl +2075 -0
  122. package/oiml-r144/evaluation/processes.prl +152 -0
  123. package/oiml-r144/evaluation/workflow.prl +48 -0
  124. package/oiml-r144/execution/forms/sec-3-report/03-01-laboratory-info.prl +19 -0
  125. package/oiml-r144/execution/forms/sec-3-report/03-02-test-location.prl +14 -0
  126. package/oiml-r144/execution/forms/sec-3-report/03-03-manufacturer-info.prl +18 -0
  127. package/oiml-r144/execution/forms/sec-3-report/03-04-applicant-info.prl +19 -0
  128. package/oiml-r144/execution/forms/sec-3-report/03-05-type-identification.prl +80 -0
  129. package/oiml-r144/execution/forms/sec-3-report/03-06-type-composition.prl +31 -0
  130. package/oiml-r144/execution/forms/sec-3-report/03-07-visual-examination.prl +46 -0
  131. package/oiml-r144/execution/forms/sec-3-report/03-08-test-conclusions.prl +46 -0
  132. package/oiml-r144/execution/forms/sec-3-report/03-09-general-conclusion.prl +19 -0
  133. package/oiml-r144/execution/forms/sec-3-report/03-10-responsible-persons.prl +27 -0
  134. package/oiml-r144/execution/forms/sec-tests/ambient-pressure-test.prl +59 -0
  135. package/oiml-r144/execution/forms/sec-tests/bursts-mains-test.prl +52 -0
  136. package/oiml-r144/execution/forms/sec-tests/bursts-signal-test.prl +55 -0
  137. package/oiml-r144/execution/forms/sec-tests/cold-test.prl +48 -0
  138. package/oiml-r144/execution/forms/sec-tests/cross-sensitivity-test.prl +92 -0
  139. package/oiml-r144/execution/forms/sec-tests/damp-heat-test.prl +50 -0
  140. package/oiml-r144/execution/forms/sec-tests/documentation-examination.prl +52 -0
  141. package/oiml-r144/execution/forms/sec-tests/drift-test.prl +83 -0
  142. package/oiml-r144/execution/forms/sec-tests/dry-heat-test.prl +53 -0
  143. package/oiml-r144/execution/forms/sec-tests/error-determination.prl +37 -0
  144. package/oiml-r144/execution/forms/sec-tests/esd-test.prl +53 -0
  145. package/oiml-r144/execution/forms/sec-tests/flow-spillover-test.prl +83 -0
  146. package/oiml-r144/execution/forms/sec-tests/leakproofness-test.prl +41 -0
  147. package/oiml-r144/execution/forms/sec-tests/low-battery-test.prl +48 -0
  148. package/oiml-r144/execution/forms/sec-tests/power-reduction-test.prl +49 -0
  149. package/oiml-r144/execution/forms/sec-tests/power-supply-test.prl +57 -0
  150. package/oiml-r144/execution/forms/sec-tests/repeatability-test.prl +60 -0
  151. package/oiml-r144/execution/forms/sec-tests/response-time-test.prl +43 -0
  152. package/oiml-r144/execution/forms/sec-tests/rf-emf-test.prl +47 -0
  153. package/oiml-r144/execution/forms/sec-tests/shock-test.prl +50 -0
  154. package/oiml-r144/execution/forms/sec-tests/surge-test.prl +52 -0
  155. package/oiml-r144/execution/forms/sec-tests/vibration-test.prl +58 -0
  156. package/oiml-r144/execution/forms/sec-tests/warm-up-time-test.prl +69 -0
  157. package/oiml-r144/execution/forms/shared/headers.prl +132 -0
  158. package/oiml-r144/execution/subforms/cgm-point.prl +99 -0
  159. package/oiml-r144/layers.prl +44 -0
  160. package/oiml-r144/model/attributes.prl +679 -0
  161. package/oiml-r144/model/behaviors.prl +117 -0
  162. package/oiml-r144/model/capabilities.prl +99 -0
  163. package/oiml-r144/model/characteristics.prl +27 -0
  164. package/oiml-r144/model/conditions.prl +46 -0
  165. package/oiml-r144/model/instrument.prl +85 -0
  166. package/oiml-r144/model/state.prl +18 -0
  167. package/oiml-r144/model/twin.prl +25 -0
  168. package/oiml-r144/package.primmel +15 -0
  169. package/oiml-r144/payload/application.yaml +80 -0
  170. package/oiml-r144/payload/attributes-pair-list.yaml +18 -0
  171. package/oiml-r144/payload/conditions-common-test.yaml +74 -0
  172. package/oiml-r144/payload/formulas-variants.yaml +32 -0
  173. package/oiml-r144/payload/promises.yaml +118 -0
  174. package/oiml-r144/payload/sample-data.yaml +643 -0
  175. package/oiml-r144/references.prl +594 -0
  176. package/oiml-r144/sources-prd/coverage.json +114 -0
  177. package/oiml-r144/sources-prd/r144-1.sentences.json +2797 -0
  178. package/oiml-r144/sources-prd/r144-2.sentences.json +1627 -0
  179. package/oiml-r144/sources-prd/r144-3.sentences.json +838 -0
  180. package/oiml-r144/specification/calculations.prl +123 -0
  181. package/oiml-r144/specification/conformance/examination.prl +87 -0
  182. package/oiml-r144/specification/conformance/performance-tests.prl +755 -0
  183. package/oiml-r144/specification/formulas.prl +37 -0
  184. package/oiml-r144/specification/reference-materials.prl +87 -0
  185. package/oiml-r144/specification/requirements/controls.prl +51 -0
  186. package/oiml-r144/specification/requirements/metrological.prl +299 -0
  187. package/oiml-r144/specification/requirements/report.prl +35 -0
  188. package/oiml-r144/specification/requirements/technical.prl +455 -0
  189. package/oiml-r144/specification/symbols.prl +357 -0
  190. package/oiml-r144/specification/tables.prl +95 -0
  191. package/oiml-r144/specification/test-point-sets.prl +15 -0
  192. package/oiml-r144/terminology.prl +308 -0
  193. package/oiml-r144/value-types.prl +49 -0
  194. package/oiml-r60/.primmel-allowlist.prl +2 -0
  195. package/oiml-r60/entities/workflow.prl +2079 -0
  196. package/oiml-r60/evaluation/processes.prl +152 -0
  197. package/oiml-r60/evaluation/workflow.prl +48 -0
  198. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-01-authority-info.prl +76 -0
  199. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-02-synopsis.prl +20 -0
  200. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-01-examinations.prl +27 -0
  201. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-02-a-performance-general.prl +81 -0
  202. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-02-b-performance-digital.prl +104 -0
  203. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-01-manufacturer.prl +21 -0
  204. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-02-applicant.prl +44 -0
  205. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-03-testing-laboratories.prl +69 -0
  206. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-05-load-cell-type-info.prl +83 -0
  207. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-06-accessories.prl +41 -0
  208. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-07-sample-selection.prl +71 -0
  209. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-01-general-info.prl +103 -0
  210. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-02-performance-info.prl +66 -0
  211. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-03-digital-info.prl +35 -0
  212. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-04-photographs.prl +12 -0
  213. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-05-documentation.prl +27 -0
  214. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-06-inscriptions.prl +126 -0
  215. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-07-model-range.prl +143 -0
  216. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-12-previous-tests.prl +26 -0
  217. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-01-force-generating-system.prl +89 -0
  218. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-02-weights.prl +61 -0
  219. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-03-temperature-chamber.prl +96 -0
  220. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-04-climate-chamber.prl +96 -0
  221. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-05-indicator.prl +92 -0
  222. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-06-terminal.prl +86 -0
  223. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-07-barometric-pressure-meter.prl +62 -0
  224. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-08-thermometer.prl +62 -0
  225. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-09-moisture-analyser.prl +62 -0
  226. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-10-additional-test-equipment.prl +69 -0
  227. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-11-remarks.prl +11 -0
  228. package/oiml-r60/execution/forms/sec-4-evaluation-report/test-usage-matrix.prl +85 -0
  229. package/oiml-r60/execution/forms/sec-5-examination/documentation-examination.prl +53 -0
  230. package/oiml-r60/execution/forms/sec-5-examination/marking-examination.prl +104 -0
  231. package/oiml-r60/execution/forms/sec-5-examination/software-examination.prl +86 -0
  232. package/oiml-r60/execution/forms/sec-5-examination/suitability-examination.prl +56 -0
  233. package/oiml-r60/execution/forms/sec-6-performance-tests/barometric-pressure.prl +176 -0
  234. package/oiml-r60/execution/forms/sec-6-performance-tests/bursts.prl +129 -0
  235. package/oiml-r60/execution/forms/sec-6-performance-tests/conducted-emc.prl +170 -0
  236. package/oiml-r60/execution/forms/sec-6-performance-tests/creep-dr.prl +327 -0
  237. package/oiml-r60/execution/forms/sec-6-performance-tests/emc-susceptibility.prl +115 -0
  238. package/oiml-r60/execution/forms/sec-6-performance-tests/esd.prl +224 -0
  239. package/oiml-r60/execution/forms/sec-6-performance-tests/humidity-ch.prl +300 -0
  240. package/oiml-r60/execution/forms/sec-6-performance-tests/humidity-sh.prl +235 -0
  241. package/oiml-r60/execution/forms/sec-6-performance-tests/initial-tests.prl +129 -0
  242. package/oiml-r60/execution/forms/sec-6-performance-tests/load-cell-errors.prl +280 -0
  243. package/oiml-r60/execution/forms/sec-6-performance-tests/load-test.prl +29 -0
  244. package/oiml-r60/execution/forms/sec-6-performance-tests/performance-test-summary.prl +82 -0
  245. package/oiml-r60/execution/forms/sec-6-performance-tests/power-voltage.prl +166 -0
  246. package/oiml-r60/execution/forms/sec-6-performance-tests/repeatability.prl +189 -0
  247. package/oiml-r60/execution/forms/sec-6-performance-tests/short-time-power.prl +98 -0
  248. package/oiml-r60/execution/forms/sec-6-performance-tests/span-stability.prl +242 -0
  249. package/oiml-r60/execution/forms/sec-6-performance-tests/surge.prl +142 -0
  250. package/oiml-r60/execution/forms/sec-6-performance-tests/temperature-mdlo.prl +180 -0
  251. package/oiml-r60/execution/forms/sec-6-performance-tests/warm-up-time.prl +207 -0
  252. package/oiml-r60/execution/forms/shared/headers.prl +255 -0
  253. package/oiml-r60/execution/subforms/load-test-row.prl +55 -0
  254. package/oiml-r60/execution/subforms/test-procedures.prl +33 -0
  255. package/oiml-r60/layers.prl +46 -0
  256. package/oiml-r60/model/attributes.prl +642 -0
  257. package/oiml-r60/model/behaviors.prl +165 -0
  258. package/oiml-r60/model/capabilities.prl +57 -0
  259. package/oiml-r60/model/characteristics.prl +27 -0
  260. package/oiml-r60/model/conditions.prl +50 -0
  261. package/oiml-r60/model/instrument.prl +96 -0
  262. package/oiml-r60/model/processes.prl +54 -0
  263. package/oiml-r60/model/state.prl +22 -0
  264. package/oiml-r60/model/twin.prl +16 -0
  265. package/oiml-r60/package.primmel +16 -0
  266. package/oiml-r60/payload/annexes-part4.yaml +122 -0
  267. package/oiml-r60/payload/application.yaml +83 -0
  268. package/oiml-r60/payload/conditions-common-test.yaml +121 -0
  269. package/oiml-r60/payload/formulas-variants.yaml +55 -0
  270. package/oiml-r60/payload/promises.yaml +224 -0
  271. package/oiml-r60/payload/sample-data.yaml +5025 -0
  272. package/oiml-r60/payload/symbols-formula-notes.yaml +21 -0
  273. package/oiml-r60/references.prl +549 -0
  274. package/oiml-r60/sources-prd/coverage.json +740 -0
  275. package/oiml-r60/sources-prd/r60-1.sentences.json +2173 -0
  276. package/oiml-r60/sources-prd/r60-2.sentences.json +2961 -0
  277. package/oiml-r60/sources-prd/r60-3.sentences.json +4212 -0
  278. package/oiml-r60/sources-prd/r60-a.sentences.json +3361 -0
  279. package/oiml-r60/specification/calculations.prl +318 -0
  280. package/oiml-r60/specification/conformance/class-specific.prl +1120 -0
  281. package/oiml-r60/specification/conformance/electronic.prl +483 -0
  282. package/oiml-r60/specification/conformance/examination.prl +183 -0
  283. package/oiml-r60/specification/conformance/metrological.prl +478 -0
  284. package/oiml-r60/specification/constraints.prl +58 -0
  285. package/oiml-r60/specification/formulas-used.prl +43 -0
  286. package/oiml-r60/specification/formulas.prl +20 -0
  287. package/oiml-r60/specification/requirements/class-specific.prl +655 -0
  288. package/oiml-r60/specification/requirements/classification.prl +114 -0
  289. package/oiml-r60/specification/requirements/electronic.prl +222 -0
  290. package/oiml-r60/specification/requirements/metrological.prl +381 -0
  291. package/oiml-r60/specification/requirements/technical.prl +146 -0
  292. package/oiml-r60/specification/symbols.prl +599 -0
  293. package/oiml-r60/specification/tables.prl +182 -0
  294. package/oiml-r60/specification/test-sequences.prl +72 -0
  295. package/oiml-r60/terminology.prl +920 -0
  296. package/oiml-r60/value-types.prl +46 -0
  297. package/oiml-r91/.primmel-allowlist.prl +3 -0
  298. package/oiml-r91/entities/instrument.prl +359 -0
  299. package/oiml-r91/entities/workflow.prl +2075 -0
  300. package/oiml-r91/evaluation/processes.prl +152 -0
  301. package/oiml-r91/evaluation/workflow.prl +48 -0
  302. package/oiml-r91/execution/forms/evidence-file.prl +41 -0
  303. package/oiml-r91/execution/forms/report-evaluation/appraisal.prl +30 -0
  304. package/oiml-r91/execution/forms/report-evaluation/checklist-summary.prl +43 -0
  305. package/oiml-r91/execution/forms/report-evaluation/checklist.prl +76 -0
  306. package/oiml-r91/execution/forms/report-evaluation/configuration-samples.prl +22 -0
  307. package/oiml-r91/execution/forms/report-evaluation/corrective-actions.prl +24 -0
  308. package/oiml-r91/execution/forms/report-evaluation/descriptions.prl +47 -0
  309. package/oiml-r91/execution/forms/report-evaluation/evaluation-identification.prl +219 -0
  310. package/oiml-r91/execution/forms/report-evaluation/test-report-summary.prl +33 -0
  311. package/oiml-r91/execution/forms/report-general/adjustments.prl +12 -0
  312. package/oiml-r91/execution/forms/report-general/alignment-aiming.prl +17 -0
  313. package/oiml-r91/execution/forms/report-general/checking-facility.prl +17 -0
  314. package/oiml-r91/execution/forms/report-general/configuration.prl +12 -0
  315. package/oiml-r91/execution/forms/report-general/identification.prl +216 -0
  316. package/oiml-r91/execution/forms/report-general/indications-controls.prl +17 -0
  317. package/oiml-r91/execution/forms/report-general/sealing.prl +21 -0
  318. package/oiml-r91/execution/forms/report-general/software-description.prl +26 -0
  319. package/oiml-r91/execution/forms/report-general/summary-environmental.prl +35 -0
  320. package/oiml-r91/execution/forms/report-general/summary-tests.prl +35 -0
  321. package/oiml-r91/execution/forms/report-general/test-equipment.prl +36 -0
  322. package/oiml-r91/execution/forms/report-general/test-interface.prl +16 -0
  323. package/oiml-r91/execution/forms/report-tests/01-01-field-test.prl +84 -0
  324. package/oiml-r91/execution/forms/report-tests/01-02-statistical-analysis.prl +76 -0
  325. package/oiml-r91/execution/forms/report-tests/01-03-image-evidence.prl +30 -0
  326. package/oiml-r91/execution/forms/report-tests/02-01-dynamic-performance.prl +92 -0
  327. package/oiml-r91/execution/forms/report-tests/02-02-speed-linearity.prl +23 -0
  328. package/oiml-r91/execution/forms/report-tests/02-03-distance-linearity.prl +67 -0
  329. package/oiml-r91/execution/forms/report-tests/02-04-angle-linearity.prl +59 -0
  330. package/oiml-r91/execution/forms/report-tests/03-01-dry-heat-operating.prl +38 -0
  331. package/oiml-r91/execution/forms/report-tests/03-02-dry-heat-storage.prl +48 -0
  332. package/oiml-r91/execution/forms/report-tests/03-03-cold-operating.prl +40 -0
  333. package/oiml-r91/execution/forms/report-tests/03-04-cold-storage.prl +48 -0
  334. package/oiml-r91/execution/forms/report-tests/03-05-damp-heat-cyclic.prl +40 -0
  335. package/oiml-r91/execution/forms/report-tests/03-06-water.prl +48 -0
  336. package/oiml-r91/execution/forms/report-tests/03-07-sand-and-dust.prl +48 -0
  337. package/oiml-r91/execution/forms/report-tests/03-08-salt-mist.prl +48 -0
  338. package/oiml-r91/execution/forms/report-tests/03-09-vibration-random.prl +40 -0
  339. package/oiml-r91/execution/forms/report-tests/03-10-mechanical-shock.prl +48 -0
  340. package/oiml-r91/execution/forms/report-tests/03-11-dc-mains-voltage-variation.prl +40 -0
  341. package/oiml-r91/execution/forms/report-tests/03-12-ripple-on-dc-mains.prl +47 -0
  342. package/oiml-r91/execution/forms/report-tests/03-13-ac-mains-voltage-variation.prl +40 -0
  343. package/oiml-r91/execution/forms/report-tests/03-14-ac-mains-frequency-variation.prl +40 -0
  344. package/oiml-r91/execution/forms/report-tests/03-15-dc-mains-voltage-dips.prl +46 -0
  345. package/oiml-r91/execution/forms/report-tests/03-16-ac-mains-voltage-dips.prl +46 -0
  346. package/oiml-r91/execution/forms/report-tests/03-17-ac-mains-frequency-harmonics.prl +47 -0
  347. package/oiml-r91/execution/forms/report-tests/03-18-vlf-lf-disturbances.prl +46 -0
  348. package/oiml-r91/execution/forms/report-tests/03-19-bursts-ac-dc-mains.prl +44 -0
  349. package/oiml-r91/execution/forms/report-tests/03-20-surges-ac-dc-mains.prl +45 -0
  350. package/oiml-r91/execution/forms/report-tests/03-21-bursts-signal-lines.prl +45 -0
  351. package/oiml-r91/execution/forms/report-tests/03-22-surges-signal-lines.prl +46 -0
  352. package/oiml-r91/execution/forms/report-tests/03-23-ac-mains-magnetic-field.prl +45 -0
  353. package/oiml-r91/execution/forms/report-tests/03-24-conducted-rf-common-mode.prl +46 -0
  354. package/oiml-r91/execution/forms/report-tests/03-25-rf-electromagnetic-fields.prl +49 -0
  355. package/oiml-r91/execution/forms/report-tests/03-26-electrostatic-discharges.prl +47 -0
  356. package/oiml-r91/execution/forms/report-tests/03-27-internal-battery-low-voltage.prl +40 -0
  357. package/oiml-r91/execution/forms/report-tests/03-28-road-vehicle-battery.prl +40 -0
  358. package/oiml-r91/execution/forms/report-tests/03-29-transient-supply-lines.prl +47 -0
  359. package/oiml-r91/execution/forms/report-tests/03-30-transient-other-lines.prl +45 -0
  360. package/oiml-r91/execution/forms/report-tests/03-31-battery-cranking.prl +45 -0
  361. package/oiml-r91/execution/forms/report-tests/03-32-load-dump.prl +47 -0
  362. package/oiml-r91/execution/forms/report-tests/03-33-acceleration.prl +66 -0
  363. package/oiml-r91/execution/forms/report-tests/03-34-further-influence.prl +60 -0
  364. package/oiml-r91/execution/forms/report-tests/03-35-installation-alignment.prl +29 -0
  365. package/oiml-r91/execution/forms/report-tests/04-01-doppler-radar.prl +43 -0
  366. package/oiml-r91/execution/forms/report-tests/04-02-range-finding.prl +42 -0
  367. package/oiml-r91/execution/forms/report-tests/04-03-average-speed.prl +41 -0
  368. package/oiml-r91/execution/forms/report-tests/04-04-fixed-distance.prl +40 -0
  369. package/oiml-r91/execution/forms/report-tests/04-05-image-based.prl +41 -0
  370. package/oiml-r91/execution/forms/report-tests/04-06-across-road.prl +42 -0
  371. package/oiml-r91/execution/forms/report-tests/05-01-moving-field-test.prl +29 -0
  372. package/oiml-r91/execution/forms/report-tests/05-02-ego-field-test.prl +57 -0
  373. package/oiml-r91/execution/forms/report-tests/05-03-moving-traffic-simulation.prl +31 -0
  374. package/oiml-r91/execution/forms/report-tests/06-01-software-general.prl +25 -0
  375. package/oiml-r91/execution/forms/report-tests/06-02-software-protection.prl +25 -0
  376. package/oiml-r91/execution/forms/report-tests/06-03-software-hardware-support.prl +24 -0
  377. package/oiml-r91/execution/forms/report-tests/06-04-software-separation.prl +25 -0
  378. package/oiml-r91/execution/forms/report-tests/06-05-software-maintenance.prl +24 -0
  379. package/oiml-r91/execution/forms/report-tests/07-general-remarks.prl +11 -0
  380. package/oiml-r91/execution/forms/shared/header-a.prl +63 -0
  381. package/oiml-r91/execution/subforms/software-matrix-row.prl +30 -0
  382. package/oiml-r91/execution/subforms/speed-measurement-row.prl +38 -0
  383. package/oiml-r91/layers.prl +46 -0
  384. package/oiml-r91/model/artifacts.prl +29 -0
  385. package/oiml-r91/model/attributes.prl +698 -0
  386. package/oiml-r91/model/behaviors.prl +142 -0
  387. package/oiml-r91/model/capabilities.prl +88 -0
  388. package/oiml-r91/model/characteristics.prl +27 -0
  389. package/oiml-r91/model/conditions.prl +37 -0
  390. package/oiml-r91/model/instrument.prl +147 -0
  391. package/oiml-r91/model/state.prl +22 -0
  392. package/oiml-r91/model/twin.prl +17 -0
  393. package/oiml-r91/package.primmel +14 -0
  394. package/oiml-r91/payload/application.yaml +201 -0
  395. package/oiml-r91/payload/conditions-common-test.yaml +19 -0
  396. package/oiml-r91/payload/promises.yaml +142 -0
  397. package/oiml-r91/payload/sample-data.yaml +464 -0
  398. package/oiml-r91/references.prl +72 -0
  399. package/oiml-r91/sources-prd/coverage.json +106 -0
  400. package/oiml-r91/sources-prd/r91-1.sentences.json +4696 -0
  401. package/oiml-r91/sources-prd/r91-2.sentences.json +2067 -0
  402. package/oiml-r91/sources-prd/r91-3.sentences.json +5210 -0
  403. package/oiml-r91/sources-prd/r91-4.sentences.json +474 -0
  404. package/oiml-r91/specification/calculations.prl +26 -0
  405. package/oiml-r91/specification/conformance/influence-disturbance.prl +1792 -0
  406. package/oiml-r91/specification/conformance/metrological.prl +906 -0
  407. package/oiml-r91/specification/formulas.prl +10 -0
  408. package/oiml-r91/specification/requirements/class-specific.prl +308 -0
  409. package/oiml-r91/specification/requirements/metrological.prl +176 -0
  410. package/oiml-r91/specification/requirements/technical.prl +173 -0
  411. package/oiml-r91/specification/symbols.prl +323 -0
  412. package/oiml-r91/specification/tables.prl +136 -0
  413. package/oiml-r91/terminology.prl +535 -0
  414. package/oiml-r91/value-types.prl +26 -0
  415. package/oiml-smart-core/entities/comments.prl +101 -0
  416. package/oiml-smart-core/entities/cs-operations.prl +492 -0
  417. package/oiml-smart-core/entities/cs-participants.prl +470 -0
  418. package/oiml-smart-core/entities/engagement.prl +323 -0
  419. package/oiml-smart-core/entities/instrument.prl +359 -0
  420. package/oiml-smart-core/entities/module-b.prl +214 -0
  421. package/oiml-smart-core/entities/operated-schemes.prl +141 -0
  422. package/oiml-smart-core/entities/parties.prl +429 -0
  423. package/oiml-smart-core/entities/payment-records.prl +92 -0
  424. package/oiml-smart-core/entities/verification.prl +187 -0
  425. package/oiml-smart-core/entities/workflow.prl +2075 -0
  426. package/oiml-smart-core/evaluation/roles.prl +65 -0
  427. package/oiml-smart-core/evaluation/state-machines.prl +1157 -0
  428. package/oiml-smart-core/package.primmel +10 -0
  429. package/oiml-smart-core/specification/competence-kinds.prl +64 -0
  430. package/oiml-smart-core/specification/constraints.prl +40 -0
  431. package/oiml-smart-core/specification/invariants.prl +90 -0
  432. package/oiml-smart-core/specification/predicates.prl +116 -0
  433. package/oiml-smart-module-emc-disturbances/package.primmel +10 -0
  434. package/oiml-smart-module-env-iec60068/package.primmel +10 -0
  435. package/oiml-smart-module-examination-docs/package.primmel +10 -0
  436. package/oiml-smart-module-reference-materials/package.primmel +10 -0
  437. package/oiml-smart-module-report-headers/package.primmel +10 -0
  438. package/oiml-smart-module-software-d31/package.primmel +10 -0
  439. package/oiml-smart-module-specimen-governance/entities/test-execution.prl +228 -0
  440. package/oiml-smart-module-specimen-governance/package.primmel +10 -0
  441. package/oiml-twin-cert/documents/tw-1/document.yaml +454 -0
  442. package/oiml-twin-cert/evaluation/roles.prl +15 -0
  443. package/oiml-twin-cert/execution/forms/probe-creep.prl +179 -0
  444. package/oiml-twin-cert/execution/forms/probe.prl +99 -0
  445. package/oiml-twin-cert/execution/forms/static-conformance.prl +50 -0
  446. package/oiml-twin-cert/model/attributes.prl +243 -0
  447. package/oiml-twin-cert/model/behaviors.prl +8 -0
  448. package/oiml-twin-cert/model/characteristics.prl +18 -0
  449. package/oiml-twin-cert/model/monitors.prl +16 -0
  450. package/oiml-twin-cert/package.primmel +16 -0
  451. package/oiml-twin-cert/specification/conformance/twin-fidelity.prl +176 -0
  452. package/oiml-twin-cert/specification/requirements/twin-fidelity.prl +137 -0
  453. package/oiml-twin-cert/specification/symbols.prl +36 -0
  454. package/oiml-twin-cert/terminology.prl +8 -0
  455. package/oimlsmart-primmel-packages-0.1.0.tgz +0 -0
  456. package/package.json +17 -0
  457. package/qms-ref/model/qms.prl +31 -0
  458. package/qms-ref/package.primmel +38 -0
  459. package/quarry-belt-scale/model/ops.prl +115 -0
  460. package/quarry-belt-scale/package.primmel +36 -0
@@ -0,0 +1,1157 @@
1
+ state_machine Application {
2
+ initial DRAFT
3
+ states {
4
+ DRAFT
5
+ SUBMITTED
6
+ SAMPLES_REQUESTED
7
+ SAMPLES_RECEIVED
8
+ UNDER_REVIEW
9
+ ACCEPTED
10
+ REJECTED
11
+ CHANGES_REQUESTED
12
+ WITHDRAWN
13
+ COMPLETED
14
+ }
15
+ transition DRAFT -> SUBMITTED action submit {
16
+ }
17
+ transition SUBMITTED -> SAMPLES_REQUESTED action ia_requests_samples {
18
+ }
19
+ transition SAMPLES_REQUESTED -> SAMPLES_RECEIVED action ia_logs_samples {
20
+ }
21
+ transition SAMPLES_RECEIVED -> UNDER_REVIEW action ia_starts_review {
22
+ }
23
+ transition UNDER_REVIEW -> ACCEPTED action ia_accepts {
24
+ }
25
+ transition UNDER_REVIEW -> REJECTED action ia_rejects {
26
+ }
27
+ transition [SUBMITTED, SAMPLES_REQUESTED, SAMPLES_RECEIVED, UNDER_REVIEW] -> CHANGES_REQUESTED action ia_requests_changes {
28
+ }
29
+ transition CHANGES_REQUESTED -> UNDER_REVIEW action applicant_resubmits {
30
+ }
31
+ transition [SUBMITTED, SAMPLES_REQUESTED, SAMPLES_RECEIVED, UNDER_REVIEW, CHANGES_REQUESTED] -> WITHDRAWN action applicant_withdraws {
32
+ }
33
+ transition DRAFT -> ACCEPTED action register_offline {
34
+ cascade Application {
35
+ set {
36
+ status: "ACCEPTED"
37
+ reviewed_date: "now"
38
+ }
39
+ }
40
+ }
41
+ transition ACCEPTED -> COMPLETED action ia_marks_completed {
42
+ guard "completion_settled"
43
+ cascade Application {
44
+ set {
45
+ status: "COMPLETED"
46
+ completed_date: "now"
47
+ }
48
+ }
49
+ cascade AuditEvent {
50
+ action record
51
+ with {
52
+ entity_type: "applications"
53
+ entity_id: "${this.id}"
54
+ action: "completed"
55
+ user_id: "user"
56
+ basis: "The Issuing Authority marks the Evaluation Project completed — the completion gate's settling conditions all held (the demo-flows program's settling doctrine: every fee marked paid, the samples' custody closed, the review threads resolved, the reports finalized, the certificate issued and registered; specification/constraints.prl carries the gate's rule as subject-intrinsic inv constraints, and the completion_settled guard refuses with the open items named) — declared transition side-effect; actor/timestamp from the cascade context"
57
+ }
58
+ }
59
+ }
60
+ }
61
+
62
+ state_machine TestRequest {
63
+ initial DRAFT
64
+ states {
65
+ DRAFT
66
+ ISSUED
67
+ QUOTED
68
+ ACCEPTED_BY_LAB
69
+ REJECTED_BY_LAB
70
+ IN_PROGRESS
71
+ COMPLETED
72
+ WITHDRAWN
73
+ }
74
+ transition DRAFT -> ISSUED action ia_issues {
75
+ cascade TestRequest {
76
+ set {
77
+ status: "ISSUED"
78
+ issued_date: "now"
79
+ }
80
+ }
81
+ cascade AuditEvent {
82
+ action record
83
+ with {
84
+ entity_type: "testRequests"
85
+ entity_id: "${this.id}"
86
+ action: "issued"
87
+ user_id: "user"
88
+ basis: "IA issues the test request to the laboratory (PD-05 §4.3 dispatch) — declared transition side-effect (TODO.roadmap/52); actor/timestamp from the cascade context"
89
+ }
90
+ }
91
+ }
92
+ transition ISSUED -> QUOTED action lab_quotes {
93
+ cascade TestRequest {
94
+ set {
95
+ status: "QUOTED"
96
+ quoted_date: "now"
97
+ }
98
+ }
99
+ cascade AuditEvent {
100
+ action record
101
+ with {
102
+ entity_type: "testRequests"
103
+ entity_id: "${this.id}"
104
+ action: "quotation_issued"
105
+ user_id: "user"
106
+ basis: "The laboratory responds to the dispatched request with a quotation (TODO.adoption/07's quote leg on the PD-05 §4.3 dispatch: price, currency, timeline, conditions and validity ride the Quotation record; the step is optional, a laboratory that does not quote accepts directly) — declared transition side-effect; actor/timestamp from the cascade context"
107
+ }
108
+ }
109
+ }
110
+ transition QUOTED -> ACCEPTED_BY_LAB action ia_accepts_quotation {
111
+ cascade TestRequest {
112
+ set {
113
+ status: "ACCEPTED_BY_LAB"
114
+ accepted_date: "now"
115
+ accepted_by: "user"
116
+ }
117
+ }
118
+ cascade AuditEvent {
119
+ action record
120
+ with {
121
+ entity_type: "testRequests"
122
+ entity_id: "${this.id}"
123
+ action: "quotation_accepted"
124
+ user_id: "user"
125
+ basis: "The Issuing Authority accepts the laboratory's quotation (TODO.adoption/07): the work proceeds exactly as after a direct acceptance — declared transition side-effect; actor/timestamp from the cascade context"
126
+ }
127
+ }
128
+ }
129
+ transition QUOTED -> REJECTED_BY_LAB action ia_declines_quotation {
130
+ cascade TestRequest {
131
+ set {
132
+ status: "REJECTED_BY_LAB"
133
+ }
134
+ }
135
+ cascade AuditEvent {
136
+ action record
137
+ with {
138
+ entity_type: "testRequests"
139
+ entity_id: "${this.id}"
140
+ action: "quotation_declined"
141
+ user_id: "user"
142
+ basis: "The Issuing Authority declines the laboratory's quotation (TODO.adoption/07): the request closes and the reason rides the quotation record and the audit trail, never silently dropped — declared transition side-effect; actor/timestamp from the cascade context"
143
+ }
144
+ }
145
+ }
146
+ transition ISSUED -> ACCEPTED_BY_LAB action lab_accepts {
147
+ cascade TestRequest {
148
+ set {
149
+ status: "ACCEPTED_BY_LAB"
150
+ accepted_date: "now"
151
+ accepted_by: "user"
152
+ }
153
+ }
154
+ }
155
+ transition ISSUED -> REJECTED_BY_LAB action lab_declines {
156
+ cascade TestRequest {
157
+ set {
158
+ status: "REJECTED_BY_LAB"
159
+ }
160
+ }
161
+ }
162
+ transition ACCEPTED_BY_LAB -> IN_PROGRESS action lab_starts_testing {
163
+ cascade TestRequest {
164
+ set {
165
+ status: "IN_PROGRESS"
166
+ started_date: "now"
167
+ }
168
+ }
169
+ cascade TestAssignment {
170
+ where "test_request_id = ${this.id}"
171
+ via start
172
+ set {
173
+ status: "IN_PROGRESS"
174
+ started_date: "now"
175
+ }
176
+ }
177
+ }
178
+ transition IN_PROGRESS -> COMPLETED action lab_issues_test_report {
179
+ cascade TestRequest {
180
+ set {
181
+ status: "COMPLETED"
182
+ completed_date: "now"
183
+ }
184
+ }
185
+ cascade TestReport {
186
+ action submit
187
+ where "test_request_id = ${this.id}"
188
+ via lab_submits
189
+ }
190
+ cascade TestAssignment {
191
+ where "test_request_id = ${this.id} AND status != OMITTED"
192
+ via complete
193
+ set {
194
+ status: "COMPLETED"
195
+ completed_date: "now"
196
+ }
197
+ }
198
+ }
199
+ transition [DRAFT, ISSUED, QUOTED] -> WITHDRAWN action ia_cancels {
200
+ cascade TestRequest {
201
+ set {
202
+ status: "WITHDRAWN"
203
+ withdrawn_date: "now"
204
+ }
205
+ }
206
+ cascade TestAssignment {
207
+ where "test_request_id = ${this.id} AND status != COMPLETED"
208
+ via omit
209
+ set {
210
+ status: "OMITTED"
211
+ omit_reason: "TR withdrawn"
212
+ }
213
+ }
214
+ }
215
+ }
216
+
217
+ state_machine TestReport {
218
+ initial DRAFT
219
+ states {
220
+ DRAFT
221
+ SUBMITTED
222
+ UNDER_REVIEW
223
+ CONSULTATION
224
+ ACCEPTED
225
+ REJECTED
226
+ }
227
+ transition DRAFT -> SUBMITTED action lab_submits {
228
+ cascade TestReport {
229
+ set {
230
+ status: "SUBMITTED"
231
+ submitted_date: "now"
232
+ }
233
+ }
234
+ cascade FormInstance {
235
+ action lock
236
+ where "test_report_id = ${this.id} AND status != LOCKED"
237
+ via test_report_issued
238
+ }
239
+ }
240
+ transition SUBMITTED -> UNDER_REVIEW action ia_starts_review {
241
+ cascade TestReport {
242
+ set {
243
+ status: "UNDER_REVIEW"
244
+ }
245
+ }
246
+ }
247
+ transition UNDER_REVIEW -> ACCEPTED action ia_accepts {
248
+ cascade TestReport {
249
+ set {
250
+ status: "ACCEPTED"
251
+ }
252
+ }
253
+ }
254
+ transition UNDER_REVIEW -> REJECTED action ia_rejects {
255
+ cascade TestReport {
256
+ set {
257
+ status: "REJECTED"
258
+ }
259
+ }
260
+ cascade FormInstance {
261
+ where "test_report_id = ${this.id} AND status = LOCKED"
262
+ via ia_accepts
263
+ set {
264
+ status: "ACCEPTED"
265
+ }
266
+ }
267
+ }
268
+ transition UNDER_REVIEW -> CONSULTATION action ia_opens_consultation {
269
+ cascade TestReport {
270
+ set {
271
+ status: "CONSULTATION"
272
+ }
273
+ }
274
+ cascade AuditEvent {
275
+ action record
276
+ with {
277
+ entity_type: "testReports"
278
+ entity_id: "${this.id}"
279
+ action: "consultation_opened"
280
+ user_id: "user"
281
+ basis: "The Issuing Authority opens the review period on the test report (the demo-flows program's flow 04, step 4: the Evaluation Project's participants comment on the report — the threads of entities/comments.prl — before its finalization completes; the consultation_resolved guard gates the decision hops) — declared transition side-effect; actor/timestamp from the cascade context"
282
+ }
283
+ }
284
+ }
285
+ transition CONSULTATION -> ACCEPTED action ia_accepts {
286
+ guard "consultation_resolved"
287
+ cascade TestReport {
288
+ set {
289
+ status: "ACCEPTED"
290
+ }
291
+ }
292
+ }
293
+ transition CONSULTATION -> REJECTED action ia_rejects {
294
+ guard "consultation_resolved"
295
+ cascade TestReport {
296
+ set {
297
+ status: "REJECTED"
298
+ }
299
+ }
300
+ cascade FormInstance {
301
+ where "test_report_id = ${this.id} AND status = LOCKED"
302
+ via ia_accepts
303
+ set {
304
+ status: "ACCEPTED"
305
+ }
306
+ }
307
+ }
308
+ transition CONSULTATION -> DRAFT action ia_returns_to_lab {
309
+ cascade TestReport {
310
+ set {
311
+ status: "DRAFT"
312
+ }
313
+ }
314
+ cascade FormInstance {
315
+ where "test_report_id = ${this.id} AND status = LOCKED"
316
+ via test_report_recalled
317
+ set {
318
+ status: "SUBMITTED"
319
+ }
320
+ }
321
+ }
322
+ transition SUBMITTED -> DRAFT action lab_withdraws_for_edit {
323
+ cascade TestReport {
324
+ set {
325
+ status: "DRAFT"
326
+ }
327
+ }
328
+ cascade FormInstance {
329
+ where "test_report_id = ${this.id} AND status = LOCKED"
330
+ via test_report_recalled
331
+ set {
332
+ status: "SUBMITTED"
333
+ }
334
+ }
335
+ }
336
+ transition UNDER_REVIEW -> DRAFT action ia_returns_to_lab {
337
+ cascade TestReport {
338
+ set {
339
+ status: "DRAFT"
340
+ }
341
+ }
342
+ cascade FormInstance {
343
+ where "test_report_id = ${this.id} AND status = LOCKED"
344
+ via test_report_recalled
345
+ set {
346
+ status: "SUBMITTED"
347
+ }
348
+ }
349
+ }
350
+ transition DRAFT -> SUBMITTED action register_offline {
351
+ cascade TestReport {
352
+ set {
353
+ status: "SUBMITTED"
354
+ submitted_date: "now"
355
+ }
356
+ }
357
+ }
358
+ }
359
+
360
+ state_machine FormInstance {
361
+ initial DRAFT
362
+ states {
363
+ DRAFT
364
+ IN_PROGRESS
365
+ SUBMITTED
366
+ LOCKED
367
+ ACCEPTED
368
+ REJECTED
369
+ }
370
+ transition DRAFT -> IN_PROGRESS action lab_starts_filling {
371
+ }
372
+ transition [DRAFT, IN_PROGRESS] -> SUBMITTED action lab_submits_with_report {
373
+ }
374
+ transition SUBMITTED -> LOCKED action test_report_issued {
375
+ }
376
+ transition LOCKED -> SUBMITTED action test_report_recalled {
377
+ }
378
+ transition LOCKED -> ACCEPTED action ia_accepts {
379
+ }
380
+ transition LOCKED -> REJECTED action ia_rejects {
381
+ }
382
+ transition ACCEPTED -> LOCKED action ia_reopens {
383
+ }
384
+ transition [IN_PROGRESS, SUBMITTED] -> DRAFT action run_redone {
385
+ }
386
+ }
387
+
388
+ state_machine EvaluationReport {
389
+ initial DRAFT
390
+ states {
391
+ DRAFT
392
+ IN_REVIEW
393
+ ALL_TR_REVIEWED
394
+ CONSULTATION
395
+ APPROVED
396
+ REJECTED
397
+ CONDITIONALLY_APPROVED
398
+ }
399
+ transition DRAFT -> IN_REVIEW action ia_opens_first_tr {
400
+ }
401
+ transition IN_REVIEW -> ALL_TR_REVIEWED action last_tr_determined {
402
+ }
403
+ transition ALL_TR_REVIEWED -> CONSULTATION action ia_opens_consultation {
404
+ cascade AuditEvent {
405
+ action record
406
+ with {
407
+ entity_type: "evaluationReports"
408
+ entity_id: "${this.id}"
409
+ action: "consultation_opened"
410
+ user_id: "user"
411
+ basis: "The Issuing Authority opens the review period on the evaluation report (the demo-flows program's flow 04, step 4: every report's finalization runs the participants' comment round — the threads of entities/comments.prl — and the consultation_resolved guard gates the terminal decision hops, so the threads resolve before the finalization completes) — declared transition side-effect; actor/timestamp from the cascade context"
412
+ }
413
+ }
414
+ }
415
+ transition CONSULTATION -> APPROVED action ia_approves {
416
+ guard "consultation_resolved"
417
+ cascade EvaluationReport {
418
+ set {
419
+ overall_decision: "APPROVED"
420
+ }
421
+ }
422
+ }
423
+ transition CONSULTATION -> REJECTED action ia_rejects {
424
+ guard "consultation_resolved"
425
+ cascade EvaluationReport {
426
+ set {
427
+ overall_decision: "REJECTED"
428
+ }
429
+ }
430
+ }
431
+ transition CONSULTATION -> CONDITIONALLY_APPROVED action ia_approves_with_conditions {
432
+ guard "consultation_resolved"
433
+ cascade EvaluationReport {
434
+ set {
435
+ overall_decision: "CONDITIONALLY_APPROVED"
436
+ }
437
+ }
438
+ }
439
+ transition CONSULTATION -> IN_REVIEW action ia_reopens {
440
+ cascade EvaluationReport {
441
+ set {
442
+ overall_decision: "PENDING"
443
+ }
444
+ }
445
+ }
446
+ transition ALL_TR_REVIEWED -> APPROVED action ia_approves {
447
+ cascade EvaluationReport {
448
+ set {
449
+ overall_decision: "APPROVED"
450
+ }
451
+ }
452
+ }
453
+ transition ALL_TR_REVIEWED -> REJECTED action ia_rejects {
454
+ cascade EvaluationReport {
455
+ set {
456
+ overall_decision: "REJECTED"
457
+ }
458
+ }
459
+ }
460
+ transition ALL_TR_REVIEWED -> CONDITIONALLY_APPROVED action ia_approves_with_conditions {
461
+ cascade EvaluationReport {
462
+ set {
463
+ overall_decision: "CONDITIONALLY_APPROVED"
464
+ }
465
+ }
466
+ }
467
+ transition [APPROVED, REJECTED, CONDITIONALLY_APPROVED] -> IN_REVIEW action ia_reopens {
468
+ cascade EvaluationReport {
469
+ set {
470
+ overall_decision: "PENDING"
471
+ }
472
+ }
473
+ }
474
+ transition DRAFT -> APPROVED action register_offline_approved {
475
+ cascade EvaluationReport {
476
+ set {
477
+ overall_decision: "APPROVED"
478
+ }
479
+ }
480
+ }
481
+ transition DRAFT -> REJECTED action register_offline_rejected {
482
+ cascade EvaluationReport {
483
+ set {
484
+ overall_decision: "REJECTED"
485
+ }
486
+ }
487
+ }
488
+ transition DRAFT -> CONDITIONALLY_APPROVED action register_offline_conditionally_approved {
489
+ cascade EvaluationReport {
490
+ set {
491
+ overall_decision: "CONDITIONALLY_APPROVED"
492
+ }
493
+ }
494
+ }
495
+ }
496
+
497
+ state_machine Certificate {
498
+ initial DRAFT
499
+ states {
500
+ DRAFT
501
+ PENDING_REGISTRATION
502
+ ACTIVE
503
+ EXPIRED
504
+ WITHDRAWN
505
+ SUSPENDED
506
+ UNDER_INVESTIGATION
507
+ }
508
+ transition DRAFT -> PENDING_REGISTRATION action submit {
509
+ }
510
+ transition PENDING_REGISTRATION -> ACTIVE action register {
511
+ }
512
+ transition ACTIVE -> EXPIRED action expire {
513
+ }
514
+ transition ACTIVE -> WITHDRAWN action withdraw {
515
+ }
516
+ transition ACTIVE -> SUSPENDED action suspend {
517
+ }
518
+ transition SUSPENDED -> ACTIVE action reinstate {
519
+ }
520
+ transition SUSPENDED -> WITHDRAWN action withdraw {
521
+ }
522
+ transition ACTIVE -> UNDER_INVESTIGATION action investigate {
523
+ }
524
+ transition UNDER_INVESTIGATION -> ACTIVE action clear {
525
+ }
526
+ transition UNDER_INVESTIGATION -> SUSPENDED action suspend {
527
+ }
528
+ transition UNDER_INVESTIGATION -> WITHDRAWN action withdraw {
529
+ }
530
+ transition [ACTIVE, EXPIRED] -> PENDING_REGISTRATION action renew {
531
+ }
532
+ transition [ACTIVE, EXPIRED] -> PENDING_REGISTRATION action revise {
533
+ }
534
+ transition [ACTIVE, EXPIRED] -> PENDING_REGISTRATION action transfer_ownership {
535
+ }
536
+ transition DRAFT -> ACTIVE action issue {
537
+ }
538
+ transition [ACTIVE, EXPIRED] -> ACTIVE action renew {
539
+ }
540
+ transition [ACTIVE, EXPIRED] -> ACTIVE action revise {
541
+ }
542
+ transition [ACTIVE, EXPIRED] -> ACTIVE action transfer_ownership {
543
+ }
544
+ }
545
+
546
+ state_machine CertificateRegistration {
547
+ initial ANNOUNCED
548
+ states {
549
+ ANNOUNCED
550
+ SUBMITTED
551
+ PUBLISHED
552
+ REFUSED
553
+ }
554
+ transition ANNOUNCED -> SUBMITTED action intake_verifies {
555
+ cascade CertificateRegistration {
556
+ set {
557
+ status: "SUBMITTED"
558
+ submitted_at: "now"
559
+ }
560
+ }
561
+ cascade AuditEvent {
562
+ action record
563
+ with {
564
+ entity_type: "certificateRegistrations"
565
+ entity_id: "${this.id}"
566
+ action: "submitted"
567
+ user_id: "user"
568
+ basis: "The signed registration package passed the register's intake verification (TODO.federation/06's registration sequence: the signature verified against the submitting IA's registered org key, the standing check, and the registrant correlation's orphan check — the trust registry's verification runs at intake) — declared transition side-effect; actor/timestamp from the cascade context"
569
+ }
570
+ }
571
+ }
572
+ transition SUBMITTED -> PUBLISHED action auto_publishes {
573
+ cascade CertificateRegistration {
574
+ set {
575
+ status: "PUBLISHED"
576
+ published_at: "now"
577
+ }
578
+ }
579
+ cascade AuditEvent {
580
+ action record
581
+ with {
582
+ entity_type: "certificateRegistrations"
583
+ entity_id: "${this.id}"
584
+ action: "published"
585
+ user_id: "user"
586
+ basis: "The verified, receipt-tracked registration submission publishes to the public register with NO human gate (the decided register doctrine — the demo-flows program owner, 2026-08-28: the register's trust is in the signature + the receipt machinery and the published record is exactly what the IA signed and sent; the human review surfaces remain as the operator's read postures, never a gate) — declared transition side-effect; actor/timestamp from the cascade context"
587
+ }
588
+ }
589
+ }
590
+ transition [ANNOUNCED, SUBMITTED] -> REFUSED action intake_refuses {
591
+ cascade CertificateRegistration {
592
+ set {
593
+ status: "REFUSED"
594
+ refused_at: "now"
595
+ }
596
+ }
597
+ cascade AuditEvent {
598
+ action record
599
+ with {
600
+ entity_type: "certificateRegistrations"
601
+ entity_id: "${this.id}"
602
+ action: "refused"
603
+ user_id: "user"
604
+ basis: "The intake verification refused the registration submission — the signature did not verify, the registrant correlation mismatched, or the standing check failed; the written reason rides the record's refusal_reason (PD-05 §6 decisions are stated, never silent) — declared transition side-effect; actor/timestamp from the cascade context"
605
+ }
606
+ }
607
+ }
608
+ }
609
+
610
+ state_machine TestAssignment {
611
+ initial PENDING
612
+ states {
613
+ PENDING
614
+ ACCEPTED
615
+ IN_PROGRESS
616
+ COMPLETED
617
+ OMITTED
618
+ FAILED
619
+ }
620
+ transition PENDING -> ACCEPTED action lab_accepts {
621
+ cascade TestAssignment {
622
+ set {
623
+ accepted_date: "now"
624
+ }
625
+ }
626
+ }
627
+ transition [PENDING, ACCEPTED] -> IN_PROGRESS action start {
628
+ cascade TestAssignment {
629
+ set {
630
+ started_date: "now"
631
+ }
632
+ }
633
+ }
634
+ transition [PENDING, ACCEPTED, IN_PROGRESS] -> COMPLETED action complete {
635
+ cascade TestAssignment {
636
+ set {
637
+ completed_date: "now"
638
+ }
639
+ }
640
+ }
641
+ transition IN_PROGRESS -> FAILED action invalidate {
642
+ cascade TestAssignment {
643
+ set {
644
+ completed_date: "now"
645
+ }
646
+ }
647
+ }
648
+ transition FAILED -> IN_PROGRESS action redo {
649
+ }
650
+ transition [PENDING, ACCEPTED, IN_PROGRESS, FAILED] -> OMITTED action omit {
651
+ }
652
+ }
653
+
654
+ state_machine TestRun {
655
+ initial PLANNED
656
+ states {
657
+ PLANNED
658
+ IN_PROGRESS
659
+ COMPLETED
660
+ INVALIDATED
661
+ }
662
+ transition PLANNED -> IN_PROGRESS action record_evidence {
663
+ }
664
+ transition [PLANNED, IN_PROGRESS] -> COMPLETED action complete {
665
+ guard "admissible"
666
+ cascade FormInstance {
667
+ where "id = ${this.form_instance_id} AND status != SUBMITTED"
668
+ via lab_submits_with_report
669
+ set {
670
+ status: "SUBMITTED"
671
+ result: "PASS"
672
+ submitted_at: "now"
673
+ modified: "now"
674
+ }
675
+ }
676
+ cascade TestAssignment {
677
+ where "id = ${this.test_assignment_id}"
678
+ via complete
679
+ set {
680
+ status: "COMPLETED"
681
+ completed_date: "now"
682
+ form_instance_id: "${this.form_instance_id}"
683
+ }
684
+ }
685
+ }
686
+ transition [PLANNED, IN_PROGRESS] -> INVALIDATED action invalidate {
687
+ cascade TestAssignment {
688
+ where "id = ${this.test_assignment_id}"
689
+ via invalidate
690
+ set {
691
+ status: "FAILED"
692
+ completed_date: "now"
693
+ }
694
+ }
695
+ }
696
+ transition INVALIDATED -> PLANNED action redo {
697
+ cascade TestAssignment {
698
+ where "id = ${this.test_assignment_id} AND status = FAILED"
699
+ via redo
700
+ set {
701
+ status: "IN_PROGRESS"
702
+ }
703
+ }
704
+ cascade FormInstance {
705
+ where "id = ${this.form_instance_id} AND status != DRAFT"
706
+ via run_redone
707
+ set {
708
+ status: "DRAFT"
709
+ modified: "now"
710
+ }
711
+ }
712
+ }
713
+ }
714
+
715
+ state_machine MeasuringInstrumentSample {
716
+ initial REQUESTED
717
+ states {
718
+ REQUESTED
719
+ IN_TRANSIT
720
+ RECEIVED
721
+ IN_TESTING
722
+ TESTING_COMPLETE
723
+ RETURNED
724
+ RETAINED
725
+ DESTROYED
726
+ DISPOSED
727
+ }
728
+ transition REQUESTED -> IN_TRANSIT action manufacturer_ships {
729
+ }
730
+ transition IN_TRANSIT -> RECEIVED action ia_logs_receipt {
731
+ }
732
+ transition RECEIVED -> IN_TRANSIT action ia_dispatches_to_lab {
733
+ }
734
+ transition IN_TRANSIT -> RECEIVED action lab_acknowledges_receipt {
735
+ }
736
+ transition RECEIVED -> IN_TESTING action lab_starts_test {
737
+ }
738
+ transition IN_TESTING -> TESTING_COMPLETE action lab_test_complete {
739
+ }
740
+ transition TESTING_COMPLETE -> IN_TRANSIT action ia_recalls {
741
+ }
742
+ transition IN_TRANSIT -> RECEIVED action ia_logs_return {
743
+ }
744
+ transition RECEIVED -> RETURNED action ia_returns_to_manufacturer {
745
+ }
746
+ transition RECEIVED -> RETAINED action ia_retains {
747
+ }
748
+ transition RECEIVED -> DESTROYED action ia_destroys {
749
+ }
750
+ transition RECEIVED -> DISPOSED action ia_disposes {
751
+ }
752
+ transition RETAINED -> DESTROYED action ia_destroys {
753
+ }
754
+ transition RETAINED -> DISPOSED action ia_disposes {
755
+ }
756
+ }
757
+
758
+ state_machine VerificationRecord {
759
+ initial DRAFT
760
+ states {
761
+ DRAFT
762
+ IN_PROGRESS
763
+ ASSESSED
764
+ PASSED
765
+ FAILED
766
+ MARKED
767
+ }
768
+ transition DRAFT -> IN_PROGRESS action verification_starts {
769
+ }
770
+ transition IN_PROGRESS -> ASSESSED action tests_completed {
771
+ }
772
+ transition ASSESSED -> PASSED action conformity_passed {
773
+ }
774
+ transition ASSESSED -> FAILED action conformity_failed {
775
+ }
776
+ transition PASSED -> MARKED action marks_applied {
777
+ }
778
+ }
779
+
780
+ state_machine SampleVerification {
781
+ initial NOT_VERIFIED
782
+ states {
783
+ NOT_VERIFIED
784
+ VERIFIED
785
+ REVERIFICATION_DUE
786
+ INVALIDATED
787
+ }
788
+ transition NOT_VERIFIED -> VERIFIED action initial_verification_passed {
789
+ }
790
+ transition VERIFIED -> REVERIFICATION_DUE action validity_elapsed {
791
+ }
792
+ transition VERIFIED -> INVALIDATED action invalidating_signal_received {
793
+ }
794
+ transition [REVERIFICATION_DUE, INVALIDATED] -> VERIFIED action subsequent_verification_passed {
795
+ }
796
+ }
797
+
798
+ state_machine ParticipantApplication {
799
+ initial SUBMITTED
800
+ states {
801
+ SUBMITTED
802
+ ASSESSMENT
803
+ RC_REVIEW
804
+ MC_VOTE
805
+ DECLARATION_PENDING
806
+ REJECTED
807
+ ACTIVE
808
+ SUSPENDED
809
+ WITHDRAWN
810
+ }
811
+ transition SUBMITTED -> ASSESSMENT action competence_evidence_recorded {
812
+ }
813
+ transition ASSESSMENT -> RC_REVIEW action referred_to_rc {
814
+ }
815
+ transition RC_REVIEW -> MC_VOTE action rc_recommendation_recorded {
816
+ }
817
+ transition MC_VOTE -> DECLARATION_PENDING action mc_approves {
818
+ }
819
+ transition MC_VOTE -> REJECTED action mc_rejects {
820
+ }
821
+ transition DECLARATION_PENDING -> ACTIVE action declaration_signed {
822
+ }
823
+ transition ACTIVE -> SUSPENDED action mc_suspends {
824
+ }
825
+ transition SUSPENDED -> ACTIVE action mc_reinstates {
826
+ }
827
+ transition [ACTIVE, SUSPENDED, DECLARATION_PENDING] -> WITHDRAWN action participant_withdraws {
828
+ }
829
+ }
830
+
831
+ state_machine ParticipantDeclaration {
832
+ initial draft
833
+ states {
834
+ draft
835
+ signed
836
+ suspended
837
+ withdrawn
838
+ }
839
+ transition draft -> signed action sign {
840
+ }
841
+ transition signed -> draft action amend {
842
+ }
843
+ transition signed -> suspended action suspend {
844
+ }
845
+ transition suspended -> signed action reinstate {
846
+ }
847
+ transition [draft, signed, suspended] -> withdrawn action withdraw {
848
+ }
849
+ }
850
+
851
+ state_machine AnrDeclaration {
852
+ initial DRAFT
853
+ states {
854
+ DRAFT
855
+ SUBMITTED
856
+ APPROVED
857
+ REJECTED
858
+ WITHDRAWN
859
+ }
860
+ transition DRAFT -> SUBMITTED action submit_for_review {
861
+ }
862
+ transition SUBMITTED -> APPROVED action cs_approves {
863
+ }
864
+ transition SUBMITTED -> REJECTED action cs_rejects {
865
+ }
866
+ transition REJECTED -> DRAFT action revise {
867
+ }
868
+ transition APPROVED -> DRAFT action amend {
869
+ }
870
+ transition [DRAFT, SUBMITTED, REJECTED, APPROVED] -> WITHDRAWN action withdraw {
871
+ }
872
+ }
873
+
874
+ state_machine AppealCase {
875
+ initial LODGED
876
+ states {
877
+ LODGED
878
+ CIRCULATED
879
+ CONSIDERED
880
+ DECIDED
881
+ INADMISSIBLE
882
+ }
883
+ transition LODGED -> CIRCULATED action information_circulated {
884
+ }
885
+ transition CIRCULATED -> CONSIDERED action boa_considers {
886
+ }
887
+ transition CONSIDERED -> DECIDED action boa_decides {
888
+ }
889
+ transition LODGED -> INADMISSIBLE action rule_inadmissible {
890
+ }
891
+ }
892
+
893
+ state_machine ComplaintCase {
894
+ initial RECEIVED
895
+ states {
896
+ RECEIVED
897
+ INVESTIGATION
898
+ UPHELD
899
+ DISMISSED
900
+ }
901
+ transition RECEIVED -> INVESTIGATION action investigation_opened {
902
+ }
903
+ transition INVESTIGATION -> UPHELD action complaint_upheld {
904
+ }
905
+ transition INVESTIGATION -> DISMISSED action complaint_dismissed {
906
+ }
907
+ }
908
+
909
+ state_machine MisuseCase {
910
+ initial EVIDENCED
911
+ states {
912
+ EVIDENCED
913
+ WARNED
914
+ CLOSED
915
+ DEREGISTERED
916
+ }
917
+ transition EVIDENCED -> WARNED action owner_warned {
918
+ }
919
+ transition WARNED -> CLOSED action case_closed {
920
+ }
921
+ transition WARNED -> DEREGISTERED action biml_deregisters {
922
+ }
923
+ }
924
+
925
+ state_machine Marking {
926
+ initial DRAFT
927
+ states {
928
+ DRAFT
929
+ AFFIXED
930
+ INSPECTED
931
+ SUPERSEDED
932
+ }
933
+ transition DRAFT -> AFFIXED action marking_affixed {
934
+ }
935
+ transition AFFIXED -> INSPECTED action marking_inspected {
936
+ }
937
+ transition [DRAFT, AFFIXED, INSPECTED] -> SUPERSEDED action marking_superseded {
938
+ }
939
+ }
940
+
941
+ state_machine Sealing {
942
+ initial DRAFT
943
+ states {
944
+ DRAFT
945
+ AFFIXED
946
+ INSPECTED
947
+ SUPERSEDED
948
+ }
949
+ transition DRAFT -> AFFIXED action sealing_affixed {
950
+ }
951
+ transition AFFIXED -> INSPECTED action sealing_inspected {
952
+ }
953
+ transition [DRAFT, AFFIXED, INSPECTED] -> SUPERSEDED action sealing_superseded {
954
+ }
955
+ }
956
+
957
+ state_machine CalibrationRecord {
958
+ initial DRAFT
959
+ states {
960
+ DRAFT
961
+ AFFIXED
962
+ INSPECTED
963
+ SUPERSEDED
964
+ }
965
+ transition DRAFT -> AFFIXED action calibration_record_affixed {
966
+ }
967
+ transition AFFIXED -> INSPECTED action calibration_record_inspected {
968
+ }
969
+ transition [DRAFT, AFFIXED, INSPECTED] -> SUPERSEDED action calibration_record_superseded {
970
+ }
971
+ }
972
+
973
+ state_machine Engagement {
974
+ initial INQUIRY
975
+ states {
976
+ INQUIRY
977
+ QUOTED
978
+ AGREED
979
+ CONVERTED
980
+ DECLINED
981
+ WITHDRAWN
982
+ PENDING_EXTERNAL
983
+ }
984
+ transition INQUIRY -> QUOTED action provider_issues_quotation {
985
+ cascade Engagement {
986
+ set {
987
+ status: "QUOTED"
988
+ quoted_date: "now"
989
+ }
990
+ }
991
+ cascade AuditEvent {
992
+ action record
993
+ with {
994
+ entity_type: "engagements"
995
+ entity_id: "${this.id}"
996
+ action: "quotation_issued"
997
+ user_id: "user"
998
+ basis: "The provider issues the quotation against the inquiry (TODO.adoption/07: the provider is the Issuing Authority on ia_applicant, the Test Laboratory on ia_tl and tl_applicant; ISO/IEC 17065:2012, 7.2/7.3.1; the fee content per PD-05 §4.2.8) — declared transition side-effect; actor/timestamp from the cascade context"
999
+ }
1000
+ }
1001
+ }
1002
+ transition QUOTED -> AGREED action agreement_signed {
1003
+ cascade Engagement {
1004
+ set {
1005
+ status: "AGREED"
1006
+ agreed_date: "now"
1007
+ }
1008
+ }
1009
+ cascade AuditEvent {
1010
+ action record
1011
+ with {
1012
+ entity_type: "engagements"
1013
+ entity_id: "${this.id}"
1014
+ action: "agreement_signed"
1015
+ user_id: "user"
1016
+ basis: "The agreement carries both signatures (ISO/IEC 17065:2012, 4.1.2) — the completing signature fires the hop; actor/timestamp from the cascade context"
1017
+ }
1018
+ }
1019
+ }
1020
+ transition AGREED -> CONVERTED action convert_to_application {
1021
+ guard "conversion_offered"
1022
+ cascade Engagement {
1023
+ set {
1024
+ status: "CONVERTED"
1025
+ converted_date: "now"
1026
+ }
1027
+ }
1028
+ cascade AuditEvent {
1029
+ action record
1030
+ with {
1031
+ entity_type: "engagements"
1032
+ entity_id: "${this.id}"
1033
+ action: "converted"
1034
+ user_id: "user"
1035
+ basis: "The ia_applicant negotiation converts into the technical Application (converted_application_id) and turns read-only (TODO.federation/02; the conversion_offered guard holds the kind: ia_tl and tl_applicant negotiations never convert) — declared transition side-effect; actor/timestamp from the cascade context"
1036
+ }
1037
+ }
1038
+ }
1039
+ transition INQUIRY -> DECLINED action provider_declines {
1040
+ cascade Engagement {
1041
+ set {
1042
+ status: "DECLINED"
1043
+ declined_date: "now"
1044
+ }
1045
+ }
1046
+ cascade AuditEvent {
1047
+ action record
1048
+ with {
1049
+ entity_type: "engagements"
1050
+ entity_id: "${this.id}"
1051
+ action: "declined"
1052
+ user_id: "user"
1053
+ basis: "The provider declines the inquiry (ISO/IEC 17065:2012, 7.3.4: e.g. without competence); the reason rides on the record's decline_reason — declared transition side-effect; actor/timestamp from the cascade context"
1054
+ }
1055
+ }
1056
+ }
1057
+ transition QUOTED -> DECLINED action requester_declines {
1058
+ cascade Engagement {
1059
+ set {
1060
+ status: "DECLINED"
1061
+ declined_date: "now"
1062
+ }
1063
+ }
1064
+ cascade AuditEvent {
1065
+ action record
1066
+ with {
1067
+ entity_type: "engagements"
1068
+ entity_id: "${this.id}"
1069
+ action: "declined"
1070
+ user_id: "user"
1071
+ basis: "The requester declines the quotation; the reason rides on the record's decline_reason — declared transition side-effect; actor/timestamp from the cascade context"
1072
+ }
1073
+ }
1074
+ }
1075
+ transition [INQUIRY, QUOTED, PENDING_EXTERNAL] -> WITHDRAWN action requester_withdraws {
1076
+ cascade Engagement {
1077
+ set {
1078
+ status: "WITHDRAWN"
1079
+ withdrawn_date: "now"
1080
+ }
1081
+ }
1082
+ cascade AuditEvent {
1083
+ action record
1084
+ with {
1085
+ entity_type: "engagements"
1086
+ entity_id: "${this.id}"
1087
+ action: "withdrawn"
1088
+ user_id: "user"
1089
+ basis: "The requester withdraws the inquiry before agreement; the reason rides on the record's withdrawal_reason — declared transition side-effect; actor/timestamp from the cascade context"
1090
+ }
1091
+ }
1092
+ }
1093
+ transition [INQUIRY, QUOTED] -> PENDING_EXTERNAL action park_external {
1094
+ cascade Engagement {
1095
+ set {
1096
+ status: "PENDING_EXTERNAL"
1097
+ }
1098
+ }
1099
+ cascade AuditEvent {
1100
+ action record
1101
+ with {
1102
+ entity_type: "engagements"
1103
+ entity_id: "${this.id}"
1104
+ action: "parked_external"
1105
+ user_id: "user"
1106
+ basis: "The negotiation parks while the parties settle off-platform (TODO.adoption/07's pending-external pattern: a phone negotiation, a legal review; what is being settled rides the record's external_note) — declared transition side-effect; actor/timestamp from the cascade context"
1107
+ }
1108
+ }
1109
+ }
1110
+ transition PENDING_EXTERNAL -> AGREED action external_agreement_recorded {
1111
+ cascade Engagement {
1112
+ set {
1113
+ status: "AGREED"
1114
+ agreed_date: "now"
1115
+ }
1116
+ }
1117
+ cascade AuditEvent {
1118
+ action record
1119
+ with {
1120
+ entity_type: "engagements"
1121
+ entity_id: "${this.id}"
1122
+ action: "external_outcome_recorded"
1123
+ user_id: "user"
1124
+ basis: "A party records the off-platform outcome: agreement claimed, the signed terms attached to the agreement record, the claimant named on external_recorded_by (TODO.adoption/07: the platform records the claimed outcome with the claimant's provenance, it never pretends to have witnessed the act) — declared transition side-effect; actor/timestamp from the cascade context"
1125
+ }
1126
+ }
1127
+ }
1128
+ transition PENDING_EXTERNAL -> DECLINED action external_decline_recorded {
1129
+ cascade Engagement {
1130
+ set {
1131
+ status: "DECLINED"
1132
+ declined_date: "now"
1133
+ }
1134
+ }
1135
+ cascade AuditEvent {
1136
+ action record
1137
+ with {
1138
+ entity_type: "engagements"
1139
+ entity_id: "${this.id}"
1140
+ action: "external_outcome_recorded"
1141
+ user_id: "user"
1142
+ basis: "A party records the off-platform outcome: the negotiation collapsed, the reason rides on decline_reason and the claimant is named on external_recorded_by (TODO.adoption/07) — declared transition side-effect; actor/timestamp from the cascade context"
1143
+ }
1144
+ }
1145
+ }
1146
+ }
1147
+
1148
+ state_machine PaymentRecord {
1149
+ initial INVOICED
1150
+ states {
1151
+ INVOICED
1152
+ MARKED_PAID
1153
+ }
1154
+ transition INVOICED -> MARKED_PAID action mark_paid {
1155
+ }
1156
+ }
1157
+