@wowok/agent-mcp 3.1.7 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/dist/config/exposure.d.ts +10 -10
  2. package/dist/config/judgment.d.ts +25 -25
  3. package/dist/config/rule-engine.d.ts +25 -25
  4. package/dist/customer/user-preferences.d.ts +2 -2
  5. package/dist/evaluation/arbitration-game.js +1 -1
  6. package/dist/evaluation/capability.d.ts +1 -1
  7. package/dist/evaluation/extract.js +1 -1
  8. package/dist/evaluation/match-operation.js +1 -1
  9. package/dist/extensions/industry-pack.d.ts +3 -2
  10. package/dist/extensions/industry-pack.js +1 -1
  11. package/dist/extensions/modes.js +1 -1
  12. package/dist/extensions/registry.js +1 -1
  13. package/dist/extensions/types.d.ts +1 -0
  14. package/dist/graph/onchain/analyze.js +1 -1
  15. package/dist/graph/onchain/analyze.spec.js +1 -1
  16. package/dist/graph/onchain/edge-schema.js +1 -1
  17. package/dist/graph/onchain/extract.js +1 -1
  18. package/dist/graph/onchain/field-manifest.js +1 -1
  19. package/dist/graph/onchain/project-relationship.js +1 -1
  20. package/dist/graph/onchain/types.d.ts +1 -1
  21. package/dist/harness/recover.js +1 -1
  22. package/dist/keeper/KeeperScan.d.ts +2 -1
  23. package/dist/keeper/KeeperScan.js +1 -1
  24. package/dist/keeper/detectors.d.ts +9 -0
  25. package/dist/keeper/detectors.js +1 -1
  26. package/dist/keeper/keeper.spec.js +1 -1
  27. package/dist/keeper/types.d.ts +1 -1
  28. package/dist/keeper/types.js +1 -1
  29. package/dist/knowledge/allocation-ledger.d.ts +4 -1
  30. package/dist/knowledge/allocation-ledger.js +1 -1
  31. package/dist/knowledge/allocation-puzzle.d.ts +2 -0
  32. package/dist/knowledge/allocation-puzzle.js +1 -1
  33. package/dist/knowledge/allocation-risk.d.ts +1 -1
  34. package/dist/knowledge/allocation-risk.js +1 -1
  35. package/dist/knowledge/arb-risk.d.ts +3 -1
  36. package/dist/knowledge/arb-risk.js +1 -1
  37. package/dist/knowledge/arbitration-ledger.js +1 -1
  38. package/dist/knowledge/arbitration-risk.js +1 -1
  39. package/dist/knowledge/arbitration-templates.d.ts +1 -0
  40. package/dist/knowledge/arbitration-templates.js +1 -1
  41. package/dist/knowledge/audit-rules.d.ts +13 -2
  42. package/dist/knowledge/audit-rules.js +1 -1
  43. package/dist/knowledge/baselines/rules/allocation.json +50 -1
  44. package/dist/knowledge/baselines/rules/arb.json +20 -1
  45. package/dist/knowledge/baselines/rules/arbitration.json +27 -0
  46. package/dist/knowledge/baselines/rules/guard.json +75 -2
  47. package/dist/knowledge/baselines/rules/machine.json +38 -13
  48. package/dist/knowledge/baselines/rules/order.json +2 -2
  49. package/dist/knowledge/builtin-templates.d.ts +3 -1
  50. package/dist/knowledge/builtin-templates.js +1 -1
  51. package/dist/knowledge/event-semantics.js +1 -1
  52. package/dist/knowledge/fund-layer.js +1 -1
  53. package/dist/knowledge/getting-started.js +1 -1
  54. package/dist/knowledge/guard-anchor-reach.d.ts +19 -0
  55. package/dist/knowledge/guard-anchor-reach.js +1 -0
  56. package/dist/knowledge/guard-bindings.js +1 -1
  57. package/dist/knowledge/guard-design-patterns.d.ts +1 -1
  58. package/dist/knowledge/guard-design-patterns.js +1 -1
  59. package/dist/knowledge/guard-ledger.js +1 -1
  60. package/dist/knowledge/guard-lint.js +1 -1
  61. package/dist/knowledge/guard-render.d.ts +6 -0
  62. package/dist/knowledge/guard-render.js +1 -1
  63. package/dist/knowledge/guard-risk.js +1 -1
  64. package/dist/knowledge/guard-submission-prompt.d.ts +6 -0
  65. package/dist/knowledge/guard-submission-prompt.js +1 -1
  66. package/dist/knowledge/guard-templates.d.ts +1 -1
  67. package/dist/knowledge/guard-templates.js +1 -1
  68. package/dist/knowledge/index.d.ts +4 -4
  69. package/dist/knowledge/index.js +1 -1
  70. package/dist/knowledge/industry-generalizer.js +1 -1
  71. package/dist/knowledge/industry-registry.d.ts +1 -1
  72. package/dist/knowledge/industry-registry.js +1 -1
  73. package/dist/knowledge/jsonrpc-enum.js +1 -1
  74. package/dist/knowledge/machine-ledger.js +1 -1
  75. package/dist/knowledge/machine-risk.js +1 -1
  76. package/dist/knowledge/machine-templates.js +1 -1
  77. package/dist/knowledge/order-ledger.js +1 -1
  78. package/dist/knowledge/order-templates.js +1 -1
  79. package/dist/knowledge/permission-ledger.js +1 -1
  80. package/dist/knowledge/release-sentinel.d.ts +12 -0
  81. package/dist/knowledge/release-sentinel.js +1 -0
  82. package/dist/knowledge/repository-write-semantics.d.ts +27 -0
  83. package/dist/knowledge/repository-write-semantics.js +1 -0
  84. package/dist/knowledge/rule-node-analyzers.d.ts +6 -0
  85. package/dist/knowledge/rule-node-analyzers.js +1 -1
  86. package/dist/knowledge/safety-rules.d.ts +5 -1
  87. package/dist/knowledge/safety-rules.js +1 -1
  88. package/dist/knowledge/scenario-modes.d.ts +10 -1
  89. package/dist/knowledge/scenario-modes.js +1 -1
  90. package/dist/knowledge/service-allocation-semantics.d.ts +36 -0
  91. package/dist/knowledge/service-allocation-semantics.js +1 -0
  92. package/dist/knowledge/strategy-manuals.d.ts +3 -5
  93. package/dist/knowledge/strategy-manuals.js +1 -1
  94. package/dist/knowledge/template-loader.d.ts +28 -12
  95. package/dist/knowledge/template-loader.js +1 -1
  96. package/dist/knowledge/template-registry.js +1 -1
  97. package/dist/knowledge/template-scanner.js +1 -1
  98. package/dist/knowledge/tools-reference.js +1 -1
  99. package/dist/knowledge/workflow-guidance.d.ts +26 -0
  100. package/dist/knowledge/workflow-guidance.js +1 -1
  101. package/dist/monitor/MonitorLoop.js +1 -1
  102. package/dist/participation/allocation-advice.d.ts +38 -0
  103. package/dist/participation/allocation-advice.js +1 -0
  104. package/dist/participation/radar-core.d.ts +2 -0
  105. package/dist/persona/types.d.ts +3 -2
  106. package/dist/persona/types.js +1 -1
  107. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  108. package/dist/playbooks/service-build/intent-analyzer.js +1 -1
  109. package/dist/playbooks/service-build/merchant-guide.d.ts +70 -63
  110. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  111. package/dist/playbooks/service-build/migration-planner.js +1 -1
  112. package/dist/playbooks/service-build/mode-actions.d.ts +5 -0
  113. package/dist/playbooks/service-build/mode-actions.js +1 -1
  114. package/dist/playbooks/service-build/participation-radar.js +1 -1
  115. package/dist/playbooks/service-build/semantic-graph.d.ts +1 -0
  116. package/dist/playbooks/service-build/semantic-graph.js +1 -1
  117. package/dist/playbooks/service-build/service-quote.d.ts +2 -0
  118. package/dist/playbooks/service-build/service-quote.js +1 -0
  119. package/dist/relationship/derivation.d.ts +1 -1
  120. package/dist/safety/confirm-gate.js +1 -1
  121. package/dist/schema/benchmark-migration/index.d.ts +30 -8
  122. package/dist/schema/benchmark-migration/index.js +1 -1
  123. package/dist/schema/call/allocation.d.ts +6 -3
  124. package/dist/schema/call/arbitration.js +1 -1
  125. package/dist/schema/call/base.js +1 -1
  126. package/dist/schema/call/guard.d.ts +8 -8
  127. package/dist/schema/call/machine.d.ts +56 -0
  128. package/dist/schema/call/machine.js +1 -1
  129. package/dist/schema/call/order.js +1 -1
  130. package/dist/schema/call/payment.js +1 -1
  131. package/dist/schema/call/semantic.js +1 -1
  132. package/dist/schema/call/service.d.ts +84 -22
  133. package/dist/schema/call/service.js +1 -1
  134. package/dist/schema/common/index.js +1 -1
  135. package/dist/schema/common/tokentype-short-probe.spec.js +1 -0
  136. package/dist/schema/evaluation/index.d.ts +8 -80
  137. package/dist/schema/evaluation/index.js +1 -1
  138. package/dist/schema/goal/index.d.ts +9 -42
  139. package/dist/schema/goal/planning.d.ts +25 -60
  140. package/dist/schema/goal/planning.js +1 -1
  141. package/dist/schema/intent-radar/index.d.ts +2 -20
  142. package/dist/schema/intent-radar/index.js +1 -1
  143. package/dist/schema/interaction/index.d.ts +1 -1
  144. package/dist/schema/keeper/index.d.ts +3 -0
  145. package/dist/schema/keeper/index.js +1 -1
  146. package/dist/schema/local/index.js +1 -1
  147. package/dist/schema/operations.d.ts +74 -14
  148. package/dist/schema/persona/index.d.ts +279 -384
  149. package/dist/schema/persona/index.js +1 -1
  150. package/dist/schema/query/bi.d.ts +149 -10
  151. package/dist/schema/query/bi.js +1 -1
  152. package/dist/schema/query/index.d.ts +35 -16
  153. package/dist/schema/query/index.js +1 -1
  154. package/dist/schema/schema-query/index.d.ts +4 -4
  155. package/dist/schema/schema-version.js +1 -1
  156. package/dist/schema/watch/index.d.ts +2 -2
  157. package/dist/schema-query-impl/index.d.ts +1 -0
  158. package/dist/schema-query-impl/index.js +1 -1
  159. package/dist/schemas/account_operation.output.json +2 -2
  160. package/dist/schemas/benchmark_migration_operation.output.json +116 -2
  161. package/dist/schemas/benchmark_migration_operation.schema.json +2 -10
  162. package/dist/schemas/bridge_operation.output.json +2 -2
  163. package/dist/schemas/evaluation_operation.schema.json +7 -70
  164. package/dist/schemas/goal_operation.schema.json +6 -39
  165. package/dist/schemas/index.json +1 -1
  166. package/dist/schemas/intent_radar.output.json +4 -20
  167. package/dist/schemas/keeper_operation.output.json +2 -2
  168. package/dist/schemas/keeper_operation.schema.json +9 -4
  169. package/dist/schemas/local_history_operation.output.json +2 -2
  170. package/dist/schemas/local_info_operation.output.json +2 -2
  171. package/dist/schemas/local_mark_operation.output.json +2 -2
  172. package/dist/schemas/messenger_operation.output.json +2 -2
  173. package/dist/schemas/monitor_events.output.json +2 -2
  174. package/dist/schemas/monitor_subscription.output.json +2 -2
  175. package/dist/schemas/onchain_events.output.json +2 -2
  176. package/dist/schemas/onchain_operations.output.json +6 -6
  177. package/dist/schemas/onchain_operations.schema.json +227 -54
  178. package/dist/schemas/onchain_operations_allocation.schema.json +11 -10
  179. package/dist/schemas/onchain_operations_arbitration.schema.json +13 -13
  180. package/dist/schemas/onchain_operations_machine.schema.json +27 -5
  181. package/dist/schemas/onchain_operations_order.schema.json +1 -1
  182. package/dist/schemas/onchain_operations_payment.schema.json +2 -2
  183. package/dist/schemas/onchain_operations_reward.schema.json +1 -1
  184. package/dist/schemas/onchain_operations_service.schema.json +171 -21
  185. package/dist/schemas/onchain_operations_treasury.schema.json +1 -1
  186. package/dist/schemas/onchain_table_data.output.json +57 -4
  187. package/dist/schemas/persona_operation.output.json +11 -88
  188. package/dist/schemas/persona_operation.schema.json +4 -32
  189. package/dist/schemas/query_toolkit.output.json +320 -22
  190. package/dist/schemas/query_toolkit.schema.json +53 -0
  191. package/dist/tools/handlers/benchmark-migration.js +1 -1
  192. package/dist/tools/handlers/config.js +1 -1
  193. package/dist/tools/handlers/dispatch-expectations.spec.js +1 -1
  194. package/dist/tools/handlers/keeper.d.ts +1 -1
  195. package/dist/tools/handlers/onchain.js +1 -1
  196. package/dist/tools/handlers/query.js +1 -1
  197. package/dist/tools/handlers/schema-query.js +1 -1
  198. package/dist/tools/index.js +1 -1
  199. package/dist/tools/move-fn-index.gen.js +1 -1
  200. package/dist/tools/registry/business.js +1 -1
  201. package/dist/tools/wrap.js +1 -1
  202. package/package.json +2 -2
  203. package/dist/knowledge/alloc-audit-policy.spec.js +0 -1
  204. package/dist/knowledge/event-semantics.spec.d.ts +0 -1
  205. package/dist/knowledge/event-semantics.spec.js +0 -1
  206. package/dist/knowledge/facts-sync.spec.d.ts +0 -1
  207. package/dist/knowledge/facts-sync.spec.js +0 -1
  208. package/dist/knowledge/guard-design-patterns.spec.d.ts +0 -1
  209. package/dist/knowledge/guard-design-patterns.spec.js +0 -1
  210. package/dist/knowledge/guard-eval.spec.d.ts +0 -1
  211. package/dist/knowledge/guard-eval.spec.js +0 -1
  212. package/dist/knowledge/rule-node-analyzers.spec.d.ts +0 -1
  213. package/dist/knowledge/rule-node-analyzers.spec.js +0 -1
  214. package/dist/knowledge/safety-rules.extract-amount.spec.d.ts +0 -1
  215. package/dist/knowledge/safety-rules.extract-amount.spec.js +0 -1
  216. package/dist/knowledge/template-loader.spec.d.ts +0 -1
  217. package/dist/knowledge/template-loader.spec.js +0 -1
  218. package/dist/knowledge/template-scanner.spec.d.ts +0 -1
  219. package/dist/knowledge/template-scanner.spec.js +0 -1
  220. /package/dist/{knowledge/alloc-audit-policy.spec.d.ts → schema/common/tokentype-short-probe.spec.d.ts} +0 -0
@@ -1 +1 @@
1
- export const GUARD_DESIGN_PATTERNS=[{'id':'pattern.identity_check_single','business_requirement':'Only\x20the\x20author\x20can\x20purchase\x20this\x20service\x20(strict\x20single-identity)','data_source':'SystemContext','host':'service_buy_guard','verifier_level':'level1_strict_single','logic_summary':'logic_equal[context(Signer),\x20identifier[N](fixed_address)]','key_queries':[],'mitigated_risks':['R-C4-04'],'notes':['Maximally\x20secure\x20but\x20maximally\x20inconvenient','If\x20address\x20is\x20unavailable\x20(key\x20loss,\x20rotation),\x20Guard\x20permanently\x20blocks','Avoid\x20unless\x20role\x20is\x20permanently\x20tied\x20to\x20one\x20address']},{'id':'pattern.identity_check_allowlist','business_requirement':'Customer\x20must\x20be\x20in\x20an\x20allowlist\x20to\x20purchase','data_source':'SystemContext','host':'service_buy_guard','verifier_level':'level2_identity_set','logic_summary':'vec_contains_address[identifier[N](allowlist_vec),\x20context(Signer)]','key_queries':[],'mitigated_risks':['R-C4-04'],'notes':['Allowlist\x20stored\x20as\x20Address\x20vector\x20in\x20table\x20constant']},{'id':'pattern.identity_check_order_holder','business_requirement':'Only\x20order\x20owner\x20or\x20agent\x20can\x20perform\x20operation','data_source':'OnChainConstant','host':'machine_forward','verifier_level':'level2_identity_set','logic_summary':'logic_or[logic_equal[query(1562\x20order.owner),\x20context(Signer)],\x20query(1567\x20order.agent\x20has,\x20Signer)]','key_queries':['order.owner','order.agent\x20has'],'mitigated_risks':['R-C4-04','R-C3-06'],'notes':['1562\x20returns\x20Address\x20→\x20wrap\x20in\x20logic_equal','1567\x20returns\x20Bool\x20→\x20use\x20directly\x20as\x20logic_or\x20child','Recommended\x20Level\x202\x20alternative\x20to\x20Level\x201\x20strict\x20binding']},{'id':'pattern.identity_check_service_provider_dynamic','business_requirement':'Verify\x20caller\x20is\x20service\x27s\x20current\x20permission\x20owner\x20(survives\x20permission\x20rotation)','data_source':'SubmittedObject','host':'machine_forward','verifier_level':'level2_identity_set','logic_summary':'logic_and[logic_equal[query(1488\x20service.permission),\x20identifier[N](submitted_perm)],\x20logic_or[logic_equal[query(1002\x20permission.owner),\x20context(Signer)],\x20query(1004\x20permission.admin\x20has,\x20Signer)]]','key_queries':['service.permission','permission.owner','permission.admin\x20has'],'mitigated_risks':['R-C4-04','R-C3-05'],'notes':['Dynamic\x20permission\x20address\x20(RECOMMENDED)\x20—\x20survives\x20Service\x20permission\x20rotation','Caller\x20submits\x20permission\x20address;\x20Guard\x20verifies\x20match\x20then\x20checks\x20identity','More\x20complex\x20than\x20static\x20but\x20far\x20more\x20robust']},{'id':'pattern.time_lock_progress','business_requirement':'Customer\x20must\x20wait\x20N\x20hours\x20before\x20completing\x20(time-lock)','data_source':'WitnessDerived','host':'machine_forward','verifier_level':'none','logic_summary':'logic_as_u256_greater_or_equal[context(Clock),\x20calc_number_add[query(1272\x20progress.current_time,\x20witness=OrderProgress),\x20identifier[N](duration_ms)]]','key_queries':['progress.current_time'],'witness_types':['OrderProgress'],'mitigated_risks':[],'notes':['Use\x20convert_witness=100\x20(OrderProgress)\x20to\x20derive\x20Progress\x20from\x20submitted\x20Order\x20ID','Duration\x20in\x20milliseconds\x20—\x20test\x20with\x20small\x20values\x20first']},{'id':'pattern.time_lock_absolute','business_requirement':'Operation\x20allowed\x20only\x20after\x20a\x20fixed\x20timestamp','data_source':'SystemContext','host':'service_buy_guard','verifier_level':'none','logic_summary':'logic_as_u256_greater_or_equal[context(Clock),\x20identifier[N](release_timestamp)]','key_queries':[],'mitigated_risks':[],'notes':['Useful\x20for\x20pre-sale\x20windows,\x20embargo\x20periods']},{'id':'pattern.repository_data_check','business_requirement':'External\x20data\x20must\x20match\x20expected\x20value\x20(e.g.,\x20weather,\x20price\x20feed)','data_source':'OnChainConstant','host':'machine_forward','verifier_level':'none','logic_summary':'logic_equal[query(1167\x20repository.data,\x20policy,\x20key),\x20identifier[N](expected_value)]','key_queries':['repository.data'],'mitigated_risks':[],'notes':['Repository\x20address\x20declared\x20as\x20table\x20constant','Timestamp\x20keys\x20may\x20need\x20convert_number_address','quote_guard\x20context:\x20fails\x20in\x20gen_passport\x20(impack_list\x20empty),\x20works\x20in\x20on-chain\x20business\x20operations\x20(see\x20R-X1-10)']},{'id':'pattern.repository_quote_guard_subscription','business_requirement':'Repository\x20data\x20access\x20requires\x20payment\x20proof\x20(subscription\x20revenue\x20model)','data_source':'SubmittedObject','host':'repository_write','verifier_level':'level3_scene_combined','logic_summary':'Repository\x20policy\x20sets\x20quote_guard\x20(a\x20standalone\x20repository-backed\x20guard:\x20immutable\x20+\x20rep=true).\x20'+'When\x20a\x20Guard\x20queries\x20this\x20Repository\x27s\x20data\x20(query\x201167),\x20check_repository_quote_guard\x20verifies\x20'+'the\x20quote_guard\x20is\x20in\x20impack_list.\x20The\x20quote_guard\x20itself\x20verifies\x20a\x20submitted\x20Payment\x20'+'(payment.info.for\x20matches\x20Repository,\x20payment.amount\x20meets\x20subscription\x20price).\x20'+'User\x20submits\x20Payment\x20via\x20Passport\x20→\x20quote_guard\x20verified\x20→\x20added\x20to\x20impack_list\x20→\x20query\x201167\x20passes.','key_queries':['repository.data','payment.info.for','payment.amount'],'mitigated_risks':['R-X1-10'],'applicable_industries':['subscription','travel','rental','education'],'notes':['VERIFIED:\x20passport.rs#L545-612\x20(check_repository_quote_guard),\x20passport.rs#L758-769\x20(trigger\x20at\x20query_id==1167)','Repository.owner_receive<T>\x20accepts\x20Payment\x20as\x20subscription\x20revenue','quote_guard\x20must\x20be\x20a\x20standalone\x20repository-backed\x20guard:\x20immutable=true,\x20relies\x20empty,\x20rep=true','VERIFIER-EVIDENCE\x20DESIGN:\x20user\x20submits\x20valid\x20Payment,\x20quote_guard\x20verifies\x20Payment\x20fields\x20—\x20no\x20object-linker\x20binding\x20needed','gen_passport\x20context:\x20quote_guard\x20fails\x20(impack_list\x20empty)\x20—\x20only\x20use\x20for\x20on-chain\x20business\x20operations','Business\x20model:\x20data\x20provider\x20publishes\x20weather/market/oracle\x20data\x20to\x20Repository,\x20'+'users\x20pay\x20subscription\x20to\x20access\x20data\x20in\x20their\x20Machine\x20flows','MODE\x20A\x20(direct\x20payment\x20verify)\x20—\x20four\x20verifiable\x20elements\x20on\x20the\x20submitted\x20Payment:\x20'+'1)\x20amount:\x20logic_as_u256_greater_or_equal[payment.amount,\x20N]\x20(>=\x20subscription\x20price);\x20'+'2)\x20subscription\x20type:\x20payment.info.remark\x20/\x20payment.info.index\x20encodes\x20the\x20tier/plan;\x20'+'3)\x20fixed\x20recipient:\x20payment.record.recipient\x20must\x20equal\x20the\x20designated\x20payee\x20(Treasury/owner\x20address);\x20'+'4)\x20occurrence\x20time:\x20payment.time\x20within\x20the\x20validity\x20window\x20(logic_as_u256_greater_or_equal\x20/\x20logic_as_u256_lesser_or_equal\x20vs\x20context(Clock))','Payment\x20is\x20freeze_object\x20after\x20creation\x20—\x20all\x20four\x20elements\x20are\x20tamper-proof\x20evidence','For\x20a\x20LOWER\x20user-cost\x20variant\x20(no\x20per-user\x20payment\x20submission),\x20see\x20pattern.repository_whitelist_sync\x20(Mode\x20B)']},{'id':'pattern.repository_whitelist_sync','business_requirement':'Entitlement\x20check\x20via\x20a\x20synced\x20allowlist\x20Repository\x20instead\x20of\x20per-user\x20payment\x20submission\x20(low-friction\x20entitlements:\x20memberships,\x20authorizations,\x20paid-user\x20lists)','data_source':'OnChainConstant','host':'machine_forward','verifier_level':'none','logic_summary':'Off-chain\x20collector\x20gathers\x20eligible\x20users\x20(transfers\x20/\x20Payments\x20to\x20the\x20designated\x20receiving\x20address\x20or\x20object,\x20'+'Service\x20orders,\x20or\x20any\x20off-chain\x20record)\x20and\x20syncs\x20the\x20list\x20into\x20a\x20dedicated\x20Repository\x20object\x20'+'(entries\x20may\x20carry\x20a\x20validity\x20window,\x20e.g.\x20authorized\x20time\x20period).\x20'+'The\x20consuming\x20Guard\x20checks\x20membership\x20via\x20query\x201166/1167\x20(repository.data)\x20keyed\x20by\x20the\x20caller:\x20'+'vec_contains_address-style\x20logic_or\x20over\x20[repository.data(key=Signer)]\x20or\x20logic_equal[repository.data(...),\x20identifier[N](expected)].\x20'+'Repository\x20writes\x20go\x20through\x20the\x20id-keyed\x20data\x20write\x20operations\x20(batch\x20up\x20to\x20100\x20entries\x20per\x20tx).','key_queries':['repository.data'],'mitigated_risks':['R-X1-10'],'applicable_industries':['subscription','travel','rental','education'],'notes':['MODE\x20B\x20(whitelist\x20sync)\x20—\x20user-cost\x20optimization\x20of\x20Mode\x20A\x20(pattern.repository_quote_guard_subscription):\x20'+'users\x20do\x20NOT\x20submit\x20a\x20Payment\x20at\x20verification\x20time;\x20the\x20operator\x20proves\x20eligibility\x20off-chain\x20and\x20syncs\x20the\x20roster','TRADE-OFF:\x20eventual\x20consistency\x20—\x20the\x20roster\x20updates\x20at\x20the\x20collector\x27s\x20sync\x20frequency\x20(slight\x20delay),\x20'+'vs\x20Mode\x20A\x27s\x20instant\x20per-payment\x20proof.\x20Choose\x20by\x20business:\x20high-frequency\x20low-value\x20→\x20Mode\x20B;\x20'+'high-value\x20instant\x20entitlement\x20→\x20Mode\x20A','Entry\x20shape:\x20key\x20=\x20user\x20address\x20(or\x20derived\x20id),\x20value\x20=\x20expiry\x20timestamp\x20/\x20tier\x20/\x20scope;\x20'+'time-window\x20enforcement\x20compares\x20entry\x20value\x20against\x20context(Clock)\x20in\x20the\x20Guard','VERIFIED:\x20id-keyed\x20data\x20writes\x20(batch\x20≤100),\x20guard-ins.ts\x201166/1167\x20(repository.data\x20queries),\x20'+'standalone-guard\x20marking\x20(1167\x20marks\x20query-only\x20repositories)','The\x20collector\x20can\x20source\x20eligibility\x20from:\x20transfers\x20or\x20Payments\x20to\x20a\x20fixed\x20receiving\x20address/object,\x20'+'Service\x20orders\x20(order.service\x20==\x20designated\x20service),\x20or\x20external\x20off-chain\x20records','Repository\x20access\x20economics\x20stay\x20OUT\x20of\x20this\x20pattern\x20(K3\x2010\x20§5\x20D5\x20ruling:\x20reuse\x20Reward/Allocation\x20'+'outside\x20the\x20Repository\x20for\x20payment;\x20the\x20Repository\x20here\x20is\x20the\x20roster,\x20not\x20the\x20payment\x20rail)']},{'id':'pattern.supply_chain_suborder_verification','business_requirement':'Sub-service\x20purchase\x20requires\x20ownership\x20of\x20main\x20service\x20order\x20(supply\x20chain\x20milestone\x20unlock)','data_source':'SubmittedObject','host':'service_buy_guard','verifier_level':'level2_identity_set','logic_summary':'Sub-service\x20buy_guard\x20verifies\x20submitted\x20main\x20Order:\x20'+'logic_and[logic_equal[query(order.owner),\x20context(Signer)],\x20logic_equal[query(order.service),\x20identifier[N](main_service_address)]].\x20'+'User\x20submits\x20main\x20Order\x20via\x20Passport\x20(b_submission=true),\x20buy_guard\x20verifies\x20ownership\x20+\x20service\x20match.','key_queries':['order.owner','order.service'],'mitigated_risks':['R-C3-05'],'applicable_industries':['travel','rental','education','freelance'],'notes':['VERIFIER-EVIDENCE\x20DESIGN:\x20user\x20submits\x20main\x20Order\x20as\x20evidence,\x20buy_guard\x20verifies\x20order.owner==Signer\x20AND\x20order.service==main_service','Each\x20milestone\x20=\x20one\x20sub-order\x20with\x20its\x20own\x20Service\x20+\x20buy_guard\x20referencing\x20the\x20main\x20order','Main\x20flow\x20can\x20branch\x20to\x20different\x20sub-services\x20based\x20on\x20Machine\x20node\x20progression','No\x20parent_order\x20field\x20needed\x20—\x20relationship\x20verified\x20via\x20buy_guard\x20querying\x20submitted\x20Order\x20fields','Enables\x20supply\x20chain\x20composition:\x20main\x20service\x20→\x20multiple\x20sub-services\x20with\x20conditional\x20access']},{'id':'pattern.payment_exception_compensation','business_requirement':'Exception\x20branch\x20triggers\x20compensation\x20Payment\x20(e.g.,\x20delivery\x20delay\x20>\x2030min\x20auto-compensates\x20customer)','data_source':'SubmittedObject','host':'machine_forward','verifier_level':'level3_scene_combined','logic_summary':'Exception\x20forward\x20guard\x20verifies\x204-dimensional\x20anti-reuse\x20binding:\x20logic_and['+'logic_equal[query(payment.info.for),\x20identifier[N](order_address)],\x20'+'logic_equal[query(payment.info.guard),\x20identifier[N](this_guard_address)],\x20'+'logic_as_u256_greater_or_equal[query(payment.amount),\x20identifier[N](compensation_amount)],\x20'+'logic_as_u256_equal[query(payment.info.index),\x20query(progress.history\x20count)],\x20'+'logic_string_nocase_equal[query(payment.info.remark),\x20query(progress.current)]].\x20'+'Treasury\x20withdraws\x20to\x20customer\x20with\x20PaymentInfo(for_object=order,\x20for_guard=this,\x20index=history_count_at_creation,\x20remark=node_name).\x20'+'Customer\x20submits\x20Payment\x20via\x20Passport;\x20guard\x20verifies\x20index\x20matches\x20current\x20unique\x20step\x20(progress.history\x20count,\x20U64,\x20monotonically\x20increasing\x20—\x20unique\x20even\x20in\x20cycles)\x20AND\x20remark\x20matches\x20current\x20node\x20name\x20(progress.current,\x20String\x20—\x20may\x20repeat\x20across\x20cycles\x20but\x20bound\x20to\x20this\x20step\x20by\x20index).','key_queries':['payment.info.for','payment.info.guard','payment.info.index','payment.info.remark','payment.amount','progress.history\x20count','progress.current'],'mitigated_risks':[],'applicable_industries':['rental','travel','general','freelance'],'notes':['VERIFIED:\x20PaymentInfo\x20(for_object,\x20for_guard,\x20remark,\x20index),\x20payment_info_with_guard','VERIFIED:\x20withdraw\x20creates\x20the\x20Payment\x20as\x20a\x20fresh\x20singleton\x20object\x20from\x20the\x20withdrawn\x20object\x20set','Payment\x20is\x20freeze_object\x20(immutable)\x20—\x20cannot\x20be\x20modified\x20after\x20creation','VERIFIED\x20INDEX\x20QUERY:\x20progress.history\x20count\x20(id\x201273,\x20U64)\x20—\x20guard-ins.ts#L1228-1237.\x20Each\x20accomplished\x20forward\x20pushes\x20a\x20new\x20History\x20entry;\x20the\x20history\x20length\x20returns\x20the\x20current\x20session\x20id.\x20This\x20count\x20is\x20the\x20unique\x20monotonically\x20increasing\x20step\x20index\x20—\x20even\x20in\x20cycles,\x20each\x20entry\x20has\x20a\x20different\x20count.','VERIFIED\x20NODE\x20NAME\x20QUERY:\x20progress.current\x20(id\x201253,\x20String)\x20—\x20guard-ins.ts#L1025-1032.\x20Returns\x20the\x20current\x20node\x20name.\x20A\x20node\x20CAN\x20be\x20entered\x20multiple\x20times\x20in\x20cycles,\x20so\x20node\x20name\x20alone\x20is\x20NOT\x20unique\x20—\x20it\x20MUST\x20be\x20paired\x20with\x20progress.history\x20count\x20for\x20uniqueness.','DESIGN\x20INTENT\x20(USER):\x20to\x20validate\x20index\x20(U64\x20type),\x20use\x20progress.history\x20count\x20(unique,\x20non-repeating);\x20to\x20validate\x20node\x20name\x20(may\x20repeat\x20in\x20cycles),\x20store\x20it\x20in\x20PaymentInfo.remark\x20and\x20do\x20string\x20comparison\x20with\x20progress.current.','ANTI-REUSE\x204-DIMENSIONAL\x20BINDING:\x20for_object\x20(Order)\x20+\x20for_guard\x20(Guard)\x20+\x20index\x20(unique\x20step\x20via\x20progress.history\x20count)\x20+\x20remark\x20(node\x20name\x20via\x20progress.current).\x20Same\x20Payment\x20cannot\x20be\x20reused\x20in\x20other\x20contexts\x20—\x20at\x20least\x20one\x20field\x20will\x20mismatch.','VERIFIER-EVIDENCE\x20DESIGN:\x20customer\x20submits\x20Payment,\x20guard\x20verifies\x20binding\x20fields\x20match\x20current\x20context','Enables\x20user-friendly\x20exception\x20handling:\x20delay\x20→\x20auto-compensation\x20→\x20friendly\x20branch\x20flow','No\x20object-linker\x20binding\x20registration\x20needed\x20—\x20guard\x20only\x20verifies\x20submitted\x20Payment\x27s\x20field\x20accuracy']},{'id':'pattern.verifier_evidence_philosophy','business_requirement':'Guard\x20design\x20philosophy:\x20verifier\x20provides\x20evidence,\x20guard\x20verifies\x20logic\x20+\x20data\x20accuracy\x20(NOT\x20data\x20discovery)','data_source':'SubmittedObject','host':'gen_passport','verifier_level':'none','logic_summary':'Guard\x20is\x20a\x20PURE\x20VERIFICATION\x20engine.\x20Participants\x20submit\x20evidence\x20(Payment,\x20Order,\x20Proof,\x20etc.)\x20'+'via\x20Passport\x20submissions\x20(b_submission=true).\x20Guard\x20verifies:\x20(1)\x20logic\x20completeness,\x20(2)\x20data\x20usage\x20accuracy.\x20'+'Guard\x20does\x20NOT\x20discover/fetch\x20objects\x20via\x20object-linker\x20binding.\x20object-linker\x20binding\x20is\x20for\x20object\x20lifecycle\x20bookkeeping,\x20'+'NOT\x20for\x20guard\x20data\x20discovery.','key_queries':[],'mitigated_risks':['R-C3-05','R-C3-06'],'notes':['CORE\x20PRINCIPLE:\x20Guard\x20only\x20validates\x20submitted\x20evidence\x20—\x20it\x20never\x20fetches\x20data\x20on\x20its\x20own','For\x20Payment\x20verification:\x20user\x20submits\x20valid\x20Payment\x20→\x20guard\x20checks\x20for_object/for_guard/index\x20match','For\x20multi-order\x20verification:\x20verifier\x20submits\x20Order\x20data\x20→\x20guard\x20checks\x20service/owner\x20relationships','For\x20Repository\x20access:\x20user\x20submits\x20Payment\x20→\x20quote_guard\x20verifies\x20→\x20impack_list\x20updated\x20→\x20data\x20query\x20passes','Type\x203\x20(SubmittedObject)\x20data\x20source\x20class\x20embodies\x20this\x20philosophy\x20—\x20b_submission=true\x20entries','This\x20pattern\x20is\x20foundational\x20for\x20all\x20guard\x20designs\x20—\x20always\x20prefer\x20verifier-evidence\x20over\x20complex\x20object\x20discovery']},{'id':'pattern.progress_state_check','business_requirement':'Specific\x20forward\x20has\x20been\x20accomplished\x20(customer\x20confirms\x20delivery)','data_source':'WitnessDerived','host':'reward_claim','verifier_level':'none','logic_summary':'logic_equal[query_progress_history_find(...).accomplished,\x20identifier[N](true)]','key_queries':['progress.current','progress.current_time'],'witness_types':['OrderProgress'],'mitigated_risks':[],'notes':['Chain\x20query_progress_history_find\x20→\x20query_progress_history_session_forward_find']},{'id':'pattern.reward_one_time_claim','business_requirement':'User\x20can\x20only\x20claim\x20reward\x20once\x20(no\x20prior\x20claims)','data_source':'OnChainConstant','host':'reward_claim','verifier_level':'none','logic_summary':'logic_equal[query_reward_record_count(object=<reward>,\x20recipient=Signer,\x20where={}),\x20identifier[N](0)]','key_queries':['reward.record_count'],'mitigated_risks':[],'notes':['Record\x20count\x20check\x20prevents\x20double-claim','SCHEMA:\x20\x27where\x27\x20is\x20REQUIRED\x20even\x20when\x20empty\x20—\x20pass\x20where:\x20{}\x20or\x20the\x20call\x20is\x20rejected\x20by\x20input\x20validation']},{'id':'pattern.reward_multi_condition','business_requirement':'Order\x20payment\x20>\x20threshold\x20AND\x20reached\x20\x27complete\x27\x20to\x20claim\x20reward','data_source':'WitnessDerived','host':'reward_claim','verifier_level':'none','logic_summary':'logic_and[logic_as_u256_greater[query(order.amount),\x20threshold],\x20logic_equal[query(progress.current),\x20\x27complete\x27],\x20logic_equal[query(order.service),\x20identifier[N](expected_service)]]','key_queries':['order.amount','progress.current','order.service'],'witness_types':['OrderProgress'],'mitigated_risks':['R-C3-05'],'notes':['Multi-condition:\x20amount\x20+\x20progress\x20state\x20+\x20service\x20match']},{'id':'pattern.arbitration_voting_weight','business_requirement':'Vote\x20weight\x20equals\x20reputation\x20score\x20(dynamic\x20weight\x20from\x20Passport)','data_source':'SubmittedObject','host':'arbitration_voting','verifier_level':'none','logic_summary':'GuardIdentifier\x20extracts\x20numeric\x20value\x20from\x20Passport\x20submission','key_queries':[],'mitigated_risks':['R-C3-02'],'notes':['Table\x20needs\x20numeric\x20submission\x20entry\x20at\x20referenced\x20index','Weight\x20must\x20come\x20from\x20on-chain\x20EntityRegistrar,\x20not\x20submission','BINDING_01:\x20voting_guard\x20GuardIdentifier\x20must\x20be\x20numeric\x20(U8-U256)','C-9\x20VERIFIED:\x20voting\x20is\x20OPTIONAL\x20—\x20voting_deadline\x20is\x20Option\x20'+'(None\x20=\x20open-ended\x20voting;\x20arbitration\x20can\x20proceed\x20whenever\x20the\x20arbiter\x20decides).\x20'+'NO\x20minimum\x20voter\x20quorum\x20is\x20required\x20on-chain:\x20the\x20arbiter\x20may\x20rule\x20with\x20any\x20number\x20'+'of\x20votes\x20(including\x20zero).\x20MAX_ARBITRATOR_VOTING=520\x20is\x20only\x20an\x20upper\x20bound.\x20'+'Open\x20voting\x20(empty\x20voting_guard)\x20gives\x20every\x20vote\x20weight\x201\x20(the\x20vote\x20handler\x20asserts\x20the\x20guard\x20is\x20empty).']},{'id':'pattern.arbitration_membership_check','business_requirement':'Only\x20premium\x20members\x20can\x20file\x20disputes','data_source':'OnChainConstant','host':'arbitration_usage','verifier_level':'none','logic_summary':'logic_and[query(entity\x20exists),\x20logic_as_u256_greater_or_equal[query(entity\x20tier),\x20identifier[N](premium_tier)]]','key_queries':['entity.registrar','entity.linker'],'mitigated_risks':[],'notes':['ENTITY_REGISTRAR_ADDRESS\x20(0xaab)\x20/\x20ENTITY_LINKER_ADDRESS\x20(0xaaa)\x20must\x20be\x20in\x20table']},{'id':'pattern.scene_allocator_entity_recipient','business_requirement':'Service\x20allocator\x20with\x20sharing.who=Entity\x20—\x20no\x20Signer\x20binding\x20needed','data_source':'OnChainConstant','host':'service_allocator_guard','verifier_level':'level3_scene_combined','logic_summary':'Scene\x20verifies\x20fund\x20flow\x20safety\x20—\x20Guard\x20only\x20validates\x20allocation\x20rules','key_queries':['service.permission','order.amount'],'mitigated_risks':['R-C3-06'],'notes':['Funds\x20flow\x20to\x20fixed\x20Treasury/address\x20regardless\x20of\x20caller','sharing.who=Entity\x20already\x20guarantees\x20recipient\x20safety','No\x20Signer\x20binding\x20required\x20—\x20R-C3-06\x20safe']},{'id':'pattern.scene_machine_forward_operator','business_requirement':'Machine\x20forward\x20with\x20permissionIndex/namedOperator\x20already\x20verifies\x20operator','data_source':'OnChainConstant','host':'machine_forward','verifier_level':'level3_scene_combined','logic_summary':'Forward\x27s\x20permissionIndex/namedOperator\x20verifies\x20operator\x20—\x20Guard\x20only\x20validates\x20submitted\x20data','key_queries':[],'mitigated_risks':[],'notes':['Scene\x20verifies\x20operator\x20permission\x20via\x20permissionIndex/namedOperator','Signer\x20binding\x20only\x20needed\x20if\x20submitted\x20data\x20must\x20belong\x20to\x20operator','Evaluate\x20scene\x20before\x20adding\x20Signer\x20binding']},{'id':'pattern.fund_flow_refund_freeform','business_requirement':'Refund\x20/\x20cancellation\x20fund-release\x20defined\x20purely\x20by\x20game\x20conditions\x20—\x20NOT\x20bound\x20to\x20any\x20Machine\x20node','data_source':'SubmittedObject','host':'service_allocator_guard','verifier_level':'level2_identity_set','logic_summary':'An\x20allocator\x20Guard\x20whose\x20root\x20encodes\x20refund\x20conditions\x20ARBITRARILY:\x20'+'buyer\x20signature\x20(logic_equal[Signer,\x20buyer]),\x20timeout\x20(logic_as_u256_greater_or_equal[Clock,\x20deadline]),\x20'+'evidence\x20state\x20(query\x20any\x20on-chain\x20object:\x20order\x20fields,\x20repository\x20data,\x20payment\x20proofs),\x20'+'arbitration\x20outcome,\x20or\x20any\x20logic_and/or\x20combination.\x20No\x20progress/current-node\x20query\x20required.','key_queries':['order.owner','order.service','order.amount'],'mitigated_risks':['R-C3-06'],'notes':['C-2\x20RESOLUTION:\x20Machine-node-triggered\x20refund\x20(\x27at\x20cancelled\x20node\x20→\x20release\x27)\x20is\x20only\x20ONE\x20application\x20pattern.\x20'+'Guard+Allocator\x20is\x20a\x20GENERAL\x20game\x20primitive:\x20the\x20refund\x20condition\x20tree\x20is\x20fully\x20free-form.\x20'+'Move\x20layer\x20needs\x20NO\x20change\x20—\x20Guard\x20roots\x20accept\x20arbitrary\x20logic\x20over\x20any\x20queryable\x20state.','GAME-THEORETIC\x20READING:\x20both\x20parties\x20should\x20evaluate\x20the\x20refund\x20Guard\x20BEFORE\x20transacting\x20—\x20'+'who\x20can\x20trigger\x20it,\x20under\x20which\x20conditions,\x20with\x20what\x20evidence.\x20Use\x20the\x20analyze_guard_semantics\x20'+'query\x20action\x20to\x20render\x20+\x20lint\x20any\x20Guard\x20and\x20reason\x20about\x20each\x20party\x27s\x20leverage.','Condition\x20dimensions\x20freely\x20composable:\x20identity\x20(Signer/Entity),\x20time\x20(Clock),\x20'+'counterparty\x20evidence\x20(submitted\x20Payment/Order/Proof),\x20shared\x20data\x20(Repository),\x20'+'workflow\x20state\x20(Progress\x20—\x20optional,\x20only\x20when\x20a\x20Machine\x20exists)','Multi-tier\x20refund:\x20multiple\x20allocators\x20with\x20first-match-wins\x20order\x20encode\x20graduated\x20policies\x20'+'(full\x20refund\x20pre-delivery,\x20partial\x20refund\x20post-milestone,\x20no\x20refund\x20post-acceptance)\x20as\x20SEPARATE\x20Guards']},{'id':'pattern.fund_flow_profit_share_freeform','business_requirement':'Revenue/profit\x20sharing\x20among\x20partners\x20triggered\x20by\x20verifiable\x20contribution\x20conditions\x20—\x20not\x20by\x20workflow\x20nodes','data_source':'OnChainConstant','host':'service_allocator_guard','verifier_level':'level3_scene_combined','logic_summary':'Allocator\x20sharing\x20(who+ratio)\x20defines\x20the\x20SPLIT;\x20the\x20Guard\x20defines\x20WHEN\x20the\x20split\x20executes.\x20'+'The\x20WHEN\x20is\x20free-form:\x20period\x20boundary\x20(Clock\x20vs\x20interval),\x20contribution\x20proof\x20(submitted\x20evidence),\x20'+'performance\x20threshold\x20(Repository\x20metric),\x20or\x20counterparty\x20co-signature.','key_queries':['repository.data','payment.amount'],'mitigated_risks':['R-C3-06'],'applicable_industries':['freelance','subscription','education'],'notes':['C-2\x20RESOLUTION:\x20profit-sharing\x20is\x20an\x20application\x20pattern\x20of\x20the\x20same\x20Guard+Allocator\x20primitive\x20—\x20'+'the\x20trigger\x20condition\x20tree\x20is\x20arbitrary\x20game\x20logic,\x20not\x20a\x20workflow\x20artifact.','sharing.who=Entity\x20recipients\x20make\x20the\x20split\x20caller-safe\x20(funds\x20flow\x20to\x20fixed\x20addresses)\x20—\x20'+'Guard\x20then\x20only\x20gates\x20TIMING/CONDITIONS,\x20not\x20identity\x20(R-C3-06\x20safe\x20by\x20scene)','Periodic\x20settlement:\x20logic_as_u256_greater_or_equal[Clock,\x20identifier[N](period_start)]\x20+\x20'+'logic_as_u256_equal[calc_number_mod[Clock,\x20interval],\x200]-style\x20windows,\x20'+'or\x20a\x20Repository-held\x20settlement\x20cursor\x20updated\x20after\x20each\x20allocation\x20run']},{'id':'pattern.permission_guard_entity_time_window','business_requirement':'Delegate\x20a\x20permission\x20index\x20to\x20a\x20Guard\x20object\x20address\x20—\x20authorization\x20that\x20self-enforces\x20and\x20self-expires\x20(time-windowed\x20delegation)','data_source':'SystemContext','host':'machine_forward','verifier_level':'none','logic_summary':'The\x20entity\x20table\x20accepts\x20\x27user/guard\x20address\x20&\x20permission_index\x20list\x27\x20—\x20'+'a\x20Guard\x27s\x20OWN\x20ADDRESS\x20can\x20hold\x20a\x20permission\x20index.\x20The\x20delegated\x20Guard\x20then\x20encodes\x20'+'temporal\x20+\x20contextual\x20conditions:\x20logic_and[logic_as_u256_greater_or_equal[Clock,\x20valid_from],\x20'+'logic_as_u256_lesser_or_equal[Clock,\x20valid_until],\x20<scene\x20conditions>].\x20'+'Callers\x20satisfying\x20the\x20Guard\x20act\x20with\x20the\x20delegated\x20permission\x20index.','key_queries':[],'mitigated_risks':[],'notes':['C-8\x20VERIFIED:\x20entity\x20table\x20comment\x20—\x20\x27user/guard\x20address\x20&\x20permission_index\x20list\x27\x20'+'(guard\x20addresses\x20are\x20first-class\x20permission\x20entities,\x20same\x20as\x20user\x20addresses)','TIME\x20WINDOW:\x20Guard\x20roots\x20compose\x20context(Clock)\x20freely\x20—\x20valid_from/valid_until\x20bounds,\x20'+'recurring\x20windows\x20(mod\x20arithmetic),\x20or\x20deadline-before\x20(authorize\x20only\x20until\x20expiry)','SELF-EXPIRING\x20DELEGATION:\x20after\x20valid_until\x20the\x20Guard\x20fails\x20for\x20everyone\x20—\x20no\x20on-chain\x20'+'revocation\x20transaction\x20needed,\x20no\x20trust\x20in\x20the\x20delegate\x20to\x20stop\x20acting','SCENARIO\x20COMBINATION\x20(scenario\x20layer):\x20temporary\x20operator\x20(holiday\x20cover),\x20seasonal\x20service\x20window,\x20'+'trial-period\x20customer\x20privileges,\x20contractor\x20time-boxed\x20access,\x20emergency-break-glass\x20with\x20auto-expiry','Design\x20tip:\x20combine\x20with\x20scene\x20conditions\x20(order\x20state,\x20submitted\x20evidence)\x20—\x20'+'time\x20bounds\x20rarely\x20stand\x20alone']},{'id':'pattern.allocator_order_anchor','business_requirement':'Bind\x20an\x20allocator\x27s\x20Guard\x20to\x20the\x20paying\x20order\x20when\x20every\x20recipient\x20is\x20a\x20fixed\x20address\x20(Entity/Signer)\x20—\x20the\x20Guard\x20would\x20otherwise\x20read\x20no\x20order\x20at\x20all','data_source':'OnChainConstant','host':'service_allocator_guard','verifier_level':'level3_scene_combined','logic_summary':'Entity/Signer\x20rows\x20are\x20not\x20resolved\x20from\x20submissions,\x20so\x20an\x20allocator\x20paying\x20only\x20them\x20gives\x20its\x20Guard\x20nothing\x20to\x20'+'constrain.\x20Add\x20a\x20{GuardIdentifier:\x200}\x20row\x20with\x20Rate\x200\x20(or\x20Surplus\x20when\x20the\x20allocator\x20has\x20no\x20other\x20Surplus\x20row):\x20'+'the\x20row\x20pays\x20nothing,\x20and\x20the\x20Guard\x27s\x20Identifier\x20slot\x20now\x20resolves\x20to\x20the\x20paying\x20order,\x20so\x20order.*\x20queries\x20bind.','key_queries':['order.service','order.owner'],'notes':['VERIFIED\x20on\x20a\x20standalone\x20Allocation:\x20the\x20zero-share\x20anchor\x20row\x20is\x20accepted\x20by\x20order_allocators\x20(Move\x20asserts\x20no\x20Rate>0\x20minimum).','Confirm\x20Rate\x200\x20on\x20the\x20real\x20Service\x20with\x20a\x20dry-run\x20before\x20publishing\x20—\x20published\x20allocators\x20cannot\x20change.','The\x20anchor\x20row\x20also\x20makes\x20recipient-constraint\x20audits\x20meaningful:\x20the\x20Guard\x27s\x20binding\x20target\x20exists.']},{'id':'pattern.allocation_staged_release','business_requirement':'Pay\x20an\x20order\x20out\x20in\x20stages\x20(milestones),\x20or\x20hold\x20a\x20share\x20back\x20(deposit,\x20warranty,\x20quality\x20reserve)\x20behind\x20a\x20time\x20window\x20/\x20dispute\x20state','data_source':'SystemContext','host':'service_allocator_guard','verifier_level':'level3_scene_combined','logic_summary':'An\x20Allocation\x20can\x20be\x20triggered\x20MANY\x20times\x20and\x20the\x20contract\x20keeps\x20no\x20\x27already\x20paid\x27\x20flag,\x20so\x20every\x20staged\x20allocator\x20'+'needs\x20its\x20own\x20not-yet-paid\x20condition:\x20escrow\x20balance\x20still\x20equals\x20the\x20order\x20amount,\x20or\x20a\x20state/time\x20only\x20one\x20stage\x20'+'satisfies.\x20A\x20holdback\x20is\x20an\x20allocator\x20whose\x20Guard\x20adds\x20a\x20time\x20window\x20(progress.current_time\x20+\x20duration)\x20and,\x20for\x20'+'dispute\x20awareness,\x20a\x20condition\x20on\x20order.dispute\x20count\x20or\x20on\x20the\x20arb.status\x20of\x20a\x20submitted\x20Arb.','key_queries':['progress.current_time','order.dispute','arb.status'],'notes':['REPLAY\x20TEST\x20MANDATORY:\x20trigger\x20the\x20same\x20allocator\x20twice\x20and\x20expect\x20the\x20second\x20call\x20to\x20fail\x20with\x20abort\x20code\x207\x20(insufficient\x20balance).','VERIFIED:\x20time-window\x20holdbacks.\x20INFERENCE:\x20dispute-aware\x20conditions\x20—\x20dry-run\x20no-dispute\x20/\x20open\x20/\x20lost\x20/\x20won\x20before\x20publishing.','Never\x20pay\x20the\x20held\x20share\x20from\x20the\x20same\x20Guard\x20that\x20pays\x20the\x20main\x20share\x20—\x20a\x20Guard\x20that\x20also\x20fires\x20while\x20a\x20warranty\x20is\x20open\x20leaves\x20the\x20buyer\x20no\x20leverage.']},{'id':'pattern.commission_holdback','business_requirement':'Commission\x20or\x20bonus\x20that\x20should\x20depend\x20on\x20the\x20order\x20staying\x20undisputed\x20—\x20there\x20is\x20NO\x20clawback\x20once\x20an\x20allocation\x20has\x20run','data_source':'SystemContext','host':'service_allocator_guard','verifier_level':'level3_scene_combined','logic_summary':'Once\x20an\x20allocation\x20runs,\x20the\x20money\x20is\x20in\x20the\x20recipients\x27\x20wallets\x20—\x20Payments\x20are\x20final\x20and\x20only\x20the\x20merchant-funded\x20'+'compensation\x20fund\x20remains.\x20Pay\x20a\x20contested\x20commission\x20from\x20a\x20LATER\x20allocator\x20behind\x20a\x20time\x20window\x20and\x20a\x20dispute\x20'+'condition\x20(see\x20pattern.allocation_staged_release),\x20never\x20from\x20the\x20settlement\x20allocator.','key_queries':['order.dispute','progress.current_time'],'notes':['VERIFIED:\x20no\x20recall/clawback\x20path\x20exists\x20on\x20Payments.\x20INFERENCE:\x20the\x20holdback\x20variant\x20—\x20dry-run\x20before\x20publishing.']},{'id':'pattern.reward_rule_replacement','business_requirement':'Keep\x20the\x20option\x20to\x20replace\x20a\x20Reward\x20rule\x20later\x20(payout\x20is\x20fixed\x20when\x20its\x20Guard\x20is\x20added)','data_source':'OnChainConstant','host':'reward_claim','verifier_level':'none','logic_summary':'Give\x20every\x20reward\x20guard_add\x20an\x20expiration_time\x20if\x20the\x20rule\x20may\x20need\x20replacement\x20—\x20without\x20one\x20the\x20rule\x20is\x20permanent.\x20'+'Replace\x20later\x20via\x20guard_remove_expired:\x20true,\x20then\x20guard_add\x20the\x20new\x20rule.','key_queries':[],'notes':['SCHEMA\x20READING:\x20confirm\x20the\x20guard_remove_expired\x20sequence\x20on\x20a\x20test\x20Reward\x20before\x20promising\x20it\x20to\x20users.','Do\x20not\x20set\x20the\x20top-level\x20guard_expiration_time\x20unless\x20you\x20promise\x20claimants\x20no\x20new\x20rules\x20before\x20that\x20time.']},{'id':'pattern.buy_guard_blocklist','business_requirement':'Refuse\x20certain\x20buyers\x20at\x20purchase\x20time\x20via\x20a\x20mutable\x20list\x20—\x20without\x20redeploying\x20the\x20Guard\x20or\x20the\x20Service','data_source':'SubmittedObject','host':'service_buy_guard','verifier_level':'none','logic_summary':'buy_guard\x20reads\x20on-chain\x20state\x20at\x20purchase\x20time.\x20Bind\x20a\x20Guard\x20that\x20fails\x20when\x20the\x20signer\x20is\x20listed\x20in\x20a\x20Repository\x20'+'policy:\x20context_signer\x20as\x20the\x20key\x20+\x20repository.data\x20has\x20with\x20logic_not.\x20Editing\x20the\x20list\x20needs\x20no\x20new\x20Guard\x20and\x20no\x20new\x20Service.','key_queries':['repository.data'],'notes':['VERIFIED:\x20buy_guard\x20state-read.\x20INFERENCE:\x20the\x20Repository\x20blocklist\x20—\x20dry-run\x20before\x20publishing.','LIMITS:\x20stops\x20NEW\x20orders\x20only\x20—\x20existing\x20orders\x20and\x20their\x20allocations\x20are\x20untouched;\x20the\x20Messenger\x20blacklist\x20does\x20not\x20affect\x20the\x20chain;\x20restrict\x20who\x20can\x20write\x20the\x20Repository\x20policy.']},{'id':'pattern.referral_anti_self_purchase','business_requirement':'Referral\x20commissions\x20where\x20the\x20buyer\x20must\x20not\x20be\x20their\x20own\x20referrer\x20—\x20nothing\x20on-chain\x20checks\x20order.agents','data_source':'SubmittedObject','host':'service_allocator_guard','verifier_level':'level3_scene_combined','logic_summary':'agents\x20on\x20an\x20order\x20is\x20filled\x20by\x20the\x20buyer\x20at\x20purchase\x20time\x20and\x20anti_cheat\x20does\x20not\x20read\x20it.\x20Add\x20to\x20the\x20commission\x20'+'allocator\x27s\x20Guard:\x20the\x20referrer\x20is\x20an\x20agent\x20of\x20the\x20order\x20(order.agent\x20has)\x20AND\x20is\x20not\x20the\x20order\x27s\x20owner\x20(order.owner).','key_queries':['order.agent','order.owner'],'notes':['VERIFIED:\x20the\x20anti-cheat\x20gap.\x20INFERENCE:\x20the\x20Guard\x20condition\x20—\x20source-derived,\x20untested;\x20dry-run\x20before\x20publishing.','Blocks\x20the\x20same-address\x20case\x20only.\x20The\x20commission\x20recipient\x20must\x20be\x20an\x20Entity\x20(or\x20Signer)\x20—\x20a\x20GuardIdentifier\x20recipient\x20is\x20the\x20order\x20itself.']},{'id':'pattern.multi_party_recourse','business_requirement':'Multi-party\x20services\x20(hotels,\x20carriers,\x20subcontractors):\x20pay\x20a\x20third\x20party\x20from\x20the\x20order\x20without\x20losing\x20recourse\x20when\x20THEY\x20fail','data_source':'SystemContext','host':'service_allocator_guard','verifier_level':'none','logic_summary':'Only\x20the\x20paying\x20order\x20and\x20the\x20Service\x20it\x20bought\x20from\x20take\x20part\x20in\x20an\x20arbitration,\x20and\x20the\x20payout\x20comes\x20from\x20that\x20'+'Service\x27s\x20compensation\x20fund\x20(capped\x20at\x203x\x20the\x20order\x20amount).\x20A\x20third\x20party\x20who\x20is\x20only\x20an\x20allocation\x20recipient\x20cannot\x20'+'be\x20named,\x20notified\x20or\x20heard\x20in\x20a\x20dispute.\x20Cover\x20it\x20in\x20advance:\x20hold\x20their\x20share\x20behind\x20a\x20time\x20window\x20and\x20a\x20no-dispute\x20'+'condition\x20(see\x20pattern.allocation_staged_release),\x20or\x20buy\x20their\x20part\x20as\x20its\x20own\x20order\x20from\x20their\x20Service\x20so\x20you\x20hold\x20'+'the\x20customer\x20rights\x20against\x20them.','key_queries':['order.dispute','progress.current_time'],'notes':['VERIFIED:\x20two-tier\x20orders.\x20INFERENCE:\x20downstream\x20recourse\x20via\x20holdback\x20—\x20dry-run\x20before\x20publishing.']}];export const VERIFIER_LEVEL_GUIDANCE=[{'level':'level1_strict_single','pattern':'logic_equal[context(Signer),\x20identifier[N](fixed_address)]','when_to_use':'Role\x20permanently\x20tied\x20to\x20one\x20address\x20AND\x20designer\x20accepts\x20lock-in\x20risk','risk_rules':['R-C4-04'],'recommendation':'avoid'},{'level':'level2_identity_set','pattern':'logic_or\x20of\x20multiple\x20identity\x20checks','when_to_use':'Role-based\x20access\x20—\x20multiple\x20authorized\x20identities','risk_rules':['R-C4-04\x20(suppressed)'],'recommendation':'recommended'},{'level':'level3_scene_combined','pattern':'Scene\x20itself\x20verifies\x20identity\x20—\x20no\x20Signer\x20binding\x20needed','when_to_use':'Scene\x27s\x20host\x20object\x20already\x20verifies\x20operator\x20(e.g.,\x20Machine\x20forward,\x20sharing.who=Entity)','risk_rules':[],'recommendation':'default'},{'level':'none','pattern':'No\x20Signer\x20binding\x20required','when_to_use':'Resource\x20flow\x20matters\x20more\x20than\x20caller\x20identity','risk_rules':[],'recommendation':'default'}];export const GUARD_SCHEMA_NOTES=['logic_not\x20takes\x20exactly\x20ONE\x20child\x20under\x20\x27node\x27\x20(not\x20\x27nodes\x27).','logic_and\x20/\x20logic_or\x20accept\x202-8\x20child\x20nodes\x20(MAX_MULTI_OPERANDS)\x20—\x20nest\x20extra\x20conditions\x20inside\x20another\x20logic_and/logic_or.','query_reward_record_count\x20/\x20query_reward_record_exists\x20/\x20query_reward_record_find\x20require\x20\x27where\x27\x20even\x20when\x20empty\x20—\x20pass\x20where:\x20{}\x20or\x20input\x20validation\x20rejects\x20the\x20call.','Node\x20type\x20names\x20have\x20no\x20abbreviations:\x20logic_as_u256_greater\x20/\x20logic_as_u256_lesser\x20/\x20logic_as_u256_greater_or_equal\x20/\x20logic_as_u256_lesser_or_equal\x20(never\x20gt/lt/ge/le).','context()\x20enum\x20values\x20are\x20exactly:\x20Signer,\x20Clock,\x20Guard.','repository.data\x20cannot\x20be\x20compared\x20with\x20an\x20Address\x20directly\x20—\x20Repository\x20values\x20are\x20stored\x20as\x20U256;\x20use\x20\x27repository.data\x20has\x27\x20for\x20membership\x20or\x20compare\x20the\x20value\x20as\x20a\x20NUMBER.','Whole-repository\x20\x27repository.data\x20count\x27\x20returns\x20the\x20table\x20size,\x20not\x20per-key\x20matches.\x20For\x20per-key\x20totals\x20the\x20Guard\x20CAN\x20count/sum\x20matches\x20itself\x20via\x20\x27repository.data\x20count\x20where\x27\x20/\x20\x27repository.data\x20sum\x20where\x27\x20(predicate-filtered,\x20candidate\x20list\x20max\x20100);\x20only\x20use\x20the\x20trusted-role-writes-total\x20fallback\x20when\x20candidates\x20cannot\x20be\x20enumerated.','Verify\x20field\x20paths\x20against\x20the\x20live\x20schema\x20via\x20schema_query\x20(action=\x27get\x27,\x20name=\x27call_guard_*\x27)\x20instead\x20of\x20trusting\x20memory.'];export function getGuardDesignPattern(a){return GUARD_DESIGN_PATTERNS['find'](b=>b['id']===a);}export function searchGuardDesignPatterns(a){const b=a['toLowerCase']();return GUARD_DESIGN_PATTERNS['filter'](c=>{if(c['business_requirement']['toLowerCase']()['includes'](b))return!![];if(c['logic_summary']['toLowerCase']()['includes'](b))return!![];if(c['key_queries']['some'](d=>d['toLowerCase']()['includes'](b)))return!![];return![];});}export function getPatternsByHost(a){return GUARD_DESIGN_PATTERNS['filter'](b=>b['host']===a);}export function getPatternsByIndustry(a){return GUARD_DESIGN_PATTERNS['filter'](b=>b['applicable_industries']?.['includes'](a));}export function getPatternsByDataSourceClass(a){return GUARD_DESIGN_PATTERNS['filter'](b=>b['data_source']===a);}export function getVerifierLevelGuidance(a){return VERIFIER_LEVEL_GUIDANCE['find'](b=>b['level']===a);}export function suggestPatternForRequirement(a){const b=searchGuardDesignPatterns(a);if(b['length']===0x0){const e=GUARD_DESIGN_PATTERNS[0x0];return{'best':e,'alternatives':[]};}const [c,...d]=b;return{'best':c,'alternatives':d};}export const GUARD_DESIGN_PATTERNS_VERSION=0x4;
1
+ export const GUARD_DESIGN_PATTERNS=[{'id':'pattern.identity_check_single','business_requirement':'Only\x20the\x20author\x20can\x20purchase\x20this\x20service\x20(strict\x20single-identity)','data_source':'SystemContext','host':'service_buy_guard','verifier_level':'level1_strict_single','logic_summary':'logic_equal[context(Signer),\x20identifier[N](fixed_address)]','key_queries':[],'mitigated_risks':['R-C4-04'],'notes':['Maximally\x20secure\x20but\x20maximally\x20inconvenient','If\x20address\x20is\x20unavailable\x20(key\x20loss,\x20rotation),\x20Guard\x20permanently\x20blocks','Avoid\x20unless\x20role\x20is\x20permanently\x20tied\x20to\x20one\x20address']},{'id':'pattern.identity_check_allowlist','business_requirement':'Customer\x20must\x20be\x20in\x20an\x20allowlist\x20to\x20purchase','data_source':'SystemContext','host':'service_buy_guard','verifier_level':'level2_identity_set','logic_summary':'vec_contains_address[identifier[N](allowlist_vec),\x20context(Signer)]','key_queries':[],'mitigated_risks':['R-C4-04'],'notes':['Allowlist\x20stored\x20as\x20Address\x20vector\x20in\x20table\x20constant']},{'id':'pattern.identity_check_order_holder','business_requirement':'Only\x20order\x20owner\x20or\x20agent\x20can\x20perform\x20operation','data_source':'OnChainConstant','host':'machine_forward','verifier_level':'level2_identity_set','logic_summary':'logic_or[logic_equal[query(1562\x20order.owner),\x20context(Signer)],\x20query(1567\x20order.agent\x20has,\x20Signer)]','key_queries':['order.owner','order.agent\x20has'],'mitigated_risks':['R-C4-04','R-C3-06'],'notes':['1562\x20returns\x20Address\x20→\x20wrap\x20in\x20logic_equal','1567\x20returns\x20Bool\x20→\x20use\x20directly\x20as\x20logic_or\x20child','Recommended\x20Level\x202\x20alternative\x20to\x20Level\x201\x20strict\x20binding']},{'id':'pattern.identity_check_service_provider_dynamic','business_requirement':'Verify\x20caller\x20is\x20service\x27s\x20current\x20permission\x20owner\x20(survives\x20permission\x20rotation)','data_source':'SubmittedObject','host':'machine_forward','verifier_level':'level2_identity_set','logic_summary':'logic_and[logic_equal[query(1488\x20service.permission),\x20identifier[N](submitted_perm)],\x20logic_or[logic_equal[query(1002\x20permission.owner),\x20context(Signer)],\x20query(1004\x20permission.admin\x20has,\x20Signer)]]','key_queries':['service.permission','permission.owner','permission.admin\x20has'],'mitigated_risks':['R-C4-04','R-C3-05'],'notes':['Dynamic\x20permission\x20address\x20(RECOMMENDED)\x20—\x20survives\x20Service\x20permission\x20rotation','Caller\x20submits\x20permission\x20address;\x20Guard\x20verifies\x20match\x20then\x20checks\x20identity','More\x20complex\x20than\x20static\x20but\x20far\x20more\x20robust']},{'id':'pattern.time_lock_progress','business_requirement':'Customer\x20must\x20wait\x20N\x20hours\x20before\x20completing\x20(time-lock)','data_source':'WitnessDerived','host':'machine_forward','verifier_level':'none','logic_summary':'logic_as_u256_greater_or_equal[context(Clock),\x20calc_number_add[query(1272\x20progress.current_time,\x20witness=OrderProgress),\x20identifier[N](duration_ms)]]','key_queries':['progress.current_time'],'witness_types':['OrderProgress'],'mitigated_risks':[],'notes':['Use\x20convert_witness=100\x20(OrderProgress)\x20to\x20derive\x20Progress\x20from\x20submitted\x20Order\x20ID','Duration\x20in\x20milliseconds\x20—\x20test\x20with\x20small\x20values\x20first','TIME\x20SOURCE\x20DUALITY:\x20chain\x20Clock\x20is\x20native\x20but\x20INDEPENDENT\x20of\x20wall\x20time\x20(block-driven,\x20coarse)\x20—\x20fine\x20for\x20relative\x20locks;\x20for\x20real-world\x20deadlines\x20use\x20pattern.time_source_repository_oracle\x20instead']},{'id':'pattern.time_lock_absolute','business_requirement':'Operation\x20allowed\x20only\x20after\x20a\x20fixed\x20timestamp','data_source':'SystemContext','host':'service_buy_guard','verifier_level':'none','logic_summary':'logic_as_u256_greater_or_equal[context(Clock),\x20identifier[N](release_timestamp)]','key_queries':[],'mitigated_risks':[],'notes':['Useful\x20for\x20pre-sale\x20windows,\x20embargo\x20periods','TIME\x20SOURCE\x20DUALITY:\x20comparing\x20a\x20fixed\x20timestamp\x20against\x20context(Clock)\x20uses\x20CHAIN\x20time,\x20not\x20wall\x20time\x20—\x20acceptable\x20when\x20block-rate\x20drift\x20is\x20tolerable;\x20bind\x20the\x20comparison\x20to\x20a\x20self-built\x20repository\x20time\x20oracle\x20(pattern.time_source_repository_oracle)\x20when\x20the\x20cutoff\x20is\x20a\x20real-world\x20date']},{'id':'pattern.time_source_repository_oracle','business_requirement':'Guard\x20needs\x20accurate\x20real-world\x20time\x20(review\x20windows,\x20no-show\x20cutoffs,\x20staged-release\x20deadlines)\x20instead\x20of\x20coarse\x20chain\x20Clock','data_source':'OnChainConstant','host':'machine_forward','verifier_level':'none','logic_summary':'Self-built\x20time\x20oracle:\x20an\x20off-chain\x20keeper\x20pushes\x20wall-clock\x20timestamps\x20into\x20a\x20Repository\x20'+'(repository_write\x20gated\x20by\x20permission);\x20Guards\x20read\x20repository.data\x20(query\x201167)\x20and\x20compare\x20the\x20'+'oracle\x20timestamp\x20with\x20logic_as_u256_greater_or_equal\x20instead\x20of\x20context(Clock).','key_queries':['repository.data'],'mitigated_risks':[],'applicable_industries':['subscription','travel','rental','education'],'notes':['Chain\x20time\x20is\x20INDEPENDENT\x20of\x20real\x20time:\x20Clock\x20advances\x20with\x20blocks\x20—\x20usable\x20but\x20imprecise\x20for\x20business\x20deadlines;\x20both\x20tracks\x20are\x20first-class,\x20pick\x20per\x20requirement\x20and\x20DOCUMENT\x20which\x20one\x20a\x20published\x20Guard\x20relies\x20on\x20(IMMUT-001)','No\x20public\x20time\x20oracle\x20exists\x20on-chain\x20today\x20—\x20the\x20Repository\x20oracle\x20is\x20self-built\x20(owner\x20pushes,\x20users\x20verify)','Trust\x20trade-off:\x20the\x20oracle\x20publisher\x20can\x20skew\x20timestamps\x20—\x20pin\x20the\x20Repository\x20address\x20as\x20a\x20table\x20constant\x20and\x20gate\x20writes\x20with\x20a\x20permission\x20check','Freshness\x20bound:\x20add\x20a\x20second\x20clause\x20asserting\x20the\x20oracle\x20timestamp\x20is\x20itself\x20recent\x20(oracle_time\x20+\x20max_staleness\x20>=\x20context(Clock))\x20so\x20a\x20stalled\x20keeper\x20fails\x20the\x20Guard\x20loudly\x20instead\x20of\x20freezing\x20windows\x20silently']},{'id':'pattern.repository_data_check','business_requirement':'External\x20data\x20must\x20match\x20expected\x20value\x20(e.g.,\x20weather,\x20price\x20feed)','data_source':'OnChainConstant','host':'machine_forward','verifier_level':'none','logic_summary':'logic_equal[query(1167\x20repository.data,\x20policy,\x20key),\x20identifier[N](expected_value)]','key_queries':['repository.data'],'mitigated_risks':[],'notes':['Repository\x20address\x20declared\x20as\x20table\x20constant','Timestamp\x20keys\x20may\x20need\x20convert_number_address','quote_guard\x20context:\x20fails\x20in\x20gen_passport\x20(impack_list\x20empty),\x20works\x20in\x20on-chain\x20business\x20operations\x20(see\x20R-X1-10)','EXISTENCE\x20IS\x20NOT\x20TRUST:\x20this\x20pattern\x20reads\x20a\x20row;\x20it\x20does\x20not\x20prove\x20who\x20wrote\x20it.\x20A\x20forward\x20gated\x20only\x20on\x20\x27the\x20row\x20exists\x27\x20(1166\x20has\x20/\x20a\x20non-empty\x201167)\x20is\x20satisfied\x20by\x20ANY\x20pre-written\x20row,\x20including\x20one\x20forged\x20by\x20a\x20counterparty\x20—\x20the\x20write\x20side\x20must\x20bind\x20the\x20writer\x20(pattern.repository_write_authorization;\x20R-X1-17\x20reports\x20a\x20write_guard\x20that\x20folds\x20true\x20or\x20names\x20no\x20identity).\x20Verified\x20on\x20testnet\x20(test-14\x20HIGH-04):\x20a\x20buyer\x20forged\x20the\x20merchant\x27s\x20shipping-tracking\x20row\x20and\x20the\x20ship/deliver\x20evidence\x20gates\x20passed\x20on\x20it\x20(tx\x20BLA7F62r).','PER-ORDER\x20TIER\x20GRID\x20(B-3):\x20query\x201167\x20accepts\x20the\x20ORDER\x20address\x20as\x20the\x20key\x20—\x20merchant\x20writes\x20a\x20per-order\x20tier\x20number\x20into\x20the\x20Repository,\x20allocator\x20Guards\x20select\x20with\x20logic_equal[repository.data(\x27tier\x27,\x20order),\x20N].\x20Allocator\x20amounts\x20are\x20FROZEN\x20at\x20publish\x20(allocation.move\x20computes\x20shares\x20from\x20the\x20published\x20table;\x20the\x20submission\x20only\x20picks\x20RECIPIENTS,\x20never\x20amounts),\x20so\x20per-order\x20amount\x20differences\x20are\x20expressible\x20ONLY\x20as\x20a\x20tier\x20grid\x20(one\x20allocator\x20per\x20tier)\x20—\x20continuous/arbitrary\x20amounts\x20are\x20not.\x20Without\x20quote_guard/write_guard\x20binding\x20buyer\x20credentials,\x20the\x20tier\x20data\x20is\x20a\x20unilateral\x20merchant\x20declaration\x20(residual\x20risk;\x20enforce\x20the\x20binding\x20in\x20the\x20service\x20template).']},{'id':'pattern.repository_write_authorization','business_requirement':'Evidence\x20rows\x20(tracking\x20number,\x20inspection\x20receipt,\x20return\x20receipt,\x20oracle\x20value,\x20roster\x20entry)\x20'+'may\x20only\x20be\x20written\x20by\x20designated\x20parties\x20—\x20and\x20the\x20guard\x20must\x20bind\x20WHO\x20writes,\x20not\x20merely\x20that\x20some\x20object\x20exists','data_source':'SystemContext','host':'repository_write','verifier_level':'level2_identity_set','logic_summary':'logic_and[\x20<identity\x20leaf\x20—\x20MANDATORY>,\x20<data-shape\x20leaf\x20—\x20optional>\x20]\x20where\x20the\x20identity\x20leaf\x20is\x20one\x20of:\x20'+'logic_equal[context(Signer),\x20identifier#N(Address)]\x20(single\x20writer)\x20|\x20'+'vec_contains_address[identifier#N(VecAddress),\x20context(Signer)]\x20(writer\x20set)\x20|\x20'+'logic_or[logic_equal[query(1562\x20order.owner),\x20context(Signer)],\x20query(1567\x20order.agent\x20has,\x20Signer)]\x20(writer\x20must\x20hold\x20the\x20Order\x20the\x20row\x20is\x20keyed\x20by)\x20|\x20'+'logic_or[<merchant\x20Signer>,\x20query(1008\x20permission.entity.perm\x20has,\x20merchant\x20Permission,\x20[context(Signer),\x20<custom\x20index>])]\x20(staff\x20via\x20Permission\x20entity\x20table).\x20'+'NEVER\x20a\x20bare\x20constant-true\x20identifier,\x20a\x20self-comparison,\x20or\x20an\x20unsigned\x20value\x20>=\x200\x20—\x20see\x20notes.','key_queries':['repository.data\x20has','repository.data','repository.policy.id_from','order.owner','order.agent\x20has','permission.entity.perm\x20has','proof.signer','proof.about','proof.time'],'mitigated_risks':['R-X1-17','R-C1-03'],'applicable_industries':['retail','travel','education','rental','general'],'notes':['WHAT\x20THE\x20CHAIN\x20CHECKS\x20(the\x20blind\x20spot):\x20the\x20Repository\x20policy-creation\x20entry\x20(repository.move\x20L511-536,\x20R-D-1\x20validation)\x20asserts\x20only\x20that\x20a\x20policy\x20with\x20id_from\x20NONE\x20has\x20a\x20NON-EMPTY\x20write_guard\x20LIST\x20'+'(E_POLICY_WRITE_GUARD_REQUIRED\x20=\x2022)\x20—\x20it\x20never\x20evaluates\x20what\x20any\x20listed\x20Guard\x20proves.\x20A\x20placeholder\x20guard\x20that\x20returns\x20true\x20for\x20everyone\x20therefore\x20publishes\x20cleanly\x20and\x20is\x20exactly\x20the\x20'+'open\x20door\x20an\x20empty\x20list\x20would\x20have\x20been,\x20with\x20no\x20warning.\x20'+'Verified\x20on\x20testnet\x20(test-14\x20HIGH-04):\x20a\x20NON-merchant\x20signer\x20wrote\x20a\x20forged\x20tracking\x20row\x20for\x20another\x20buyer\x27s\x20order\x20(tx\x20BLA7F62r…);\x20the\x20merchant\x27s\x20legitimate\x20write\x20simply\x20upserted\x20over\x20it\x20(tx\x20DaZaPn6o…).\x20'+'Rule\x20R-X1-17\x20now\x20folds\x20the\x20tree\x20and\x20rejects\x20constant-true\x20roots\x20/\x20write_guards\x20with\x20no\x20context(Signer)\x20leaf.','NO\x20AUTHOR\x20IS\x20RECORDED:\x20a\x20Repository\x20row\x20carries\x20no\x20writer\x20field\x20(data_id\x20→\x20data\x20value\x20only).\x20The\x20write_guard\x20is\x20the\x20sole\x20attribution\x20mechanism,\x20and\x20it\x20is\x20a\x20GATE,\x20not\x20a\x20signature.\x20'+'So\x20\x27the\x20merchant\x20wrote\x20it\x27\x20is\x20not\x20provable\x20on\x20chain\x20from\x20a\x20bare\x20string\x20—\x20which\x20is\x20what\x20downstream\x20trust\x20scoring\x20and\x20arbitration\x20evidence\x20silently\x20assume.','PROVENANCE-GRADE\x20EVIDENCE:\x20store\x20the\x20ADDRESS\x20OF\x20A\x20SIGNED\x20WTS\x20PROOF\x20as\x20the\x20row\x20value\x20instead\x20of\x20the\x20raw\x20string.\x20Proof\x20objects\x20carry\x20proof.signer\x20(3555),\x20proof.about\x20(3546),\x20proof.time\x20(3573)\x20and\x20are\x20immutable,\x20'+'so\x20the\x20consuming\x20forward\x20Guard\x20can\x20verify\x20Prover\x20+\x20Time\x20+\x20Content\x20binding\x20(pattern.verifier_evidence_philosophy)\x20rather\x20than\x20mere\x20existence.\x20Existence-only\x20reads\x20(repository.data\x20has,\x201166)\x20are\x20satisfied\x20by\x20ANY\x20pre-written\x20row,\x20including\x20a\x20forged\x20one.','ANTI-OVERWRITE\x20(one\x20write\x20per\x20key):\x20the\x20scene\x27s\x20default\x20is\x20IDEMPOTENT\x20UPSERT\x20—\x20a\x20second\x20authorized\x20write\x20silently\x20replaces\x20history.\x20Add\x20logic_not(query(\x27repository.data\x20has\x27,\x20policy,\x20key))\x20(1166)\x20to\x20the\x20root\x20to\x20make\x20the\x20row\x20write-once,\x20'+'or\x20register\x20the\x20ONCE\x20slot\x20(identifier\x20255,\x20b_submission=true)\x20for\x20one\x20write\x20per\x20GUARD-POOL\x20(255\x20is\x20per\x20pool,\x20not\x20per\x20order\x20—\x20see\x20R-ONCE-SCOPE-01\x20and\x20pair\x20it\x20with\x20the\x20order\x20anchor\x20R-ANCHOR-01).','ID_ROUTING\x20INTERACTS\x20WITH\x20THIS\x20GUARD\x20(repository.move\x20L511-536):\x20id_from\x20NONE\x20(caller-supplied\x20data\x20id)\x20REQUIRES\x20a\x20non-empty\x20write_guard\x20list\x20—\x20that\x20is\x20precisely\x20the\x20case\x20this\x20pattern\x20exists\x20for,\x20because\x20the\x20caller\x20also\x20chooses\x20the\x20key\x20and\x20can\x20overwrite\x20anyone\x27s\x20row.\x20'+'With\x20id_from\x20Signer/Clock\x20the\x20id\x20is\x20auto-generated;\x20the\x20list\x20MAY\x20still\x20be\x20non-empty\x20(the\x20guard\x20authorizes\x20the\x20write\x20and\x20may\x20extract\x20the\x20value\x20via\x20data_from_submission),\x20but\x20every\x20PolicyGuard\x27s\x20id_from_submission\x20MUST\x20be\x20None,\x20'+'since\x20a\x20submission-derived\x20id\x20would\x20conflict\x20with\x20the\x20routing\x20(E_POLICY_ID_FROM_SUBMISSION_FORBIDDEN\x20=\x2023).\x20Choosing\x20id_from=Signer\x20with\x20no\x20guard\x20is\x20the\x20HONEST\x20way\x20to\x20say\x20\x27anyone\x20may\x20write\x20their\x20OWN\x20row\x27;\x20binding\x20an\x20always-true\x20guard\x20under\x20id_from=None\x20is\x20the\x20dishonest\x20way,\x20and\x20is\x20what\x20R-X1-17\x20reports.','Writers\x20that\x20are\x20services\x20rather\x20than\x20EOAs\x20(an\x20oracle,\x20a\x20partner\x20merchant)\x20still\x20need\x20the\x20identity\x20leaf:\x20the\x20Signer\x20of\x20the\x20write\x20transaction\x20IS\x20the\x20caller,\x20so\x20a\x20submitted-Address\x20comparison\x20alone\x20(Type3)\x20is\x20forgeable\x20—\x20compare\x20context(Signer)\x20against\x20the\x20allowlist,\x20or\x20require\x20the\x20writer\x27s\x20Passport/Proof\x20via\x20the\x20data-shape\x20leaf.']},{'id':'pattern.repository_quote_guard_subscription','business_requirement':'Repository\x20data\x20access\x20requires\x20payment\x20proof\x20(subscription\x20revenue\x20model)','data_source':'SubmittedObject','host':'repository_write','verifier_level':'level3_scene_combined','logic_summary':'Repository\x20policy\x20sets\x20quote_guard\x20(a\x20standalone\x20repository-backed\x20guard:\x20immutable\x20+\x20rep=true).\x20'+'When\x20a\x20Guard\x20queries\x20this\x20Repository\x27s\x20data\x20(query\x201167),\x20check_repository_quote_guard\x20verifies\x20'+'the\x20quote_guard\x20is\x20in\x20impack_list.\x20The\x20quote_guard\x20itself\x20verifies\x20a\x20submitted\x20Payment\x20'+'(payment.info.for\x20matches\x20Repository,\x20payment.amount\x20meets\x20subscription\x20price).\x20'+'User\x20submits\x20Payment\x20via\x20Passport\x20→\x20quote_guard\x20verified\x20→\x20added\x20to\x20impack_list\x20→\x20query\x201167\x20passes.','key_queries':['repository.data','payment.info.for','payment.amount'],'mitigated_risks':['R-X1-10'],'applicable_industries':['subscription','travel','rental','education'],'notes':['VERIFIED:\x20passport.rs#L545-612\x20(check_repository_quote_guard),\x20passport.rs#L758-769\x20(trigger\x20at\x20query_id==1167)','Repository.owner_receive<T>\x20accepts\x20Payment\x20as\x20subscription\x20revenue','quote_guard\x20must\x20be\x20a\x20standalone\x20repository-backed\x20guard:\x20immutable=true,\x20relies\x20empty,\x20rep=true','VERIFIER-EVIDENCE\x20DESIGN:\x20user\x20submits\x20valid\x20Payment,\x20quote_guard\x20verifies\x20Payment\x20fields\x20—\x20no\x20object-linker\x20binding\x20needed','gen_passport\x20context:\x20quote_guard\x20fails\x20(impack_list\x20empty)\x20—\x20only\x20use\x20for\x20on-chain\x20business\x20operations','Business\x20model:\x20data\x20provider\x20publishes\x20weather/market/oracle\x20data\x20to\x20Repository,\x20'+'users\x20pay\x20subscription\x20to\x20access\x20data\x20in\x20their\x20Machine\x20flows','MODE\x20A\x20(direct\x20payment\x20verify)\x20—\x20four\x20verifiable\x20elements\x20on\x20the\x20submitted\x20Payment:\x20'+'1)\x20amount:\x20logic_as_u256_greater_or_equal[payment.amount,\x20N]\x20(>=\x20subscription\x20price);\x20'+'2)\x20subscription\x20type:\x20payment.info.remark\x20/\x20payment.info.index\x20encodes\x20the\x20tier/plan;\x20'+'3)\x20fixed\x20recipient:\x20payment.record.recipient\x20must\x20equal\x20the\x20designated\x20payee\x20(Treasury/owner\x20address);\x20'+'4)\x20occurrence\x20time:\x20payment.time\x20within\x20the\x20validity\x20window\x20(logic_as_u256_greater_or_equal\x20/\x20logic_as_u256_lesser_or_equal\x20vs\x20context(Clock))','Payment\x20is\x20freeze_object\x20after\x20creation\x20—\x20all\x20four\x20elements\x20are\x20tamper-proof\x20evidence','For\x20a\x20LOWER\x20user-cost\x20variant\x20(no\x20per-user\x20payment\x20submission),\x20see\x20pattern.repository_whitelist_sync\x20(Mode\x20B)']},{'id':'pattern.repository_whitelist_sync','business_requirement':'Entitlement\x20check\x20via\x20a\x20synced\x20allowlist\x20Repository\x20instead\x20of\x20per-user\x20payment\x20submission\x20(low-friction\x20entitlements:\x20memberships,\x20authorizations,\x20paid-user\x20lists)','data_source':'OnChainConstant','host':'machine_forward','verifier_level':'none','logic_summary':'Off-chain\x20collector\x20gathers\x20eligible\x20users\x20(transfers\x20/\x20Payments\x20to\x20the\x20designated\x20receiving\x20address\x20or\x20object,\x20'+'Service\x20orders,\x20or\x20any\x20off-chain\x20record)\x20and\x20syncs\x20the\x20list\x20into\x20a\x20dedicated\x20Repository\x20object\x20'+'(entries\x20may\x20carry\x20a\x20validity\x20window,\x20e.g.\x20authorized\x20time\x20period).\x20'+'The\x20consuming\x20Guard\x20checks\x20membership\x20via\x20query\x201166/1167\x20(repository.data)\x20keyed\x20by\x20the\x20caller:\x20'+'vec_contains_address-style\x20logic_or\x20over\x20[repository.data(key=Signer)]\x20or\x20logic_equal[repository.data(...),\x20identifier[N](expected)].\x20'+'Repository\x20writes\x20go\x20through\x20the\x20id-keyed\x20data\x20write\x20operations\x20(batch\x20up\x20to\x20100\x20entries\x20per\x20tx).','key_queries':['repository.data'],'mitigated_risks':['R-X1-10'],'applicable_industries':['subscription','travel','rental','education'],'notes':['MODE\x20B\x20(whitelist\x20sync)\x20—\x20user-cost\x20optimization\x20of\x20Mode\x20A\x20(pattern.repository_quote_guard_subscription):\x20'+'users\x20do\x20NOT\x20submit\x20a\x20Payment\x20at\x20verification\x20time;\x20the\x20operator\x20proves\x20eligibility\x20off-chain\x20and\x20syncs\x20the\x20roster','TRADE-OFF:\x20eventual\x20consistency\x20—\x20the\x20roster\x20updates\x20at\x20the\x20collector\x27s\x20sync\x20frequency\x20(slight\x20delay),\x20'+'vs\x20Mode\x20A\x27s\x20instant\x20per-payment\x20proof.\x20Choose\x20by\x20business:\x20high-frequency\x20low-value\x20→\x20Mode\x20B;\x20'+'high-value\x20instant\x20entitlement\x20→\x20Mode\x20A','Entry\x20shape:\x20key\x20=\x20user\x20address\x20(or\x20derived\x20id),\x20value\x20=\x20expiry\x20timestamp\x20/\x20tier\x20/\x20scope;\x20'+'time-window\x20enforcement\x20compares\x20entry\x20value\x20against\x20context(Clock)\x20in\x20the\x20Guard','VERIFIED:\x20id-keyed\x20data\x20writes\x20(batch\x20≤100),\x20guard-ins.ts\x201166/1167\x20(repository.data\x20queries),\x20'+'standalone-guard\x20marking\x20(1167\x20marks\x20query-only\x20repositories)','The\x20collector\x20can\x20source\x20eligibility\x20from:\x20transfers\x20or\x20Payments\x20to\x20a\x20fixed\x20receiving\x20address/object,\x20'+'Service\x20orders\x20(order.service\x20==\x20designated\x20service),\x20or\x20external\x20off-chain\x20records','Repository\x20access\x20economics\x20stay\x20OUT\x20of\x20this\x20pattern\x20(K3\x2010\x20§5\x20D5\x20ruling:\x20reuse\x20Reward/Allocation\x20'+'outside\x20the\x20Repository\x20for\x20payment;\x20the\x20Repository\x20here\x20is\x20the\x20roster,\x20not\x20the\x20payment\x20rail)']},{'id':'pattern.supply_chain_suborder_verification','business_requirement':'Sub-service\x20purchase\x20requires\x20ownership\x20of\x20main\x20service\x20order\x20(supply\x20chain\x20milestone\x20unlock)','data_source':'SubmittedObject','host':'service_buy_guard','verifier_level':'level2_identity_set','logic_summary':'Sub-service\x20buy_guard\x20verifies\x20submitted\x20main\x20Order:\x20'+'logic_and[logic_equal[query(order.owner),\x20context(Signer)],\x20logic_equal[query(order.service),\x20identifier[N](main_service_address)]].\x20'+'User\x20submits\x20main\x20Order\x20via\x20Passport\x20(b_submission=true),\x20buy_guard\x20verifies\x20ownership\x20+\x20service\x20match.','key_queries':['order.owner','order.service'],'mitigated_risks':['R-C3-05'],'applicable_industries':['travel','rental','education','freelance'],'notes':['VERIFIER-EVIDENCE\x20DESIGN:\x20user\x20submits\x20main\x20Order\x20as\x20evidence,\x20buy_guard\x20verifies\x20order.owner==Signer\x20AND\x20order.service==main_service','Each\x20milestone\x20=\x20one\x20sub-order\x20with\x20its\x20own\x20Service\x20+\x20buy_guard\x20referencing\x20the\x20main\x20order','Main\x20flow\x20can\x20branch\x20to\x20different\x20sub-services\x20based\x20on\x20Machine\x20node\x20progression','No\x20parent_order\x20field\x20needed\x20—\x20relationship\x20verified\x20via\x20buy_guard\x20querying\x20submitted\x20Order\x20fields','Enables\x20supply\x20chain\x20composition:\x20main\x20service\x20→\x20multiple\x20sub-services\x20with\x20conditional\x20access']},{'id':'pattern.payment_exception_compensation','business_requirement':'Exception\x20branch\x20triggers\x20compensation\x20Payment\x20(e.g.,\x20delivery\x20delay\x20>\x2030min\x20auto-compensates\x20customer)','data_source':'SubmittedObject','host':'machine_forward','verifier_level':'level3_scene_combined','logic_summary':'Exception\x20forward\x20guard\x20verifies\x204-dimensional\x20anti-reuse\x20binding:\x20logic_and['+'logic_equal[query(payment.info.for),\x20identifier[N](order_address)],\x20'+'logic_equal[query(payment.info.guard),\x20identifier[N](this_guard_address)],\x20'+'logic_as_u256_greater_or_equal[query(payment.amount),\x20identifier[N](compensation_amount)],\x20'+'logic_as_u256_equal[query(payment.info.index),\x20query(progress.history\x20count)],\x20'+'logic_string_nocase_equal[query(payment.info.remark),\x20query(progress.current)]].\x20'+'Treasury\x20withdraws\x20to\x20customer\x20with\x20PaymentInfo(for_object=order,\x20for_guard=this,\x20index=history_count_at_creation,\x20remark=node_name).\x20'+'Customer\x20submits\x20Payment\x20via\x20Passport;\x20guard\x20verifies\x20index\x20matches\x20current\x20unique\x20step\x20(progress.history\x20count,\x20U64,\x20monotonically\x20increasing\x20—\x20unique\x20even\x20in\x20cycles)\x20AND\x20remark\x20matches\x20current\x20node\x20name\x20(progress.current,\x20String\x20—\x20may\x20repeat\x20across\x20cycles\x20but\x20bound\x20to\x20this\x20step\x20by\x20index).','key_queries':['payment.info.for','payment.info.guard','payment.info.index','payment.info.remark','payment.amount','progress.history\x20count','progress.current'],'mitigated_risks':[],'applicable_industries':['rental','travel','general','freelance'],'notes':['VERIFIED:\x20PaymentInfo\x20(for_object,\x20for_guard,\x20remark,\x20index),\x20payment_info_with_guard','VERIFIED:\x20withdraw\x20creates\x20the\x20Payment\x20as\x20a\x20fresh\x20singleton\x20object\x20from\x20the\x20withdrawn\x20object\x20set','Payment\x20is\x20freeze_object\x20(immutable)\x20—\x20cannot\x20be\x20modified\x20after\x20creation','VERIFIED\x20INDEX\x20QUERY:\x20progress.history\x20count\x20(id\x201273,\x20U64)\x20—\x20guard-ins.ts#L1228-1237.\x20Each\x20accomplished\x20forward\x20pushes\x20a\x20new\x20History\x20entry;\x20the\x20history\x20length\x20returns\x20the\x20current\x20session\x20id.\x20This\x20count\x20is\x20the\x20unique\x20monotonically\x20increasing\x20step\x20index\x20—\x20even\x20in\x20cycles,\x20each\x20entry\x20has\x20a\x20different\x20count.','VERIFIED\x20NODE\x20NAME\x20QUERY:\x20progress.current\x20(id\x201253,\x20String)\x20—\x20guard-ins.ts#L1025-1032.\x20Returns\x20the\x20current\x20node\x20name.\x20A\x20node\x20CAN\x20be\x20entered\x20multiple\x20times\x20in\x20cycles,\x20so\x20node\x20name\x20alone\x20is\x20NOT\x20unique\x20—\x20it\x20MUST\x20be\x20paired\x20with\x20progress.history\x20count\x20for\x20uniqueness.','DESIGN\x20INTENT\x20(USER):\x20to\x20validate\x20index\x20(U64\x20type),\x20use\x20progress.history\x20count\x20(unique,\x20non-repeating);\x20to\x20validate\x20node\x20name\x20(may\x20repeat\x20in\x20cycles),\x20store\x20it\x20in\x20PaymentInfo.remark\x20and\x20do\x20string\x20comparison\x20with\x20progress.current.','ANTI-REUSE\x204-DIMENSIONAL\x20BINDING:\x20for_object\x20(Order)\x20+\x20for_guard\x20(Guard)\x20+\x20index\x20(unique\x20step\x20via\x20progress.history\x20count)\x20+\x20remark\x20(node\x20name\x20via\x20progress.current).\x20Same\x20Payment\x20cannot\x20be\x20reused\x20in\x20other\x20contexts\x20—\x20at\x20least\x20one\x20field\x20will\x20mismatch.','VERIFIER-EVIDENCE\x20DESIGN:\x20customer\x20submits\x20Payment,\x20guard\x20verifies\x20binding\x20fields\x20match\x20current\x20context','Enables\x20user-friendly\x20exception\x20handling:\x20delay\x20→\x20auto-compensation\x20→\x20friendly\x20branch\x20flow','No\x20object-linker\x20binding\x20registration\x20needed\x20—\x20guard\x20only\x20verifies\x20submitted\x20Payment\x27s\x20field\x20accuracy']},{'id':'pattern.verifier_evidence_philosophy','business_requirement':'Guard\x20design\x20philosophy:\x20verifier\x20provides\x20evidence,\x20guard\x20verifies\x20logic\x20+\x20data\x20accuracy\x20(NOT\x20data\x20discovery)','data_source':'SubmittedObject','host':'gen_passport','verifier_level':'none','logic_summary':'Guard\x20is\x20a\x20PURE\x20VERIFICATION\x20engine.\x20Participants\x20submit\x20evidence\x20(Payment,\x20Order,\x20Proof,\x20etc.)\x20'+'via\x20Passport\x20submissions\x20(b_submission=true).\x20Guard\x20verifies:\x20(1)\x20logic\x20completeness,\x20(2)\x20data\x20usage\x20accuracy.\x20'+'Guard\x20does\x20NOT\x20discover/fetch\x20objects\x20via\x20object-linker\x20binding.\x20object-linker\x20binding\x20is\x20for\x20object\x20lifecycle\x20bookkeeping,\x20'+'NOT\x20for\x20guard\x20data\x20discovery.','key_queries':[],'mitigated_risks':['R-C3-05','R-C3-06'],'notes':['CORE\x20PRINCIPLE:\x20Guard\x20only\x20validates\x20submitted\x20evidence\x20—\x20it\x20never\x20fetches\x20data\x20on\x20its\x20own','For\x20Payment\x20verification:\x20user\x20submits\x20valid\x20Payment\x20→\x20guard\x20checks\x20for_object/for_guard/index\x20match','For\x20multi-order\x20verification:\x20verifier\x20submits\x20Order\x20data\x20→\x20guard\x20checks\x20service/owner\x20relationships','For\x20Repository\x20access:\x20user\x20submits\x20Payment\x20→\x20quote_guard\x20verifies\x20→\x20impack_list\x20updated\x20→\x20data\x20query\x20passes','Type\x203\x20(SubmittedObject)\x20data\x20source\x20class\x20embodies\x20this\x20philosophy\x20—\x20b_submission=true\x20entries','This\x20pattern\x20is\x20foundational\x20for\x20all\x20guard\x20designs\x20—\x20always\x20prefer\x20verifier-evidence\x20over\x20complex\x20object\x20discovery']},{'id':'pattern.progress_state_check','business_requirement':'Specific\x20forward\x20has\x20been\x20accomplished\x20(customer\x20confirms\x20delivery)','data_source':'WitnessDerived','host':'reward_claim','verifier_level':'none','logic_summary':'logic_equal[query_progress_history_find(...).accomplished,\x20identifier[N](true)]','key_queries':['progress.current','progress.current_time'],'witness_types':['OrderProgress'],'mitigated_risks':[],'notes':['Chain\x20query_progress_history_find\x20→\x20query_progress_history_session_forward_find']},{'id':'pattern.required_info_evidence_gate','business_requirement':'Do\x20not\x20advance\x20the\x20order\x20until\x20the\x20buyer\x20has\x20recorded\x20the\x20private\x20information\x20the\x20shop\x20requires\x20(delivery\x20detail,\x20ID,\x20credentials)\x20—\x20recorded\x20either\x20as\x20the\x20merchant\x27s\x20IM\x20user\x20address\x20(from\x20the\x20Service\x27s\x20Contact)\x20or\x20as\x20an\x20on-chain\x20WTS\x20Proof\x20object\x20address','data_source':'WitnessDerived','host':'machine_forward','verifier_level':'none','logic_summary':'query(\x27order.required_info\x20some\x27,\x20object=<Order\x20identifier[N]>\x20convert_witness\x20OrderProgress)','key_queries':['order.required_info\x20some','order.required_info','service.customer_required\x20count','service.customer_required\x20has'],'witness_types':['OrderProgress'],'applicable_industries':['retail','travel','education','rental','general'],'notes':['WHY\x20A\x20GUARD\x20AT\x20ALL:\x20the\x20on-chain\x20purchase\x20entry\x20never\x20reads\x20Service.customer_required\x20(service.move:399-419),\x20so\x20declaring\x20required\x20fields\x20is\x20DECLARATIVE\x20ONLY\x20—\x20an\x20order\x20that\x20supplies\x20none\x20is\x20still\x20created\x20on-chain.\x20A\x20Guard\x20on\x20the\x20fulfilment\x20forward\x20is\x20the\x20only\x20enforcement\x20point\x20(testnet\x20test-14\x20HIGH-05).','1572\x20measures\x20PRESENCE,\x20not\x20REQUIREMENT:\x20Order.required_info\x20is\x20Option<address>\x20(order.move:73)\x20holding\x20the\x20credential\x20address\x20the\x20ORDER\x20OWNER\x20recorded\x20via\x20the\x20required-info\x20update\x20entry\x20(order.move:77-80,\x20param\x20im_or_proof)\x20—\x20either\x20the\x20merchant\x27s\x20IM\x20user\x20address\x20(the\x20Im.at\x20entry\x20of\x20the\x20Service\x27s\x20Contact)\x20or\x20an\x20on-chain\x20WTS\x20Proof\x20object\x20address\x20(embeds\x20the\x20IM\x20address\x20+\x20last-message\x20timestamp).\x20The\x20list\x20of\x20demanded\x20fields\x20lives\x20on\x20the\x20Service\x20(1467\x20count\x20/\x201468\x20has)\x20—\x20a\x20different\x20object,\x20so\x20it\x20is\x20only\x20checkable\x20when\x20the\x20Service\x20is\x20also\x20a\x20table\x20item.','1573\x20ABORTS\x20when\x20the\x20Option\x20is\x20empty\x20(wobjects/order.rs:831-858):\x20gate\x20on\x201572,\x20then\x20use\x201573\x20only\x20to\x20read\x20or\x20compare\x20the\x20recorded\x20address.','The\x20credential\x20is\x20buyer-writable\x20and\x20unvalidated:\x20the\x20required-info\x20update\x20entry\x20asserts\x20only\x20order\x20ownership,\x20so\x20the\x20Guard\x20proves\x20\x27something\x20was\x20recorded\x27,\x20not\x20that\x20the\x20content\x20is\x20correct.\x20Where\x20the\x20content\x20matters,\x20pin\x20the\x20recorded\x20address\x20to\x20a\x20proof\x20object\x20the\x20merchant\x20issued\x20(proof.about)\x20or\x20route\x20the\x20check\x20through\x20a\x20Repository\x20with\x20a\x20quote_guard.','Gate\x20the\x20forward\x20that\x20DEPENDS\x20on\x20the\x20information\x20(e.g.\x20before\x20ship/deliver),\x20not\x20the\x20buy:\x20a\x20buy_guard\x20cannot\x20query\x20the\x20Order\x20—\x20it\x20does\x20not\x20exist\x20yet\x20at\x20buy\x20time.']},{'id':'pattern.reward_one_time_claim','business_requirement':'User\x20can\x20only\x20claim\x20reward\x20once\x20(no\x20prior\x20claims)','data_source':'OnChainConstant','host':'reward_claim','verifier_level':'none','logic_summary':'logic_equal[query_reward_record_count(object=<reward>,\x20recipient=Signer,\x20where={}),\x20identifier[N](0)]','key_queries':['reward.record_count'],'mitigated_risks':[],'notes':['Record\x20count\x20check\x20prevents\x20double-claim','SCHEMA:\x20\x27where\x27\x20is\x20REQUIRED\x20even\x20when\x20empty\x20—\x20pass\x20where:\x20{}\x20or\x20the\x20call\x20is\x20rejected\x20by\x20input\x20validation']},{'id':'pattern.reward_multi_condition','business_requirement':'Order\x20payment\x20>\x20threshold\x20AND\x20reached\x20\x27complete\x27\x20to\x20claim\x20reward','data_source':'WitnessDerived','host':'reward_claim','verifier_level':'none','logic_summary':'logic_and[logic_as_u256_greater[query(order.amount),\x20threshold],\x20logic_equal[query(progress.current),\x20\x27complete\x27],\x20logic_equal[query(order.service),\x20identifier[N](expected_service)]]','key_queries':['order.amount','progress.current','order.service'],'witness_types':['OrderProgress'],'mitigated_risks':['R-C3-05'],'notes':['Multi-condition:\x20amount\x20+\x20progress\x20state\x20+\x20service\x20match']},{'id':'pattern.arbitration_voting_weight','business_requirement':'Vote\x20weight\x20equals\x20reputation\x20score\x20(dynamic\x20weight\x20from\x20Passport)','data_source':'SubmittedObject','host':'arbitration_voting','verifier_level':'none','logic_summary':'GuardIdentifier\x20extracts\x20numeric\x20value\x20from\x20Passport\x20submission','key_queries':[],'mitigated_risks':['R-C3-02'],'notes':['Table\x20needs\x20numeric\x20submission\x20entry\x20at\x20referenced\x20index','Weight\x20must\x20come\x20from\x20on-chain\x20EntityRegistrar,\x20not\x20submission','BINDING_01:\x20voting_guard\x20GuardIdentifier\x20must\x20be\x20numeric\x20(U8-U256)','C-9\x20VERIFIED:\x20voting\x20is\x20OPTIONAL\x20—\x20voting_deadline\x20is\x20Option\x20'+'(None\x20=\x20open-ended\x20voting;\x20arbitration\x20can\x20proceed\x20whenever\x20the\x20arbiter\x20decides).\x20'+'NO\x20minimum\x20voter\x20quorum\x20is\x20required\x20on-chain:\x20the\x20arbiter\x20may\x20rule\x20with\x20any\x20number\x20'+'of\x20votes\x20(including\x20zero).\x20MAX_ARBITRATOR_VOTING=520\x20is\x20only\x20an\x20upper\x20bound.\x20'+'Open\x20voting\x20(empty\x20voting_guard)\x20gives\x20every\x20vote\x20EQUAL\x20WEIGHT\x20(1\x20person\x201\x20vote),\x20'+'but\x20it\x20is\x20NOT\x20permissionless:\x20vote()\x20asserts\x20arbitration\x20permission\x20358\x20unconditionally,\x20'+'so\x20grant\x20358\x20to\x20every\x20intended\x20voter\x20(testnet-verified\x20UPW-14:\x20without\x20the\x20grant\x20no\x20one\x20can\x20vote\x20and\x20every\x20dispute\x20dead-ends).']},{'id':'pattern.arb_status_escrow_holdback','business_requirement':'Prevent\x20double-payout:\x20an\x20order\x20must\x20not\x20settle\x20its\x20FULL\x20escrow\x20when\x20an\x20arbitration\x20ruling\x20already\x20awarded\x20the\x20buyer\x20compensation\x20from\x20the\x20compensation\x20fund\x20(testnet\x20UPW-21\x20dual-track\x20finding)','host':'service_allocator_guard','data_source':'SubmittedObject','verifier_level':'level3_scene_combined','logic_summary':'Add\x20a\x20payout-state\x20condition\x20to\x20the\x20settlement/refund\x20allocator\x27s\x20Guard\x20using\x20the\x20REAL\x20order-side\x20evidence\x20queries:\x20'+'logic_equal[query(order.claimed_by\x20some),\x20false]\x20(query\x201570\x20—\x20set\x20only\x20when\x20the\x20compensation\x20claim\x20ACTUALLY\x20paid\x20the\x20ruling\x20out\x20of\x20the\x20fund;\x20permanent,\x20withdraw-stable)\x20'+'blocks\x20any\x20escrow\x20release\x20on\x20an\x20already-compensated\x20order.\x20Conservative\x20variant:\x20logic_equal[query(order.dispute\x20count),\x200]\x20(query\x201564)\x20also\x20blocks\x20release\x20once\x20ANY\x20case\x20was\x20ever\x20filed\x20(one-way\x20door,\x20see\x20notes).\x20'+'Targeted\x20variant:\x20query(order.dispute\x20has,\x20submitted\x20Arb)\x20(1565)\x20plus\x20arb.indemnity\x20some\x20on\x20the\x20submitted\x20Arb\x20—\x20withdraw-stable\x20signal,\x20NEVER\x20arb.status\x20(transient,\x20R-X1-16).\x20'+'The\x20reverse\x20direction\x20is\x20NOT\x20Guard-expressible:\x20the\x20compensation\x20claim\x20path\x20has\x20no\x20guard/passport\x20slot\x20on-chain,\x20so\x20\x27no\x20claim\x20after\x20refund\x27\x20can\x20only\x20be\x20enforced\x20at\x20the\x20operator\x20layer\x20(MCP/keeper\x20checks\x20escrow\x20state\x20before\x20driving\x20the\x20claim).','key_queries':['order.claimed_by\x20some','order.dispute\x20count','order.dispute\x20has','arb.indemnity\x20some'],'mitigated_risks':['R-X1-16'],'notes':['VERIFIED\x20(UPW-21):\x20claiming\x20compensation\x20does\x20NOT\x20freeze\x20or\x20adjust\x20the\x20order\x20workflow\x20—\x20the\x20merchant\x20can\x20still\x20drive\x20the\x20order\x20to\x20completed\x20and\x20settle\x20the\x20FULL\x20escrow\x20on\x20top\x20of\x20the\x20compensation\x20(DUAL-TRACK\x20NOTICE).\x20The\x20protocol\x20deliberately\x20keeps\x20the\x20two\x20money\x20paths\x20independent.\x20The\x20buyer-side\x20refund-vs-claim\x20exclusion\x20is\x20now\x20closed\x20ON-CHAIN\x20(the\x20order\x20seals\x20after\x20the\x20claim);\x20what\x20still\x20needs\x20the\x20allocator\x20Guard\x20BEFORE\x20publish\x20(allocators\x20are\x20L1-frozen)\x20is\x20the\x20refund\x20route\x20policy\x20for\x20unruled\x20disputes.','SYSTEM\x20BOUNDARY\x20(design\x20intent):\x20Arbitration\x20(compensation_fund\x20payouts)\x20and\x20Allocator\x20(escrow\x20distribution)\x20are\x20two\x20INDEPENDENT\x20systems\x20—\x20independent\x20fund\x20sources,\x20independent\x20lifecycles.\x20Reading\x20arb.*\x20/\x20order.claimed_by\x20from\x20an\x20allocator\x20Guard\x20is\x20a\x20legitimate\x20cross-system\x20READ-ONLY\x20evidence\x20reference\x20(the\x20query\x20catalog\x20exists\x20for\x20exactly\x20this).\x20Adding\x20arb-linked\x20fields\x20on\x20Order/Machine\x20or\x20protocol-level\x20state\x20sync\x20would\x20break\x20the\x20boundary\x20and\x20open\x20the\x20refund+compensation\x20double-payout\x20path\x20—\x20never\x20propose\x20it.','ONE-WAY\x20DOOR:\x20Order.dispute\x20is\x20an\x20append-only\x20vector\x20(filed\x20cases\x20are\x20never\x20pruned).\x20A\x20refund\x20Guard\x20keyed\x20on\x20dispute\x20count==0\x20stays\x20blocked\x20FOREVER\x20after\x20the\x20first\x20case\x20—\x20even\x20if\x20the\x20ruling\x20awards\x20nothing,\x20the\x20escrow\x20refund\x20route\x20is\x20dead\x20and\x20funds\x20strand\x20at\x20that\x20node\x20(Machine+Allocator\x20immutable,\x20IMMUT-001).\x20Prefer\x20order.claimed_by\x20some==false\x20(blocks\x20only\x20after\x20an\x20actual\x20payout)\x20unless\x20\x27any\x20dispute\x20permanently\x20voids\x20the\x20refund\x20route,\x20ruling\x20governs\x27\x20is\x20the\x20intended\x20policy.','ORDERING\x20MATRIX:\x20claim→refund\x20is\x20closed\x20ON-CHAIN\x20—\x20once\x20a\x20ruling\x20settles,\x20the\x20order\x20seals\x20itself\x20(the\x20owner\x20receive\x20entries\x20abort),\x20so\x20a\x20refund-track\x20alloc\x20on\x20that\x20order\x20can\x20still\x20split\x20the\x20escrow\x20but\x20its\x20payout\x20can\x20never\x20be\x20claimed.\x20refund→claim\x20is\x20NOT\x20blockable\x20on-chain\x20(the\x20seal\x20arms\x20only\x20at\x20claim\x20time)\x20—\x20refuse\x20to\x20drive\x20arb_claim_compensation\x20for\x20an\x20order\x20whose\x20escrow\x20was\x20already\x20released\x20to\x20the\x20buyer.','Dry-run\x20the\x20combined\x20condition\x20on\x20testnet\x20before\x20publish\x20(INFERENCE\x20per\x20pattern.allocation_staged_release).']},{'id':'pattern.deposit_arb_reimbursement','business_requirement':'Recover\x20an\x20arbitration\x20compensation\x20from\x20the\x20responsible\x20supplier\x20WITHOUT\x20touching\x20already-distributed\x20escrow\x20—\x20the\x20protocol\x20has\x20NO\x20clawback\x20(allocation\x20is\x20irreversible;\x20the\x20only\x20return\x20path\x20needs\x20the\x20recipient\x27s\x20voluntary\x20cooperation),\x20so\x20recovery\x20is\x20a\x20FORWARD\x20allocation\x20from\x20a\x20pre-funded\x20deposit\x20pool','host':'service_allocator_guard','data_source':'SubmittedObject','verifier_level':'level3_scene_combined','logic_summary':'Supplier\x20onboards\x20with\x20a\x20pre-funded\x20deposit\x20Allocation.\x20Its\x20allocator\x20Guard\x20requires\x20cross-system\x20evidence:\x20'+'(1)\x20order.claimed_by\x20(1571)\x20==\x20the\x20submitted\x20Arb\x20—\x20compensation\x20was\x20ACTUALLY\x20paid\x20out\x20of\x20the\x20Service\x20fund\x20(the\x20reimbursement\x20trigger;\x20claimed_by\x20is\x20permanent\x20and\x20names\x20the\x20case);\x20'+'(2)\x20arb.order\x20(1513)\x20on\x20the\x20submitted\x20Arb\x20==\x20the\x20paying\x20order\x20—\x20the\x20case\x20belongs\x20to\x20this\x20order;\x20'+'(3)\x20optional\x20amount\x20tier:\x20arb.indemnity.amount\x20(1641,\x20withdraw-stable)\x20compared\x20against\x20a\x20Repository\x20tier\x20grid\x20(see\x20pattern.repository_data_check)\x20or\x20a\x20Surplus\x20drain\x20of\x20the\x20whole\x20pool.\x20'+'A\x20collaborator/keeper\x20drives\x20alloc_by_guard\x20on\x20the\x20deposit\x20Allocation\x20after\x20the\x20claim\x20settles\x20—\x20the\x20deduction\x20is\x20a\x20native\x20forward\x20allocation\x20(idempotent,\x20auditable),\x20not\x20a\x20reversal.','key_queries':['order.claimed_by','arb.order','arb.indemnity.amount','repository.data'],'mitigated_risks':['R-X1-16'],'notes':['BOUNDARY\x20(design\x20intent):\x20this\x20is\x20a\x20READ-ONLY\x20evidence\x20reference\x20across\x20the\x20two\x20independent\x20systems\x20(Arbitration\x20fund\x20vs\x20escrow\x20Allocator)\x20—\x20exactly\x20what\x20the\x20arb.*\x20/\x20order.claimed_by\x20query\x20catalog\x20exists\x20for.\x20It\x20does\x20NOT\x20couple\x20the\x20systems:\x20no\x20arb\x20field\x20is\x20added\x20to\x20Order/Machine,\x20no\x20protocol\x20state\x20sync,\x20the\x20escrow\x20track\x20is\x20untouched.','Gate\x20on\x20order.claimed_by\x20(set\x20only\x20when\x20the\x20claim\x20actually\x20paid),\x20NOT\x20on\x20arb.status\x20(transient:\x20arb_withdraw\x20advances\x205→6,\x20R-X1-16)\x20and\x20not\x20on\x20arb.indemnity\x20alone\x20(a\x20ruling\x20without\x20a\x20claim\x20has\x20moved\x20no\x20money\x20—\x20nothing\x20to\x20reimburse\x20yet).','Deposit\x20must\x20cover\x20the\x20worst\x20case\x20(indemnity\x20capped\x20at\x203x\x20order\x20amount)\x20—\x20size\x20the\x20pool\x20at\x20onboarding;\x20a\x20drained\x20pool\x20blocks\x20reimbursement\x20until\x20topped\x20up\x20(alloc\x20aborts\x20EINSUFFICIENT_BALANCE,\x20code\x207).','No\x20Move\x20change\x20required\x20—\x20buildable\x20today\x20with\x20Allocation\x20+\x20Guard\x20+\x20Repository\x20tier\x20grid.\x20The\x20deposit\x20mode\x20is\x20the\x20immediate\x20configuration-layer\x20path;\x20a\x20true\x20clawback\x20protocol\x20primitive\x20stays\x20a\x20later\x20evaluation\x20pending\x20real-case\x20coverage.']},{'id':'pattern.arbitration_membership_check','business_requirement':'Only\x20premium\x20members\x20can\x20file\x20disputes','data_source':'OnChainConstant','host':'arbitration_usage','verifier_level':'none','logic_summary':'logic_and[query(entity\x20exists),\x20logic_as_u256_greater_or_equal[query(entity\x20tier),\x20identifier[N](premium_tier)]]','key_queries':['entity.registrar','entity.linker'],'mitigated_risks':[],'notes':['ENTITY_REGISTRAR_ADDRESS\x20(0xaab)\x20/\x20ENTITY_LINKER_ADDRESS\x20(0xaaa)\x20must\x20be\x20in\x20table']},{'id':'pattern.scene_allocator_entity_recipient','business_requirement':'Service\x20allocator\x20with\x20sharing.who=Entity\x20—\x20no\x20Signer\x20binding\x20needed','data_source':'OnChainConstant','host':'service_allocator_guard','verifier_level':'level3_scene_combined','logic_summary':'Scene\x20verifies\x20fund\x20flow\x20safety\x20—\x20Guard\x20only\x20validates\x20allocation\x20rules','key_queries':['service.permission','order.amount'],'mitigated_risks':['R-C3-06'],'notes':['Funds\x20flow\x20to\x20fixed\x20Treasury/address\x20regardless\x20of\x20caller','sharing.who=Entity\x20already\x20guarantees\x20recipient\x20safety','No\x20Signer\x20binding\x20required\x20—\x20R-C3-06\x20safe']},{'id':'pattern.scene_machine_forward_operator','business_requirement':'Machine\x20forward\x20with\x20permissionIndex/namedOperator\x20already\x20verifies\x20operator','data_source':'OnChainConstant','host':'machine_forward','verifier_level':'level3_scene_combined','logic_summary':'Forward\x27s\x20permissionIndex/namedOperator\x20verifies\x20operator\x20—\x20Guard\x20only\x20validates\x20submitted\x20data','key_queries':[],'mitigated_risks':[],'notes':['Scene\x20verifies\x20operator\x20permission\x20via\x20permissionIndex/namedOperator','Signer\x20binding\x20only\x20needed\x20if\x20submitted\x20data\x20must\x20belong\x20to\x20operator','Evaluate\x20scene\x20before\x20adding\x20Signer\x20binding']},{'id':'pattern.fund_flow_refund_freeform','business_requirement':'Refund\x20/\x20cancellation\x20fund-release\x20defined\x20purely\x20by\x20game\x20conditions\x20—\x20NOT\x20bound\x20to\x20any\x20Machine\x20node','data_source':'SubmittedObject','host':'service_allocator_guard','verifier_level':'level2_identity_set','logic_summary':'An\x20allocator\x20Guard\x20whose\x20root\x20encodes\x20refund\x20conditions\x20ARBITRARILY:\x20'+'buyer\x20signature\x20(logic_equal[Signer,\x20buyer]),\x20timeout\x20(logic_as_u256_greater_or_equal[Clock,\x20deadline]),\x20'+'evidence\x20state\x20(query\x20any\x20on-chain\x20object:\x20order\x20fields,\x20repository\x20data,\x20payment\x20proofs),\x20'+'arbitration\x20outcome,\x20or\x20any\x20logic_and/or\x20combination.\x20No\x20progress/current-node\x20query\x20required.','key_queries':['order.owner','order.service','order.amount'],'mitigated_risks':['R-C3-06'],'notes':['C-2\x20RESOLUTION:\x20Machine-node-triggered\x20refund\x20(\x27at\x20cancelled\x20node\x20→\x20release\x27)\x20is\x20only\x20ONE\x20application\x20pattern.\x20'+'Guard+Allocator\x20is\x20a\x20GENERAL\x20game\x20primitive:\x20the\x20refund\x20condition\x20tree\x20is\x20fully\x20free-form.\x20'+'Move\x20layer\x20needs\x20NO\x20change\x20—\x20Guard\x20roots\x20accept\x20arbitrary\x20logic\x20over\x20any\x20queryable\x20state.','GAME-THEORETIC\x20READING:\x20both\x20parties\x20should\x20evaluate\x20the\x20refund\x20Guard\x20BEFORE\x20transacting\x20—\x20'+'who\x20can\x20trigger\x20it,\x20under\x20which\x20conditions,\x20with\x20what\x20evidence.\x20Use\x20the\x20analyze_guard_semantics\x20'+'query\x20action\x20to\x20render\x20+\x20lint\x20any\x20Guard\x20and\x20reason\x20about\x20each\x20party\x27s\x20leverage.','Condition\x20dimensions\x20freely\x20composable:\x20identity\x20(Signer/Entity),\x20time\x20(Clock),\x20'+'counterparty\x20evidence\x20(submitted\x20Payment/Order/Proof),\x20shared\x20data\x20(Repository),\x20'+'workflow\x20state\x20(Progress\x20—\x20optional,\x20only\x20when\x20a\x20Machine\x20exists)','Multi-tier\x20refund:\x20multiple\x20allocators\x20with\x20first-match-wins\x20order\x20encode\x20graduated\x20policies\x20'+'(full\x20refund\x20pre-delivery,\x20partial\x20refund\x20post-milestone,\x20no\x20refund\x20post-acceptance)\x20as\x20SEPARATE\x20Guards']},{'id':'pattern.fund_flow_profit_share_freeform','business_requirement':'Revenue/profit\x20sharing\x20among\x20partners\x20triggered\x20by\x20verifiable\x20contribution\x20conditions\x20—\x20not\x20by\x20workflow\x20nodes','data_source':'OnChainConstant','host':'service_allocator_guard','verifier_level':'level3_scene_combined','logic_summary':'Allocator\x20sharing\x20(who+ratio)\x20defines\x20the\x20SPLIT;\x20the\x20Guard\x20defines\x20WHEN\x20the\x20split\x20executes.\x20'+'The\x20WHEN\x20is\x20free-form:\x20period\x20boundary\x20(Clock\x20vs\x20interval),\x20contribution\x20proof\x20(submitted\x20evidence),\x20'+'performance\x20threshold\x20(Repository\x20metric),\x20or\x20counterparty\x20co-signature.','key_queries':['repository.data','payment.amount'],'mitigated_risks':['R-C3-06'],'applicable_industries':['freelance','subscription','education'],'notes':['C-2\x20RESOLUTION:\x20profit-sharing\x20is\x20an\x20application\x20pattern\x20of\x20the\x20same\x20Guard+Allocator\x20primitive\x20—\x20'+'the\x20trigger\x20condition\x20tree\x20is\x20arbitrary\x20game\x20logic,\x20not\x20a\x20workflow\x20artifact.','sharing.who=Entity\x20recipients\x20make\x20the\x20split\x20caller-safe\x20(funds\x20flow\x20to\x20fixed\x20addresses)\x20—\x20'+'Guard\x20then\x20only\x20gates\x20TIMING/CONDITIONS,\x20not\x20identity\x20(R-C3-06\x20safe\x20by\x20scene)','Periodic\x20settlement:\x20logic_as_u256_greater_or_equal[Clock,\x20identifier[N](period_start)]\x20+\x20'+'logic_as_u256_equal[calc_number_mod[Clock,\x20interval],\x200]-style\x20windows,\x20'+'or\x20a\x20Repository-held\x20settlement\x20cursor\x20updated\x20after\x20each\x20allocation\x20run']},{'id':'pattern.permission_guard_entity_time_window','business_requirement':'Delegate\x20a\x20permission\x20index\x20to\x20a\x20Guard\x20object\x20address\x20—\x20authorization\x20that\x20self-enforces\x20and\x20self-expires\x20(time-windowed\x20delegation)','data_source':'SystemContext','host':'machine_forward','verifier_level':'none','logic_summary':'The\x20entity\x20table\x20accepts\x20\x27user/guard\x20address\x20&\x20permission_index\x20list\x27\x20—\x20'+'a\x20Guard\x27s\x20OWN\x20ADDRESS\x20can\x20hold\x20a\x20permission\x20index.\x20The\x20delegated\x20Guard\x20then\x20encodes\x20'+'temporal\x20+\x20contextual\x20conditions:\x20logic_and[logic_as_u256_greater_or_equal[Clock,\x20valid_from],\x20'+'logic_as_u256_lesser_or_equal[Clock,\x20valid_until],\x20<scene\x20conditions>].\x20'+'Callers\x20satisfying\x20the\x20Guard\x20act\x20with\x20the\x20delegated\x20permission\x20index.','key_queries':[],'mitigated_risks':[],'notes':['C-8\x20VERIFIED:\x20entity\x20table\x20comment\x20—\x20\x27user/guard\x20address\x20&\x20permission_index\x20list\x27\x20'+'(guard\x20addresses\x20are\x20first-class\x20permission\x20entities,\x20same\x20as\x20user\x20addresses)','TIME\x20WINDOW:\x20Guard\x20roots\x20compose\x20context(Clock)\x20freely\x20—\x20valid_from/valid_until\x20bounds,\x20'+'recurring\x20windows\x20(mod\x20arithmetic),\x20or\x20deadline-before\x20(authorize\x20only\x20until\x20expiry)','SELF-EXPIRING\x20DELEGATION:\x20after\x20valid_until\x20the\x20Guard\x20fails\x20for\x20everyone\x20—\x20no\x20on-chain\x20'+'revocation\x20transaction\x20needed,\x20no\x20trust\x20in\x20the\x20delegate\x20to\x20stop\x20acting','SCENARIO\x20COMBINATION\x20(scenario\x20layer):\x20temporary\x20operator\x20(holiday\x20cover),\x20seasonal\x20service\x20window,\x20'+'trial-period\x20customer\x20privileges,\x20contractor\x20time-boxed\x20access,\x20emergency-break-glass\x20with\x20auto-expiry','Design\x20tip:\x20combine\x20with\x20scene\x20conditions\x20(order\x20state,\x20submitted\x20evidence)\x20—\x20'+'time\x20bounds\x20rarely\x20stand\x20alone']},{'id':'pattern.allocator_order_anchor','business_requirement':'Bind\x20an\x20allocator\x27s\x20Guard\x20to\x20the\x20paying\x20order\x20when\x20every\x20recipient\x20is\x20a\x20fixed\x20address\x20(Entity/Signer)\x20—\x20the\x20Guard\x20would\x20otherwise\x20read\x20no\x20order\x20at\x20all','data_source':'OnChainConstant','host':'service_allocator_guard','verifier_level':'level3_scene_combined','logic_summary':'Entity/Signer\x20rows\x20are\x20not\x20resolved\x20from\x20submissions,\x20so\x20an\x20allocator\x20paying\x20only\x20them\x20gives\x20its\x20Guard\x20nothing\x20to\x20'+'constrain.\x20Add\x20a\x20{GuardIdentifier:\x200}\x20row\x20with\x20Rate\x200\x20(or\x20Surplus\x20when\x20the\x20allocator\x20has\x20no\x20other\x20Surplus\x20row):\x20'+'the\x20row\x20pays\x20nothing,\x20and\x20the\x20Guard\x27s\x20Identifier\x20slot\x20now\x20resolves\x20to\x20the\x20paying\x20order,\x20so\x20order.*\x20queries\x20bind.','key_queries':['order.service','order.owner'],'notes':['VERIFIED\x20on\x20a\x20standalone\x20Allocation:\x20the\x20zero-share\x20anchor\x20row\x20is\x20accepted\x20by\x20order_allocators\x20(Move\x20asserts\x20no\x20Rate>0\x20minimum).','Confirm\x20Rate\x200\x20on\x20the\x20real\x20Service\x20with\x20a\x20dry-run\x20before\x20publishing\x20—\x20published\x20allocators\x20cannot\x20change.','The\x20anchor\x20row\x20also\x20makes\x20recipient-constraint\x20audits\x20meaningful:\x20the\x20Guard\x27s\x20binding\x20target\x20exists.']},{'id':'pattern.allocation_staged_release','business_requirement':'Pay\x20an\x20order\x20out\x20in\x20stages\x20(milestones),\x20or\x20hold\x20a\x20share\x20back\x20(deposit,\x20warranty,\x20quality\x20reserve)\x20behind\x20a\x20time\x20window\x20/\x20dispute\x20state','data_source':'SystemContext','host':'service_allocator_guard','verifier_level':'level3_scene_combined','logic_summary':'An\x20Allocation\x20can\x20be\x20triggered\x20MANY\x20times\x20and\x20the\x20contract\x20keeps\x20no\x20\x27already\x20paid\x27\x20flag,\x20so\x20every\x20staged\x20allocator\x20'+'needs\x20its\x20own\x20not-yet-paid\x20condition:\x20escrow\x20balance\x20still\x20equals\x20the\x20order\x20amount,\x20or\x20a\x20state/time\x20only\x20one\x20stage\x20'+'satisfies.\x20A\x20holdback\x20is\x20an\x20allocator\x20whose\x20Guard\x20adds\x20a\x20time\x20window\x20(progress.current_time\x20+\x20duration)\x20and,\x20for\x20'+'dispute\x20awareness,\x20a\x20condition\x20on\x20order.dispute\x20count\x20or\x20on\x20arb.indemnity\x20some\x20of\x20a\x20submitted\x20Arb\x20—\x20NEVER\x20on\x20'+'arb.status\x20(transient,\x20see\x20notes).','key_queries':['progress.current_time','order.dispute','arb.indemnity\x20some'],'notes':['REPLAY\x20TEST\x20MANDATORY:\x20trigger\x20the\x20same\x20allocator\x20twice\x20and\x20expect\x20the\x20second\x20call\x20to\x20fail\x20with\x20abort\x20code\x207\x20(insufficient\x20balance).','ONE-SHOT\x20KEY\x20(E-2(b),\x20protocol\x20142):\x20for\x20a\x20PARTIAL\x20allocator\x20whose\x20residual\x20would\x20otherwise\x20be\x20repeatedly\x20claimable,\x20opt\x20into\x20the\x20once-key\x20—\x20register\x20an\x20address-typed\x20{\x20identifier:\x20255,\x20b_submission:\x20true\x20}\x20row\x20AND\x20make\x20the\x20guard\x20EXPRESSION\x20actually\x20consume\x20identifier\x20255\x20(a\x20TYPE_CONSTANT\x20255\x20clause).\x20Declaring\x20b_submission=true\x20WITHOUT\x20referencing\x20255\x20verifies\x20nothing,\x20so\x20a\x20caller\x20can\x20submit\x20a\x20fresh\x20once-value\x20each\x20round\x20and\x20bypass\x20the\x20guard\x20entirely.\x20Pin\x20255\x20to\x20a\x20business-immutable\x20value\x20(typically\x20the\x20Order\x20address);\x20a\x20successful\x20alloc\x20records\x20a\x20(guard,\x20allocator,\x20key)\x20once-slot\x20and\x20a\x20replay\x20aborts\x20with\x20code\x2016.','VERIFIED\x20on\x20testnet\x20(booking\x20o10):\x20time-window\x20holdbacks\x20AND\x20dispute-aware\x20conditions\x20via\x20arb.indemnity\x20some.','⚠️\x20TRANSIENT-STATE\x20TRAP:\x20never\x20gate\x20a\x20refund/release\x20on\x20arb.status\x20==\x205\x20(Finished)\x20—\x20arb_withdraw\x20legitimately\x20advances\x20the\x20case\x205→6\x20(Withdrawn)\x20and\x20the\x20edge\x20dies\x20forever;\x20Guard\x20+\x20Machine\x20are\x20immutable\x20after\x20publish\x20(IMMUT-001),\x20so\x20mistyping\x20arb.status\x20strands\x20funds\x20permanently\x20(o10:\x201.5\x20WOW\x20locked).\x20arb.indemnity\x20some\x20(Bool)\x20is\x20the\x20withdraw-stable\x20signal;\x20arb.indemnity.time\x20(U64)\x20adds\x20the\x20ruling\x20timestamp\x20for\x20time-bounded\x20gates.\x20See\x20template\x20tpl_forward_arb_ruling_won\x20and\x20rule\x20R-X1-16.','Never\x20pay\x20the\x20held\x20share\x20from\x20the\x20same\x20Guard\x20that\x20pays\x20the\x20main\x20share\x20—\x20a\x20Guard\x20that\x20also\x20fires\x20while\x20a\x20warranty\x20is\x20open\x20leaves\x20the\x20buyer\x20no\x20leverage.']},{'id':'pattern.fund_flow_stop_node_coverage','business_requirement':'No\x20order\x20may\x20ever\x20rest\x20at\x20a\x20node\x20whose\x20funds\x20have\x20no\x20defined\x20exit\x20—\x20every\x20stop\x20node\x20of\x20the\x20Machine\x20needs\x20BOTH\x20a\x20withdrawal\x20(release)\x20and\x20a\x20refund\x20allocation\x20rule,\x20evaluated\x20BEFORE\x20Service\x20publish','data_source':'SubmittedObject','host':'service_allocator_guard','verifier_level':'level3_scene_combined','logic_summary':'Design-time\x20topology\x20review,\x20not\x20a\x20single\x20Guard\x20tree:\x20enumerate\x20every\x20node\x20where\x20an\x20order\x20can\x20rest\x20'+'(terminal\x20nodes\x20AND\x20waiting\x20states\x20—\x20review\x20windows,\x20open\x20disputes,\x20staged-release\x20holds)\x20and\x20map\x20each\x20'+'to\x20the\x20allocator\x20Guard(s)\x20that\x20move\x20money\x20out\x20of\x20it.\x20A\x20stop\x20node\x20with\x20no\x20release\x20rule\x20freezes\x20the\x20'+'merchant\x20share;\x20one\x20with\x20no\x20refund\x20rule\x20freezes\x20the\x20buyer\x27s\x20escrow.\x20Machine\x20+\x20Allocator\x20are\x20immutable\x20'+'after\x20publish\x20(IMMUT-001)\x20—\x20a\x20missed\x20node\x20is\x20a\x20permanent\x20fund\x20stranding,\x20not\x20a\x20fixable\x20typo.','key_queries':['order.service','progress.current_time','arb.indemnity\x20some'],'mitigated_risks':['R-X1-16'],'notes':['CHECKLIST\x20at\x20Service\x20publish:\x20(1)\x20list\x20stop\x20nodes\x20from\x20the\x20Machine\x20graph\x20—\x20nodes\x20with\x20no\x20outgoing\x20Pair\x20PLUS\x20every\x20node\x20where\x20a\x20human/external\x20action\x20is\x20awaited\x20(review,\x20handover,\x20dispute);\x20(2)\x20for\x20each,\x20name\x20the\x20release\x20allocator\x20AND\x20the\x20refund\x20allocator\x20(or\x20record\x20an\x20explicit\x20\x27no\x20refund\x20possible\x27\x20decision\x20with\x20its\x20rationale);\x20(3)\x20verify\x20each\x20mapping\x20Guard\x20is\x20satisfiable\x20in\x20BOTH\x20directions\x20(a\x20rule\x20that\x20can\x20never\x20become\x20true\x20strands\x20the\x20same\x20as\x20a\x20missing\x20rule).','REVIEW-GATED\x20RELEASE\x20is\x20a\x20TIME\x20VARIANT\x20of\x20the\x20same\x20exit\x20—\x20\x27reviewed\x27\x20OR\x20\x27unreviewed\x20after\x20T\x27\x20as\x20logic_or\x20inside\x20ONE\x20release\x20Guard;\x20never\x20model\x20reviewed/unreviewed\x20as\x20parallel\x20outgoing\x20edges\x20of\x20completed\x20(race\x20deadlock,\x20F-REVIEW-BLOCK)\x20and\x20never\x20as\x20a\x20node\x20without\x20its\x20own\x20exit.','DISPUTE\x20exits\x20gate\x20on\x20arb.indemnity\x20(withdraw-stable),\x20NEVER\x20arb.status==5\x20(transient\x20—\x20R-X1-16\x20/\x20tpl_forward_arb_ruling_won).','TIME\x20WINDOWS\x20on\x20these\x20exits\x20follow\x20the\x20dual-track\x20rule:\x20chain\x20Clock\x20(native,\x20coarse)\x20or\x20self-built\x20repository\x20oracle\x20(exact\x20wall\x20time)\x20—\x20see\x20pattern.time_source_repository_oracle.','GENERATIVE,\x20NOT\x20TEMPLATE-BOUND:\x20the\x20stop-node\x20list\x20comes\x20from\x20THIS\x20business\x27s\x20rest\x20states,\x20derived\x20from\x20Move-native\x20primitives\x20(nodes/pairs/forwards/guards/allocators).\x20wowok\x20grows\x20arbitrary\x20commerce\x20systems\x20—\x20do\x20not\x20copy\x20another\x20industry\x27s\x20node\x20vocabulary;\x20enumerate\x20your\x20own\x20rest\x20states\x20and\x20cover\x20every\x20one.','Engine\x20enforcement:\x20R-M5-03\x20fires\x20when\x20a\x20Machine\x20has\x20stop\x20nodes\x20but\x20no\x20Allocator\x20is\x20published;\x20R-M5-09\x20carries\x20this\x20checklist\x20as\x20the\x20design-time\x20review\x20obligation.']},{'id':'pattern.commission_holdback','business_requirement':'Commission\x20or\x20bonus\x20that\x20should\x20depend\x20on\x20the\x20order\x20staying\x20undisputed\x20—\x20there\x20is\x20NO\x20clawback\x20once\x20an\x20allocation\x20has\x20run','data_source':'SystemContext','host':'service_allocator_guard','verifier_level':'level3_scene_combined','logic_summary':'Once\x20an\x20allocation\x20runs,\x20the\x20money\x20is\x20in\x20the\x20recipients\x27\x20wallets\x20—\x20Payments\x20are\x20final\x20and\x20only\x20the\x20merchant-funded\x20'+'compensation\x20fund\x20remains.\x20Pay\x20a\x20contested\x20commission\x20from\x20a\x20LATER\x20allocator\x20behind\x20a\x20time\x20window\x20and\x20a\x20dispute\x20'+'condition\x20(see\x20pattern.allocation_staged_release),\x20never\x20from\x20the\x20settlement\x20allocator.','key_queries':['order.dispute','progress.current_time'],'notes':['VERIFIED:\x20no\x20recall/clawback\x20path\x20exists\x20on\x20Payments.\x20INFERENCE:\x20the\x20holdback\x20variant\x20—\x20dry-run\x20before\x20publishing.']},{'id':'pattern.reward_rule_replacement','business_requirement':'Keep\x20the\x20option\x20to\x20replace\x20a\x20Reward\x20rule\x20later\x20(payout\x20is\x20fixed\x20when\x20its\x20Guard\x20is\x20added)','data_source':'OnChainConstant','host':'reward_claim','verifier_level':'none','logic_summary':'Give\x20every\x20reward\x20guard_add\x20an\x20expiration_time\x20if\x20the\x20rule\x20may\x20need\x20replacement\x20—\x20without\x20one\x20the\x20rule\x20is\x20permanent.\x20'+'Replace\x20later\x20via\x20guard_remove_expired:\x20true,\x20then\x20guard_add\x20the\x20new\x20rule.','key_queries':[],'notes':['SCHEMA\x20READING:\x20confirm\x20the\x20guard_remove_expired\x20sequence\x20on\x20a\x20test\x20Reward\x20before\x20promising\x20it\x20to\x20users.','Do\x20not\x20set\x20the\x20top-level\x20guard_expiration_time\x20unless\x20you\x20promise\x20claimants\x20no\x20new\x20rules\x20before\x20that\x20time.']},{'id':'pattern.buy_guard_blocklist','business_requirement':'Refuse\x20certain\x20buyers\x20at\x20purchase\x20time\x20via\x20a\x20mutable\x20list\x20—\x20without\x20redeploying\x20the\x20Guard\x20or\x20the\x20Service','data_source':'SubmittedObject','host':'service_buy_guard','verifier_level':'none','logic_summary':'buy_guard\x20reads\x20on-chain\x20state\x20at\x20purchase\x20time.\x20Bind\x20a\x20Guard\x20that\x20fails\x20when\x20the\x20signer\x20is\x20listed\x20in\x20a\x20Repository\x20'+'policy:\x20context_signer\x20as\x20the\x20key\x20+\x20repository.data\x20has\x20with\x20logic_not.\x20Editing\x20the\x20list\x20needs\x20no\x20new\x20Guard\x20and\x20no\x20new\x20Service.','key_queries':['repository.data'],'notes':['VERIFIED:\x20buy_guard\x20state-read.\x20INFERENCE:\x20the\x20Repository\x20blocklist\x20—\x20dry-run\x20before\x20publishing.','LIMITS:\x20stops\x20NEW\x20orders\x20only\x20—\x20existing\x20orders\x20and\x20their\x20allocations\x20are\x20untouched;\x20the\x20Messenger\x20blacklist\x20does\x20not\x20affect\x20the\x20chain;\x20restrict\x20who\x20can\x20write\x20the\x20Repository\x20policy.']},{'id':'pattern.referral_anti_self_purchase','business_requirement':'Referral\x20commissions\x20where\x20the\x20buyer\x20must\x20not\x20be\x20their\x20own\x20referrer\x20—\x20nothing\x20on-chain\x20checks\x20order.agents','data_source':'SubmittedObject','host':'service_allocator_guard','verifier_level':'level3_scene_combined','logic_summary':'agents\x20on\x20an\x20order\x20is\x20filled\x20by\x20the\x20buyer\x20at\x20purchase\x20time\x20and\x20anti_cheat\x20does\x20not\x20read\x20it.\x20Add\x20to\x20the\x20commission\x20'+'allocator\x27s\x20Guard:\x20the\x20referrer\x20is\x20an\x20agent\x20of\x20the\x20order\x20(order.agent\x20has)\x20AND\x20is\x20not\x20the\x20order\x27s\x20owner\x20(order.owner).','key_queries':['order.agent','order.owner'],'notes':['VERIFIED:\x20the\x20anti-cheat\x20gap.\x20INFERENCE:\x20the\x20Guard\x20condition\x20—\x20source-derived,\x20untested;\x20dry-run\x20before\x20publishing.','Blocks\x20the\x20same-address\x20case\x20only.\x20The\x20commission\x20recipient\x20must\x20be\x20an\x20Entity\x20(or\x20Signer)\x20—\x20a\x20GuardIdentifier\x20recipient\x20is\x20the\x20order\x20itself.']},{'id':'pattern.multi_party_recourse','business_requirement':'Multi-party\x20services\x20(hotels,\x20carriers,\x20subcontractors):\x20pay\x20a\x20third\x20party\x20from\x20the\x20order\x20without\x20losing\x20recourse\x20when\x20THEY\x20fail','data_source':'SystemContext','host':'service_allocator_guard','verifier_level':'none','logic_summary':'Only\x20the\x20paying\x20order\x20and\x20the\x20Service\x20it\x20bought\x20from\x20take\x20part\x20in\x20an\x20arbitration,\x20and\x20the\x20payout\x20comes\x20from\x20that\x20'+'Service\x27s\x20compensation\x20fund\x20(capped\x20at\x203x\x20the\x20order\x20amount).\x20A\x20third\x20party\x20who\x20is\x20only\x20an\x20allocation\x20recipient\x20cannot\x20'+'be\x20named,\x20notified\x20or\x20heard\x20in\x20a\x20dispute.\x20Cover\x20it\x20in\x20advance:\x20hold\x20their\x20share\x20behind\x20a\x20time\x20window\x20and\x20a\x20no-dispute\x20'+'condition\x20(see\x20pattern.allocation_staged_release),\x20or\x20buy\x20their\x20part\x20as\x20its\x20own\x20order\x20from\x20their\x20Service\x20so\x20you\x20hold\x20'+'the\x20customer\x20rights\x20against\x20them.','key_queries':['order.dispute','progress.current_time'],'notes':['VERIFIED:\x20two-tier\x20orders.\x20INFERENCE:\x20downstream\x20recourse\x20via\x20holdback\x20—\x20dry-run\x20before\x20publishing.']},{'id':'pattern.tiered_amount_ladder','business_requirement':'Dynamic\x20compensation\x20formula\x20(refund\x20proportional\x20to\x20nights\x20used,\x20tiered\x20cancellation\x20penalty)\x20—\x20Allocator\x20sharing\x20is\x20a\x20STATIC\x20configuration\x20value,\x20so\x20a\x20continuous\x20runtime\x20formula\x20cannot\x20be\x20expressed','data_source':'WitnessDerived','host':'service_allocator_guard','verifier_level':'level3_scene_combined','logic_summary':'Approximate\x20the\x20formula\x20with\x20a\x20LADDER:\x20one\x20allocator\x20branch\x20per\x20tier,\x20each\x20with\x20fixed\x20sharing,\x20selected\x20by\x20an\x20'+'interval\x20Guard\x20—\x20logic_as_u256_greater\x20/\x20greater_or_equal\x20/\x20lesser\x20/\x20lesser_or_equal\x20(common.move\x20opcodes\x2091-94,\x20'+'ON-CHAIN\x20VERIFIED\x20with\x20numeric\x20operands)\x20over\x20a\x20witness-derived\x20operand\x20(progress.current_time\x20or\x20order.time\x20+\x20duration).\x20'+'Tier\x20Guards\x20partition\x20the\x20operand\x20range\x20so\x20exactly\x20one\x20branch\x20is\x20payable\x20per\x20order.','key_queries':['progress.current_time','order.time'],'witness_types':['OrderProgress'],'mitigated_risks':[],'notes':['Rate\x20tiers\x20for\x20PROPORTIONAL\x20formulas\x20(penalty\x20=\x20share\x20of\x20order):\x20Rate\x20scales\x20with\x20the\x20order\x20amount\x20naturally.','Fixed\x20Amount\x20tiers\x20ONLY\x20for\x20absolute-value\x20formulas\x20(damage\x20repair\x20from\x20a\x20public\x20price\x20table)\x20—\x20and\x20every\x20fixed\x20Amount\x20must\x20stay\x20BELOW\x20the\x20smallest\x20expected\x20order\x20escrow:\x20a\x20larger\x20Amount\x20aborts\x20the\x20allocation\x20with\x20Insufficient\x20balance\x20and\x20PERMANENTLY\x20deadlocks\x20that\x20branch\x20(the\x20order\x20balance\x20is\x20unrecoverable\x20through\x20it).\x20See\x20the\x20on-chain\x20abort\x20at\x20allocation.move\x20assert!(balance\x20>=\x20alloc.fix).','Keep\x20tiers\x20disjoint\x20and\x20exhaustive\x20over\x20the\x20expected\x20operand\x20range\x20—\x20an\x20uncovered\x20gap\x20means\x20NO\x20branch\x20is\x20payable\x20and\x20the\x20balance\x20waits\x20for\x20manual\x20resolution.','Each\x20tier\x20needs\x20its\x20own\x20not-yet-paid\x20condition\x20(see\x20pattern.allocation_staged_release)\x20—\x20an\x20Allocation\x20can\x20fire\x20repeatedly\x20and\x20the\x20contract\x20keeps\x20no\x20already-paid\x20flag.']}];export const VERIFIER_LEVEL_GUIDANCE=[{'level':'level1_strict_single','pattern':'logic_equal[context(Signer),\x20identifier[N](fixed_address)]','when_to_use':'Role\x20permanently\x20tied\x20to\x20one\x20address\x20AND\x20designer\x20accepts\x20lock-in\x20risk','risk_rules':['R-C4-04'],'recommendation':'avoid'},{'level':'level2_identity_set','pattern':'logic_or\x20of\x20multiple\x20identity\x20checks','when_to_use':'Role-based\x20access\x20—\x20multiple\x20authorized\x20identities','risk_rules':['R-C4-04\x20(suppressed)'],'recommendation':'recommended'},{'level':'level3_scene_combined','pattern':'Scene\x20itself\x20verifies\x20identity\x20—\x20no\x20Signer\x20binding\x20needed','when_to_use':'Scene\x27s\x20host\x20object\x20already\x20verifies\x20operator\x20(e.g.,\x20Machine\x20forward,\x20sharing.who=Entity)','risk_rules':[],'recommendation':'default'},{'level':'none','pattern':'No\x20Signer\x20binding\x20required','when_to_use':'Resource\x20flow\x20matters\x20more\x20than\x20caller\x20identity','risk_rules':[],'recommendation':'default'}];export const GUARD_SCHEMA_NOTES=['logic_not\x20takes\x20exactly\x20ONE\x20child\x20under\x20\x27node\x27\x20(not\x20\x27nodes\x27).','logic_and\x20/\x20logic_or\x20accept\x202-8\x20child\x20nodes\x20(MAX_MULTI_OPERANDS)\x20—\x20nest\x20extra\x20conditions\x20inside\x20another\x20logic_and/logic_or.','query_reward_record_count\x20/\x20query_reward_record_exists\x20/\x20query_reward_record_find\x20require\x20\x27where\x27\x20even\x20when\x20empty\x20—\x20pass\x20where:\x20{}\x20or\x20input\x20validation\x20rejects\x20the\x20call.','Node\x20type\x20names\x20have\x20no\x20abbreviations:\x20logic_as_u256_greater\x20/\x20logic_as_u256_lesser\x20/\x20logic_as_u256_greater_or_equal\x20/\x20logic_as_u256_lesser_or_equal\x20(never\x20gt/lt/ge/le).','context()\x20enum\x20values\x20are\x20exactly:\x20Signer,\x20Clock,\x20Guard.','repository.data\x20cannot\x20be\x20compared\x20with\x20an\x20Address\x20directly\x20—\x20Repository\x20values\x20are\x20stored\x20as\x20U256;\x20use\x20\x27repository.data\x20has\x27\x20for\x20membership\x20or\x20compare\x20the\x20value\x20as\x20a\x20NUMBER.','Whole-repository\x20\x27repository.data\x20count\x27\x20returns\x20the\x20table\x20size,\x20not\x20per-key\x20matches.\x20For\x20per-key\x20totals\x20the\x20Guard\x20CAN\x20count/sum\x20matches\x20itself\x20via\x20\x27repository.data\x20count\x20where\x27\x20/\x20\x27repository.data\x20sum\x20where\x27\x20(predicate-filtered,\x20candidate\x20list\x20max\x20100);\x20only\x20use\x20the\x20trusted-role-writes-total\x20fallback\x20when\x20candidates\x20cannot\x20be\x20enumerated.','Verify\x20field\x20paths\x20against\x20the\x20live\x20schema\x20via\x20schema_query\x20(action=\x27get\x27,\x20name=\x27call_guard_*\x27)\x20instead\x20of\x20trusting\x20memory.'];export function getGuardDesignPattern(a){return GUARD_DESIGN_PATTERNS['find'](b=>b['id']===a);}export function searchGuardDesignPatterns(a){const b=a['toLowerCase']();return GUARD_DESIGN_PATTERNS['filter'](c=>{if(c['business_requirement']['toLowerCase']()['includes'](b))return!![];if(c['logic_summary']['toLowerCase']()['includes'](b))return!![];if(c['key_queries']['some'](d=>d['toLowerCase']()['includes'](b)))return!![];return![];});}export function getPatternsByHost(a){return GUARD_DESIGN_PATTERNS['filter'](b=>b['host']===a);}export function getPatternsByIndustry(a){return GUARD_DESIGN_PATTERNS['filter'](b=>b['applicable_industries']?.['includes'](a));}export function getPatternsByDataSourceClass(a){return GUARD_DESIGN_PATTERNS['filter'](b=>b['data_source']===a);}export function getVerifierLevelGuidance(a){return VERIFIER_LEVEL_GUIDANCE['find'](b=>b['level']===a);}export function suggestPatternForRequirement(a){const b=searchGuardDesignPatterns(a);if(b['length']===0x0){const e=GUARD_DESIGN_PATTERNS[0x0];return{'best':e,'alternatives':[]};}const [c,...d]=b;return{'best':c,'alternatives':d};}export const GUARD_DESIGN_PATTERNS_VERSION=0x7;
@@ -1 +1 @@
1
- export const GUARD_SCENES=[{'id':'service_buy_guard','name':'Service\x20purchase\x20validation\x20(buy_guard)','host_object':'Service','binding_field':'buy_guard','validation_scene':'When\x20a\x20customer\x20places\x20an\x20order\x20to\x20purchase\x20a\x20service,\x20the\x20Guard\x20validates\x20whether\x20the\x20customer\x20is\x20eligible\x20to\x20purchase\x20(identity/permission/condition)','pass_result':'Create\x20the\x20Order\x20object;\x20the\x20customer\x20enters\x20the\x20payment\x20flow','fail_result':'Transaction\x20rejected;\x20Order\x20is\x20not\x20created;\x20the\x20customer\x20cannot\x20purchase','submission_source':'Customer\x20(signer\x20address,\x20credentials,\x20Passport,\x20etc.)','special_constraints':['The\x20Guard\x20table\x20must\x20declare\x20all\x20data\x20the\x20customer\x20needs\x20to\x20submit','The\x20name\x20of\x20b_submission=true\x20entries\x20must\x20be\x20a\x20natural-language\x20description\x20(the\x20contract\x20the\x20customer\x20sees)','If\x20the\x20Guard\x20references\x20the\x20Service\x20itself,\x20use\x20the\x20circular\x20reference\x20pattern\x20(CREATE\x20Service\x20→\x20CREATE\x20Guard\x20→\x20MODIFY\x20Service)','buy_guard\x20can\x20still\x20be\x20modified\x20after\x20Service\x20is\x20published\x20(via\x20MODIFY\x20Service)','Reentrancy:\x20LOW\x20—\x20Each\x20purchase\x20creates\x20a\x20fresh\x20Order;\x20no\x20existing\x20Order\x20state\x20is\x20modified.\x20Default:\x20no\x20reentrancy\x20risk.\x20IF\x20business\x20intent\x20is\x20\x27limit\x20one\x20purchase\x20per\x20user\x27\x20(limited-edition\x20goods,\x20whitelist\x20single-buy),\x20an\x20anti-reentrancy\x20check\x20is\x20REQUIRED\x20but\x20no\x20direct\x20GUARDQUERY\x20primitive\x20exists\x20for\x20per-user\x20purchase\x20history\x20—\x20use\x20a\x20Repository\x20to\x20record\x20prior\x20purchases\x20and\x20add\x20`repository.data\x20has`\x20(query\x201166)\x20+\x20`logic_not`\x20to\x20root,\x20or\x20revoke\x20EntityRegistrar\x20membership\x20after\x20first\x20buy'],'common_patterns':['Identity\x20check:\x20context(Signer)\x20+\x20logic_equal\x20(single\x20address)\x20/\x20vec_contains_address\x20(whitelist)','Membership\x20validation:\x20query\x20EntityRegistrar(0xaab)\x20+\x20logic_and\x20combination','Time\x20limit:\x20context(Clock)\x20+\x20logic_as_u256_greater_or_equal','Multi-condition:\x20logic_and\x20combining\x20multiple\x20checks'],'mutable_after_publish':!![],'r_rounds_focus':['R1','R2','R3','R5','R7','R9']},{'id':'service_order_allocators_guard','name':'Allocation\x20strategy\x20selection\x20validation\x20(order_allocators[].guard)','host_object':'Service','binding_field':'order_allocators','validation_scene':'When\x20an\x20order\x20is\x20completed\x20or\x20allocation\x20conditions\x20are\x20met,\x20the\x20system\x20evaluates\x20each\x20Allocator\x27s\x20Guard\x20in\x20order_allocators\x20order.\x20'+'The\x20first\x20Allocator\x20whose\x20Guard\x20passes\x20executes\x20the\x20allocation','pass_result':'Execute\x20that\x20Allocator\x27s\x20allocation\x20strategy\x20(distribute\x20funds\x20by\x20ratio/condition)','fail_result':'Skip\x20this\x20Allocator\x20and\x20try\x20the\x20next\x20(first-match-wins).\x20If\x20all\x20Allocators\x20fail,\x20funds\x20are\x20not\x20distributed','submission_source':'System\x20auto-derives\x20from\x20Progress\x20state\x20(no\x20explicit\x20customer\x20submission\x20needed)','special_constraints':['order_allocators\x20is\x20order-sensitive:\x20the\x20first\x20Allocator\x20whose\x20Guard\x20passes\x20executes\x20allocation','order_allocators\x20cannot\x20be\x20modified\x20after\x20Service\x20is\x20published\x20(immutable)','Guard\x20usually\x20queries\x20Order/Progress\x20state\x20to\x20determine\x20allocation\x20conditions','Common\x20queries:\x20order.amount,\x20progress.current_node,\x20order.completed,\x20etc.','GuardIdentifier\x20can\x20be\x20used\x20for\x20dynamic\x20amounts\x20(extract\x20u64\x20value\x20from\x20table\x20as\x20allocation\x20ratio)','Guard+sharing\x20coupling:\x20Guard\x20determines\x20IF\x20allocation\x20happens;\x20sharing.who\x20determines\x20WHERE\x20funds\x20go.\x20If\x20sharing.who=Signer,\x20the\x20caller\x20receives\x20funds\x20—\x20the\x20Guard\x20MUST\x20bind\x20Signer\x20(context(Signer)==authorized)\x20to\x20prevent\x20theft.\x20PREFERRED:\x20use\x20sharing.who=Entity\x20(Treasury\x20or\x20fixed\x20address)\x20so\x20funds\x20always\x20go\x20to\x20the\x20legitimate\x20recipient\x20regardless\x20of\x20caller.','allocators\x20require\x20unique\x20guard\x20addresses:\x20no\x20two\x20allocators\x20may\x20reference\x20the\x20same\x20Guard\x20object\x20(create\x20separate\x20Guard\x20objects\x20with\x20identical\x20root/table\x20but\x20different\x20descriptions\x20if\x20needed).','First-match-wins:\x20only\x20the\x20first\x20allocator\x20whose\x20Guard\x20passes\x20executes;\x20subsequent\x20allocators\x20are\x20skipped.\x20Multiple\x20allocators\x20represent\x20alternative\x20strategies,\x20not\x20a\x20simultaneous\x20split.','If\x20sharing.who=Entity\x20references\x20a\x20Treasury\x20object,\x20verify\x20the\x20Treasury\x27s\x20permission\x20is\x20consistent\x20with\x20the\x20Service\x27s\x20permission\x20(different\x20permissions\x20=\x20different\x20permission\x20organizations\x20=\x20minor\x20risk).','Reentrancy:\x20LOW\x20—\x20Protocol-level\x20protection:\x20the\x20Order\x20layer\x20asserts\x20the\x20`allocation`\x20field\x20is\x20None\x20(E_ALLOCATION_ALREADY_SPECIFIED),\x20enforcing\x20ONE\x20Allocation\x20object\x20per\x20Order,\x20ever.\x20After\x20alloc()\x20executes,\x20typical\x20Rate-mode\x20allocators\x20(sum=10000)\x20and\x20any\x20Surplus-mode\x20allocator\x20drain\x20balance\x20to\x200\x20via\x20balance::withdraw_all,\x20making\x20a\x20second\x20alloc()\x20fail\x20at\x20`assert!(balance\x20>=\x20threshold)`.\x20EDGE\x20CASE:\x20Amount-mode-only\x20allocators\x20(no\x20Surplus,\x20total\x20<\x20full\x20balance)\x20leave\x20remainder;\x20a\x20second\x20alloc()\x20could\x20extract\x20more\x20—\x20mitigated\x20by\x20preferring\x20Rate/Surplus\x20modes.\x20External\x20deposit\x20via\x20receive()\x20is\x20possible\x20but\x20irrational\x20(attacker\x20funds\x20the\x20Allocation\x20they\x20attack).\x20Optional\x20anti-reentrancy\x20primitive:\x20`order.allocation\x20some`\x20(query\x201568)\x20+\x20logic_not'],'common_patterns':['Node\x20state\x20check:\x20query(Progress.current_node)\x20+\x20logic_equal(\x27Completed\x27)','Amount\x20threshold:\x20query(Order.amount)\x20+\x20logic_as_u256_greater_or_equal(threshold)','Multi-condition\x20combination:\x20logic_and\x20(node\x20state\x20+\x20amount\x20+\x20time)','GuardIdentifier\x20dynamic\x20ratio:\x20table[u64]\x20extracts\x20allocation\x20ratio','Treasury+personal\x202-allocator\x20pattern:\x202\x20Guard\x20objects\x20(identical\x20root/table,\x20different\x20descriptions)\x20+\x202\x20allocators\x20(sharing.who=Entity\x20Treasury\x20/\x20Entity\x20personal)\x20—\x202\x20alternative\x20merchant\x20collection\x20approaches;\x20first-match-wins\x20means\x20only\x20the\x20first\x20executes.'],'mutable_after_publish':![],'r_rounds_focus':['R1','R2','R3','R5','R6','R7']},{'id':'machine_forward_guard','name':'Workflow\x20node\x20advancement\x20validation\x20(Forward.guard)','host_object':'Machine','binding_field':'Forward.guard','validation_scene':'When\x20a\x20customer\x20or\x20provider\x20executes\x20a\x20Forward\x20operation\x20to\x20advance\x20the\x20workflow,\x20the\x20Guard\x20validates\x20whether\x20advancement\x20to\x20the\x20next\x20node\x20is\x20allowed','pass_result':'Progress\x20advances\x20to\x20next_node;\x20session\x20accumulates\x20weight','fail_result':'Forward\x20is\x20blocked;\x20Progress\x20stays\x20at\x20the\x20current\x20node.\x20Optional\x20retained_submission\x20retains\x20audit\x20data','submission_source':'The\x20party\x20executing\x20Forward\x20(Customer\x20or\x20Provider,\x20depending\x20on\x20Forward\x20configuration)','special_constraints':['Forward.guard\x20cannot\x20be\x20modified\x20after\x20Machine\x20is\x20published\x20(a\x20new\x20Machine\x20must\x20be\x20created)','Optional\x20retained_submission:\x20stores\x20submission\x20data\x20in\x20Progress\x20for\x20later\x20audit','retained_submission\x20indices\x20must\x20correspond\x20to\x20the\x20Guard\x20table','Common\x20queries:\x20progress.current_node,\x20progress.session_forward,\x20order.service,\x20etc.','Time\x20lock:\x20context(Clock)\x20+\x20calc_number_add(progress.entry_time,\x20duration)\x20tested\x20with\x201000ms','Reentrancy:\x20ALLOWED\x20—\x20By\x20design,\x20Forward\x20moves\x20progress.current_node\x20to\x20next_node,\x20naturally\x20invalidating\x20the\x20Guard\x20at\x20the\x20old\x20node.\x20Re-submission\x20at\x20the\x20SAME\x20node\x20(before\x20forward\x20completes)\x20is\x20intentional:\x20users\x20may\x20fix\x20prior\x20submission\x20data\x20or\x20accumulate\x20session\x20weight\x20toward\x20threshold.\x20No\x20anti-reentrancy\x20primitive\x20needed.\x20Optional\x20observability\x20queries:\x20`progress.session_forward`\x20(1262),\x20`progress.history`\x20(1273),\x20`query_progress_history_find`\x20(1274)'],'common_patterns':['Identity\x20check:\x20context(Signer)\x20+\x20logic_equal\x20(only\x20specific\x20parties\x20can\x20advance)','Time\x20lock:\x20context(Clock)\x20+\x20calc_number_add\x20+\x20logic_as_u256_greater_or_equal','Prior\x20Forward\x20completion:\x20query_progress_history_find\x20+\x20logic_equal(accomplished=true)','Submission\x20data\x20validation:\x20identifier(submission)\x20+\x20logic_equal(expected_value)','Cross-object\x20query:\x20convert_witness=TypeOrderProgress(100)\x20queries\x20Progress\x20from\x20Order'],'mutable_after_publish':![],'r_rounds_focus':['R1','R2','R3','R5','R6','R7','R8','R9']},{'id':'progress_submission_guard','name':'Progress\x20submission\x20data\x20validation\x20(submission\x20guard)','host_object':'Progress','binding_field':'submission','validation_scene':'Whether\x20the\x20data\x20(e.g.\x20signature,\x20credential,\x20confirmation)\x20submitted\x20during\x20Forward\x20execution\x20satisfies\x20the\x20Guard\x20condition','pass_result':'Forward\x20completes;\x20node\x20advances\x20after\x20session\x20accumulates\x20weight\x20to\x20threshold','fail_result':'Forward\x20does\x20not\x20complete;\x20waits\x20for\x20resubmission\x20or\x20condition\x20satisfaction','submission_source':'The\x20party\x20submitting\x20data\x20(Customer\x20or\x20Provider)','special_constraints':['Works\x20in\x20concert\x20with\x20Forward.guard:\x20Forward.guard\x20validates\x20eligibility,\x20submission\x20guard\x20validates\x20data','retained_submission\x20stores\x20submission\x20data\x20in\x20Progress\x20session\x20for\x20audit','Common\x20queries:\x20progress.session_forward,\x20progress.session_weight,\x20etc.','Reentrancy:\x20ALLOWED\x20—\x20Multiple\x20submissions\x20accumulate\x20session\x20weight\x20toward\x20threshold\x20by\x20design.\x20Re-submission\x20is\x20the\x20intended\x20mechanism\x20for\x20reaching\x20threshold;\x20no\x20anti-reentrancy\x20primitive\x20needed'],'common_patterns':['Signature\x20validation:\x20identifier(signature_submission)\x20+\x20logic_equal(expected)','Credential\x20validation:\x20query(Repository.data)\x20+\x20logic_equal(submission_proof)','Confirmation\x20validation:\x20identifier(confirm_submission)\x20+\x20logic_equal(true)'],'mutable_after_publish':![],'r_rounds_focus':['R1','R2','R3','R5','R6','R8']},{'id':'reward_claim','name':'Reward\x20claim\x20validation\x20(Reward.guard)','host_object':'Reward','binding_field':'guard','validation_scene':'When\x20a\x20user\x20claims\x20from\x20a\x20reward\x20pool,\x20the\x20Guard\x20validates\x20eligibility\x20to\x20claim','pass_result':'Reward\x20is\x20distributed\x20to\x20the\x20Claimant\x20and\x20recorded\x20in\x20reward_record','fail_result':'Claim\x20rejected;\x20reward\x20is\x20not\x20distributed','submission_source':'Claimant\x20(address,\x20credentials,\x20Passport)','special_constraints':['Common\x20query_reward_record_count\x20prevents\x20duplicate\x20claims\x20(one-time\x20claim)','Guard\x20usually\x20queries\x20history\x20records\x20+\x20time\x20conditions\x20+\x20identity\x20validation','If\x20the\x20Reward\x20references\x20a\x20Service,\x20use\x20the\x20circular\x20reference\x20pattern','Reentrancy:\x20CRITICAL\x20—\x20Guard\x20pass\x20distributes\x20reward\x20funds\x20to\x20the\x20Claimant\x20AND\x20creates\x20a\x20reward_record,\x20but\x20the\x20Guard\x20conditions\x20(identity,\x20time,\x20node\x20state)\x20do\x20NOT\x20naturally\x20invalidate\x20after\x20a\x20claim.\x20Without\x20an\x20explicit\x20anti-reentrancy\x20primitive,\x20the\x20same\x20Claimant\x20can\x20repeatedly\x20pass\x20the\x20Guard\x20and\x20DRAIN\x20THE\x20ENTIRE\x20POOL.\x20This\x20is\x20the\x20most\x20severe\x20reentrancy\x20scene.\x20REQUIRED\x20anti-reentrancy\x20primitive\x20(any\x20one):\x20`reward.record\x20has`\x20(query\x201613,\x20Bool)\x20+\x20`logic_not`;\x20OR\x20`reward.record\x20count`\x20(query\x201612,\x20U64)\x20+\x20`logic_equal(0)`;\x20OR\x20`reward.record.find_first`\x20(query\x201626,\x20U64)\x20+\x20`logic_not`/`logic_equal(0)`.\x20Reference\x20template:\x20MyShop_Advanced\x20Guard\x207\x20condition\x204\x20—\x20`logic_not(query_reward_record_exists(where.storeFromId=order_id))`'],'common_patterns':['One-time\x20claim:\x20query_reward_record_count(recipient)\x20+\x20logic_equal(0)','Time\x20window:\x20context(Clock)\x20+\x20logic_as_u256_greater_or_equal(start_time)','Identity\x20validation:\x20context(Signer)\x20+\x20vec_contains_address(allowlist)','Multi-condition:\x20logic_and\x20(identity\x20+\x20time\x20+\x20not\x20claimed\x20before)'],'mutable_after_publish':!![],'r_rounds_focus':['R1','R2','R3','R5','R7','R8','R9']},{'id':'repository_write_guard','name':'Repository\x20write\x20validation\x20(write_guard)','host_object':'Repository','binding_field':'write_guard','validation_scene':'When\x20writing\x20to\x20on-chain\x20storage,\x20the\x20Guard\x20validates\x20write\x20eligibility\x20and\x20optionally\x20extracts\x20data','pass_result':'Write\x20succeeds;\x20optional\x20id_from_submission\x20extracts\x20the\x20entity\x20ID,\x20data_from_submission\x20extracts\x20the\x20data\x20value','fail_result':'Write\x20rejected','submission_source':'Writer/Reader','special_constraints':['The\x20table\x20entry\x20referenced\x20by\x20id_from_submission\x20must\x20be\x20of\x20Address\x20type','The\x20table\x20entry\x20referenced\x20by\x20data_from_submission\x20must\x20match\x20the\x20Repository\x27s\x20value_type','Type\x20mismatch\x20leads\x20to\x20write\x20failure\x20or\x20data\x20corruption','Commonly\x20used\x20for\x20oracle\x20data\x20writes,\x20third-party\x20credential\x20attestation,\x20etc.','Reentrancy:\x20LOW\x20—\x20Default\x20writes\x20are\x20idempotent\x20(same\x20ID\x20overwrites,\x20different\x20ID\x20appends);\x20no\x20fund\x20flow.\x20IF\x20business\x20intent\x20is\x20\x27one\x20write\x20per\x20ID\x27\x20(e.g.\x20voting,\x20immutable\x20credential,\x20single-attestation),\x20an\x20anti-reentrancy\x20check\x20is\x20needed.\x20Optional\x20primitive:\x20`repository.data\x20has`\x20(query\x201166,\x20Bool)\x20+\x20`logic_not`'],'common_patterns':['Authorized\x20writer:\x20context(Signer)\x20+\x20vec_contains_address(authorized_writers)','Data\x20format\x20validation:\x20identifier(data_submission)\x20+\x20logic_string_contains(expected_prefix)','ID\x20extraction:\x20id_from_submission\x20+\x20data_from_submission\x20combination'],'mutable_after_publish':!![],'r_rounds_focus':['R1','R2','R3','R5','R6','R7']},{'id':'arbitration_usage_guard','name':'Dispute\x20initiation\x20validation\x20(usage_guard)','host_object':'Arbitration','binding_field':'usage_guard','validation_scene':'When\x20a\x20customer\x20initiates\x20a\x20dispute\x20against\x20an\x20order,\x20the\x20Guard\x20validates\x20whether\x20the\x20customer\x20is\x20eligible\x20to\x20initiate\x20the\x20dispute','pass_result':'Create\x20an\x20Arb\x20case\x20and\x20enter\x20the\x20arbitration\x20flow','fail_result':'Dispute\x20rejected;\x20Arb\x20is\x20not\x20created','submission_source':'Customer\x20(Passport\x20credential)','special_constraints':['When\x20Arbitration\x20bPaused=true,\x20it\x20blocks\x20first\x20(before\x20the\x20Guard\x20check)','The\x20customer\x20must\x20first\x20generate\x20a\x20Passport\x20(gen_passport\x20passes\x20usage_guard)','Common\x20queries:\x20order.completed,\x20order.service,\x20entity.has,\x20etc.','Guard\x20validates\x20customer\x20identity\x20+\x20order\x20status\x20+\x20dispute\x20eligibility','Reentrancy:\x20HIGH\x20—\x20Guard\x20pass\x20creates\x20a\x20new\x20Arb\x20case.\x20Without\x20anti-reentrancy,\x20a\x20customer\x20can\x20create\x20multiple\x20Arb\x20cases\x20for\x20the\x20SAME\x20Order\x20(up\x20to\x20MAX_DISPUTE_COUNT=10),\x20harassing\x20the\x20counterparty\x20and\x20inflating\x20arbitration\x20system\x20load.\x20Not\x20direct\x20fund\x20loss,\x20but\x20severe\x20system\x20abuse.\x20Note:\x20the\x20dispute\x20entry\x20point\x20deduplicates\x20by\x20Arb\x20address\x20but\x20does\x20NOT\x20prevent\x20multiple\x20distinct\x20Arbs\x20for\x20the\x20same\x20Order.\x20REQUIRED\x20anti-reentrancy\x20primitive\x20(any\x20one):\x20`order.dispute\x20has`\x20(query\x201565,\x20Bool,\x20per-Arb\x20check)\x20+\x20`logic_not`;\x20OR\x20`order.dispute\x20count`\x20(query\x201564,\x20U64)\x20+\x20`logic_equal(0)`\x20(strict:\x20block\x20any\x20prior\x20dispute)\x20or\x20`logic_as_u256_less_or_equal(N)`\x20(lenient:\x20allow\x20up\x20to\x20N\x20disputes)'],'common_patterns':['Order\x20status\x20validation:\x20query(Order.status)\x20+\x20logic_equal(\x27completed\x27)','Membership\x20validation:\x20query(EntityRegistrar)\x20+\x20logic_and','Time\x20window:\x20query(Order.time)\x20+\x20calc_number_add\x20+\x20context(Clock)','Passport\x20credential:\x20identifier(passport_submission)\x20+\x20context(Signer)'],'mutable_after_publish':!![],'r_rounds_focus':['R1','R2','R3','R5','R7','R8','R9']},{'id':'arbitration_voting_guard','name':'Arbitration\x20voting\x20weight\x20validation\x20(voting_guard[])','host_object':'Arbitration','binding_field':'voting_guard','validation_scene':'When\x20an\x20arbitrator\x20votes,\x20the\x20Guard\x20validates\x20voting\x20eligibility\x20and\x20extracts\x20the\x20voting\x20weight\x20(u32)\x20from\x20GuardIdentifier','pass_result':'Vote\x20is\x20counted;\x20weight\x20is\x20the\x20value\x20extracted\x20by\x20GuardIdentifier','fail_result':'Vote\x20rejected','submission_source':'Voter\x20(Passport\x20credential\x20with\x20weight\x20data)','special_constraints':['The\x20table\x20entry\x20referenced\x20by\x20GuardIdentifier\x20must\x20be\x20of\x20a\x20numeric\x20type\x20(U8-U256),\x20cast\x20to\x20u32','Non-numeric\x20types\x20cause\x20E_GUARD_IDENTIFIER_NOT_NUMBER\x20error','b_submission\x20must\x20be\x20true\x20(weight\x20is\x20submitted\x20at\x20runtime\x20by\x20the\x20voter)','Multiple\x20voting_guards\x20can\x20be\x20configured,\x20each\x20corresponding\x20to\x20a\x20different\x20voter\x20group','When\x20Arbitration\x20bPaused=true,\x20voting\x20is\x20blocked','Reentrancy:\x20CRITICAL\x20—\x20Guard\x20pass\x20counts\x20the\x20vote\x20with\x20the\x20extracted\x20weight.\x20Without\x20anti-reentrancy,\x20the\x20same\x20voter\x20can\x20vote\x20MULTIPLE\x20times,\x20multiplying\x20their\x20weight\x20and\x20skewing\x20the\x20arbitration\x20result\x20(which\x20directly\x20determines\x20fund\x20ownership\x20via\x20compensation).\x20The\x20voter\x27s\x20eligibility\x20(identity,\x20reputation)\x20does\x20NOT\x20naturally\x20invalidate\x20after\x20voting.\x20REQUIRED\x20anti-reentrancy\x20primitive\x20(any\x20one):\x20`arb.voted\x20has`\x20(query\x201404,\x20Bool,\x20per-voter)\x20+\x20`logic_not`;\x20OR\x20`arb.voted.agree\x20has`\x20(query\x201406,\x20Bool,\x20per-voter-per-proposition)\x20+\x20`logic_not`;\x20OR\x20`arb.voted.agree\x20count`\x20(query\x201405,\x20U64,\x20per-voter)\x20+\x20`logic_equal(0)`.\x20Note:\x20`arb.voted_count`\x20(1403)\x20is\x20total\x20voter\x20count\x20(NOT\x20per-voter)\x20and\x20does\x20NOT\x20serve\x20as\x20an\x20anti-reentrancy\x20primitive\x20for\x20individual\x20voters'],'common_patterns':['Reputation\x20score\x20weight:\x20query(EntityRegistrar.records[reputation])\x20+\x20GuardIdentifier(u64)','Fixed\x20weight:\x20identifier(constant_weight)\x20+\x20GuardIdentifier','Multi-tier\x20voting:\x20different\x20voting_guards\x20correspond\x20to\x20different\x20weight\x20tiers','Eligibility\x20+\x20weight:\x20logic_and\x20(eligibility\x20check\x20+\x20GuardIdentifier\x20extracts\x20weight)'],'mutable_after_publish':!![],'r_rounds_focus':['R1','R2','R3','R5','R6','R7','R8','R9']},{'id':'gen_passport_guard','name':'Passport\x20credential\x20generation\x20validation\x20(gen_passport)','host_object':'Standalone','binding_field':'none','validation_scene':'When\x20a\x20user\x20calls\x20gen_passport,\x20the\x20Guard\x20validates\x20user\x20eligibility\x20and\x20generates\x20a\x20Passport\x20with\x20credentials','pass_result':'Passport\x20is\x20generated,\x20containing\x20credentials\x20validated\x20by\x20the\x20Guard','fail_result':'Passport\x20generation\x20fails;\x20the\x20user\x20did\x20not\x20pass\x20validation','submission_source':'Passport\x20applicant\x20(signer\x20+\x20credentials)','special_constraints':['quote_guard\x20is\x20a\x20RIGID\x20verification\x20requirement\x20when\x20querying\x20Repository\x20data\x20(query\x201167)','Two-phase:\x20passport\x20generation\x20scans\x20guard\x20+\x20prepares\x20quote_guard,\x20passport\x20verification\x20re-checks\x20+\x20verifies','If\x20quote_guard==None:\x20Repository\x20data\x20is\x20freely\x20queryable\x20(no\x20access\x20control)','Guard\x20can\x20be\x20created\x20standalone\x20(not\x20bound\x20to\x20a\x20specific\x20Host\x20Object)','Guard\x20can\x20be\x20depended\x20on\x20by\x20other\x20Guards\x20via\x20rely\x20(requires\x20rep=true)','The\x20Passport\x20generated\x20by\x20gen_passport\x20can\x20be\x20used\x20as\x20submission\x20data\x20for\x20subsequent\x20operations','Reentrancy:\x20LOW\x20—\x20Each\x20gen_passport\x20call\x20generates\x20an\x20independent\x20Passport\x20(one\x20Passport\x20per\x20operation).\x20Multiple\x20Passports\x20for\x20the\x20same\x20user\x20are\x20usually\x20valid\x20(each\x20serves\x20a\x20different\x20subsequent\x20operation).\x20IF\x20business\x20intent\x20is\x20\x27one\x20active\x20Passport\x20per\x20user\x27,\x20an\x20anti-reentrancy\x20check\x20is\x20needed\x20but\x20no\x20direct\x20GUARDQUERY\x20primitive\x20exists\x20—\x20use\x20off-chain\x20tracking\x20or\x20a\x20Repository\x20to\x20record\x20issued\x20Passport\x20IDs'],'common_patterns':['Identity\x20validation:\x20context(Signer)\x20+\x20logic_equal\x20(single\x20address/whitelist)','Membership\x20eligibility:\x20query(EntityRegistrar)\x20+\x20logic_equal','Reputation\x20threshold:\x20query(EntityRegistrar.records[reputation])\x20+\x20logic_as_u256_greater_or_equal','Multi-condition\x20combination:\x20logic_and\x20(identity\x20+\x20eligibility\x20+\x20reputation)'],'mutable_after_publish':![],'r_rounds_focus':['R1','R2','R3','R5','R6','R7']}];export function findScene(a,b){return GUARD_SCENES['find'](c=>c['host_object']===a&&c['binding_field']===b);}export function inferSceneFromAction(a){const b={'buy':'service_buy_guard','forward':'machine_forward_guard','allocate':'service_order_allocators_guard','claim_reward':'reward_claim','vote':'arbitration_voting_guard','dispute':'arbitration_usage_guard','write_repository':'repository_write_guard','submit_progress':'progress_submission_guard','gen_passport':'gen_passport_guard'},c=b[a];return GUARD_SCENES['find'](d=>d['id']===c);}export function getImmutableScenes(){return GUARD_SCENES['filter'](a=>!a['mutable_after_publish']);}export function getNumericIdentifierScenes(){return GUARD_SCENES['filter'](a=>a['special_constraints']['some'](b=>b['includes']('numeric')||b['includes']('GuardIdentifier')));}
1
+ export const GUARD_SCENES=[{'id':'service_buy_guard','name':'Service\x20purchase\x20validation\x20(buy_guard)','host_object':'Service','binding_field':'buy_guard','validation_scene':'When\x20a\x20customer\x20places\x20an\x20order\x20to\x20purchase\x20a\x20service,\x20the\x20Guard\x20validates\x20whether\x20the\x20customer\x20is\x20eligible\x20to\x20purchase\x20(identity/permission/condition)','pass_result':'Create\x20the\x20Order\x20object;\x20the\x20customer\x20enters\x20the\x20payment\x20flow','fail_result':'Transaction\x20rejected;\x20Order\x20is\x20not\x20created;\x20the\x20customer\x20cannot\x20purchase','submission_source':'Customer\x20(signer\x20address,\x20credentials,\x20Passport,\x20etc.)','special_constraints':['The\x20Guard\x20table\x20must\x20declare\x20all\x20data\x20the\x20customer\x20needs\x20to\x20submit','The\x20name\x20of\x20b_submission=true\x20entries\x20must\x20be\x20a\x20natural-language\x20description\x20(the\x20contract\x20the\x20customer\x20sees)','If\x20the\x20Guard\x20references\x20the\x20Service\x20itself,\x20use\x20the\x20circular\x20reference\x20pattern\x20(CREATE\x20Service\x20→\x20CREATE\x20Guard\x20→\x20MODIFY\x20Service)','buy_guard\x20can\x20still\x20be\x20modified\x20after\x20Service\x20is\x20published\x20(via\x20MODIFY\x20Service)','Reentrancy:\x20LOW\x20—\x20Each\x20purchase\x20creates\x20a\x20fresh\x20Order;\x20no\x20existing\x20Order\x20state\x20is\x20modified.\x20Default:\x20no\x20reentrancy\x20risk.\x20IF\x20business\x20intent\x20is\x20\x27limit\x20one\x20purchase\x20per\x20user\x27\x20(limited-edition\x20goods,\x20whitelist\x20single-buy),\x20an\x20anti-reentrancy\x20check\x20is\x20REQUIRED\x20but\x20no\x20direct\x20GUARDQUERY\x20primitive\x20exists\x20for\x20per-user\x20purchase\x20history\x20—\x20use\x20a\x20Repository\x20to\x20record\x20prior\x20purchases\x20and\x20add\x20`repository.data\x20has`\x20(query\x201166)\x20+\x20`logic_not`\x20to\x20root,\x20or\x20revoke\x20EntityRegistrar\x20membership\x20after\x20first\x20buy'],'common_patterns':['Identity\x20check:\x20context(Signer)\x20+\x20logic_equal\x20(single\x20address)\x20/\x20vec_contains_address\x20(whitelist)','Membership\x20validation:\x20query\x20EntityRegistrar(0xaab)\x20+\x20logic_and\x20combination','Time\x20limit:\x20context(Clock)\x20+\x20logic_as_u256_greater_or_equal','Multi-condition:\x20logic_and\x20combining\x20multiple\x20checks'],'mutable_after_publish':!![],'r_rounds_focus':['R1','R2','R3','R5','R7','R9']},{'id':'service_order_allocators_guard','name':'Allocation\x20strategy\x20selection\x20validation\x20(order_allocators[].guard)','host_object':'Service','binding_field':'order_allocators','validation_scene':'When\x20an\x20order\x20is\x20completed\x20or\x20allocation\x20conditions\x20are\x20met,\x20the\x20system\x20evaluates\x20each\x20Allocator\x27s\x20Guard\x20in\x20order_allocators\x20order.\x20'+'The\x20first\x20Allocator\x20whose\x20Guard\x20passes\x20executes\x20the\x20allocation','pass_result':'Execute\x20that\x20Allocator\x27s\x20allocation\x20strategy\x20(distribute\x20funds\x20by\x20ratio/condition)','fail_result':'Skip\x20this\x20Allocator\x20and\x20try\x20the\x20next\x20(first-match-wins).\x20If\x20all\x20Allocators\x20fail,\x20funds\x20are\x20not\x20distributed','submission_source':'System\x20auto-derives\x20from\x20Progress\x20state\x20(no\x20explicit\x20customer\x20submission\x20needed)','special_constraints':['order_allocators\x20is\x20order-sensitive:\x20the\x20first\x20Allocator\x20whose\x20Guard\x20passes\x20executes\x20allocation','order_allocators\x20cannot\x20be\x20modified\x20after\x20Service\x20is\x20published\x20(immutable)','Guard\x20usually\x20queries\x20Order/Progress\x20state\x20to\x20determine\x20allocation\x20conditions','Common\x20queries:\x20order.amount,\x20progress.current_node,\x20order.completed,\x20etc.','GuardIdentifier\x20can\x20be\x20used\x20for\x20dynamic\x20amounts\x20(extract\x20u64\x20value\x20from\x20table\x20as\x20allocation\x20ratio)','Guard+sharing\x20coupling:\x20Guard\x20determines\x20IF\x20allocation\x20happens;\x20sharing.who\x20determines\x20WHERE\x20funds\x20go.\x20If\x20sharing.who=Signer,\x20the\x20caller\x20receives\x20funds\x20—\x20the\x20Guard\x20MUST\x20bind\x20Signer\x20(context(Signer)==authorized)\x20to\x20prevent\x20theft.\x20PREFERRED:\x20use\x20sharing.who=Entity\x20(Treasury\x20or\x20fixed\x20address)\x20so\x20funds\x20always\x20go\x20to\x20the\x20legitimate\x20recipient\x20regardless\x20of\x20caller.','allocators\x20require\x20unique\x20guard\x20addresses:\x20no\x20two\x20allocators\x20may\x20reference\x20the\x20same\x20Guard\x20object\x20(create\x20separate\x20Guard\x20objects\x20with\x20identical\x20root/table\x20but\x20different\x20descriptions\x20if\x20needed).','First-match-wins:\x20only\x20the\x20first\x20allocator\x20whose\x20Guard\x20passes\x20executes;\x20subsequent\x20allocators\x20are\x20skipped.\x20Multiple\x20allocators\x20represent\x20alternative\x20strategies,\x20not\x20a\x20simultaneous\x20split.','If\x20sharing.who=Entity\x20references\x20a\x20Treasury\x20object,\x20verify\x20the\x20Treasury\x27s\x20permission\x20is\x20consistent\x20with\x20the\x20Service\x27s\x20permission\x20(different\x20permissions\x20=\x20different\x20permission\x20organizations\x20=\x20minor\x20risk).','Reentrancy:\x20LOW\x20—\x20Protocol-level\x20protection:\x20the\x20Order\x20layer\x20asserts\x20the\x20`allocation`\x20field\x20is\x20None\x20(E_ALLOCATION_ALREADY_SPECIFIED),\x20enforcing\x20ONE\x20Allocation\x20object\x20per\x20Order,\x20ever.\x20After\x20alloc()\x20executes,\x20typical\x20Rate-mode\x20allocators\x20(sum=10000)\x20and\x20any\x20Surplus-mode\x20allocator\x20drain\x20balance\x20to\x200\x20via\x20balance::withdraw_all,\x20making\x20a\x20second\x20alloc()\x20fail\x20at\x20`assert!(balance\x20>=\x20threshold)`.\x20EDGE\x20CASE:\x20Amount-mode-only\x20allocators\x20(no\x20Surplus,\x20total\x20<\x20full\x20balance)\x20leave\x20remainder;\x20a\x20second\x20alloc()\x20could\x20extract\x20more\x20—\x20mitigated\x20by\x20preferring\x20Rate/Surplus\x20modes.\x20External\x20deposit\x20via\x20receive()\x20is\x20possible\x20but\x20irrational\x20(attacker\x20funds\x20the\x20Allocation\x20they\x20attack).\x20Optional\x20anti-reentrancy\x20primitive:\x20`order.allocation\x20some`\x20(query\x201568)\x20+\x20logic_not'],'common_patterns':['Node\x20state\x20check:\x20query(Progress.current_node)\x20+\x20logic_equal(\x27Completed\x27)','Amount\x20threshold:\x20query(Order.amount)\x20+\x20logic_as_u256_greater_or_equal(threshold)','Multi-condition\x20combination:\x20logic_and\x20(node\x20state\x20+\x20amount\x20+\x20time)','GuardIdentifier\x20dynamic\x20ratio:\x20table[u64]\x20extracts\x20allocation\x20ratio','Treasury+personal\x202-allocator\x20pattern:\x202\x20Guard\x20objects\x20(identical\x20root/table,\x20different\x20descriptions)\x20+\x202\x20allocators\x20(sharing.who=Entity\x20Treasury\x20/\x20Entity\x20personal)\x20—\x202\x20alternative\x20merchant\x20collection\x20approaches;\x20first-match-wins\x20means\x20only\x20the\x20first\x20executes.'],'mutable_after_publish':![],'r_rounds_focus':['R1','R2','R3','R5','R6','R7']},{'id':'machine_forward_guard','name':'Workflow\x20node\x20advancement\x20validation\x20(Forward.guard)','host_object':'Machine','binding_field':'Forward.guard','validation_scene':'When\x20a\x20customer\x20or\x20provider\x20executes\x20a\x20Forward\x20operation\x20to\x20advance\x20the\x20workflow,\x20the\x20Guard\x20validates\x20whether\x20advancement\x20to\x20the\x20next\x20node\x20is\x20allowed','pass_result':'Progress\x20advances\x20to\x20next_node;\x20session\x20accumulates\x20weight','fail_result':'Forward\x20is\x20blocked;\x20Progress\x20stays\x20at\x20the\x20current\x20node.\x20Optional\x20retained_submission\x20retains\x20audit\x20data','submission_source':'The\x20party\x20executing\x20Forward\x20(Customer\x20or\x20Provider,\x20depending\x20on\x20Forward\x20configuration)','special_constraints':['Forward.guard\x20cannot\x20be\x20modified\x20after\x20Machine\x20is\x20published\x20(a\x20new\x20Machine\x20must\x20be\x20created)','Optional\x20retained_submission:\x20stores\x20submission\x20data\x20in\x20Progress\x20for\x20later\x20audit','retained_submission\x20indices\x20must\x20correspond\x20to\x20the\x20Guard\x20table','Common\x20queries:\x20progress.current_node,\x20progress.session_forward,\x20order.service,\x20etc.','Time\x20lock:\x20context(Clock)\x20+\x20calc_number_add(progress.current_time,\x20duration)\x20tested\x20with\x201000ms','Reentrancy:\x20ALLOWED\x20—\x20By\x20design,\x20Forward\x20moves\x20progress.current_node\x20to\x20next_node,\x20naturally\x20invalidating\x20the\x20Guard\x20at\x20the\x20old\x20node.\x20Re-submission\x20at\x20the\x20SAME\x20node\x20(before\x20forward\x20completes)\x20is\x20intentional:\x20users\x20may\x20fix\x20prior\x20submission\x20data\x20or\x20accumulate\x20session\x20weight\x20toward\x20threshold.\x20No\x20anti-reentrancy\x20primitive\x20needed.\x20Optional\x20observability\x20queries:\x20`progress.session_forward`\x20(1262),\x20`progress.history`\x20(1273),\x20`query_progress_history_find`\x20(1274)'],'common_patterns':['Identity\x20check:\x20context(Signer)\x20+\x20logic_equal\x20(only\x20specific\x20parties\x20can\x20advance)','Time\x20lock:\x20context(Clock)\x20+\x20calc_number_add\x20+\x20logic_as_u256_greater_or_equal','Prior\x20Forward\x20completion:\x20query_progress_history_find\x20+\x20logic_equal(accomplished=true)','Submission\x20data\x20validation:\x20identifier(submission)\x20+\x20logic_equal(expected_value)','Cross-object\x20query:\x20convert_witness=TypeOrderProgress(100)\x20queries\x20Progress\x20from\x20Order'],'mutable_after_publish':![],'r_rounds_focus':['R1','R2','R3','R5','R6','R7','R8','R9']},{'id':'progress_submission_guard','name':'Progress\x20submission\x20data\x20validation\x20(submission\x20guard)','host_object':'Progress','binding_field':'submission','validation_scene':'Whether\x20the\x20data\x20(e.g.\x20signature,\x20credential,\x20confirmation)\x20submitted\x20during\x20Forward\x20execution\x20satisfies\x20the\x20Guard\x20condition','pass_result':'Forward\x20completes;\x20node\x20advances\x20after\x20session\x20accumulates\x20weight\x20to\x20threshold','fail_result':'Forward\x20does\x20not\x20complete;\x20waits\x20for\x20resubmission\x20or\x20condition\x20satisfaction','submission_source':'The\x20party\x20submitting\x20data\x20(Customer\x20or\x20Provider)','special_constraints':['Works\x20in\x20concert\x20with\x20Forward.guard:\x20Forward.guard\x20validates\x20eligibility,\x20submission\x20guard\x20validates\x20data','retained_submission\x20stores\x20submission\x20data\x20in\x20Progress\x20session\x20for\x20audit','Common\x20queries:\x20progress.session_forward,\x20progress.session_weight,\x20etc.','Reentrancy:\x20ALLOWED\x20—\x20Multiple\x20submissions\x20accumulate\x20session\x20weight\x20toward\x20threshold\x20by\x20design.\x20Re-submission\x20is\x20the\x20intended\x20mechanism\x20for\x20reaching\x20threshold;\x20no\x20anti-reentrancy\x20primitive\x20needed'],'common_patterns':['Signature\x20validation:\x20identifier(signature_submission)\x20+\x20logic_equal(expected)','Credential\x20validation:\x20query(Repository.data)\x20+\x20logic_equal(submission_proof)','Confirmation\x20validation:\x20identifier(confirm_submission)\x20+\x20logic_equal(true)'],'mutable_after_publish':![],'r_rounds_focus':['R1','R2','R3','R5','R6','R8']},{'id':'reward_claim','name':'Reward\x20claim\x20validation\x20(Reward.guard)','host_object':'Reward','binding_field':'guard','validation_scene':'When\x20a\x20user\x20claims\x20from\x20a\x20reward\x20pool,\x20the\x20Guard\x20validates\x20eligibility\x20to\x20claim','pass_result':'Reward\x20is\x20distributed\x20to\x20the\x20Claimant\x20and\x20recorded\x20in\x20reward_record','fail_result':'Claim\x20rejected;\x20reward\x20is\x20not\x20distributed','submission_source':'Claimant\x20(address,\x20credentials,\x20Passport)','special_constraints':['Common\x20query_reward_record_count\x20prevents\x20duplicate\x20claims\x20(one-time\x20claim)','Guard\x20usually\x20queries\x20history\x20records\x20+\x20time\x20conditions\x20+\x20identity\x20validation','If\x20the\x20Reward\x20references\x20a\x20Service,\x20use\x20the\x20circular\x20reference\x20pattern','Reentrancy:\x20CRITICAL\x20—\x20Guard\x20pass\x20distributes\x20reward\x20funds\x20to\x20the\x20Claimant\x20AND\x20creates\x20a\x20reward_record,\x20but\x20the\x20Guard\x20conditions\x20(identity,\x20time,\x20node\x20state)\x20do\x20NOT\x20naturally\x20invalidate\x20after\x20a\x20claim.\x20Without\x20an\x20explicit\x20anti-reentrancy\x20primitive,\x20the\x20same\x20Claimant\x20can\x20repeatedly\x20pass\x20the\x20Guard\x20and\x20DRAIN\x20THE\x20ENTIRE\x20POOL.\x20This\x20is\x20the\x20most\x20severe\x20reentrancy\x20scene.\x20REQUIRED\x20anti-reentrancy\x20primitive\x20(any\x20one):\x20`reward.record\x20has`\x20(query\x201613,\x20Bool)\x20+\x20`logic_not`;\x20OR\x20`reward.record\x20count`\x20(query\x201612,\x20U64)\x20+\x20`logic_equal(0)`;\x20OR\x20`reward.record.find_first`\x20(query\x201626,\x20U64)\x20+\x20`logic_not`/`logic_equal(0)`.\x20Reference\x20template:\x20MyShop_Advanced\x20Guard\x207\x20condition\x204\x20—\x20`logic_not(query_reward_record_exists(where.storeFromId=order_id))`'],'common_patterns':['One-time\x20claim:\x20query_reward_record_count(recipient)\x20+\x20logic_equal(0)','Time\x20window:\x20context(Clock)\x20+\x20logic_as_u256_greater_or_equal(start_time)','Identity\x20validation:\x20context(Signer)\x20+\x20vec_contains_address(allowlist)','Multi-condition:\x20logic_and\x20(identity\x20+\x20time\x20+\x20not\x20claimed\x20before)'],'mutable_after_publish':!![],'r_rounds_focus':['R1','R2','R3','R5','R7','R8','R9']},{'id':'repository_write_guard','name':'Repository\x20write\x20validation\x20(write_guard)','host_object':'Repository','binding_field':'write_guard','validation_scene':'When\x20writing\x20to\x20on-chain\x20storage,\x20the\x20Guard\x20validates\x20write\x20eligibility\x20and\x20optionally\x20extracts\x20data','pass_result':'Write\x20succeeds;\x20optional\x20id_from_submission\x20extracts\x20the\x20entity\x20ID,\x20data_from_submission\x20extracts\x20the\x20data\x20value','fail_result':'Write\x20rejected','submission_source':'Writer/Reader','special_constraints':['The\x20table\x20entry\x20referenced\x20by\x20id_from_submission\x20must\x20be\x20of\x20Address\x20type','The\x20table\x20entry\x20referenced\x20by\x20data_from_submission\x20must\x20match\x20the\x20Repository\x27s\x20value_type','Type\x20mismatch\x20leads\x20to\x20write\x20failure\x20or\x20data\x20corruption','Commonly\x20used\x20for\x20oracle\x20data\x20writes,\x20third-party\x20credential\x20attestation,\x20etc.','Reentrancy:\x20LOW\x20—\x20Default\x20writes\x20are\x20idempotent\x20(same\x20ID\x20overwrites,\x20different\x20ID\x20appends);\x20no\x20fund\x20flow.\x20IF\x20business\x20intent\x20is\x20\x27one\x20write\x20per\x20ID\x27\x20(e.g.\x20voting,\x20immutable\x20credential,\x20single-attestation),\x20an\x20anti-reentrancy\x20check\x20is\x20needed.\x20Optional\x20primitive:\x20`repository.data\x20has`\x20(query\x201166,\x20Bool)\x20+\x20`logic_not`','CONTENT\x20BLIND\x20SPOT\x20(testnet\x20test-14\x20HIGH-04):\x20under\x20id_from=None\x20the\x20chain\x20asserts\x20only\x20that\x20the\x20write_guard\x20LIST\x20is\x20non-empty\x20(the\x20Repository\x20policy-creation\x20entry,\x20repository.move\x20L511-536,\x20E_POLICY_WRITE_GUARD_REQUIRED=22)\x20—\x20never\x20what\x20a\x20listed\x20Guard\x20proves.\x20A\x20guard\x20that\x20returns\x20true\x20for\x20every\x20caller\x20(constant-true\x20leaf,\x20self-comparison,\x20unsigned\x20>=\x200)\x20therefore\x20publishes\x20as\x20\x27guarded\x27\x20while\x20being\x20an\x20OPEN\x20write:\x20any\x20address\x20can\x20add\x20or\x20overwrite\x20any\x20row,\x20and\x20rows\x20carry\x20no\x20author\x20field.\x20Rule\x20R-X1-17\x20folds\x20the\x20tree\x20and\x20reports\x20it;\x20generate\x20the\x20guard\x20from\x20pattern.repository_write_authorization\x20(an\x20identity\x20leaf\x20—\x20context(Signer)\x20/\x20allowlist\x20/\x20Permission\x20staff\x20/\x20Order\x20holder\x20—\x20is\x20mandatory).\x20Under\x20id_from=Signer|Clock\x20the\x20list\x20MAY\x20stay\x20non-empty,\x20but\x20every\x20PolicyGuard\x27s\x20id_from_submission\x20must\x20be\x20None\x20(E_POLICY_ID_FROM_SUBMISSION_FORBIDDEN=23)'],'common_patterns':['Authorized\x20writer:\x20context(Signer)\x20+\x20vec_contains_address(authorized_writers)','Data\x20format\x20validation:\x20identifier(data_submission)\x20+\x20logic_string_contains(expected_prefix)','ID\x20extraction:\x20id_from_submission\x20+\x20data_from_submission\x20combination'],'mutable_after_publish':!![],'r_rounds_focus':['R1','R2','R3','R5','R6','R7']},{'id':'arbitration_usage_guard','name':'Dispute\x20initiation\x20validation\x20(usage_guard)','host_object':'Arbitration','binding_field':'usage_guard','validation_scene':'When\x20a\x20customer\x20initiates\x20a\x20dispute\x20against\x20an\x20order,\x20the\x20Guard\x20validates\x20whether\x20the\x20customer\x20is\x20eligible\x20to\x20initiate\x20the\x20dispute','pass_result':'Create\x20an\x20Arb\x20case\x20and\x20enter\x20the\x20arbitration\x20flow','fail_result':'Dispute\x20rejected;\x20Arb\x20is\x20not\x20created','submission_source':'Customer\x20(Passport\x20credential)','special_constraints':['When\x20Arbitration\x20bPaused=true,\x20it\x20blocks\x20first\x20(before\x20the\x20Guard\x20check)','The\x20customer\x20must\x20first\x20generate\x20a\x20Passport\x20(gen_passport\x20passes\x20usage_guard)','Common\x20queries:\x20order.completed,\x20order.service,\x20entity.has,\x20etc.','Guard\x20validates\x20customer\x20identity\x20+\x20order\x20status\x20+\x20dispute\x20eligibility','Reentrancy:\x20HIGH\x20—\x20Guard\x20pass\x20creates\x20a\x20new\x20Arb\x20case.\x20Without\x20anti-reentrancy,\x20a\x20customer\x20can\x20create\x20multiple\x20Arb\x20cases\x20for\x20the\x20SAME\x20Order\x20(up\x20to\x20MAX_DISPUTE_COUNT=10),\x20harassing\x20the\x20counterparty\x20and\x20inflating\x20arbitration\x20system\x20load.\x20Not\x20direct\x20fund\x20loss,\x20but\x20severe\x20system\x20abuse.\x20Note:\x20the\x20dispute\x20entry\x20point\x20deduplicates\x20by\x20Arb\x20address\x20but\x20does\x20NOT\x20prevent\x20multiple\x20distinct\x20Arbs\x20for\x20the\x20same\x20Order.\x20REQUIRED\x20anti-reentrancy\x20primitive\x20(any\x20one):\x20`order.dispute\x20has`\x20(query\x201565,\x20Bool,\x20per-Arb\x20check)\x20+\x20`logic_not`;\x20OR\x20`order.dispute\x20count`\x20(query\x201564,\x20U64)\x20+\x20`logic_equal(0)`\x20(strict:\x20block\x20any\x20prior\x20dispute)\x20or\x20`logic_as_u256_less_or_equal(N)`\x20(lenient:\x20allow\x20up\x20to\x20N\x20disputes)'],'common_patterns':['Order\x20status\x20validation:\x20query(Order.status)\x20+\x20logic_equal(\x27completed\x27)','Membership\x20validation:\x20query(EntityRegistrar)\x20+\x20logic_and','Time\x20window:\x20query(Order.time)\x20+\x20calc_number_add\x20+\x20context(Clock)','Passport\x20credential:\x20identifier(passport_submission)\x20+\x20context(Signer)'],'mutable_after_publish':!![],'r_rounds_focus':['R1','R2','R3','R5','R7','R8','R9']},{'id':'arbitration_voting_guard','name':'Arbitration\x20voting\x20weight\x20validation\x20(voting_guard[])','host_object':'Arbitration','binding_field':'voting_guard','validation_scene':'When\x20an\x20arbitrator\x20votes,\x20the\x20Guard\x20validates\x20voting\x20eligibility\x20and\x20extracts\x20the\x20voting\x20weight\x20(u32)\x20from\x20GuardIdentifier','pass_result':'Vote\x20is\x20counted;\x20weight\x20is\x20the\x20value\x20extracted\x20by\x20GuardIdentifier','fail_result':'Vote\x20rejected','submission_source':'Voter\x20(Passport\x20credential\x20with\x20weight\x20data)','special_constraints':['The\x20table\x20entry\x20referenced\x20by\x20GuardIdentifier\x20must\x20be\x20of\x20a\x20numeric\x20type\x20(U8-U256),\x20cast\x20to\x20u32','Non-numeric\x20types\x20cause\x20E_GUARD_IDENTIFIER_NOT_NUMBER\x20error','b_submission\x20must\x20be\x20true\x20(weight\x20is\x20submitted\x20at\x20runtime\x20by\x20the\x20voter)','Multiple\x20voting_guards\x20can\x20be\x20configured,\x20each\x20corresponding\x20to\x20a\x20different\x20voter\x20group','When\x20Arbitration\x20bPaused=true,\x20voting\x20is\x20blocked','Reentrancy:\x20CRITICAL\x20—\x20Guard\x20pass\x20counts\x20the\x20vote\x20with\x20the\x20extracted\x20weight.\x20Without\x20anti-reentrancy,\x20the\x20same\x20voter\x20can\x20vote\x20MULTIPLE\x20times,\x20multiplying\x20their\x20weight\x20and\x20skewing\x20the\x20arbitration\x20result\x20(which\x20directly\x20determines\x20fund\x20ownership\x20via\x20compensation).\x20The\x20voter\x27s\x20eligibility\x20(identity,\x20reputation)\x20does\x20NOT\x20naturally\x20invalidate\x20after\x20voting.\x20REQUIRED\x20anti-reentrancy\x20primitive\x20(any\x20one):\x20`arb.voted\x20has`\x20(query\x201404,\x20Bool,\x20per-voter)\x20+\x20`logic_not`;\x20OR\x20`arb.voted.agree\x20has`\x20(query\x201406,\x20Bool,\x20per-voter-per-proposition)\x20+\x20`logic_not`;\x20OR\x20`arb.voted.agree\x20count`\x20(query\x201405,\x20U64,\x20per-voter)\x20+\x20`logic_equal(0)`.\x20Note:\x20`arb.voted_count`\x20(1403)\x20is\x20total\x20voter\x20count\x20(NOT\x20per-voter)\x20and\x20does\x20NOT\x20serve\x20as\x20an\x20anti-reentrancy\x20primitive\x20for\x20individual\x20voters'],'common_patterns':['Reputation\x20score\x20weight:\x20query(EntityRegistrar.records[reputation])\x20+\x20GuardIdentifier(u64)','Fixed\x20weight:\x20identifier(constant_weight)\x20+\x20GuardIdentifier','Multi-tier\x20voting:\x20different\x20voting_guards\x20correspond\x20to\x20different\x20weight\x20tiers','Eligibility\x20+\x20weight:\x20logic_and\x20(eligibility\x20check\x20+\x20GuardIdentifier\x20extracts\x20weight)'],'mutable_after_publish':!![],'r_rounds_focus':['R1','R2','R3','R5','R6','R7','R8','R9']},{'id':'gen_passport_guard','name':'Passport\x20credential\x20generation\x20validation\x20(gen_passport)','host_object':'Standalone','binding_field':'none','validation_scene':'When\x20a\x20user\x20calls\x20gen_passport,\x20the\x20Guard\x20validates\x20user\x20eligibility\x20and\x20generates\x20a\x20Passport\x20with\x20credentials','pass_result':'Passport\x20is\x20generated,\x20containing\x20credentials\x20validated\x20by\x20the\x20Guard','fail_result':'Passport\x20generation\x20fails;\x20the\x20user\x20did\x20not\x20pass\x20validation','submission_source':'Passport\x20applicant\x20(signer\x20+\x20credentials)','special_constraints':['quote_guard\x20is\x20a\x20RIGID\x20verification\x20requirement\x20when\x20querying\x20Repository\x20data\x20(query\x201167)','Two-phase:\x20passport\x20generation\x20scans\x20guard\x20+\x20prepares\x20quote_guard,\x20passport\x20verification\x20re-checks\x20+\x20verifies','If\x20quote_guard==None:\x20Repository\x20data\x20is\x20freely\x20queryable\x20(no\x20access\x20control)','Guard\x20can\x20be\x20created\x20standalone\x20(not\x20bound\x20to\x20a\x20specific\x20Host\x20Object)','Guard\x20can\x20be\x20depended\x20on\x20by\x20other\x20Guards\x20via\x20rely\x20(requires\x20rep=true)','The\x20Passport\x20generated\x20by\x20gen_passport\x20can\x20be\x20used\x20as\x20submission\x20data\x20for\x20subsequent\x20operations','Reentrancy:\x20LOW\x20—\x20Each\x20gen_passport\x20call\x20generates\x20an\x20independent\x20Passport\x20(one\x20Passport\x20per\x20operation).\x20Multiple\x20Passports\x20for\x20the\x20same\x20user\x20are\x20usually\x20valid\x20(each\x20serves\x20a\x20different\x20subsequent\x20operation).\x20IF\x20business\x20intent\x20is\x20\x27one\x20active\x20Passport\x20per\x20user\x27,\x20an\x20anti-reentrancy\x20check\x20is\x20needed\x20but\x20no\x20direct\x20GUARDQUERY\x20primitive\x20exists\x20—\x20use\x20off-chain\x20tracking\x20or\x20a\x20Repository\x20to\x20record\x20issued\x20Passport\x20IDs'],'common_patterns':['Identity\x20validation:\x20context(Signer)\x20+\x20logic_equal\x20(single\x20address/whitelist)','Membership\x20eligibility:\x20query(EntityRegistrar)\x20+\x20logic_equal','Reputation\x20threshold:\x20query(EntityRegistrar.records[reputation])\x20+\x20logic_as_u256_greater_or_equal','Multi-condition\x20combination:\x20logic_and\x20(identity\x20+\x20eligibility\x20+\x20reputation)'],'mutable_after_publish':![],'r_rounds_focus':['R1','R2','R3','R5','R6','R7']}];export function findScene(a,b){return GUARD_SCENES['find'](c=>c['host_object']===a&&c['binding_field']===b);}export function inferSceneFromAction(a){const b={'buy':'service_buy_guard','forward':'machine_forward_guard','allocate':'service_order_allocators_guard','claim_reward':'reward_claim','vote':'arbitration_voting_guard','dispute':'arbitration_usage_guard','write_repository':'repository_write_guard','submit_progress':'progress_submission_guard','gen_passport':'gen_passport_guard'},c=b[a];return GUARD_SCENES['find'](d=>d['id']===c);}export function getImmutableScenes(){return GUARD_SCENES['filter'](a=>!a['mutable_after_publish']);}export function getNumericIdentifierScenes(){return GUARD_SCENES['filter'](a=>a['special_constraints']['some'](b=>b['includes']('numeric')||b['includes']('GuardIdentifier')));}