@wowok/agent-mcp 3.4.0 → 3.4.2

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 (412) hide show
  1. package/README.md +8 -0
  2. package/dist/chain-semantics/composition-truth.d.ts +102 -0
  3. package/dist/chain-semantics/composition-truth.js +1 -0
  4. package/dist/chain-semantics/eval-order.js +1 -1
  5. package/dist/chain-semantics/fund-flow.js +1 -1
  6. package/dist/chain-semantics/index.d.ts +1 -0
  7. package/dist/chain-semantics/index.js +1 -1
  8. package/dist/composition/audit.js +1 -1
  9. package/dist/composition/blueprint-view.d.ts +3 -3
  10. package/dist/composition/blueprint-view.js +1 -1
  11. package/dist/composition/compile.d.ts +24 -3
  12. package/dist/composition/compile.js +1 -1
  13. package/dist/composition/emit-phases.d.ts +206 -0
  14. package/dist/composition/emit-phases.js +1 -0
  15. package/dist/composition/generate.d.ts +40 -0
  16. package/dist/composition/generate.js +1 -0
  17. package/dist/composition/guard-fill.d.ts +44 -0
  18. package/dist/composition/guard-fill.js +1 -0
  19. package/dist/composition/inflight.d.ts +20 -2
  20. package/dist/composition/inflight.js +1 -1
  21. package/dist/composition/input-normalize.d.ts +15 -0
  22. package/dist/composition/input-normalize.js +1 -0
  23. package/dist/composition/materialize.d.ts +18 -13
  24. package/dist/composition/materialize.js +1 -1
  25. package/dist/composition/mode-gates.d.ts +35 -0
  26. package/dist/composition/mode-gates.js +1 -0
  27. package/dist/composition/param-disclosure.js +1 -1
  28. package/dist/composition/plan-retry-ledger.d.ts +21 -0
  29. package/dist/composition/plan-retry-ledger.js +1 -0
  30. package/dist/composition/plan.d.ts +7 -2
  31. package/dist/composition/plan.js +1 -1
  32. package/dist/composition/product-card.d.ts +94 -0
  33. package/dist/composition/product-card.js +1 -0
  34. package/dist/composition/supply-chain-emit.d.ts +46 -0
  35. package/dist/composition/supply-chain-emit.js +1 -0
  36. package/dist/config/config-audit.spec.js +1 -1
  37. package/dist/config/config-warnings.d.ts +2 -0
  38. package/dist/config/config-warnings.js +1 -0
  39. package/dist/config/exposure.d.ts +2 -2
  40. package/dist/config/judgment.d.ts +31 -5
  41. package/dist/config/judgment.js +1 -1
  42. package/dist/config/judgment.spec.js +1 -1
  43. package/dist/config/match-policy-file.d.ts +34 -0
  44. package/dist/config/match-policy-file.js +1 -0
  45. package/dist/config/match-policy-file.spec.d.ts +1 -0
  46. package/dist/config/match-policy-file.spec.js +1 -0
  47. package/dist/config/rule-engine.d.ts +5 -5
  48. package/dist/config/rule-engine.js +1 -1
  49. package/dist/config/runtime.d.ts +0 -1
  50. package/dist/config/runtime.js +1 -1
  51. package/dist/config/severity.d.ts +0 -2
  52. package/dist/config/severity.js +1 -1
  53. package/dist/config/store-policy.spec.js +1 -1
  54. package/dist/config/template-params.d.ts +42 -0
  55. package/dist/config/template-params.js +1 -0
  56. package/dist/config/template-params.spec.d.ts +1 -0
  57. package/dist/config/template-params.spec.js +1 -0
  58. package/dist/data/api/api.spec.js +1 -1
  59. package/dist/data/api/server.js +1 -1
  60. package/dist/data/projection/store.d.ts +2 -1
  61. package/dist/data/projection/store.js +1 -1
  62. package/dist/data/projection/types.d.ts +22 -0
  63. package/dist/data/sync/cdc.d.ts +1 -2
  64. package/dist/data/sync/cdc.js +1 -1
  65. package/dist/evaluation/acceptance.d.ts +8 -0
  66. package/dist/evaluation/acceptance.js +1 -1
  67. package/dist/evaluation/builtins/demand-match.js +1 -1
  68. package/dist/evaluation/builtins/graph-service.spec.js +1 -1
  69. package/dist/evaluation/capability.d.ts +2 -0
  70. package/dist/evaluation/category-match-rules.d.ts +0 -1
  71. package/dist/evaluation/category-match-rules.js +1 -1
  72. package/dist/evaluation/composer.d.ts +25 -0
  73. package/dist/evaluation/composer.js +1 -1
  74. package/dist/evaluation/engine.js +1 -1
  75. package/dist/evaluation/extract.d.ts +7 -0
  76. package/dist/evaluation/extract.js +1 -1
  77. package/dist/evaluation/game-strategy.d.ts +0 -3
  78. package/dist/evaluation/game-strategy.js +1 -1
  79. package/dist/evaluation/match-operation.d.ts +9 -0
  80. package/dist/evaluation/match-operation.js +1 -1
  81. package/dist/evaluation/match-policy-resolver.d.ts +9 -0
  82. package/dist/evaluation/match-policy-resolver.js +1 -0
  83. package/dist/evaluation/match-policy.d.ts +3 -1
  84. package/dist/evaluation/match-policy.js +1 -1
  85. package/dist/evaluation/region.d.ts +0 -6
  86. package/dist/evaluation/region.js +1 -1
  87. package/dist/evaluation/standards.d.ts +2 -1
  88. package/dist/evaluation/standards.js +1 -1
  89. package/dist/evaluation/structured-lines.d.ts +8 -0
  90. package/dist/evaluation/structured-lines.js +1 -0
  91. package/dist/evaluation/types.d.ts +6 -0
  92. package/dist/experience/realtime-feedback.js +1 -1
  93. package/dist/extensions/capability-manifest.d.ts +1 -0
  94. package/dist/extensions/capability-manifest.js +1 -1
  95. package/dist/extensions/capability.d.ts +91 -0
  96. package/dist/extensions/capability.js +1 -0
  97. package/dist/extensions/industry-audit.spec.js +1 -1
  98. package/dist/extensions/industry-pack.d.ts +13 -0
  99. package/dist/extensions/industry-pack.js +1 -1
  100. package/dist/extensions/modes.js +1 -1
  101. package/dist/extensions/registry.d.ts +0 -2
  102. package/dist/extensions/registry.js +1 -1
  103. package/dist/goal/GoalEngine.js +1 -1
  104. package/dist/graph/onchain/analyze.js +1 -1
  105. package/dist/graph/onchain/expand.js +1 -1
  106. package/dist/graph/onchain/exposure.js +1 -1
  107. package/dist/graph/onchain/facts.js +1 -1
  108. package/dist/graph/onchain/order-status.d.ts +0 -1
  109. package/dist/graph/onchain/order-status.js +1 -1
  110. package/dist/harness/recover.js +1 -1
  111. package/dist/harness/verify.d.ts +0 -3
  112. package/dist/harness/verify.js +1 -1
  113. package/dist/intent/types.d.ts +0 -1
  114. package/dist/intent/types.js +1 -1
  115. package/dist/keeper/detectors.js +1 -1
  116. package/dist/keeper/types.d.ts +0 -1
  117. package/dist/keeper/types.js +1 -1
  118. package/dist/knowledge/allocation-risk.d.ts +1 -0
  119. package/dist/knowledge/allocation-risk.js +1 -1
  120. package/dist/knowledge/allocator-rail-verifier.d.ts +6 -1
  121. package/dist/knowledge/allocator-rail-verifier.js +1 -1
  122. package/dist/knowledge/arbitration-ledger.js +1 -1
  123. package/dist/knowledge/arbitration-puzzle.js +1 -1
  124. package/dist/knowledge/arbitration-templates.js +1 -1
  125. package/dist/knowledge/audit-rules.d.ts +4 -3
  126. package/dist/knowledge/audit-rules.js +1 -1
  127. package/dist/knowledge/baselines/judgment-baselines.json +21 -2
  128. package/dist/knowledge/baselines/rules/oracle.json +120 -0
  129. package/dist/knowledge/baselines/rules/plan.json +384 -17
  130. package/dist/knowledge/baselines/rules/progress.json +20 -2
  131. package/dist/knowledge/builtin-templates.d.ts +28 -1
  132. package/dist/knowledge/builtin-templates.js +1 -1
  133. package/dist/knowledge/component-schema.js +1 -1
  134. package/dist/knowledge/contact-templates.d.ts +0 -1
  135. package/dist/knowledge/contact-templates.js +1 -1
  136. package/dist/knowledge/dynamic-pricing.js +1 -1
  137. package/dist/knowledge/fee-param-bindings.js +1 -1
  138. package/dist/knowledge/fund-layer.d.ts +1 -0
  139. package/dist/knowledge/fund-layer.js +1 -1
  140. package/dist/knowledge/game-scenarios.js +1 -1
  141. package/dist/knowledge/getting-started.js +1 -1
  142. package/dist/knowledge/guard-binding-table.d.ts +52 -0
  143. package/dist/knowledge/guard-binding-table.js +1 -0
  144. package/dist/knowledge/guard-binding-verifier.d.ts +30 -0
  145. package/dist/knowledge/guard-binding-verifier.js +1 -0
  146. package/dist/knowledge/guard-bindings.js +1 -1
  147. package/dist/knowledge/guard-blueprint.d.ts +68 -0
  148. package/dist/knowledge/guard-blueprint.js +1 -0
  149. package/dist/knowledge/guard-design-patterns.d.ts +1 -1
  150. package/dist/knowledge/guard-design-patterns.js +1 -1
  151. package/dist/knowledge/guard-field-cognition.js +1 -1
  152. package/dist/knowledge/guard-host-context.d.ts +24 -0
  153. package/dist/knowledge/guard-host-context.js +1 -0
  154. package/dist/knowledge/guard-lint.js +1 -1
  155. package/dist/knowledge/guard-node-gates.d.ts +3 -0
  156. package/dist/knowledge/guard-node-gates.js +1 -1
  157. package/dist/knowledge/guard-puzzle.js +1 -1
  158. package/dist/knowledge/guard-render.js +1 -1
  159. package/dist/knowledge/guard-risk.js +1 -1
  160. package/dist/knowledge/guard-submission-prompt.d.ts +11 -0
  161. package/dist/knowledge/guard-submission-prompt.js +1 -1
  162. package/dist/knowledge/guard-templates.d.ts +1 -1
  163. package/dist/knowledge/guard-templates.js +1 -1
  164. package/dist/knowledge/guard-translation.js +1 -1
  165. package/dist/knowledge/index.d.ts +1 -1
  166. package/dist/knowledge/index.js +1 -1
  167. package/dist/knowledge/industry-generalizer.d.ts +6 -1
  168. package/dist/knowledge/industry-generalizer.js +1 -1
  169. package/dist/knowledge/industry-registry.js +1 -1
  170. package/dist/knowledge/jsonrpc-enum.d.ts +38 -0
  171. package/dist/knowledge/jsonrpc-enum.js +1 -1
  172. package/dist/knowledge/machine-topology.js +1 -1
  173. package/dist/knowledge/machine-translation.js +1 -1
  174. package/dist/knowledge/object-dependency.d.ts +31 -0
  175. package/dist/knowledge/object-dependency.js +1 -0
  176. package/dist/knowledge/onchain-constants.d.ts +2 -0
  177. package/dist/knowledge/onchain-constants.js +1 -1
  178. package/dist/knowledge/param-schema.d.ts +23 -0
  179. package/dist/knowledge/param-schema.js +1 -1
  180. package/dist/knowledge/param-tiers.js +1 -1
  181. package/dist/knowledge/passport-ledger.js +1 -1
  182. package/dist/knowledge/path-oracle/coverage.d.ts +16 -0
  183. package/dist/knowledge/path-oracle/coverage.js +1 -0
  184. package/dist/knowledge/path-oracle/index.d.ts +5 -0
  185. package/dist/knowledge/path-oracle/index.js +1 -0
  186. package/dist/knowledge/path-oracle/products/food-delivery.d.ts +2 -0
  187. package/dist/knowledge/path-oracle/products/food-delivery.js +1 -0
  188. package/dist/knowledge/path-oracle/schema.d.ts +188 -0
  189. package/dist/knowledge/path-oracle/schema.js +1 -0
  190. package/dist/knowledge/pattern-resolutions.d.ts +2 -0
  191. package/dist/knowledge/pattern-resolutions.js +1 -1
  192. package/dist/knowledge/progress-ledger.js +1 -1
  193. package/dist/knowledge/progress-risk.js +1 -1
  194. package/dist/knowledge/projection.spec.js +1 -1
  195. package/dist/knowledge/protocol-facts.js +1 -1
  196. package/dist/knowledge/requirement-families.d.ts +13 -0
  197. package/dist/knowledge/requirement-families.js +1 -0
  198. package/dist/knowledge/reward-ledger.js +1 -1
  199. package/dist/knowledge/scenario-modes.d.ts +1 -0
  200. package/dist/knowledge/scenario-modes.js +1 -1
  201. package/dist/knowledge/semantic-ir.d.ts +4 -0
  202. package/dist/knowledge/semantic-ir.js +1 -1
  203. package/dist/knowledge/service-ledger.d.ts +1 -1
  204. package/dist/knowledge/service-ledger.js +1 -1
  205. package/dist/knowledge/sku-name-gate.d.ts +17 -0
  206. package/dist/knowledge/sku-name-gate.js +1 -0
  207. package/dist/knowledge/supply-chain.d.ts +9 -0
  208. package/dist/knowledge/supply-chain.js +1 -1
  209. package/dist/knowledge/template-loader.d.ts +14 -6
  210. package/dist/knowledge/template-loader.js +1 -1
  211. package/dist/knowledge/template-nav.d.ts +3 -1
  212. package/dist/knowledge/template-nav.js +1 -1
  213. package/dist/knowledge/template-prose.d.ts +1 -1
  214. package/dist/knowledge/template-registry.js +1 -1
  215. package/dist/knowledge/template-scanner.d.ts +62 -0
  216. package/dist/knowledge/template-scanner.js +1 -1
  217. package/dist/knowledge/template-test-profiles.js +1 -1
  218. package/dist/knowledge/tools-reference.js +1 -1
  219. package/dist/knowledge/workflow-guidance.d.ts +5 -0
  220. package/dist/knowledge/workflow-guidance.js +1 -1
  221. package/dist/monitor/MonitorLoop.js +1 -1
  222. package/dist/participation/customer-interest.d.ts +4 -0
  223. package/dist/participation/customer-interest.js +1 -1
  224. package/dist/participation/node-action-advisor.d.ts +4 -0
  225. package/dist/participation/node-action-advisor.js +1 -1
  226. package/dist/participation/radar-core.js +1 -1
  227. package/dist/participation/time-window.d.ts +11 -0
  228. package/dist/participation/time-window.js +1 -1
  229. package/dist/persona/address-format.d.ts +0 -1
  230. package/dist/persona/address-format.js +1 -1
  231. package/dist/persona/bridge.js +1 -1
  232. package/dist/persona/index.d.ts +0 -2
  233. package/dist/persona/index.js +1 -1
  234. package/dist/persona/model.js +1 -1
  235. package/dist/persona/persona-audit.spec.js +1 -1
  236. package/dist/persona/types.d.ts +6 -0
  237. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  238. package/dist/playbooks/service-build/game-theory.d.ts +2 -2
  239. package/dist/playbooks/service-build/intent-analyzer.js +1 -1
  240. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  241. package/dist/playbooks/service-build/merchant-guide.d.ts +50 -23
  242. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  243. package/dist/playbooks/service-build/migration-planner.d.ts +2 -0
  244. package/dist/playbooks/service-build/migration-planner.js +1 -1
  245. package/dist/playbooks/service-build/mode-actions.js +1 -1
  246. package/dist/playbooks/service-build/object-panorama.d.ts +8 -0
  247. package/dist/playbooks/service-build/object-panorama.js +1 -1
  248. package/dist/playbooks/service-build/participation-radar.js +1 -1
  249. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  250. package/dist/playbooks/service-build/reverse-mapping.d.ts +6 -0
  251. package/dist/playbooks/service-build/reverse-mapping.js +1 -1
  252. package/dist/playbooks/service-build/service-panorama.d.ts +1 -0
  253. package/dist/playbooks/service-build/service-panorama.js +1 -1
  254. package/dist/playbooks/service-build/service-quote.js +1 -1
  255. package/dist/playbooks/service-build/service-quote.spec.js +1 -1
  256. package/dist/playbooks/service-build/workflow-design-assessment.d.ts +10 -1
  257. package/dist/playbooks/service-build/workflow-design-assessment.js +1 -1
  258. package/dist/review/index.js +1 -1
  259. package/dist/review/repository.js +1 -1
  260. package/dist/safety/confirm-gate.js +1 -1
  261. package/dist/schema/benchmark-migration/index.d.ts +104 -0
  262. package/dist/schema/benchmark-migration/index.js +1 -1
  263. package/dist/schema/call/allocation.d.ts +15 -6
  264. package/dist/schema/call/allocation.js +1 -1
  265. package/dist/schema/call/base.d.ts +256 -0
  266. package/dist/schema/call/base.js +1 -1
  267. package/dist/schema/call/bridge.d.ts +32 -6
  268. package/dist/schema/call/demand.d.ts +15 -6
  269. package/dist/schema/call/demand.js +1 -1
  270. package/dist/schema/call/guard.d.ts +8 -8
  271. package/dist/schema/call/guard.js +1 -1
  272. package/dist/schema/call/handler.d.ts +3 -0
  273. package/dist/schema/call/handler.js +1 -1
  274. package/dist/schema/call/machine.d.ts +32 -8
  275. package/dist/schema/call/machine.js +1 -1
  276. package/dist/schema/call/order.d.ts +26 -8
  277. package/dist/schema/call/order.js +1 -1
  278. package/dist/schema/call/payment.d.ts +20 -8
  279. package/dist/schema/call/payment.js +1 -1
  280. package/dist/schema/call/permission-handler.js +1 -1
  281. package/dist/schema/call/permission.d.ts +330 -114
  282. package/dist/schema/call/permission.js +1 -1
  283. package/dist/schema/call/personal.d.ts +10 -4
  284. package/dist/schema/call/personal.js +1 -1
  285. package/dist/schema/call/progress.d.ts +16 -4
  286. package/dist/schema/call/proof.js +1 -1
  287. package/dist/schema/call/reward.d.ts +10 -4
  288. package/dist/schema/call/reward.js +1 -1
  289. package/dist/schema/call/semantic.d.ts +1 -0
  290. package/dist/schema/call/semantic.js +1 -1
  291. package/dist/schema/call/service.d.ts +143 -45
  292. package/dist/schema/call/service.js +1 -1
  293. package/dist/schema/call/treasury.d.ts +15 -6
  294. package/dist/schema/call/treasury.js +1 -1
  295. package/dist/schema/common/index.js +1 -1
  296. package/dist/schema/config/index.d.ts +61 -0
  297. package/dist/schema/config/index.js +1 -1
  298. package/dist/schema/envelope-unify.d.ts +4 -0
  299. package/dist/schema/envelope-unify.js +1 -0
  300. package/dist/schema/evaluation/index.d.ts +216 -19
  301. package/dist/schema/evaluation/index.js +1 -1
  302. package/dist/schema/goal/index.d.ts +47 -0
  303. package/dist/schema/goal/planning.d.ts +115 -1
  304. package/dist/schema/goal/planning.js +1 -1
  305. package/dist/schema/industry-pack/index.d.ts +137 -6
  306. package/dist/schema/industry-pack/index.js +1 -1
  307. package/dist/schema/industry-pack/modes.d.ts +6 -6
  308. package/dist/schema/keeper/index.d.ts +26 -0
  309. package/dist/schema/local/index.d.ts +137 -0
  310. package/dist/schema/local/index.js +1 -1
  311. package/dist/schema/local/wip.d.ts +6 -0
  312. package/dist/schema/local/wip.js +1 -1
  313. package/dist/schema/messenger/index.d.ts +26 -0
  314. package/dist/schema/operations.d.ts +345 -84
  315. package/dist/schema/operations.js +1 -1
  316. package/dist/schema/persona/index.d.ts +2907 -640
  317. package/dist/schema/persona/index.js +1 -1
  318. package/dist/schema/query/bi.d.ts +145 -4
  319. package/dist/schema/query/bi.js +1 -1
  320. package/dist/schema/query/index.d.ts +266 -73
  321. package/dist/schema/query/index.js +1 -1
  322. package/dist/schema/schema-query/index.d.ts +1 -1
  323. package/dist/schema/schema-query/index.js +1 -1
  324. package/dist/schema/schema-version.js +1 -1
  325. package/dist/schema/utils/permission-machine-check.d.ts +2 -0
  326. package/dist/schema/utils/permission-machine-check.js +1 -1
  327. package/dist/schema/watch/index.d.ts +16 -0
  328. package/dist/schema/watch/index.js +1 -1
  329. package/dist/schema/workflow/index.d.ts +2 -2
  330. package/dist/schema/workflow/index.js +1 -1
  331. package/dist/schema-query-impl/index.d.ts +1 -1
  332. package/dist/schema-query-impl/index.js +1 -1
  333. package/dist/schemas/account_operation.output.json +94 -0
  334. package/dist/schemas/benchmark_migration_operation.output.json +338 -9
  335. package/dist/schemas/benchmark_migration_operation.schema.json +27 -2
  336. package/dist/schemas/bridge_operation.output.json +94 -0
  337. package/dist/schemas/config_operation.output.json +352 -0
  338. package/dist/schemas/config_operation.schema.json +20 -2
  339. package/dist/schemas/evaluation_operation.output.json +570 -4
  340. package/dist/schemas/evaluation_operation.schema.json +194 -3
  341. package/dist/schemas/goal_operation.schema.json +183 -0
  342. package/dist/schemas/index.json +1 -1
  343. package/dist/schemas/industry_pack_operation.output.json +621 -0
  344. package/dist/schemas/industry_pack_operation.schema.json +20 -2
  345. package/dist/schemas/keeper_operation.output.json +94 -0
  346. package/dist/schemas/local_cache_operation.output.json +94 -0
  347. package/dist/schemas/local_history_operation.output.json +94 -0
  348. package/dist/schemas/local_info_operation.output.json +94 -0
  349. package/dist/schemas/local_mark_operation.output.json +94 -0
  350. package/dist/schemas/messenger_operation.output.json +94 -0
  351. package/dist/schemas/monitor_events.output.json +94 -0
  352. package/dist/schemas/monitor_subscription.output.json +94 -0
  353. package/dist/schemas/onchain_events.output.json +94 -0
  354. package/dist/schemas/onchain_operations.output.json +313 -1
  355. package/dist/schemas/onchain_operations.schema.json +1265 -671
  356. package/dist/schemas/onchain_operations_allocation.schema.json +30 -15
  357. package/dist/schemas/onchain_operations_arbitration.schema.json +9 -2
  358. package/dist/schemas/onchain_operations_contact.schema.json +8 -1
  359. package/dist/schemas/onchain_operations_demand.schema.json +29 -14
  360. package/dist/schemas/onchain_operations_gen_passport.schema.json +8 -1
  361. package/dist/schemas/onchain_operations_guard.schema.json +290 -105
  362. package/dist/schemas/onchain_operations_machine.schema.json +49 -34
  363. package/dist/schemas/onchain_operations_order.schema.json +63 -40
  364. package/dist/schemas/onchain_operations_payment.schema.json +26 -11
  365. package/dist/schemas/onchain_operations_permission.schema.json +362 -235
  366. package/dist/schemas/onchain_operations_personal.schema.json +27 -15
  367. package/dist/schemas/onchain_operations_progress.schema.json +45 -30
  368. package/dist/schemas/onchain_operations_proof.schema.json +9 -2
  369. package/dist/schemas/onchain_operations_repository.schema.json +8 -1
  370. package/dist/schemas/onchain_operations_reward.schema.json +32 -17
  371. package/dist/schemas/onchain_operations_service.schema.json +232 -125
  372. package/dist/schemas/onchain_operations_treasury.schema.json +32 -17
  373. package/dist/schemas/onchain_table_data.output.json +258 -6
  374. package/dist/schemas/onchain_table_data.schema.json +92 -52
  375. package/dist/schemas/persona_operation.output.json +7752 -0
  376. package/dist/schemas/persona_operation.schema.json +1232 -4
  377. package/dist/schemas/query_toolkit.output.json +756 -116
  378. package/dist/schemas/query_toolkit.schema.json +138 -7
  379. package/dist/schemas/schema_query.schema.json +1 -1
  380. package/dist/schemas/watch_operation.output.json +83 -0
  381. package/dist/schemas/wip_file.output.json +8 -0
  382. package/dist/schemas/workflow_operation.schema.json +2 -2
  383. package/dist/tools/handlers/benchmark-migration.d.ts +20 -3
  384. package/dist/tools/handlers/benchmark-migration.js +1 -1
  385. package/dist/tools/handlers/config.js +1 -1
  386. package/dist/tools/handlers/evaluation.js +1 -1
  387. package/dist/tools/handlers/evaluation.spec.js +1 -1
  388. package/dist/tools/handlers/industry-pack.js +1 -1
  389. package/dist/tools/handlers/onchain.d.ts +30 -0
  390. package/dist/tools/handlers/onchain.js +1 -1
  391. package/dist/tools/handlers/persona.js +1 -1
  392. package/dist/tools/handlers/query.d.ts +8 -0
  393. package/dist/tools/handlers/query.js +1 -1
  394. package/dist/tools/handlers/winner-derivation.d.ts +20 -0
  395. package/dist/tools/handlers/winner-derivation.js +1 -0
  396. package/dist/tools/handlers/wip-upload.js +1 -1
  397. package/dist/tools/index.d.ts +1 -0
  398. package/dist/tools/index.js +1 -1
  399. package/dist/tools/registry/business.js +1 -1
  400. package/dist/tools/registry/config.js +1 -1
  401. package/dist/tools/registry/evaluation.js +1 -1
  402. package/dist/tools/registry/identity.js +1 -1
  403. package/dist/tools/registry/query.js +1 -1
  404. package/dist/tools/transport-integrity.d.ts +7 -0
  405. package/dist/tools/transport-integrity.js +1 -0
  406. package/dist/tools/upgrade-check.js +1 -1
  407. package/dist/tools/wrap.d.ts +5 -0
  408. package/dist/tools/wrap.js +1 -1
  409. package/package.json +2 -2
  410. package/dist/extensions/business-modules.d.ts +0 -54
  411. package/dist/extensions/business-modules.js +0 -1
  412. package/dist/schemas/guard-templates.json +0 -379
@@ -393,6 +393,41 @@
393
393
  "_balance_scope_note": {
394
394
  "description": "Semantic scope note for the balance figure: the total is aggregation-only; independently owned Coin objects may exist outside it. Follow the note (transaction digest or coin-objects query) before concluding funds arrived.",
395
395
  "type": "string"
396
+ },
397
+ "_balance_read_freshness": {
398
+ "description": "Freshness provenance for the balance/coin figures: always a LIVE indexer read stamped with fetched_at and the resolved network. Figures can differ between reads moments apart — reconcile via the note's path, never treat one read as settled state.",
399
+ "type": "object",
400
+ "properties": {
401
+ "source": {
402
+ "type": "string",
403
+ "const": "live",
404
+ "description": "Always 'live' — the balance path has no MCP/SDK cache."
405
+ },
406
+ "cached": {
407
+ "type": "boolean",
408
+ "description": "Always false — present so a caller can audit freshness without inferring from absence."
409
+ },
410
+ "network": {
411
+ "type": "string",
412
+ "description": "Resolved network the figures were read from."
413
+ },
414
+ "fetched_at": {
415
+ "type": "string",
416
+ "description": "ISO timestamp of the read — compare across re-reads to resolve discrepancies."
417
+ },
418
+ "note": {
419
+ "type": "string",
420
+ "description": "Why figures can differ between reads moments apart (F-RQ-12) + the reconciliation path (re-read/fetched_at, coin objects, transaction digest)."
421
+ }
422
+ },
423
+ "required": [
424
+ "source",
425
+ "cached",
426
+ "network",
427
+ "fetched_at",
428
+ "note"
429
+ ],
430
+ "additionalProperties": false
396
431
  }
397
432
  },
398
433
  "additionalProperties": false,
@@ -1474,7 +1509,7 @@
1474
1509
  "type": "integer",
1475
1510
  "minimum": 0,
1476
1511
  "maximum": 255,
1477
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
1512
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
1478
1513
  },
1479
1514
  {
1480
1515
  "type": "null"
@@ -1488,7 +1523,7 @@
1488
1523
  "type": "integer",
1489
1524
  "minimum": 0,
1490
1525
  "maximum": 255,
1491
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
1526
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
1492
1527
  },
1493
1528
  {
1494
1529
  "type": "null"
@@ -1524,7 +1559,7 @@
1524
1559
  "type": "integer",
1525
1560
  "minimum": 0,
1526
1561
  "maximum": 255,
1527
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
1562
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
1528
1563
  },
1529
1564
  {
1530
1565
  "type": "null"
@@ -2361,7 +2396,7 @@
2361
2396
  "properties": {
2362
2397
  "name": {
2363
2398
  "type": "string",
2364
- "description": "Name of the product or service for sale"
2399
+ "description": "Name of the product or service for sale. ⚠️ 64-BYTE BUY LIMIT (F-RQ-01): the chain lists this name up to 256 bytes but validates the BUYER-SENT item name at only 64 bytes at buy time. A name of 65–256 bytes lists fine yet makes the SKU PERMANENTLY unbuyable — every order aborts E_NAME_LENGTH_EXCEEDED (abort 1). Keep SKU names ≤ 64 bytes (UTF-8); renaming cannot fix a dead SKU (the buy path matches items by EXACT name — a new name is a NEW SKU). service_quote.buyable reports this per item."
2365
2400
  },
2366
2401
  "price": {
2367
2402
  "anyOf": [
@@ -2394,8 +2429,9 @@
2394
2429
  "description": "WIP file URL. EMPTY string \"\" skips verification (TESTING ONLY). Production MUST use a real HTTP URL pointing to a .wip file generated by the wip_file tool. ⚠️ NETWORK DEPLOYMENT REQUIRED: the URL is stored ON-CHAIN and every customer fetches it when placing an order. A local file path (C:\\..., /path/file.wip), a localhost/loopback URL or a LAN private-IP URL is unreachable by customers on other machines — it passes the merchant-side set-time verification but makes order_new abort 100% for customers. Either deploy the .wip file to a public endpoint (GitHub Pages / IPFS / your own website) and set this to the public URL, or leave it empty (\"\") to skip WIP verification (TESTING ONLY). Example: \"https://cdn.example.com/products/phone_v1.wip\""
2395
2430
  },
2396
2431
  "wip_hash": {
2397
- "type": "string",
2398
- "description": "The 'meta.hash' field INSIDE the sale's WIP file (a content hash of the file's JSON payload), committed on-chain by the merchant. NOT the SHA-256 of the .wip file bytes — hashing the downloaded file (shasum -a 256) yields a DIFFERENT value and fails verification; use the hash embedded in the file's meta section (wip_file verify reports it). BUY RULE: if this is NON-EMPTY, the buyer MUST pass this exact value as wip_hash when creating an order (ServiceBuyItem.wip_hash) — NEVER use \"\". Pinning the on-chain hash prevents the merchant from replacing the WIP file (a legitimate update) between the buyer's view and order placement, ensuring 'what you see is what you get'. EMPTY means no hash was committed (TESTING ONLY, no delivery-integrity guarantee)."
2432
+ "default": "",
2433
+ "description": "The 'meta.hash' field INSIDE the sale's WIP file (a content hash of the file's JSON payload), committed on-chain by the merchant. NOT the SHA-256 of the .wip file bytes — hashing the downloaded file (shasum -a 256) yields a DIFFERENT value and fails verification; use the hash embedded in the file's meta section (wip_file verify reports it). BUY RULE: if this is NON-EMPTY, the buyer MUST pass this exact value as wip_hash when creating an order (ServiceBuyItem.wip_hash) — NEVER use \"\". Pinning the on-chain hash prevents the merchant from replacing the WIP file (a legitimate update) between the buyer's view and order placement, ensuring 'what you see is what you get'. EMPTY means no hash was committed (TESTING ONLY, no delivery-integrity guarantee).",
2434
+ "type": "string"
2399
2435
  }
2400
2436
  },
2401
2437
  "required": [
@@ -2540,7 +2576,7 @@
2540
2576
  "type": "integer",
2541
2577
  "minimum": 0,
2542
2578
  "maximum": 255,
2543
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
2579
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
2544
2580
  }
2545
2581
  },
2546
2582
  "required": [
@@ -2553,26 +2589,34 @@
2553
2589
  "type": "object",
2554
2590
  "properties": {
2555
2591
  "Entity": {
2556
- "type": "object",
2557
- "properties": {
2558
- "name_or_address": {
2559
- "type": "string",
2560
- "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
2592
+ "anyOf": [
2593
+ {
2594
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
2561
2595
  },
2562
- "local_mark_first": {
2563
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
2564
- "type": "boolean"
2596
+ {
2597
+ "type": "object",
2598
+ "properties": {
2599
+ "name_or_address": {
2600
+ "type": "string",
2601
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
2602
+ },
2603
+ "local_mark_first": {
2604
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
2605
+ "type": "boolean"
2606
+ }
2607
+ },
2608
+ "additionalProperties": false,
2609
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
2565
2610
  }
2566
- },
2567
- "additionalProperties": false,
2568
- "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
2611
+ ],
2612
+ "description": "Account or address lookup. Can be a simple string (recommended for AI) or full object with explicit local_mark_first control. String form auto-converts to { name_or_address: <string>, local_mark_first: true }."
2569
2613
  }
2570
2614
  },
2571
2615
  "required": [
2572
2616
  "Entity"
2573
2617
  ],
2574
2618
  "additionalProperties": false,
2575
- "description": "Static address resolved via LocalMark. Format: {Entity: {name_or_address: 'mark_name'}} — NOTE: Entity is an OBJECT with name_or_address field, NOT a bare string."
2619
+ "description": "Static address resolved via LocalMark. Format: {Entity: 'mark_name'} (string shorthand) or {Entity: {name_or_address: 'mark_name'}} (full object).F-RQ-11 (rq2 promotion): string shorthand accepted — the FIX-005 transform resolves local marks first."
2576
2620
  },
2577
2621
  {
2578
2622
  "type": "object",
@@ -4188,7 +4232,7 @@
4188
4232
  "type": "integer",
4189
4233
  "minimum": 0,
4190
4234
  "maximum": 255,
4191
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
4235
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
4192
4236
  },
4193
4237
  {
4194
4238
  "type": "null"
@@ -4474,7 +4518,7 @@
4474
4518
  "type": "integer",
4475
4519
  "minimum": 0,
4476
4520
  "maximum": 255,
4477
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
4521
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
4478
4522
  }
4479
4523
  },
4480
4524
  "required": [
@@ -4817,7 +4861,7 @@
4817
4861
  "type": "integer",
4818
4862
  "minimum": 0,
4819
4863
  "maximum": 255,
4820
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
4864
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
4821
4865
  }
4822
4866
  },
4823
4867
  "required": [
@@ -4830,26 +4874,34 @@
4830
4874
  "type": "object",
4831
4875
  "properties": {
4832
4876
  "Entity": {
4833
- "type": "object",
4834
- "properties": {
4835
- "name_or_address": {
4836
- "type": "string",
4837
- "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
4877
+ "anyOf": [
4878
+ {
4879
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
4838
4880
  },
4839
- "local_mark_first": {
4840
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
4841
- "type": "boolean"
4881
+ {
4882
+ "type": "object",
4883
+ "properties": {
4884
+ "name_or_address": {
4885
+ "type": "string",
4886
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
4887
+ },
4888
+ "local_mark_first": {
4889
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
4890
+ "type": "boolean"
4891
+ }
4892
+ },
4893
+ "additionalProperties": false,
4894
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
4842
4895
  }
4843
- },
4844
- "additionalProperties": false,
4845
- "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
4896
+ ],
4897
+ "description": "Account or address lookup. Can be a simple string (recommended for AI) or full object with explicit local_mark_first control. String form auto-converts to { name_or_address: <string>, local_mark_first: true }."
4846
4898
  }
4847
4899
  },
4848
4900
  "required": [
4849
4901
  "Entity"
4850
4902
  ],
4851
4903
  "additionalProperties": false,
4852
- "description": "Static address resolved via LocalMark. Format: {Entity: {name_or_address: 'mark_name'}} — NOTE: Entity is an OBJECT with name_or_address field, NOT a bare string."
4904
+ "description": "Static address resolved via LocalMark. Format: {Entity: 'mark_name'} (string shorthand) or {Entity: {name_or_address: 'mark_name'}} (full object).F-RQ-11 (rq2 promotion): string shorthand accepted — the FIX-005 transform resolves local marks first."
4853
4905
  },
4854
4906
  {
4855
4907
  "type": "object",
@@ -5256,7 +5308,7 @@
5256
5308
  "type": "integer",
5257
5309
  "minimum": 0,
5258
5310
  "maximum": 255,
5259
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
5311
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
5260
5312
  }
5261
5313
  },
5262
5314
  "required": [
@@ -5269,26 +5321,34 @@
5269
5321
  "type": "object",
5270
5322
  "properties": {
5271
5323
  "Entity": {
5272
- "type": "object",
5273
- "properties": {
5274
- "name_or_address": {
5275
- "type": "string",
5276
- "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
5324
+ "anyOf": [
5325
+ {
5326
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
5277
5327
  },
5278
- "local_mark_first": {
5279
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
5280
- "type": "boolean"
5328
+ {
5329
+ "type": "object",
5330
+ "properties": {
5331
+ "name_or_address": {
5332
+ "type": "string",
5333
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
5334
+ },
5335
+ "local_mark_first": {
5336
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
5337
+ "type": "boolean"
5338
+ }
5339
+ },
5340
+ "additionalProperties": false,
5341
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
5281
5342
  }
5282
- },
5283
- "additionalProperties": false,
5284
- "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
5343
+ ],
5344
+ "description": "Account or address lookup. Can be a simple string (recommended for AI) or full object with explicit local_mark_first control. String form auto-converts to { name_or_address: <string>, local_mark_first: true }."
5285
5345
  }
5286
5346
  },
5287
5347
  "required": [
5288
5348
  "Entity"
5289
5349
  ],
5290
5350
  "additionalProperties": false,
5291
- "description": "Static address resolved via LocalMark. Format: {Entity: {name_or_address: 'mark_name'}} — NOTE: Entity is an OBJECT with name_or_address field, NOT a bare string."
5351
+ "description": "Static address resolved via LocalMark. Format: {Entity: 'mark_name'} (string shorthand) or {Entity: {name_or_address: 'mark_name'}} (full object).F-RQ-11 (rq2 promotion): string shorthand accepted — the FIX-005 transform resolves local marks first."
5292
5352
  },
5293
5353
  {
5294
5354
  "type": "object",
@@ -5320,7 +5380,7 @@
5320
5380
  "type": "integer",
5321
5381
  "minimum": 0,
5322
5382
  "maximum": 255,
5323
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
5383
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
5324
5384
  }
5325
5385
  },
5326
5386
  "required": [
@@ -5370,7 +5430,7 @@
5370
5430
  "type": "integer",
5371
5431
  "minimum": 0,
5372
5432
  "maximum": 255,
5373
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
5433
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
5374
5434
  },
5375
5435
  {
5376
5436
  "type": "null"
@@ -6368,7 +6428,7 @@
6368
6428
  "type": "integer",
6369
6429
  "minimum": 0,
6370
6430
  "maximum": 255,
6371
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
6431
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
6372
6432
  },
6373
6433
  "b_submission": {
6374
6434
  "type": "boolean",
@@ -7112,7 +7172,7 @@
7112
7172
  "type": "integer",
7113
7173
  "minimum": 0,
7114
7174
  "maximum": 255,
7115
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
7175
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
7116
7176
  }
7117
7177
  },
7118
7178
  "required": [
@@ -7125,26 +7185,34 @@
7125
7185
  "type": "object",
7126
7186
  "properties": {
7127
7187
  "Entity": {
7128
- "type": "object",
7129
- "properties": {
7130
- "name_or_address": {
7131
- "type": "string",
7132
- "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
7188
+ "anyOf": [
7189
+ {
7190
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
7133
7191
  },
7134
- "local_mark_first": {
7135
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
7136
- "type": "boolean"
7192
+ {
7193
+ "type": "object",
7194
+ "properties": {
7195
+ "name_or_address": {
7196
+ "type": "string",
7197
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
7198
+ },
7199
+ "local_mark_first": {
7200
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
7201
+ "type": "boolean"
7202
+ }
7203
+ },
7204
+ "additionalProperties": false,
7205
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
7137
7206
  }
7138
- },
7139
- "additionalProperties": false,
7140
- "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
7207
+ ],
7208
+ "description": "Account or address lookup. Can be a simple string (recommended for AI) or full object with explicit local_mark_first control. String form auto-converts to { name_or_address: <string>, local_mark_first: true }."
7141
7209
  }
7142
7210
  },
7143
7211
  "required": [
7144
7212
  "Entity"
7145
7213
  ],
7146
7214
  "additionalProperties": false,
7147
- "description": "Static address resolved via LocalMark. Format: {Entity: {name_or_address: 'mark_name'}} — NOTE: Entity is an OBJECT with name_or_address field, NOT a bare string."
7215
+ "description": "Static address resolved via LocalMark. Format: {Entity: 'mark_name'} (string shorthand) or {Entity: {name_or_address: 'mark_name'}} (full object).F-RQ-11 (rq2 promotion): string shorthand accepted — the FIX-005 transform resolves local marks first."
7148
7216
  },
7149
7217
  {
7150
7218
  "type": "object",
@@ -16235,6 +16303,97 @@
16235
16303
  "result"
16236
16304
  ],
16237
16305
  "additionalProperties": false
16306
+ },
16307
+ {
16308
+ "type": "object",
16309
+ "properties": {
16310
+ "query_type": {
16311
+ "type": "string",
16312
+ "const": "recover_created_objects"
16313
+ },
16314
+ "result": {
16315
+ "type": "object",
16316
+ "properties": {
16317
+ "label": {
16318
+ "type": "string",
16319
+ "description": "The account name or address whose recovery state was assembled"
16320
+ },
16321
+ "resolved_address": {
16322
+ "description": "Resolved 0x address (present when the label resolved locally or was already an address)",
16323
+ "type": "string"
16324
+ },
16325
+ "inflight_markers": {
16326
+ "type": "array",
16327
+ "items": {
16328
+ "type": "object",
16329
+ "propertyNames": {
16330
+ "type": "string"
16331
+ },
16332
+ "additionalProperties": {}
16333
+ },
16334
+ "description": "Open in-flight markers of THIS process — operations whose commit state was never observed (op, service/allocation, buyer, items_count, started_at, digests). Each is a recovery candidate: verify on-chain before any resubmit."
16335
+ },
16336
+ "returned_digests": {
16337
+ "type": "array",
16338
+ "items": {
16339
+ "type": "object",
16340
+ "propertyNames": {
16341
+ "type": "string"
16342
+ },
16343
+ "additionalProperties": {}
16344
+ },
16345
+ "description": "Digests this process recently RETURNED as executed receipts (newest first) — a marker digest that appears here already landed."
16346
+ },
16347
+ "landed_tombstones": {
16348
+ "type": "array",
16349
+ "items": {
16350
+ "type": "object",
16351
+ "propertyNames": {
16352
+ "type": "string"
16353
+ },
16354
+ "additionalProperties": {}
16355
+ },
16356
+ "description": "Recently landed transactions whose objects may not be readable yet (index-lag window) — a 'not found' inside this window is a lag suspect, not absence."
16357
+ },
16358
+ "onchain_activity": {
16359
+ "description": "The account's on-chain sent activity (same shape as onchain_address_activity 'sent'), or null when the activity lookup failed (see onchain_activity_error).",
16360
+ "anyOf": [
16361
+ {
16362
+ "type": "object",
16363
+ "propertyNames": {
16364
+ "type": "string"
16365
+ },
16366
+ "additionalProperties": {}
16367
+ },
16368
+ {
16369
+ "type": "null"
16370
+ }
16371
+ ]
16372
+ },
16373
+ "onchain_activity_error": {
16374
+ "description": "Why the on-chain activity leg failed (markers/digests above are still authoritative for this process)",
16375
+ "type": "string"
16376
+ },
16377
+ "recovery_guidance": {
16378
+ "type": "string",
16379
+ "description": "The decision rule applied to the joined sources: adopt-what-landed, verify-digest-first, resubmit-only-when-confirmed-absent"
16380
+ }
16381
+ },
16382
+ "required": [
16383
+ "label",
16384
+ "inflight_markers",
16385
+ "returned_digests",
16386
+ "landed_tombstones",
16387
+ "recovery_guidance"
16388
+ ],
16389
+ "additionalProperties": false
16390
+ }
16391
+ },
16392
+ "required": [
16393
+ "query_type",
16394
+ "result"
16395
+ ],
16396
+ "additionalProperties": false
16238
16397
  }
16239
16398
  ]
16240
16399
  },
@@ -16373,6 +16532,35 @@
16373
16532
  }
16374
16533
  ],
16375
16534
  "description": "S4-03 (F-20): true when stock >= this line's quantity (the basket line is purchasable); false = the buy WILL abort stock_exhausted at the requested quantity; null = stock unreadable (verify before checkout)."
16535
+ },
16536
+ "buyable": {
16537
+ "anyOf": [
16538
+ {
16539
+ "type": "boolean"
16540
+ },
16541
+ {
16542
+ "type": "null"
16543
+ }
16544
+ ],
16545
+ "description": "F-RQ-01 buy verdict for this line: false = a known hard blocker exists (name over the on-chain 64-byte quote limit, suspended sale, or stock short) — the buy WILL abort; null = no known blocker but stock unreadable (verify before checkout); true = passes every known gate. The chain aborts E_NAME_LENGTH_EXCEEDED (abort 1) on an over-limit name BEFORE any other check, so a quoted price on a buyable:false line is a false promise, not a price."
16546
+ },
16547
+ "buyable_blockers": {
16548
+ "type": "array",
16549
+ "items": {
16550
+ "type": "string"
16551
+ },
16552
+ "description": "The concrete hard blockers when buyable is false (empty otherwise) — e.g. 'name over the 64-byte buy limit (80 bytes)', 'sale is suspended (merchant sale_suspension)', 'stock 2 < requested quantity 5'. Fix lies with the merchant (rename = NEW SKU, unsuspend, restock)."
16553
+ },
16554
+ "wip": {
16555
+ "anyOf": [
16556
+ {
16557
+ "type": "string"
16558
+ },
16559
+ {
16560
+ "type": "null"
16561
+ }
16562
+ ],
16563
+ "description": "ks7 F-10: the WIP commitment hash this SKU will bind into the order at buy (the on-chain sales.wip_hash — order_new REQUIRES it whenever the sale carries one, so the buy would fail without it). Exposed here so the buyer sees BEFORE paying which immutable detail file they will be held to; verify it via wip verify (meta.hash is the CANONICAL commitment hash, not the file's sha256 — see the WIP hash dual-semantics note). null when the sale carries no WIP."
16376
16564
  }
16377
16565
  },
16378
16566
  "required": [
@@ -16383,11 +16571,48 @@
16383
16571
  "line_total",
16384
16572
  "suspended",
16385
16573
  "stock",
16386
- "stock_ok"
16574
+ "stock_ok",
16575
+ "buyable",
16576
+ "buyable_blockers",
16577
+ "wip"
16387
16578
  ],
16388
16579
  "additionalProperties": false
16389
16580
  }
16390
16581
  },
16582
+ "buyable": {
16583
+ "type": "object",
16584
+ "properties": {
16585
+ "purchasable": {
16586
+ "anyOf": [
16587
+ {
16588
+ "type": "boolean"
16589
+ },
16590
+ {
16591
+ "type": "null"
16592
+ }
16593
+ ],
16594
+ "description": "Basket-level verdict: false = at least one line has a hard blocker, or the Service is paused, or the total is zero (dead basket) — EVERY order attempt will abort; null = no known blocker but a line's stock is unreadable; true = all lines pass the known gates. Never promise a checkout against false."
16595
+ },
16596
+ "blocked_items": {
16597
+ "type": "array",
16598
+ "items": {
16599
+ "type": "string"
16600
+ },
16601
+ "description": "SKU names of the lines with hard blockers (empty when purchasable is not false)."
16602
+ },
16603
+ "note": {
16604
+ "type": "string",
16605
+ "description": "The blocker detail in buyer language — an over-limit SKU name spells out the F-RQ-01 semantics (listable at 256 bytes, unbuyable past 64, renaming = new SKU); a suspended/stock line names its blocker; the null case asks for a stock verification."
16606
+ }
16607
+ },
16608
+ "required": [
16609
+ "purchasable",
16610
+ "blocked_items",
16611
+ "note"
16612
+ ],
16613
+ "additionalProperties": false,
16614
+ "description": "F-RQ-01 (rq-tn-261030-8693be) basket buy verdict — the read path's answer to 'can this quote actually be ORDERED'. Exists because the listing side (256-byte names) and the buy side (64-byte names) diverge on-chain: a Service can carry SKUs that quote and stock-check fine yet abort E_NAME_LENGTH_EXCEEDED (abort 1) on every order. Buyability is a pre-check disclosure, not a chain state — re-verify before large orders."
16615
+ },
16391
16616
  "total_pay": {
16392
16617
  "type": "object",
16393
16618
  "properties": {
@@ -16782,6 +17007,20 @@
16782
17007
  ],
16783
17008
  "description": "AGGREGATE rating-gate row threshold (ddmc2 F-09): when the floor gate is count_where(rating >= N) >= M, min_rating carries the INNER star floor (N) and THIS field carries the OUTER row-count threshold (M) — kept separate so the row count is never mistaken for the star floor. null = the gate is not an aggregate form (or no threshold decoded)."
16784
17009
  },
17010
+ "unreadable_legs": {
17011
+ "anyOf": [
17012
+ {
17013
+ "type": "array",
17014
+ "items": {
17015
+ "type": "string"
17016
+ }
17017
+ },
17018
+ {
17019
+ "type": "null"
17020
+ }
17021
+ ],
17022
+ "description": "W5-11③ (ks7 F-09) fail-honest boundary, made STRUCTURED: the recognized-but-not-statically-decodable guard legs behind min_rating 'unknown' — e.g. a rating/contribution gate expressed as set membership (query repository.data find_where 1176 feeding vec_contains_address). Each entry names the exact shape so a buyer sees precisely what stays unverified instead of a bare 'unknown'. null = nothing unrecognized (the floor decoded, the polarity matched, or the guard carries no rating signal at all)."
17023
+ },
16785
17024
  "claim_window": {
16786
17025
  "anyOf": [
16787
17026
  {
@@ -16854,6 +17093,7 @@
16854
17093
  "expired",
16855
17094
  "min_rating",
16856
17095
  "min_rows",
17096
+ "unreadable_legs",
16857
17097
  "claim_window",
16858
17098
  "claim_state",
16859
17099
  "claim_state_note"
@@ -16892,26 +17132,74 @@
16892
17132
  "additionalProperties": false,
16893
17133
  "description": "R2-06(b) once-scope disclosure (gf27 P0-03): do not promise a per-order bounty unless scope is once_per_order."
16894
17134
  },
16895
- "coverage": {
17135
+ "rating_floor": {
16896
17136
  "anyOf": [
16897
17137
  {
16898
- "type": "string"
17138
+ "type": "number"
16899
17139
  },
16900
17140
  {
16901
17141
  "type": "null"
16902
17142
  }
16903
17143
  ],
16904
- "description": "How many further claims the pool can fund at the largest fixed per-claim amount (empty-pool warning when 0); null when amounts are guard-decided."
16905
- }
16906
- },
16907
- "required": [
16908
- "reward",
16909
- "description",
17144
+ "description": "ddmc4 B-33 (W5-11): the numeric rating floor the compiled claim guard enforces, decoded from the guard's structured root (F-AOF-4 v2) — read this instead of parsing the description prose. null = no numeric floor decoded (a like/dislike polarity, an unrecognized shape, or no rating leg at all)."
17145
+ },
17146
+ "opens_after_days": {
17147
+ "anyOf": [
17148
+ {
17149
+ "type": "number"
17150
+ },
17151
+ {
17152
+ "type": "null"
17153
+ }
17154
+ ],
17155
+ "description": "ddmc4 B-33: DAYS after the claim-allowed anchor before the claim window OPENS (the compiled lower bound, day-denominated); null = no lower bound decoded or a non-whole-day offset (read claims[].claim_window for the raw bounds)."
17156
+ },
17157
+ "closes_after_days": {
17158
+ "anyOf": [
17159
+ {
17160
+ "type": "number"
17161
+ },
17162
+ {
17163
+ "type": "null"
17164
+ }
17165
+ ],
17166
+ "description": "ddmc4 B-33: DAYS the window stays claimable after it OPENS — the claimable SPAN counted from the window open (the bsw4 F-11 convention, matching the compiled closes_after_days knob); null = the window never closes or a non-whole-day offset."
17167
+ },
17168
+ "per_order_limit": {
17169
+ "anyOf": [
17170
+ {
17171
+ "type": "number"
17172
+ },
17173
+ {
17174
+ "type": "null"
17175
+ }
17176
+ ],
17177
+ "description": "ddmc4 B-33: the compiled per-order claim cap — 1 when every mounted claim entry stamps the submitted-Order slot 0 (the once_per_order replay scope, R2-06(b)); null = no compiled per-order cap (per-life / per-stamp / unknown scope — read replay_scope for what is actually once-scoped)."
17178
+ },
17179
+ "coverage": {
17180
+ "anyOf": [
17181
+ {
17182
+ "type": "string"
17183
+ },
17184
+ {
17185
+ "type": "null"
17186
+ }
17187
+ ],
17188
+ "description": "How many further claims the pool can fund at the largest fixed per-claim amount (empty-pool warning when 0); null when amounts are guard-decided."
17189
+ }
17190
+ },
17191
+ "required": [
17192
+ "reward",
17193
+ "description",
16910
17194
  "pool_balance",
16911
17195
  "pool_balance_display",
16912
17196
  "record_count",
16913
17197
  "claims",
16914
17198
  "replay_scope",
17199
+ "rating_floor",
17200
+ "opens_after_days",
17201
+ "closes_after_days",
17202
+ "per_order_limit",
16915
17203
  "coverage"
16916
17204
  ],
16917
17205
  "additionalProperties": false
@@ -16946,6 +17234,7 @@
16946
17234
  "paused",
16947
17235
  "payment_token",
16948
17236
  "items",
17237
+ "buyable",
16949
17238
  "total_pay",
16950
17239
  "discount",
16951
17240
  "allocation_preview",
@@ -17439,7 +17728,7 @@
17439
17728
  "description": "Input path inside the tool data payload."
17440
17729
  },
17441
17730
  "reason": {
17442
- "description": "Chain-authoritative routing reason, including the Guard passport requirement when the forward binds one, and the standalone-Progress limitation for namedOperator='' forwards (abort 8 — no order payer). May be absent when the caller requested response_level 'compact', which trims templated routing prose from NON-recommended options (F44/docs#49).",
17731
+ "description": "Chain-authoritative routing reason, including the Guard passport requirement when the forward binds one, and the standalone-Progress limitation for namedOperator='' forwards (abort 13 — no payer to name, fail-closed). May be absent when the caller requested response_level 'compact', which trims templated routing prose from NON-recommended options (F44/docs#49).",
17443
17732
  "type": "string"
17444
17733
  }
17445
17734
  },
@@ -17985,7 +18274,7 @@
17985
18274
  "description": "Input path inside the tool data payload."
17986
18275
  },
17987
18276
  "reason": {
17988
- "description": "Chain-authoritative routing reason, including the Guard passport requirement when the forward binds one, and the standalone-Progress limitation for namedOperator='' forwards (abort 8 — no order payer). May be absent when the caller requested response_level 'compact', which trims templated routing prose from NON-recommended options (F44/docs#49).",
18277
+ "description": "Chain-authoritative routing reason, including the Guard passport requirement when the forward binds one, and the standalone-Progress limitation for namedOperator='' forwards (abort 13 — no payer to name, fail-closed). May be absent when the caller requested response_level 'compact', which trims templated routing prose from NON-recommended options (F44/docs#49).",
17989
18278
  "type": "string"
17990
18279
  }
17991
18280
  },
@@ -18479,6 +18768,120 @@
18479
18768
  ],
18480
18769
  "additionalProperties": false
18481
18770
  },
18771
+ {
18772
+ "type": "object",
18773
+ "properties": {
18774
+ "query_type": {
18775
+ "type": "string",
18776
+ "const": "order_aggregate"
18777
+ },
18778
+ "result": {
18779
+ "type": "object",
18780
+ "properties": {
18781
+ "action": {
18782
+ "type": "string",
18783
+ "const": "order_aggregate"
18784
+ },
18785
+ "chain_id": {
18786
+ "type": "string"
18787
+ },
18788
+ "kind": {
18789
+ "type": "string"
18790
+ },
18791
+ "group": {
18792
+ "type": "string"
18793
+ },
18794
+ "group_id": {
18795
+ "anyOf": [
18796
+ {
18797
+ "type": "string"
18798
+ },
18799
+ {
18800
+ "type": "null"
18801
+ }
18802
+ ]
18803
+ },
18804
+ "metric": {
18805
+ "type": "string"
18806
+ },
18807
+ "exclude_claimed": {
18808
+ "type": "boolean"
18809
+ },
18810
+ "rows": {
18811
+ "type": "array",
18812
+ "items": {
18813
+ "type": "object",
18814
+ "properties": {
18815
+ "group_id": {
18816
+ "type": "string"
18817
+ },
18818
+ "count": {
18819
+ "type": "number"
18820
+ },
18821
+ "metric_sum": {
18822
+ "type": "string"
18823
+ },
18824
+ "max_checkpoint": {
18825
+ "type": "string"
18826
+ }
18827
+ },
18828
+ "required": [
18829
+ "group_id",
18830
+ "count",
18831
+ "metric_sum",
18832
+ "max_checkpoint"
18833
+ ],
18834
+ "additionalProperties": false
18835
+ },
18836
+ "description": "One row per group value; metric_sum is an EXACT decimal string (never a JS float)."
18837
+ },
18838
+ "totals": {
18839
+ "type": "object",
18840
+ "properties": {
18841
+ "count": {
18842
+ "type": "number"
18843
+ },
18844
+ "metric_sum": {
18845
+ "type": "string"
18846
+ }
18847
+ },
18848
+ "required": [
18849
+ "count",
18850
+ "metric_sum"
18851
+ ],
18852
+ "additionalProperties": false,
18853
+ "description": "Full-set count + sum across ALL groups (never limited)."
18854
+ },
18855
+ "truncated": {
18856
+ "type": "boolean",
18857
+ "description": "True when group rows exist beyond the limit (totals still cover the full set)."
18858
+ },
18859
+ "coverage": {
18860
+ "description": "Projection reconciliation watermark (mode/complete/reconciled_through/degraded_reasons) — cite it together with any funding-target verdict (the aggregate is only as trustworthy as the projection that served it)."
18861
+ }
18862
+ },
18863
+ "required": [
18864
+ "action",
18865
+ "chain_id",
18866
+ "kind",
18867
+ "group",
18868
+ "group_id",
18869
+ "metric",
18870
+ "exclude_claimed",
18871
+ "rows",
18872
+ "totals",
18873
+ "truncated",
18874
+ "coverage"
18875
+ ],
18876
+ "additionalProperties": false
18877
+ }
18878
+ },
18879
+ "required": [
18880
+ "query_type",
18881
+ "result"
18882
+ ],
18883
+ "additionalProperties": false
18884
+ },
18482
18885
  {
18483
18886
  "type": "object",
18484
18887
  "properties": {
@@ -19625,7 +20028,7 @@
19625
20028
  "description": "Input path inside the tool data payload."
19626
20029
  },
19627
20030
  "reason": {
19628
- "description": "Chain-authoritative routing reason, including the Guard passport requirement when the forward binds one, and the standalone-Progress limitation for namedOperator='' forwards (abort 8 — no order payer). May be absent when the caller requested response_level 'compact', which trims templated routing prose from NON-recommended options (F44/docs#49).",
20031
+ "description": "Chain-authoritative routing reason, including the Guard passport requirement when the forward binds one, and the standalone-Progress limitation for namedOperator='' forwards (abort 13 — no payer to name, fail-closed). May be absent when the caller requested response_level 'compact', which trims templated routing prose from NON-recommended options (F44/docs#49).",
19629
20032
  "type": "string"
19630
20033
  }
19631
20034
  },
@@ -20446,6 +20849,35 @@
20446
20849
  "type": "string"
20447
20850
  }
20448
20851
  },
20852
+ "red_flag_basis": {
20853
+ "description": "Evidence-basis classification of each red flag (same order/length as red_flags when present).",
20854
+ "type": "array",
20855
+ "items": {
20856
+ "type": "object",
20857
+ "properties": {
20858
+ "flag": {
20859
+ "type": "string",
20860
+ "description": "The flag text (identical to the corresponding red_flags entry)."
20861
+ },
20862
+ "basis": {
20863
+ "type": "string",
20864
+ "enum": [
20865
+ "object_defect",
20866
+ "requirement_unmet"
20867
+ ]
20868
+ },
20869
+ "rule_id": {
20870
+ "description": "The rule that fired (object_defect) or the clause target (requirement_unmet).",
20871
+ "type": "string"
20872
+ }
20873
+ },
20874
+ "required": [
20875
+ "flag",
20876
+ "basis"
20877
+ ],
20878
+ "additionalProperties": false
20879
+ }
20880
+ },
20449
20881
  "blocked": {
20450
20882
  "type": "boolean"
20451
20883
  },
@@ -20677,6 +21109,35 @@
20677
21109
  "type": "string"
20678
21110
  }
20679
21111
  },
21112
+ "red_flag_basis": {
21113
+ "description": "Evidence-basis classification of each red flag (same order/length as red_flags when present).",
21114
+ "type": "array",
21115
+ "items": {
21116
+ "type": "object",
21117
+ "properties": {
21118
+ "flag": {
21119
+ "type": "string",
21120
+ "description": "The flag text (identical to the corresponding red_flags entry)."
21121
+ },
21122
+ "basis": {
21123
+ "type": "string",
21124
+ "enum": [
21125
+ "object_defect",
21126
+ "requirement_unmet"
21127
+ ]
21128
+ },
21129
+ "rule_id": {
21130
+ "description": "The rule that fired (object_defect) or the clause target (requirement_unmet).",
21131
+ "type": "string"
21132
+ }
21133
+ },
21134
+ "required": [
21135
+ "flag",
21136
+ "basis"
21137
+ ],
21138
+ "additionalProperties": false
21139
+ }
21140
+ },
20680
21141
  "blocked": {
20681
21142
  "type": "boolean"
20682
21143
  },
@@ -22654,6 +23115,92 @@
22654
23115
  "top_risks"
22655
23116
  ],
22656
23117
  "additionalProperties": false
23118
+ },
23119
+ "blueprint_verdict": {
23120
+ "description": "Creation-time blueprint verdict: business intent + host rich semantics + logic tree composed and run through the full per-host verification battery BEFORE the guard create tx. Present when binding_hint maps to a catalog host; absent when no host is known (add binding_hint to enable).",
23121
+ "type": "object",
23122
+ "properties": {
23123
+ "host": {
23124
+ "type": "string",
23125
+ "description": "Catalog host id this guard was verified against (guard-host-context)."
23126
+ },
23127
+ "status": {
23128
+ "type": "string",
23129
+ "enum": [
23130
+ "blocked",
23131
+ "proceed_with_warnings",
23132
+ "proceed"
23133
+ ],
23134
+ "description": "Single authority over create readiness. blocked = structural defect, fix BEFORE create (guards are immutable after create)."
23135
+ },
23136
+ "statement": {
23137
+ "type": "string",
23138
+ "description": "One authoritative verdict statement naming the finding codes."
23139
+ },
23140
+ "findings": {
23141
+ "type": "array",
23142
+ "items": {
23143
+ "type": "object",
23144
+ "properties": {
23145
+ "source": {
23146
+ "type": "string",
23147
+ "description": "Which verifier produced the finding (verifyGuardBinding / auditGuardRelies / auditQuoteGuardCandidate / blueprint)."
23148
+ },
23149
+ "code": {
23150
+ "type": "string",
23151
+ "description": "Stable finding id (e.g. MF_SLOT_IDENTITY_ANCHOR, RC_NO_ORDER_ANCHOR)."
23152
+ },
23153
+ "level": {
23154
+ "type": "string",
23155
+ "enum": [
23156
+ "critical",
23157
+ "warning",
23158
+ "info"
23159
+ ]
23160
+ },
23161
+ "detail": {
23162
+ "type": "string"
23163
+ }
23164
+ },
23165
+ "required": [
23166
+ "source",
23167
+ "code",
23168
+ "level",
23169
+ "detail"
23170
+ ],
23171
+ "additionalProperties": false
23172
+ },
23173
+ "description": "All findings from the composed verification battery."
23174
+ },
23175
+ "host_context": {
23176
+ "description": "The host rich semantics this guard inherits — inlined so the design dialogue argues from facts, not memory.",
23177
+ "type": "object",
23178
+ "properties": {
23179
+ "signer_subject": {
23180
+ "type": "string"
23181
+ },
23182
+ "order_anchor": {
23183
+ "type": "string"
23184
+ },
23185
+ "identity_obligation": {
23186
+ "type": "string"
23187
+ }
23188
+ },
23189
+ "required": [
23190
+ "signer_subject",
23191
+ "order_anchor",
23192
+ "identity_obligation"
23193
+ ],
23194
+ "additionalProperties": false
23195
+ }
23196
+ },
23197
+ "required": [
23198
+ "host",
23199
+ "status",
23200
+ "statement",
23201
+ "findings"
23202
+ ],
23203
+ "additionalProperties": false
22657
23204
  }
22658
23205
  },
22659
23206
  "additionalProperties": false
@@ -23049,6 +23596,14 @@
23049
23596
  "note": {
23050
23597
  "description": "Additional note.",
23051
23598
  "type": "string"
23599
+ },
23600
+ "digest": {
23601
+ "description": "REAL transaction digest of this operation (ddmc4 B-37) — paste into onchain_transaction or a block explorer to audit. Absent under dry-run/simulation.",
23602
+ "type": "string"
23603
+ },
23604
+ "signer": {
23605
+ "description": "Signing account's on-chain address — a SEPARATE field from digest ({signer, digest}), never occupying the digest slot.",
23606
+ "type": "string"
23052
23607
  }
23053
23608
  },
23054
23609
  "required": [
@@ -23573,7 +24128,7 @@
23573
24128
  "type": "integer",
23574
24129
  "minimum": 0,
23575
24130
  "maximum": 255,
23576
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
24131
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
23577
24132
  }
23578
24133
  },
23579
24134
  "required": [
@@ -23610,7 +24165,7 @@
23610
24165
  "type": "integer",
23611
24166
  "minimum": 0,
23612
24167
  "maximum": 255,
23613
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
24168
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
23614
24169
  },
23615
24170
  "convert_witness": {
23616
24171
  "anyOf": [
@@ -24966,7 +25521,7 @@
24966
25521
  "type": "integer",
24967
25522
  "minimum": 0,
24968
25523
  "maximum": 255,
24969
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25524
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
24970
25525
  }
24971
25526
  },
24972
25527
  "required": [
@@ -24991,7 +25546,7 @@
24991
25546
  "type": "integer",
24992
25547
  "minimum": 0,
24993
25548
  "maximum": 255,
24994
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25549
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
24995
25550
  }
24996
25551
  },
24997
25552
  "required": [
@@ -25030,7 +25585,7 @@
25030
25585
  "type": "integer",
25031
25586
  "minimum": 0,
25032
25587
  "maximum": 255,
25033
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25588
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25034
25589
  }
25035
25590
  },
25036
25591
  "required": [
@@ -25066,7 +25621,7 @@
25066
25621
  "type": "integer",
25067
25622
  "minimum": 0,
25068
25623
  "maximum": 255,
25069
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25624
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25070
25625
  }
25071
25626
  },
25072
25627
  "required": [
@@ -25083,7 +25638,7 @@
25083
25638
  "type": "integer",
25084
25639
  "minimum": 0,
25085
25640
  "maximum": 255,
25086
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25641
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25087
25642
  }
25088
25643
  },
25089
25644
  "required": [
@@ -25122,7 +25677,7 @@
25122
25677
  "type": "integer",
25123
25678
  "minimum": 0,
25124
25679
  "maximum": 255,
25125
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25680
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25126
25681
  }
25127
25682
  },
25128
25683
  "required": [
@@ -25157,7 +25712,7 @@
25157
25712
  "type": "integer",
25158
25713
  "minimum": 0,
25159
25714
  "maximum": 255,
25160
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25715
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25161
25716
  }
25162
25717
  },
25163
25718
  "required": [
@@ -25174,7 +25729,7 @@
25174
25729
  "type": "integer",
25175
25730
  "minimum": 0,
25176
25731
  "maximum": 255,
25177
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25732
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25178
25733
  }
25179
25734
  },
25180
25735
  "required": [
@@ -25213,7 +25768,7 @@
25213
25768
  "type": "integer",
25214
25769
  "minimum": 0,
25215
25770
  "maximum": 255,
25216
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25771
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25217
25772
  }
25218
25773
  },
25219
25774
  "required": [
@@ -25248,7 +25803,7 @@
25248
25803
  "type": "integer",
25249
25804
  "minimum": 0,
25250
25805
  "maximum": 255,
25251
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25806
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25252
25807
  },
25253
25808
  "convert_witness": {
25254
25809
  "description": "Optional witness to derive the Progress object from the submitted Order (e.g. 'OrderProgress'): the table object is the ORDER address and the chain resolves its per-order Progress — one Guard serves every order. Omit when the table object is a concrete Progress address.",
@@ -25333,7 +25888,7 @@
25333
25888
  "type": "integer",
25334
25889
  "minimum": 0,
25335
25890
  "maximum": 255,
25336
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25891
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25337
25892
  },
25338
25893
  "convert_witness": {
25339
25894
  "description": "Optional witness to derive the Progress object from the submitted Order (e.g. 'OrderProgress'): the table object is the ORDER address and the chain resolves its per-order Progress — one Guard serves every order. Omit when the table object is a concrete Progress address.",
@@ -25404,6 +25959,91 @@
25404
25959
  "additionalProperties": false,
25405
25960
  "description": "Returns U64. Returns the TIMESTAMP (ms) of the first or last history entry matching the filter conditions — the immutable entry moment of a node (query 1280 progress.history.time). Preferred over query 1272 progress.current_time for time anchors: 1272 reads the node's CURRENT time and refreshes on re-entry (drift-prone), while 1280 is written once on entering next_node and never rewritten. Throws error if no matching entry is found (Guard validation fails)."
25406
25961
  },
25962
+ {
25963
+ "type": "object",
25964
+ "properties": {
25965
+ "type": {
25966
+ "type": "string",
25967
+ "const": "query_progress_history_time_or_zero"
25968
+ },
25969
+ "object": {
25970
+ "type": "object",
25971
+ "properties": {
25972
+ "identifier": {
25973
+ "type": "integer",
25974
+ "minimum": 0,
25975
+ "maximum": 255,
25976
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25977
+ },
25978
+ "convert_witness": {
25979
+ "description": "Optional witness to derive the Progress object from the submitted Order (e.g. 'OrderProgress'): the table object is the ORDER address and the chain resolves its per-order Progress — one Guard serves every order. Omit when the table object is a concrete Progress address.",
25980
+ "anyOf": [
25981
+ {
25982
+ "type": "integer",
25983
+ "minimum": -9007199254740991,
25984
+ "maximum": 9007199254740991
25985
+ },
25986
+ {
25987
+ "type": "string"
25988
+ }
25989
+ ]
25990
+ }
25991
+ },
25992
+ "required": [
25993
+ "identifier"
25994
+ ],
25995
+ "additionalProperties": false,
25996
+ "description": "Reference to the queried object in the Guard table: a Progress address, or an Order address when convert_witness is set."
25997
+ },
25998
+ "where": {
25999
+ "type": "object",
26000
+ "properties": {
26001
+ "node": {
26002
+ "description": "Optional filter: node name string to match.",
26003
+ "type": "string"
26004
+ },
26005
+ "nextNode": {
26006
+ "description": "Optional filter: next node name string to match — same anchor semantics as query_progress_history_time (where:{nextNode:'<node>'}, find:'last' = the IMMUTABLE moment that node was entered; find:'first' for RE-ENTERABLE states).",
26007
+ "type": "string"
26008
+ },
26009
+ "timeMin": {
26010
+ "description": "Optional filter: minimum timestamp (inclusive) for history entry time. Use string to represent U64 value.",
26011
+ "type": "string"
26012
+ },
26013
+ "timeMax": {
26014
+ "description": "Optional filter: maximum timestamp (inclusive) for history entry time. Use string to represent U64 value.",
26015
+ "type": "string"
26016
+ },
26017
+ "indexMin": {
26018
+ "description": "Optional filter: minimum history index (inclusive) to search within. Use string to represent U64 value.",
26019
+ "type": "string"
26020
+ },
26021
+ "indexMax": {
26022
+ "description": "Optional filter: maximum history index (inclusive) to search within. Use string to represent U64 value.",
26023
+ "type": "string"
26024
+ }
26025
+ },
26026
+ "additionalProperties": false,
26027
+ "description": "Filter conditions for the progress history time query."
26028
+ },
26029
+ "find": {
26030
+ "type": "string",
26031
+ "enum": [
26032
+ "first",
26033
+ "last"
26034
+ ],
26035
+ "description": "'first' finds the earliest matching history entry, 'last' finds the most recent matching history entry."
26036
+ }
26037
+ },
26038
+ "required": [
26039
+ "type",
26040
+ "object",
26041
+ "where",
26042
+ "find"
26043
+ ],
26044
+ "additionalProperties": false,
26045
+ "description": "Returns U64. S17-D (F-RQD2-04): the NO-MATCH twin of query 1280 progress.history.time — identical conditions, identical wire shape; when NO history entry matches it returns the sentinel 0 (the 'anchor node never entered' state) instead of throwing the runtime error that 1280 throws. Purpose: goal-missed / never-entered rails that 1280's abort turns into stranded funds (rqd2 O2: a 'refund when target not reached' rail anchored on nextNode:'funded' crashes for an order that never reached funded — the exact state the rail exists to protect). Sentinel 0 is unambiguous: a matched entry's time is always a real validator-clock timestamp > 0. Polarity: lesser_or_equal[or_zero, T] PASSES on never-entered; greater_or_equal FAILS. 'refund when never entered OR window elapsed' = logic_or[logic_equal(or_zero, 0), clock >= or_zero + window]. Choose 1280 when a missing anchor MUST fail the guard (delivery-window settlement legs); choose this when a missing anchor is a legitimate business state."
26046
+ },
25407
26047
  {
25408
26048
  "type": "object",
25409
26049
  "properties": {
@@ -25418,7 +26058,7 @@
25418
26058
  "type": "integer",
25419
26059
  "minimum": 0,
25420
26060
  "maximum": 255,
25421
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26061
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25422
26062
  }
25423
26063
  },
25424
26064
  "required": [
@@ -25479,7 +26119,7 @@
25479
26119
  "type": "integer",
25480
26120
  "minimum": 0,
25481
26121
  "maximum": 255,
25482
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26122
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25483
26123
  }
25484
26124
  },
25485
26125
  "required": [
@@ -25565,7 +26205,7 @@
25565
26205
  "type": "integer",
25566
26206
  "minimum": 0,
25567
26207
  "maximum": 255,
25568
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26208
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25569
26209
  }
25570
26210
  },
25571
26211
  "required": [
@@ -25605,7 +26245,7 @@
25605
26245
  "type": "integer",
25606
26246
  "minimum": 0,
25607
26247
  "maximum": 255,
25608
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26248
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25609
26249
  }
25610
26250
  },
25611
26251
  "required": [
@@ -25654,7 +26294,7 @@
25654
26294
  "type": "integer",
25655
26295
  "minimum": 0,
25656
26296
  "maximum": 255,
25657
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26297
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25658
26298
  }
25659
26299
  },
25660
26300
  "required": [
@@ -25712,7 +26352,7 @@
25712
26352
  "type": "integer",
25713
26353
  "minimum": 0,
25714
26354
  "maximum": 255,
25715
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26355
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25716
26356
  }
25717
26357
  },
25718
26358
  "required": [
@@ -25779,7 +26419,7 @@
25779
26419
  "type": "integer",
25780
26420
  "minimum": 0,
25781
26421
  "maximum": 255,
25782
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26422
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25783
26423
  }
25784
26424
  },
25785
26425
  "required": [
@@ -25795,7 +26435,7 @@
25795
26435
  "type": "integer",
25796
26436
  "minimum": 0,
25797
26437
  "maximum": 255,
25798
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26438
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25799
26439
  }
25800
26440
  },
25801
26441
  "required": [
@@ -25811,7 +26451,7 @@
25811
26451
  "type": "integer",
25812
26452
  "minimum": 0,
25813
26453
  "maximum": 255,
25814
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26454
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
25815
26455
  }
25816
26456
  },
25817
26457
  "required": [
@@ -26062,7 +26702,7 @@
26062
26702
  "type": "integer",
26063
26703
  "minimum": 0,
26064
26704
  "maximum": 255,
26065
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26705
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26066
26706
  }
26067
26707
  },
26068
26708
  "required": [
@@ -26078,7 +26718,7 @@
26078
26718
  "type": "integer",
26079
26719
  "minimum": 0,
26080
26720
  "maximum": 255,
26081
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26721
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26082
26722
  }
26083
26723
  },
26084
26724
  "required": [
@@ -26094,7 +26734,7 @@
26094
26734
  "type": "integer",
26095
26735
  "minimum": 0,
26096
26736
  "maximum": 255,
26097
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26737
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26098
26738
  }
26099
26739
  },
26100
26740
  "required": [
@@ -26345,7 +26985,7 @@
26345
26985
  "type": "integer",
26346
26986
  "minimum": 0,
26347
26987
  "maximum": 255,
26348
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26988
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26349
26989
  }
26350
26990
  },
26351
26991
  "required": [
@@ -26361,7 +27001,7 @@
26361
27001
  "type": "integer",
26362
27002
  "minimum": 0,
26363
27003
  "maximum": 255,
26364
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27004
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26365
27005
  }
26366
27006
  },
26367
27007
  "required": [
@@ -26377,7 +27017,7 @@
26377
27017
  "type": "integer",
26378
27018
  "minimum": 0,
26379
27019
  "maximum": 255,
26380
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27020
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26381
27021
  }
26382
27022
  },
26383
27023
  "required": [
@@ -26612,7 +27252,7 @@
26612
27252
  "where"
26613
27253
  ],
26614
27254
  "additionalProperties": false,
26615
- "description": "Returns U256. ESCROW-BOUND sum (query 1179): per-row min(row_value, order.amount of the Order the row id names); a row keyed by anything that is not an Order contributes 0 (fail-closed). Unlike query_repository_data_sum_where (self-reported row values), a record cannot claim more than the Order actually escrowed — the forgery-proof aggregate for threshold gates and Formula pricing. Use logic_as_u256_* to compare the sum."
27255
+ "description": "Returns U256. ESCROW-BOUND sum (query 1179, live cap v140): per-row min(row_value, order.amount, LIVE allocation.balance of the Order the row id names) — only funds still in escrow right now count, so a refunded or already-disbursed order contributes 0 naturally; a row whose Order has no allocation link also contributes 0, while an unreadable allocation object aborts the query (corruption is never a silent 0). A row keyed by anything that is not an Order contributes 0 (fail-closed). Unlike query_repository_data_sum_where (self-reported row values), a record cannot claim more than the escrow actually bound to it — the forgery-proof aggregate for threshold gates and Formula pricing. Use logic_as_u256_* to compare the sum."
26616
27256
  },
26617
27257
  {
26618
27258
  "type": "object",
@@ -26628,7 +27268,7 @@
26628
27268
  "type": "integer",
26629
27269
  "minimum": 0,
26630
27270
  "maximum": 255,
26631
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27271
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26632
27272
  }
26633
27273
  },
26634
27274
  "required": [
@@ -26644,7 +27284,7 @@
26644
27284
  "type": "integer",
26645
27285
  "minimum": 0,
26646
27286
  "maximum": 255,
26647
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27287
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26648
27288
  }
26649
27289
  },
26650
27290
  "required": [
@@ -26660,7 +27300,7 @@
26660
27300
  "type": "integer",
26661
27301
  "minimum": 0,
26662
27302
  "maximum": 255,
26663
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27303
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26664
27304
  }
26665
27305
  },
26666
27306
  "required": [
@@ -26911,7 +27551,7 @@
26911
27551
  "type": "integer",
26912
27552
  "minimum": 0,
26913
27553
  "maximum": 255,
26914
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27554
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26915
27555
  }
26916
27556
  },
26917
27557
  "required": [
@@ -26927,7 +27567,7 @@
26927
27567
  "type": "integer",
26928
27568
  "minimum": 0,
26929
27569
  "maximum": 255,
26930
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27570
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26931
27571
  }
26932
27572
  },
26933
27573
  "required": [
@@ -27177,7 +27817,7 @@
27177
27817
  "type": "integer",
27178
27818
  "minimum": 0,
27179
27819
  "maximum": 255,
27180
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27820
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27181
27821
  }
27182
27822
  },
27183
27823
  "required": [
@@ -27208,7 +27848,7 @@
27208
27848
  "type": "integer",
27209
27849
  "minimum": 0,
27210
27850
  "maximum": 255,
27211
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27851
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27212
27852
  }
27213
27853
  },
27214
27854
  "required": [
@@ -27239,7 +27879,7 @@
27239
27879
  "type": "integer",
27240
27880
  "minimum": 0,
27241
27881
  "maximum": 255,
27242
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27882
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27243
27883
  }
27244
27884
  },
27245
27885
  "required": [
@@ -27255,7 +27895,7 @@
27255
27895
  "type": "integer",
27256
27896
  "minimum": 0,
27257
27897
  "maximum": 255,
27258
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27898
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27259
27899
  }
27260
27900
  },
27261
27901
  "required": [
@@ -27293,7 +27933,7 @@
27293
27933
  "type": "integer",
27294
27934
  "minimum": 0,
27295
27935
  "maximum": 255,
27296
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27936
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27297
27937
  }
27298
27938
  },
27299
27939
  "required": [
@@ -27309,7 +27949,7 @@
27309
27949
  "type": "integer",
27310
27950
  "minimum": 0,
27311
27951
  "maximum": 255,
27312
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27952
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27313
27953
  }
27314
27954
  },
27315
27955
  "required": [
@@ -27333,7 +27973,7 @@
27333
27973
  "type": "integer",
27334
27974
  "minimum": 0,
27335
27975
  "maximum": 255,
27336
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds). SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27976
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27337
27977
  }
27338
27978
  },
27339
27979
  "required": [