@wowok/agent-mcp 3.4.4 → 3.4.5
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.
- package/dist/.build-stamp.json +3 -3
- package/dist/chain-semantics/composition-truth.js +1 -1
- package/dist/composition/audit.js +1 -1
- package/dist/composition/compile.js +1 -1
- package/dist/composition/emit-phases.js +1 -1
- package/dist/composition/guard-fill.js +1 -1
- package/dist/composition/input-normalize.js +1 -1
- package/dist/composition/materialize.js +1 -1
- package/dist/composition/mode-gates.js +1 -1
- package/dist/composition/param-disclosure.js +1 -1
- package/dist/composition/plan-run-store.js +1 -0
- package/dist/composition/reflux.js +1 -1
- package/dist/composition/role-bindings.js +1 -0
- package/dist/composition/shape-expand.js +1 -1
- package/dist/composition/supply-chain-emit.js +1 -1
- package/dist/config/judgment.d.ts +13 -25
- package/dist/config/judgment.js +1 -1
- package/dist/config/match-policy-file.js +1 -1
- package/dist/config/rule-engine.d.ts +4 -10
- package/dist/config/rule-engine.js +1 -1
- package/dist/config/template-params.js +1 -1
- package/dist/evaluation/engine.js +1 -1
- package/dist/experience/realtime-feedback.js +1 -1
- package/dist/extensions/capability.js +1 -1
- package/dist/graph/onchain/expand.js +1 -1
- package/dist/graph/onchain/exposure.js +1 -1
- package/dist/harness/forward-roster-preflight.js +1 -0
- package/dist/keeper/detectors.js +1 -1
- package/dist/knowledge/allocator-rail-verifier.js +1 -1
- package/dist/knowledge/arb-operation-face.js +1 -1
- package/dist/knowledge/arbitration-rail-verifier.js +1 -1
- package/dist/knowledge/audit-rules.d.ts +17 -1
- package/dist/knowledge/audit-rules.js +1 -1
- package/dist/knowledge/baselines/rules/alloc_audit.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/allocation.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/arb.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/arbitration.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/bridge.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/contact.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/demand.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/graph.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/guard.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/machine.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/oracle.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/order.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/payment.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/permission.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/personal.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/plan.json +153 -33
- package/dist/knowledge/baselines/rules/plan.json.good +153 -33
- package/dist/knowledge/baselines/rules/plan.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/progress.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/proof.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/registrar.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/repository.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/resource.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/reward.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/service.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/treasury.json.good.sha256 +1 -0
- package/dist/knowledge/baselines/rules/util.json.good.sha256 +1 -0
- package/dist/knowledge/builtin-templates.d.ts +1 -1
- package/dist/knowledge/builtin-templates.js +1 -1
- package/dist/knowledge/discount-threshold.js +1 -1
- package/dist/knowledge/fee-param-bindings.js +1 -1
- package/dist/knowledge/getting-started.js +1 -1
- package/dist/knowledge/guard-binding-table.js +1 -1
- package/dist/knowledge/guard-design-patterns.js +1 -1
- package/dist/knowledge/guard-templates.d.ts +3 -2
- package/dist/knowledge/guard-templates.js +1 -1
- package/dist/knowledge/index.js +1 -1
- package/dist/knowledge/industry-registry.js +1 -1
- package/dist/knowledge/jsonrpc-enum.js +1 -1
- package/dist/knowledge/knob-docs.js +1 -1
- package/dist/knowledge/machine-topology.js +1 -1
- package/dist/knowledge/param-schema.js +1 -1
- package/dist/knowledge/param-tiers.js +1 -1
- package/dist/knowledge/path-oracle/products/alibaba-1688.js +1 -1
- package/dist/knowledge/path-oracle/products/amazon.js +1 -1
- package/dist/knowledge/path-oracle/products/booking-com.js +1 -1
- package/dist/knowledge/path-oracle/products/contra.js +1 -1
- package/dist/knowledge/path-oracle/products/costco.js +1 -1
- package/dist/knowledge/path-oracle/products/duoduo-maicai.js +1 -1
- package/dist/knowledge/path-oracle/products/etsy.js +1 -1
- package/dist/knowledge/path-oracle/products/gamefound.js +1 -1
- package/dist/knowledge/path-oracle/products/gofundme.js +1 -1
- package/dist/knowledge/path-oracle/products/klook.js +1 -1
- package/dist/knowledge/path-oracle/products/ninety-nine-designs.js +1 -1
- package/dist/knowledge/path-oracle/products/pinduoduo-kuaituantuan.js +1 -1
- package/dist/knowledge/path-oracle/products/shansong.js +1 -1
- package/dist/knowledge/path-oracle/products/taobao-presale.js +1 -1
- package/dist/knowledge/path-oracle/products/upwork-catalog.js +1 -1
- package/dist/knowledge/path-oracle/products/upwork.js +1 -1
- package/dist/knowledge/pattern-resolutions.js +1 -1
- package/dist/knowledge/protocol-facts.js +1 -1
- package/dist/knowledge/publish-gate.js +1 -1
- package/dist/knowledge/publish-surface-contract.js +1 -1
- package/dist/knowledge/template-loader.js +1 -1
- package/dist/knowledge/template-registry.js +1 -1
- package/dist/knowledge/template-scanner.js +1 -1
- package/dist/knowledge/time-units.js +1 -0
- package/dist/knowledge/tools-reference.js +1 -1
- package/dist/knowledge/workflow-guidance.js +1 -1
- package/dist/monitor/MonitorLoop.js +1 -1
- package/dist/participation/radar-core.js +1 -1
- package/dist/playbooks/service-build/business-puzzle.js +1 -1
- package/dist/playbooks/service-build/machine-panorama.js +1 -1
- package/dist/playbooks/service-build/merchant-guide.js +1 -1
- package/dist/playbooks/service-build/migration-planner.js +1 -1
- package/dist/playbooks/service-build/object-panorama.js +1 -1
- package/dist/playbooks/service-build/participation-radar.js +1 -1
- package/dist/playbooks/service-build/relationship-profile.js +1 -1
- package/dist/playbooks/service-build/service-panorama.js +1 -1
- package/dist/playbooks/service-build/service-quote.js +1 -1
- package/dist/review/index.js +1 -1
- package/dist/safety/confirm-gate.js +1 -1
- package/dist/schema/benchmark-migration/index.d.ts +110 -2
- package/dist/schema/benchmark-migration/index.js +1 -1
- package/dist/schema/boundary-coercion.js +1 -0
- package/dist/schema/call/arbitration.js +1 -1
- package/dist/schema/call/base.js +1 -1
- package/dist/schema/call/handler.js +1 -1
- package/dist/schema/call/machine.d.ts +56 -8
- package/dist/schema/call/order.d.ts +37 -10
- package/dist/schema/call/order.js +1 -1
- package/dist/schema/call/permission.d.ts +210 -30
- package/dist/schema/call/personal.d.ts +56 -8
- package/dist/schema/call/progress.d.ts +28 -4
- package/dist/schema/call/semantic.js +1 -1
- package/dist/schema/call/service.d.ts +84 -12
- package/dist/schema/common/index.d.ts +14 -2
- package/dist/schema/common/index.js +1 -1
- package/dist/schema/evaluation/index.js +1 -1
- package/dist/schema/goal/index.d.ts +1 -1
- package/dist/schema/goal/planning.js +1 -1
- package/dist/schema/local/index.js +1 -1
- package/dist/schema/messenger/index.d.ts +168 -24
- package/dist/schema/messenger/index.js +1 -1
- package/dist/schema/operations.d.ts +655 -22
- package/dist/schema/operations.js +1 -1
- package/dist/schema/persona/index.d.ts +22 -110
- package/dist/schema/query/index.js +1 -1
- package/dist/schema/schema-version.js +1 -1
- package/dist/schema/workflow/index.d.ts +4 -0
- package/dist/schema/workflow/index.js +1 -1
- package/dist/schema-query-impl/index.js +1 -1
- package/dist/schemas/benchmark_migration_operation.schema.json +1 -1
- package/dist/schemas/evaluation_operation.schema.json +1 -1
- package/dist/schemas/goal_operation.schema.json +1 -1
- package/dist/schemas/guard_rebind_replacement.schema.json +1 -0
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/messenger_operation.schema.json +1 -1
- package/dist/schemas/onchain_operations.schema.json +1 -1
- package/dist/schemas/onchain_operations_allocation.schema.json +1 -1
- package/dist/schemas/onchain_operations_arbitration.schema.json +1 -1
- package/dist/schemas/onchain_operations_contact.schema.json +1 -1
- package/dist/schemas/onchain_operations_demand.schema.json +1 -1
- package/dist/schemas/onchain_operations_gen_passport.schema.json +1 -1
- package/dist/schemas/onchain_operations_machine.schema.json +1 -1
- package/dist/schemas/onchain_operations_order.schema.json +1 -1
- package/dist/schemas/onchain_operations_permission.schema.json +1 -1
- package/dist/schemas/onchain_operations_personal.schema.json +1 -1
- package/dist/schemas/onchain_operations_progress.schema.json +1 -1
- package/dist/schemas/onchain_operations_proof.schema.json +1 -1
- package/dist/schemas/onchain_operations_repository.schema.json +1 -1
- package/dist/schemas/onchain_operations_reward.schema.json +1 -1
- package/dist/schemas/onchain_operations_service.schema.json +1 -1
- package/dist/schemas/onchain_operations_treasury.schema.json +1 -1
- package/dist/schemas/persona_operation.schema.json +1 -1
- package/dist/schemas/time_convert.schema.json +1 -0
- package/dist/schemas/wip_file.schema.json +1 -1
- package/dist/schemas/workflow_operation.schema.json +1 -1
- package/dist/tools/handlers/benchmark-migration.js +1 -1
- package/dist/tools/handlers/config.js +1 -1
- package/dist/tools/handlers/fund-rail-recipe.js +1 -1
- package/dist/tools/handlers/guard-rebind-replacement.js +1 -0
- package/dist/tools/handlers/local.js +1 -1
- package/dist/tools/handlers/mark-namespace.js +1 -1
- package/dist/tools/handlers/onchain.js +1 -1
- package/dist/tools/handlers/query.js +1 -1
- package/dist/tools/handlers/settle-sweep.js +1 -1
- package/dist/tools/handlers/time-convert.js +1 -0
- package/dist/tools/handlers/wip.js +1 -1
- package/dist/tools/handlers/workflow.js +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.js +1 -1
- package/dist/tools/registry/business.js +1 -1
- package/dist/tools/registry/local.js +1 -1
- package/dist/tools/registry/onchain.js +1 -1
- package/dist/tools/wip-verify-ledger.js +1 -1
- package/dist/tools/wrap.js +1 -1
- package/package.json +6 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
export const SHANSONG_ORACLE={'productRef':'shansong','products':['shansong','sf-city-rush','uu-errand','meituan-errand','doordash-dashnow','uber-connect'],'oracleVersion':'1.1.0','steps':[{'id':'M1','class':'offchain','name':'Browse\x20errand\x20categories\x20and\x20get\x20a\x20quote\x20(distance/weight\x20priced\x20off-chain)','actor':'buyer','precondition':[],'onchain':'not_applicable','commercialSemantics':'Pricing\x20is\x20a\x20pure\x20off-chain\x20concern:\x20distance,\x20weight\x20and\x20time-of-day\x20surge\x20are\x20computed\x20in\x20the\x20app;\x20the\x20chain\x20holds\x20no\x20route\x20or\x20distance\x20oracle\x20by\x20design.','evidence':[]},{'id':'M2','class':'offchain','name':'Select\x20the\x20errand\x20line\x20and\x20optional\x20declared-value\x20insurance','actor':'buyer','precondition':['M1'],'onchain':'not_applicable','commercialSemantics':'The\x20buyer\x20picks\x20carry\x20/\x20buy_for_me\x20/\x20time_based\x20and\x20may\x20buy\x20official\x20declared-value\x20insurance\x20(capped\x205,000\x20CNY/item).\x20The\x20line\x20choice\x20is\x20a\x20build-time\x20selector\x20on\x20this\x20template\x20(conditional_guards\x20errand_line);\x20insurance\x20is\x20an\x20off-chain\x20policy,\x20not\x20an\x20on-chain\x20leg.','evidence':[]},{'id':'M3','class':'main','name':'Pay\x20and\x20escrow\x20(service\x20fee,\x20buy-for-me\x20budget\x20and\x20tip\x20in\x20one\x20total)','actor':'buyer','precondition':['M2'],'onchain':'expressible','chainFootprint':{'node':'paid','forward':'Enter','prev':'','identity':'order_holder','moneyEffect':'escrow_in'},'commercialSemantics':'One\x20atomic\x20buy:\x20the\x20quoted\x20errand\x20total\x20(fee\x20+\x20buy\x20budget\x20+\x20optional\x20tip)\x20is\x20escrowed\x20in\x20a\x20single\x20transaction.\x20Shansong\x20charges\x200\x20platform\x20commission\x20on\x20the\x20desk\x20side;\x20coupons\x20burn\x20at\x20order\x20time\x20and\x20refunds\x20return\x20the\x20discounted\x20total\x20only.','evidence':[]},{'id':'M4','class':'main','name':'Desk\x20dispatches\x20a\x20runner\x20(off-chain\x20decision,\x20dispatch\x20record\x20row)','actor':'keeper','precondition':['M3'],'onchain':'expressible','chainFootprint':{'node':'assigned','forward':'Dispatch','prev':'paid','identity':'permission_index','moneyEffect':'none'},'commercialSemantics':'Accepting,\x20choosing\x20a\x20runner\x20and\x20re-dispatching\x20are\x20off-chain\x20desk\x20acts;\x20the\x20dispatch_record\x20evidence\x20row\x20is\x20their\x20only\x20chain\x20footprint\x20and\x20it\x20starts\x20the\x20on-time\x20clock.\x20The\x20dispatch\x20moment\x20splits\x20a\x20free\x20buyer\x20cancel\x20(E1)\x20from\x20a\x20fee-bearing\x20kill\x20(E2).','guardKeyProbe':'dispatch_record','evidence':[]},{'id':'M5','class':'main','name':'Runner\x20picks\x20up\x20on\x20the\x20carry\x20line\x20(custody\x20evidence)','actor':'fulfiller','precondition':['M4'],'onchain':'expressible','chainFootprint':{'node':'picked_up','forward':'PickUpOrder','prev':'assigned','identity':'named_operator','moneyEffect':'none'},'commercialSemantics':'Carry\x20is\x20the\x20flagship\x20line:\x20only\x20the\x20rostered\x20runner\x20may\x20advance,\x20gated\x20by\x20a\x20custody\x20evidence\x20row\x20(photo/scan).\x20Roster\x20membership\x20IS\x20admission\x20power\x20—\x20desk\x20staff\x20write\x20the\x20roster,\x20runners\x20only\x20transact\x20through\x20it.','guardKeyProbe':'pickup_evidence','evidence':[{'file':'progress.move','line':0x124,'pattern':'fun\x20IsNamedOperator'}]},{'id':'M6','class':'main','name':'Runner\x20buys\x20on\x20the\x20buy_for_me\x20line\x20(receipt\x20evidence\x20within\x20the\x20escrowed\x20budget)','actor':'fulfiller','precondition':['M4'],'onchain':'expressible','chainFootprint':{'node':'picked_up','forward':'PickUpOrder','prev':'assigned','identity':'named_operator','moneyEffect':'none'},'commercialSemantics':'buy_for_me\x20substitutes\x20custody\x20evidence\x20with\x20the\x20runner\x27s\x20own\x20purchase\x20receipt,\x20whose\x20amount\x20must\x20stay\x20<=\x20the\x20escrowed\x20buy\x20budget\x20(see\x20E9\x20for\x20the\x20over-budget\x20case).\x20Same\x20roster\x20gate,\x20weaker\x20evidence\x20semantics\x20—\x20priced\x20the\x20same\x20by\x20the\x20real\x20product.','guardKeyProbe':'pickup_receipt_evidence','evidence':[]},{'id':'M7','class':'main','name':'Time-based\x20line\x20pickup\x20(buyer\x27s\x20own\x20declaration\x20advances)','actor':'buyer','precondition':['M4'],'onchain':'expressible_with_gap','chainFootprint':{'node':'picked_up','forward':'PickUpOrder','prev':'assigned','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'time_based\x20has\x20nothing\x20material\x20to\x20evidence\x20mid-queue,\x20so\x20the\x20BUYER\x27s\x20own\x20declaration\x20is\x20the\x20pickup\x20advance\x20—\x20the\x20weakest\x20of\x20the\x20three\x20lines.\x20The\x20gap\x20is\x20that\x20the\x20real\x20product\x20still\x20charges\x20full\x20price\x20for\x20it\x20while\x20offering\x20no\x20weaker-evidence\x20discount;\x20the\x20template\x20must\x20disclose\x20the\x20strength\x20difference.','guardKeyProbe':'pickup_declaration','gapPredicate':{'probe':'weakest\x20line|BUYER\x27s\x20own\x20declaration|price\x20it\x20lower'},'evidence':[]},{'id':'M8','class':'main','name':'Runner\x20hands\x20over\x20to\x20the\x20recipient\x20(delivery\x20evidence\x20row)','actor':'fulfiller','precondition':['M5'],'onchain':'expressible','chainFootprint':{'node':'delivered','forward':'HandOver','prev':'picked_up','identity':'named_operator','moneyEffect':'none'},'commercialSemantics':'Handover\x20is\x20roster-gated\x20like\x20pickup\x20and\x20attested\x20by\x20a\x20deliver_evidence\x20row\x20(recipient\x20confirmation\x20code\x20or\x20drop-off\x20kind).\x20This\x20is\x20the\x20moment\x20the\x20real\x20product\x27s\x20on-time\x20clock\x20stops;\x20any\x20of\x20the\x20three\x20pickup\x20lines\x20(M5/M6/M7)\x20reaches\x20it.','guardKeyProbe':'deliver_evidence','evidence':[{'file':'machine.move','line':0x5f,'pattern':'namedOperator,\x20permissionIndex,\x20and\x20guard\x20participate'}]},{'id':'M9','class':'main','name':'Buyer\x20confirms\x20receipt\x20(2-hour\x20window\x20on\x20the\x20real\x20product)','actor':'buyer','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'claim_window','forward':'ConfirmReceipt','prev':'delivered','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'The\x20buyer\x20confirms\x20within\x20the\x20auto-confirm\x20horizon\x20(2\x20hours\x20on\x20shansong\x20—\x20the\x20recipient\x20may\x20not\x20be\x20present);\x20confirmation\x20opens\x20the\x2024-hour\x20claim\x20window\x20during\x20which\x20funds\x20stay\x20escrowed.','guardKeyProbe':'deliver_confirm','evidence':[]},{'id':'M10','class':'main','name':'Silence\x20fallback\x20opens\x20the\x20claim\x20window\x20(keeper)','actor':'keeper','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'claim_window','forward':'OpenClaimWindow','prev':'delivered','identity':'permission_index','moneyEffect':'none'},'commercialSemantics':'A\x20silent\x20buyer\x20cannot\x20strand\x20the\x20escrow\x20at\x20delivered:\x20the\x20desk\x20force-opens\x20the\x20claim\x20window\x20after\x20the\x20auto-confirm\x20horizon\x20(2h).\x20The\x20real\x20product\x20auto-confirms\x20in-app;\x20the\x20template\x20routes\x20the\x20same\x20outcome\x20through\x20a\x20keeper\x20slot\x20instead.','guardKeyProbe':'deliver_confirm_timeout','evidence':[]},{'id':'M11','class':'main','name':'Settlement\x20after\x20the\x20claim\x20window\x20elapses\x20(escrow\x20releases\x20to\x20the\x20desk)','actor':'merchant','precondition':['M9'],'onchain':'expressible','chainFootprint':{'node':'completed','forward':'SettleAfterWindow','prev':'claim_window','identity':'permission_index','moneyEffect':'release'},'commercialSemantics':'Once\x20the\x2024-hour\x20claim\x20window\x20closes\x20untouched,\x20the\x20escrow\x20releases\x20in\x20one\x20shot\x20to\x20the\x20desk\x20Entity\x20(settle-once\x20allocator).\x20The\x20runner\x20is\x20NOT\x20paid\x20from\x20this\x20release\x20by\x20default\x20—\x20see\x20P2.\x20ConfirmReceipt\x20(M9)\x20and\x20the\x20timeout\x20fallback\x20(M10)\x20reach\x20the\x20same\x20waypoint.','guardKeyProbe':'settle_window_gate','evidence':[]},{'id':'M12','class':'main','name':'Buyer\x20reviews\x20the\x20errand\x20(0.05\x20WOW\x20bounty)','actor':'buyer','precondition':['M11'],'onchain':'expressible','chainFootprint':{'node':'reviewed','forward':'SubmitReview','prev':'completed','identity':'order_holder','moneyEffect':'reward'},'commercialSemantics':'Post-settlement\x20review\x20with\x20a\x200.05\x20WOW\x20per-claim\x20bounty\x20paid\x20from\x20a\x20pre-funded\x20review_reward_pool\x20—\x20the\x20shansong\x20free-delivery\x20voucher\x20economy\x20re-expressed\x20as\x20an\x20incentive\x20pool\x20rather\x20than\x20a\x20discount\x20on\x20the\x20escrow.','guardKeyProbe':'review_submit','evidence':[]},{'id':'M13','class':'main','name':'Review\x20rail\x20closes\x20back\x20to\x20the\x20settle\x20terminal','actor':'buyer','precondition':['M12'],'onchain':'expressible','chainFootprint':{'node':'completed','forward':'RestAfterReview','prev':'reviewed','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'RestAfterReview\x20returns\x20the\x20reviewed\x20order\x20to\x20the\x20completed\x20terminal\x20so\x20the\x20graph\x20has\x20a\x20unique\x20sink;\x20review\x20state\x20rides\x20the\x20review\x20object,\x20not\x20the\x20machine.\x20The\x20real\x20product\x27s\x20terminal\x20is\x20simply\x20\x27order\x20closed\x27.','evidence':[]},{'id':'E1','class':'exception','name':'Buyer\x20cancels\x20before\x20dispatch\x20(free\x20full\x20refund)','actor':'buyer','precondition':['M3'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','forward':'CancelBeforeDispatch','prev':'paid','identity':'order_holder','moneyEffect':'refund'},'commercialSemantics':'Shansong:\x20free\x20cancel\x20while\x20no\x20runner\x20is\x20assigned.\x20The\x20template\x20charges\x20nothing\x20pre-dispatch\x20and\x20refunds\x20the\x20whole\x20escrow;\x20the\x20buy\x20budget\x20rides\x20back\x20with\x20it\x20(discounted\x20total\x20only,\x20per\x20the\x20coupon\x20policy).','guardKeyProbe':'cancel_before_dispatch','evidence':[]},{'id':'E2','class':'exception','name':'Buyer\x20cancels\x20after\x20dispatch\x20(fee-bearing\x20kill)','actor':'buyer','precondition':['M4'],'onchain':'expressible','chainFootprint':{'node':'closed_kill','forward':'CancelAfterDispatch','prev':'assigned','identity':'order_holder','moneyEffect':'refund'},'commercialSemantics':'Post-dispatch\x20cancel\x20is\x20a\x20kill:\x20the\x20buyer\x20eats\x20a\x203%\x20fee\x20(kill_fee_bps\x20=\x20300)\x20and\x20the\x20desk\x20refunds\x20the\x20rest.\x20The\x20real\x20product\x20instead\x20deducts\x20a\x20courier\x20idle\x20fee;\x20same\x20shape,\x20different\x20fee\x20name.','guardKeyProbe':'cancel_after_dispatch','evidence':[]},{'id':'E3','class':'exception','name':'Runner\x20rejects\x20/\x20is\x20reassigned\x20(off-chain\x20re-dispatch)','actor':'fulfiller','precondition':['M4'],'onchain':'expressible_with_gap','chainFootprint':{'node':'assigned','moneyEffect':'none'},'commercialSemantics':'A\x20rejecting\x20runner\x20never\x20touches\x20the\x20chain:\x20the\x20desk\x20re-dispatches\x20off-chain\x20and\x20writes\x20another\x20roster\x20entry;\x20the\x20order\x20rests\x20at\x20assigned\x20until\x20a\x20new\x20runner\x20picks\x20up.\x20The\x20gap\x20is\x20that\x20there\x20is\x20no\x20RejectDispatch\x20forward\x20—\x20the\x20reassignment\x20is\x20invisible\x20to\x20the\x20buyer\x20except\x20through\x20the\x20roster\x27s\x20mutation.','gapPredicate':{'probe':'re-dispatch'},'evidence':[]},{'id':'E4','class':'exception','name':'No\x20runner\x20accepts\x20—\x20buyer\x20cancels\x20penalty-free\x20on\x20timeout','actor':'buyer','precondition':['M3'],'onchain':'expressible','chainFootprint':{'forward':'CancelForNoCapacity','moneyEffect':'refund'},'commercialSemantics':'Shansong\x20queues\x20the\x20order,\x20raises\x20the\x20visible\x20price,\x20and\x20lets\x20the\x20buyer\x20cancel\x20with\x20a\x20FULL\x20refund\x20when\x20no\x20courier\x20accepts.\x20CURED\x20(2026-11-06):\x20the\x20template\x20now\x20ships\x20CancelForNoCapacity\x20—\x20desk\x20slot\x201002\x20+\x20the\x20dispatch_window_hours\x20opening\x20clock\x20force-cancels\x20penalty-free\x20into\x20closed_cancel\x20once\x20the\x20promised\x20window\x20elapses\x20on\x20the\x20assigned\x20entry\x20with\x20no\x20rostered\x20pickup;\x20the\x203%\x20kill\x20stays\x20reserved\x20for\x20buyer-initiated\x20cancels.','evidence':[]},{'id':'E5','class':'exception','name':'Runner-side\x20late\x20penalty\x20(auto-deduct\x20a\x20share\x20of\x20the\x20fee)','actor':'platform','precondition':['M5'],'onchain':'unresolvable','unresolvableRef':'S7','commercialSemantics':'The\x20real\x20product\x20docks\x2020-50%\x20of\x20the\x20courier\x20fee\x20for\x20late\x20pickup/delivery.\x20The\x20chain\x20has\x20no\x20debit/clawback\x20primitive,\x20so\x20an\x20automated\x20penalty\x20on\x20an\x20already-released\x20escrow\x20is\x20UNCONSTRUCTIBLE;\x20the\x20honest\x20substitutes\x20are\x20the\x20arbitration\x20indemnity\x20and\x20the\x20C-11\x20experience-compensation\x20pool.','disclosureProbe':'NO\x20debit[^\x22]{0,40}clawback|automated\x20runner\x20penalt','evidence':[]},{'id':'E6','class':'exception','name':'On-time\x20guarantee\x20—\x20full\x20refund\x20when\x20the\x20deadline\x20is\x20missed','actor':'platform','precondition':['M8'],'onchain':'expressible_with_gap','chainFootprint':{'node':'claim_filed','moneyEffect':'refund'},'commercialSemantics':'Shansong\x20markets\x20\x27late\x20beyond\x20the\x20promised\x20window\x20=\x20full\x20refund\x27,\x20executed\x20in\x20practice\x20by\x20customer-service\x20discretion\x20(single-source,\x20D1).\x20On-chain\x20the\x20refund\x20rail\x20is\x20buyer-triggered:\x20file\x20a\x20dispute\x20in\x20the\x20claim\x20window\x20and\x20an\x20arb-refund\x20ruling\x20pays\x20out;\x20the\x20C-11\x20pool\x20pays\x20a\x20FIXED\x200.1\x20WOW\x20goodwill\x20claim,\x20not\x20a\x20full\x20refund.\x20The\x20gap\x20—\x20no\x20automatic\x20trigger\x20—\x20is\x20disclosed\x20via\x20the\x20SLA-miss\x20goodwill-pool\x20text.\x20Since\x20stage2\x20#20\x20the\x20lateness\x20itself\x20is\x20PROVABLE\x20on\x20chain\x20(E15):\x20the\x20buyer\x20records\x20the\x20compensated\x20marker\x20when\x20the\x20delivery\x20span\x20beats\x20promise_window_hours,\x20feeding\x20the\x20goodwill\x20claim\x20with\x20history-delta\x20evidence.','gapPredicate':{'probe':'SLA\x20miss|late\x20delivery\x20beyond|goodwill\x20pool'},'evidence':[]},{'id':'E7','class':'exception','name':'Item\x20lost\x20or\x20damaged\x20mid-custody\x20(buyer\x20declaration\x20into\x20arbitration)','actor':'buyer','precondition':['M5'],'onchain':'expressible','chainFootprint':{'node':'claim_filed','forward':'ReportItemLoss','prev':'picked_up','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'The\x20buyer\x20can\x20declare\x20loss/damage\x20straight\x20from\x20picked_up\x20—\x20the\x20item-loss\x20rail\x20(D4)\x20—\x20which\x20stamps\x20claim\x20state\x20for\x20the\x20compensation\x20fund\x20track.\x20Recovery\x20is\x20capped\x20at\x203x\x20the\x20escrowed\x20fee\x20(see\x20R5),\x20NOT\x20the\x20declared\x20value.','guardKeyProbe':'report_loss','evidence':[]},{'id':'E8','class':'exception','name':'Buy-for-me\x20substitution\x20needs\x20buyer\x20consent\x20(order\x20items\x20immutable)','actor':'fulfiller','precondition':['M6'],'onchain':'disclosure_only','commercialSemantics':'When\x20the\x20requested\x20item\x20is\x20out\x20of\x20stock,\x20shansong\x20substitutes\x20only\x20with\x20in-app\x20buyer\x20consent.\x20On-chain\x20the\x20order\x27s\x20items()\x20view\x20is\x20immutable\x20(U-23/S23)\x20and\x20there\x20is\x20no\x20consent\x20surface\x20—\x20the\x20honest\x20path\x20is\x20off-chain\x20negotiation,\x20then\x20cancel/reorder.\x20DISCLOSED\x20(stage2\x20#20\x20cure):\x20the\x20build_notes\x20carry\x20the\x20substitution\x20policy\x20(out-of-stock\x20substitute\x20with\x20in-app\x20consent,\x20cancel-and-replace\x20on\x20refusal,\x20the\x20buy-budget\x20cap\x20still\x20binding)\x20—\x20the\x20strict\x20probe\x20stays\x20so\x20a\x20corpus\x20regression\x20re-surfaces\x20here.','disclosureProbe':'substitut[^\x22]{0,60}|out\x20of\x20stock|out-of-stock|order\x20items\x20immutable','evidence':[]},{'id':'E9','class':'exception','name':'Receipt\x20exceeds\x20the\x20escrowed\x20buy\x20budget\x20(guard\x20rejects;\x20excess\x20unrecoverable)','actor':'fulfiller','precondition':['M6'],'onchain':'expressible_with_gap','chainFootprint':{'node':'picked_up','forward':'PickUpOrder','prev':'assigned','identity':'named_operator','moneyEffect':'none'},'commercialSemantics':'The\x20receipt\x20gate\x20rejects\x20amounts\x20above\x20the\x20escrowed\x20buy\x20budget\x20—\x20the\x20desk\x20eats\x20the\x20difference\x20(D5).\x20The\x20gap:\x20there\x20is\x20no\x20top-up\x20rail\x20(no\x20RefundPriceDiff\x20the\x20other\x20way),\x20so\x20the\x20buyer\x20cannot\x20be\x20charged\x20MORE\x20post-hoc\x20either;\x20pricing\x20discipline\x20moves\x20entirely\x20to\x20the\x20quote\x20step.','guardKeyProbe':'pickup_receipt_evidence','gapPredicate':{'probe':'escrowed\x20buy\x20budget|eats\x20the\x20difference'},'evidence':[]},{'id':'E10','class':'exception','name':'Fake\x20handover\x20(attested\x20but\x20never\x20delivered)','actor':'fulfiller','precondition':['M8'],'onchain':'expressible_with_gap','chainFootprint':{'node':'delivered','forward':'HandOver','prev':'picked_up','identity':'named_operator','moneyEffect':'none'},'commercialSemantics':'Collusion\x20between\x20the\x20roster\x20writer\x20and\x20a\x20rostered\x20runner\x20can\x20fabricate\x20a\x20delivery\x20evidence\x20row\x20without\x20a\x20parcel\x20moving.\x20The\x20roster\x20gate\x20proves\x20WHO\x20was\x20authorized,\x20not\x20that\x20a\x20specific\x20human\x20carried\x20the\x20item;\x20residual\x20risk\x20is\x20desk-staff\x20integrity\x20and\x20is\x20disclosed\x20as\x20such.','guardKeyProbe':'deliver_evidence','gapPredicate':{'probe':'not\x20that\x20a\x20specific\x20human|who\x20was\x20authorized'},'evidence':[]},{'id':'E11','class':'exception','name':'Prohibited-item\x20interception\x20(cash,\x20securities,\x20precious\x20metals)','actor':'platform','precondition':['M5'],'onchain':'not_applicable','commercialSemantics':'The\x20real\x20product\x20intercepts\x20prohibited\x20items\x20at\x20pickup\x20and\x20bans\x20the\x20account;\x20there\x20is\x20no\x20item-inspection\x20primitive\x20on-chain,\x20so\x20this\x20step\x20cannot\x20exist\x20there.\x20DISCLOSED\x20(2026-11-06):\x20the\x20template\x27s\x20build_notes\x20carry\x20the\x20prohibited-items\x20disclosure\x20(off-chain\x20desk\x20compliance;\x20the\x20on-chain\x20rails\x20continue\x20regardless).','disclosureProbe':'prohibit[^\x22]{0,60}|contraband|banned\x20item','evidence':[]},{'id':'E12','class':'exception','name':'Privacy\x20channel\x20—\x20recipient\x20PII\x20never\x20on-chain\x20(privacy\x20numbers,\x20no-contact\x20drop)','actor':'platform','precondition':['M2'],'onchain':'disclosure_only','commercialSemantics':'Shansong\x20routes\x20recipient\x20contact\x20through\x20privacy-number\x20relay\x20and\x20no-contact\x20drop\x20points.\x20On\x20this\x20template\x20the\x20buyer\x20coordinates\x20(address,\x20phone,\x20recipient)\x20live\x20off-chain\x20in\x20the\x20dispatch/point\x20systems;\x20the\x20chain\x20stores\x20none\x20of\x20it\x20—\x20a\x20privacy\x20FEATURE\x20expressed\x20by\x20omission.','disclosureProbe':'address,\x20phone,\x20recipient|live\x20OFF-CHAIN\x20in\x20the\x20dispatch','evidence':[]},{'id':'E13','class':'exception','name':'Recipient\x20refuses\x20/\x20is\x20unreachable\x20(relayed\x20return)','actor':'buyer','precondition':['M8'],'onchain':'expressible_with_gap','chainFootprint':{'node':'return_requested','forward':'RequestReturn','prev':'delivered','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'A\x20recipient\x27s\x20refusal\x20is\x20a\x20third\x20party\x27s\x20will\x20—\x20there\x20is\x20no\x20on-chain\x20channel\x20for\x20someone\x20who\x20is\x20not\x20the\x20order\x20holder,\x20so\x20the\x20buyer\x20must\x20relay\x20it\x20and\x20file\x20a\x20refund-request\x20inside\x20the\x2024-hour\x20window\x20(the\x20desk\x20confirms\x20or\x20rejects).\x20The\x20recipient-will\x20indirection\x20IS\x20DISCLOSED\x20(stage2\x20#20\x20cure):\x20the\x20build_notes\x20carry\x20the\x20RECIPIENT\x20REFUSES\x20path\x20(buyer\x20relays,\x20refund-request\x20inside\x20the\x20window).\x20The\x20gap\x20itself\x20stays\x20open:\x20no\x20fulfiller-side\x20blocked-delivery\x20declaration\x20(UndeliverableReport)\x20and\x20no\x20physical-return\x20tracking.','guardKeyProbe':'return_request','gapPredicate':{'probe':'recipient[^\x22]{0,80}refus|refus[^\x22]{0,80}recipient'},'evidence':[]},{'id':'E14','class':'exception','name':'Wrong\x20address\x20/\x20unreachable\x20address\x20(no\x20undeliverable\x20declaration)','actor':'fulfiller','precondition':['M5'],'onchain':'expressible_with_gap','chainFootprint':{'node':'picked_up','moneyEffect':'none'},'commercialSemantics':'The\x20runner\x20is\x20blocked\x20mid-custody\x20with\x20a\x20bad\x20address.\x20The\x20delivery\x20address\x20is\x20not\x20on-chain\x20at\x20all\x20(PII\x20off-chain,\x20no\x20required_info\x20surface)\x20and\x20items\x20are\x20immutable,\x20so\x20there\x20is\x20no\x20AddressChange\x20with\x20an\x20audit\x20trail\x20and\x20no\x20UndeliverableReport\x20forward\x20—\x20resolution\x20is\x20off-chain\x20negotiation,\x20then\x20dispute/cancel.\x20The\x20undeliverable\x20path\x20IS\x20DISCLOSED\x20(stage2\x20#20\x20cure):\x20the\x20build_notes\x20carry\x20the\x20WRONG\x20ADDRESS\x20/\x20UNDELIVERABLE\x20path\x20(off-chain\x20negotiation,\x20then\x20dispute/cancel\x20rails).','gapPredicate':{'probe':'wrong\x20address|undeliverable|address\x20change|cannot\x20deliver'},'evidence':[{'file':'order.move','line':0xcc,'pattern':'public\x20fun\x20items(self:&Order)'},{'file':'order.move','line':0x52,'pattern':'public\x20fun\x20required_info_update'}]},{'id':'E15','class':'exception','name':'Late-delivery\x20marker\x20(proven-late\x20rail\x20feeds\x20the\x20goodwill\x20claim)','actor':'buyer','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'compensated','moneyEffect':'none'},'commercialSemantics':'When\x20the\x20delivery\x20span\x20(delivered\x20FIRST\x20entry\x20minus\x20picked_up\x20FIRST\x20entry)\x20exceeds\x20promise_window_hours,\x20the\x20buyer\x20records\x20the\x20compensated\x20marker\x20(tpl_forward_late_delivery_gate\x20/\x20late_compensation,\x20order-holder\x20leg,\x20F-049\x20form)\x20—\x20history-delta\x20evidence\x20of\x20the\x20SLA\x20miss.\x20The\x20marker\x20moves\x20NO\x20money\x20and\x20never\x20auto-pays:\x20the\x20desk\x20resumes\x20the\x20serial\x20window\x20(ResumeAfterCompensation),\x20and\x20the\x20payout\x20stays\x20the\x20buyer\x27s\x20proactive\x20C-11\x20goodwill\x20claim\x20(fixed\x20tier)\x20or\x20a\x20full-refund\x20ruling\x20inside\x20the\x20window\x20(E6).\x20Distance/time-tiered\x20SLAs\x20stay\x20off-chain\x20—\x20the\x20promise\x20must\x20remain\x20a\x20static\x20window.','guardKeyProbe':'late_compensation','evidence':[]},{'id':'R1','class':'remedy','name':'File\x20a\x20dispute\x20inside\x20the\x20serial\x20claim\x20window','actor':'buyer','precondition':['M9'],'onchain':'expressible','chainFootprint':{'node':'claim_filed','forward':'FileDispute','prev':'claim_window','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'Within\x20the\x2024-hour\x20post-confirmation\x20window\x20the\x20buyer\x20escalates\x20to\x20arbitration\x20(the\x20real\x20product\x27s\x20customer-service\x20ticket).\x20The\x20window\x20math\x20is\x20serial:\x20claim_window\x20must\x20still\x20be\x20open\x20—\x20settling\x20or\x20a\x20return\x20confirm\x20closes\x20it\x20first.','guardKeyProbe':'claim_filed','evidence':[]},{'id':'R2','class':'remedy','name':'Buyer\x20withdraws\x20the\x20claim\x20(full-refund\x20rail\x20reopens)','actor':'buyer','precondition':['R1'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','forward':'WithdrawClaim','prev':'claim_filed','identity':'order_holder','moneyEffect':'refund'},'commercialSemantics':'Settling\x20out-of-band\x20(the\x20real\x20product\x27s\x20\x27negotiated\x20with\x20the\x20courier\x27\x20outcome)\x20lets\x20the\x20buyer\x20pull\x20out\x20and\x20take\x20the\x20full\x20refund;\x20the\x20claimed_by\x20stamp\x20stays\x20taken\x20so\x20the\x20SAME\x20arb\x20case\x20can\x20never\x20re-claim\x20the\x20order.','guardKeyProbe':'withdraw_claim','evidence':[{'file':'order.move','line':0x79,'pattern':'option::is_none(&self.claimed_by)'}]},{'id':'R3','class':'remedy','name':'Desk-favor\x20ruling\x20resumes\x20the\x20order\x20at\x20delivered','actor':'merchant','precondition':['R1'],'onchain':'expressible','chainFootprint':{'node':'delivered','forward':'ResumeAfterDismissal','prev':'claim_filed','identity':'permission_index','moneyEffect':'none'},'commercialSemantics':'A\x20dismissed\x20dispute\x20puts\x20the\x20order\x20back\x20at\x20delivered\x20with\x20the\x20claim\x20window\x20re-armed\x20—\x20the\x20buyer\x20can\x20dispute\x20again\x20(the\x20real\x20product\x27s\x20\x27ticket\x20closed,\x20no\x20fault\x20found\x27).\x20Only\x20a\x20dismissal\x20RESUME\x20needs\x20the\x20guard;\x20a\x20plain\x20dismissal\x20keeps\x20the\x20rail\x20open\x20for\x20the\x20withdraw/arb-refund\x20pair.','guardKeyProbe':'arb_dismissed_resume','evidence':[]},{'id':'R4','class':'remedy','name':'Buyer-won\x20ruling\x20executes\x20the\x20full\x20refund','actor':'arbitrator','precondition':['R1'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'claim_filed','identity':'permission_index','moneyEffect':'refund'},'commercialSemantics':'A\x20ruling\x20won\x20by\x20the\x20buyer\x20refunds\x20the\x20escrowed\x20total\x20deterministically\x20—\x20the\x20merchant-side\x20execution\x20of\x20the\x20CS\x20decision\x20(R5\x20covers\x20the\x20indemnity\x20on\x20top).\x20The\x20real\x20product\x27s\x20ruling\x20is\x20discretionary;\x20here\x20it\x20is\x20a\x20signed\x20arb\x20outcome.','guardKeyProbe':'arb_refund','evidence':[]},{'id':'R5','class':'remedy','name':'Compensation-fund\x20payout\x20to\x20the\x20order\x20owner\x20(capped\x20at\x203x\x20the\x20escrowed\x20fee)','actor':'merchant','precondition':['R1'],'onchain':'expressible_with_gap','chainFootprint':{'node':'claim_filed','moneyEffect':'compensate'},'commercialSemantics':'For\x20loss/damage\x20claims\x20the\x20desk\x20pays\x20from\x20a\x20pre-locked\x20compensation_fund\x20(>=\x203x\x20its\x20largest\x20escrowed\x20order,\x20locked\x20BEFORE\x20launch).\x20The\x20gap:\x20the\x20cap\x20multiplies\x20the\x20ESCROWED\x20FEE,\x20not\x20the\x20parcel\x27s\x20declared\x20value\x20—\x20a\x203,000-CNY\x20parcel\x20on\x20a\x205-CNY\x20fee\x20recovers\x20~15\x20CNY\x20on-chain\x20(INV-SS-2),\x20far\x20below\x20the\x20official\x20insurance\x20promise.','gapPredicate':{'probe':'MAX_INDEMNITY_MULTIPLE|the\x20escrow\x20is\x20the\x20FEE|3x\x20the\x20escrow'},'evidence':[{'file':'arb.move','line':0x15,'pattern':'MAX_INDEMNITY_MULTIPLE'},{'file':'service.move','line':0x24c,'pattern':'public\x20fun\x20compensation_claim'},{'file':'service.move','line':0x265,'pattern':'order::owner(order)'}]},{'id':'R6','class':'remedy','name':'Arbitration\x2030-day\x20silence\x20=\x20acceptance\x20(case-fee\x20release)','actor':'platform','precondition':['R4'],'onchain':'not_applicable','commercialSemantics':'Protocol-level\x20arb-object\x20finality\x20(WITHDRAW_DURATION_TIME,\x20silence\x20treated\x20as\x20acceptance)\x20releasing\x20the\x20case\x20fee.\x20The\x20real\x20product\x20has\x20no\x20analog\x20step\x20—\x20its\x20CS\x20ruling\x20executes\x20immediately\x20—\x20and\x20this\x20template\x27s\x20machine\x20refund\x20rails\x20key\x20on\x20the\x20ruling\x20state\x20directly,\x20so\x20the\x20window\x20never\x20touches\x20the\x20buyer\x20path.','evidence':[]},{'id':'R7','class':'remedy','name':'Return\x20request\x20inside\x20the\x2024-hour\x20window\x20(refund-request\x20rail)','actor':'buyer','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'return_requested','forward':'RequestReturn','prev':'delivered','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'An\x20errand\x20has\x20no\x20goods\x20to\x20ship\x20back,\x20so\x20after-sales\x20is\x20a\x20REFUND-REQUEST\x20rail,\x20not\x20a\x20shipback:\x20the\x20buyer\x20requests\x20inside\x20the\x20window,\x20the\x20desk\x20confirms\x20(full\x20refund)\x20or\x20rejects.\x20The\x20real\x20product\x27s\x20\x27re-deliver\x20/\x20negotiate\x27\x20flow\x20maps\x20to\x20the\x20same\x20request-confirm\x20pair.','guardKeyProbe':'return_request','evidence':[]},{'id':'R8','class':'remedy','name':'Buyer\x20withdraws\x20the\x20return\x20request\x20(liveness\x20self-exit)','actor':'buyer','precondition':['R7'],'onchain':'expressible','chainFootprint':{'node':'delivered','forward':'WithdrawReturn','prev':'return_requested','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'The\x20buyer\x20backs\x20out\x20of\x20the\x20request\x20and\x20the\x20order\x20returns\x20to\x20delivered\x20with\x20the\x20window\x20still\x20armed\x20—\x20prevents\x20a\x20stale\x20request\x20from\x20freezing\x20the\x20desk\x27s\x20confirm/reject\x20choice.','guardKeyProbe':'return_withdraw','evidence':[]},{'id':'R9','class':'remedy','name':'Desk\x20confirms\x20the\x20return\x20(full\x20refund)','actor':'merchant','precondition':['R7'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','forward':'ConfirmReturn','prev':'return_requested','identity':'permission_index','moneyEffect':'refund'},'commercialSemantics':'The\x20desk\x20accepts\x20the\x20refund\x20request:\x20the\x20escrow\x20refunds\x20in\x20full\x20and\x20the\x20order\x20closes.\x20Intentionally\x20a\x20bare\x20permission_index\x20edge\x20—\x20the\x20desk\x20answers,\x20no\x20extra\x20evidence\x20row\x20is\x20required.','evidence':[]},{'id':'R10','class':'remedy','name':'Desk\x20rejects\x20the\x20return\x20(order\x20resumes\x20at\x20delivered)','actor':'merchant','precondition':['R7'],'onchain':'expressible','chainFootprint':{'node':'delivered','forward':'RejectReturn','prev':'return_requested','identity':'permission_index','moneyEffect':'none'},'commercialSemantics':'The\x20desk\x20contests\x20the\x20request;\x20the\x20order\x20resumes\x20at\x20delivered\x20and\x20the\x20buyer\x27s\x20remaining\x20remedies\x20are\x20the\x20claim\x20window\x20(R1)\x20or\x20withdrawal\x20(R8)\x20—\x20the\x20real\x20product\x27s\x20\x27request\x20denied,\x20ticket\x20if\x20you\x20disagree\x27.','evidence':[]},{'id':'R11','class':'remedy','name':'Platform\x20advance\x20compensation\x20(customer-service\x20make-good)','actor':'platform','precondition':['R4'],'onchain':'disclosure_only','commercialSemantics':'Shansong\x27s\x205-star\x20CS\x20occasionally\x20advances\x20compensation\x20without\x20a\x20ruling.\x20On-chain\x20the\x20counterpart\x20is\x20the\x20pre-locked\x20compensation_fund\x20paying\x20the\x20order\x20owner\x20—\x20no\x20discretion\x20needed,\x20and\x20the\x20desk\x27s\x20fund\x20watch\x20(three\x20water\x20tiers)\x20is\x20the\x20operational\x20duty.','disclosureProbe':'compensation[^\x22]{0,10}fund|pre-lock','evidence':[]},{'id':'P1','class':'post','name':'Review-reward\x20bounty\x20payout\x20(0.05\x20WOW\x20per\x20claim)','actor':'platform','precondition':['M12'],'onchain':'expressible','chainFootprint':{'node':'reviewed','moneyEffect':'reward'},'commercialSemantics':'The\x20bounty\x20claim\x20rides\x20the\x20reviewed\x20waypoint:\x20a\x20pre-funded\x20reward\x20pool\x20pays\x20per\x20accepted\x20review,\x20gated\x20by\x20content\x20checks\x20—\x20the\x20shansong\x20voucher\x20economy\x20with\x20the\x20discretion\x20removed.','evidence':[]},{'id':'P2','class':'post','name':'Runner\x20paid\x20(desk\x20payroll\x20default;\x20direct\x20escrow\x20leg\x20stays\x20a\x20hand-build\x20surface)','actor':'merchant','precondition':['M11'],'onchain':'expressible','chainFootprint':{'node':'completed','forward':'SettleAfterWindow','prev':'claim_window','identity':'permission_index','moneyEffect':'release'},'commercialSemantics':'Settlement\x20releases\x20the\x20escrow:\x20the\x20DESK\x20Entity\x20takes\x20its\x20share\x20(the\x20desk\x20pays\x20the\x20runner\x20off-chain\x20from\x20it\x20—\x20the\x20payroll\x20default).\x20Direct\x20courier\x20escrow\x20pay\x20is\x20NOT\x20an\x20encodable\x20catalog\x20row:\x20the\x20stage2\x20#20\x20Signer\x20leg\x20was\x20RETRACTED\x20pre-publish\x20because\x20the\x20settle_once\x20caller-authorization\x20leg\x20admits\x20owner-class\x20callers\x20only\x20(order.owner/agent,\x20permission.owner/admin)\x20and\x20no\x20Address-valued\x20runner-assignment\x20row\x20exists\x20for\x20a\x20placement\x20third\x20arm\x20—\x20the\x20rail\x20tripped\x20F-01\x20FUND_RAIL_UNREACHABLE\x20at\x20zero-input\x20compile\x20(CAT-B2/upwc-cat-261017).\x20A\x20hand-built\x20sso\x20CAN\x20mount\x20a\x20Signer\x20leg\x20and\x20the\x20settlement\x20CALLER\x20(the\x20authorized\x20tx\x20sender\x20of\x20the\x20kernel\x27s\x20signer-direct\x20allocation\x20shape)\x20is\x20paid\x20the\x20declared\x20share\x20—\x20the\x20T-06\x20live\x20shape\x20(a\x20shop\x27s\x20own\x20courier\x20account\x20fires\x20the\x20settle\x20from\x20the\x20staff\x20permission).\x20//\x20Probe\x20retirement\x20note\x20(stage2\x20#20):\x20the\x20former\x20feature\x20guardKeyProbe\x20(runner*pay\x20/\x20signer*leg)\x20is\x20retired\x20FULFILLED\x20—\x20the\x20retraction\x20still\x20leaves\x20the\x20settlement\x20rail\x20visible\x20at\x20the\x20ALLOCATOR\x20surface\x20(desk\x20Entity\x20row),\x20which\x20the\x20coverage\x20engine\x27s\x20edge-guard\x20sightline\x20structurally\x20cannot\x20see;\x20keeping\x20an\x20unsatisfiable\x20probe\x20would\x20pin\x20a\x20permanent\x20medium\x20advisory.\x20The\x20meituan/food-delivery\x20E15\x20ratchet\x20(leg\x20still\x20missing\x20there)\x20is\x20untouched.','evidence':[{'file':'allocation.move','line':0x275,'pattern':'tx_context::sender(ctx)'}]},{'id':'P3','class':'post','name':'Membership\x20top-up\x20discounts\x20/\x20corporate\x20accounts','actor':'platform','precondition':['M1'],'onchain':'not_applicable','commercialSemantics':'Membership\x20and\x20corporate\x20billing\x20are\x20off-chain\x20CRM\x20products;\x20they\x20price\x20the\x20quote\x20(M1)\x20and\x20never\x20touch\x20the\x20machine.\x20Unlike\x20the\x20food-delivery\x20free-delivery\x20voucher,\x20there\x20is\x20no\x20on-chain\x20candidate\x20shape\x20to\x20anchor.','evidence':[]},{'id':'P4','class':'post','name':'Immutable\x20order/waybill\x20record\x20retention','actor':'platform','precondition':['M11'],'onchain':'expressible','chainFootprint':{'node':'completed','moneyEffect':'none'},'commercialSemantics':'Every\x20advance\x20appends\x20to\x20the\x20order\x27s\x20history\x20(node,\x20session,\x20timestamp)\x20—\x20the\x20waybill\x20audit\x20trail\x20the\x20real\x20product\x20keeps\x20in\x20an\x20internal\x20database,\x20retained\x20by\x20construction.\x20Anchored\x20at\x20the\x20settle\x20terminal\x20as\x20the\x20last\x20append.','evidence':[{'file':'progress.move','line':0x8e,'pattern':'history:\x20ParentTableVec<History>'},{'file':'progress.move','line':0x22c,'pattern':'parent_table_vec::push_back'}]}],'invariants':[{'id':'INV-SS-1','statement':'A\x20cancel\x20caused\x20by\x20CAPACITY\x20SHORTAGE\x20(no\x20runner\x20accepted\x20within\x20the\x20promised\x20dispatch\x20window)\x20must\x20be\x20penalty-free\x20for\x20the\x20buyer\x20—\x20the\x20platform\x27s\x20fulfillment\x20failure,\x20not\x20the\x20buyer\x27s\x20will,\x20ends\x20the\x20order.','jurisdiction':'China\x20SAMR\x20instant-delivery\x20rules\x20(2026-10-08\x20draft,\x20para.\x2017\x20fulfiller-fault\x20cancellations);\x20EU\x20Platform\x20Work\x20Directive\x202024/2831\x20(dispatch\x20transparency).','chainConflict':'CURED\x20(2026-11-06):\x20the\x20template\x20ships\x20CancelForNoCapacity\x20(desk\x20slot\x201002,\x20pattern.time_lock_progress\x20/\x20cancel_no_capacity\x20—\x20Clock\x20>=\x20assigned\x20entry\x20+\x20dispatch_window_hours,\x20landing\x20on\x20the\x20EXISTING\x20closed_cancel\x20refund_full\x20allocator;\x20the\x203%\x20kill\x20CancelAfterDispatch\x20stays\x20reserved\x20for\x20buyer-initiated\x20cancels).\x20Before\x20the\x20cure\x20the\x20only\x20post-dispatch\x20buyer\x20exit\x20was\x20CancelAfterDispatch\x20—\x20a\x203%\x20fee-bearing\x20kill\x20(kill_fee_bps\x20=\x20300)\x20—\x20so\x20a\x20shortage\x20the\x20buyer\x20cannot\x20influence\x20was\x20charged\x20as\x20if\x20the\x20buyer\x20walked\x20away\x20(K3-PRODUCTS/delivery/shansong.md\x20D2).\x20The\x20registration\x20is\x20retained\x20as\x20a\x20standing\x20check:\x20removing\x20the\x20forward\x20while\x20kill_fee_bps\x20>\x200\x20re-fires\x20it.','violation':{'requiresFeeParamNonZero':'kill_fee_bps','whileMissingForward':'CancelForNoCapacity'}},{'id':'INV-SS-2','statement':'Official\x20declared-value\x20insurance\x20pays\x20up\x20to\x20min(declared\x20value,\x20platform-assessed\x20value)\x20with\x20category-tiered\x20premiums\x20(max\x205,000\x20CNY\x20per\x20item);\x20the\x20chain\x27s\x20indemnity\x20is\x20capped\x20at\x203x\x20the\x20ESCROWED\x20FEE\x20—\x20and\x20the\x20escrow\x20is\x20the\x20service\x20fee\x20plus\x20buy\x20budget,\x20not\x20the\x20parcel\x20value.','jurisdiction':'Shansong\x20declared-value\x20terms;\x20PRC\x20Civil\x20Code\x20art.\x20832-833\x20carrier\x20liability.','chainConflict':'The\x20on-chain\x20indemnity\x20ceiling\x20is\x203x\x20the\x20order\x27s\x20ESCROWED\x20amount\x20(the\x20arbitration\x20module\x27s\x20cap\x20base\x20is\x20the\x20escrow,\x20never\x20the\x20declared\x20parcel\x20value).\x20A\x203,000-CNY\x20parcel\x20on\x20a\x205-CNY\x20errand\x20fee\x20recovers\x20~15\x20CNY\x20on-chain;\x20the\x20pre-locked\x20compensation\x20fund\x20(>=\x203x\x20the\x20largest\x20ESCROWED\x20order)\x20softens\x20but\x20does\x20not\x20close\x20the\x20gap.\x20Text-only:\x20no\x20fee_params\x20key\x20exists\x20to\x20make\x20this\x20mechanical\x20yet.','evidence':[{'file':'arb.move','line':0x15,'pattern':'MAX_INDEMNITY_MULTIPLE'},{'file':'arb.move','line':0x21d,'pattern':'indemnity_cap_base'},{'file':'service.move','line':0x265,'pattern':'order::owner(order)'}]},{'id':'INV-SS-3','statement':'Runner\x20pay\x20defaults\x20to\x20the\x20desk\x27s\x20off-chain\x20payroll:\x20the\x20escrow\x20settles\x20to\x20the\x20desk\x20Entity\x20and\x20NO\x20catalog\x20rail\x20pays\x20a\x20signer.','jurisdiction':'EU\x20Platform\x20Work\x20Directive\x202024/2831\x20art.\x205\x20(pay\x20transparency\x20to\x20the\x20Courier).','chainConflict':'GUARDED-BY-RETRACTION\x20(stage2\x20#20,\x20N-01):\x20the\x20catalog\x20ships\x20NO\x20courier\x20direct-pay\x20leg\x20—\x20the\x20opt-in\x20Signer\x20row\x20was\x20RETRACTED\x20pre-publish\x20because\x20the\x20settle_alloc\x20caller-authorization\x20leg\x20(tpl_allocator_node_gate_settle_once)\x20admits\x20owner-class\x20identities\x20only\x20and\x20the\x20template\x20has\x20no\x20Address-valued\x20runner-assignment\x20row\x20a\x20placement\x20third\x20arm\x20could\x20probe:\x20the\x20rail\x20tripped\x20F-01\x20FUND_RAIL_UNREACHABLE\x20at\x20zero-input\x20compile\x20(CAT-B2/upwc-cat-261017:\x20NO\x20signer\x20leg\x20is\x20encodable\x20here).\x20The\x20standing\x20check\x20pins\x20the\x20desk-only\x20settlement\x20economics:\x20the\x20desk\x20Entity\x20takes\x20the\x20escrow,\x20roster-only\x20external\x20runners\x20stay\x20on\x20the\x20desk\x20payroll.\x20Direct\x20pay\x20remains\x20expressible\x20in\x20HAND-BUILT\x20sso\x20builds\x20—\x20a\x20mounted\x20Recipient::Signer\x20row\x20pays\x20the\x20authorized\x20settlement\x20caller\x20directly\x20from\x20escrow\x20(the\x20kernel\x27s\x20signer-direct\x20allocation\x20shape;\x20see\x20the\x20invariants\x27\x20evidence\x20pointers\x20for\x20the\x20exact\x20on-chain\x20anchor).\x20Do\x20NOT\x20drop\x20this\x20invariant\x20—\x20it\x20pins\x20the\x20desk-payroll\x20default\x20against\x20a\x20signer-rail\x20regression.','evidence':[{'file':'allocation.move','line':0x26d,'pattern':'ERECIPIENT_NOT_FOR_OBJECT'},{'file':'allocation.move','line':0x275,'pattern':'tx_context::sender(ctx)'}]}]};
|
|
1
|
+
export const SHANSONG_ORACLE={'productRef':'shansong','products':['shansong','sf-city-rush','uu-errand','meituan-errand','doordash-dashnow','uber-connect'],'oracleVersion':'1.1.0','steps':[{'id':'M1','class':'offchain','name':'Browse\x20errand\x20categories\x20and\x20get\x20a\x20quote\x20(distance/weight\x20priced\x20off-chain)','actor':'buyer','precondition':[],'onchain':'not_applicable','commercialSemantics':'Pricing\x20is\x20a\x20pure\x20off-chain\x20concern:\x20distance,\x20weight\x20and\x20time-of-day\x20surge\x20are\x20computed\x20in\x20the\x20app;\x20the\x20chain\x20holds\x20no\x20route\x20or\x20distance\x20oracle\x20by\x20design.','evidence':[]},{'id':'M2','class':'offchain','name':'Select\x20the\x20errand\x20line\x20and\x20optional\x20declared-value\x20insurance','actor':'buyer','precondition':['M1'],'onchain':'not_applicable','commercialSemantics':'The\x20buyer\x20picks\x20carry\x20/\x20buy_for_me\x20/\x20time_based\x20and\x20may\x20buy\x20official\x20declared-value\x20insurance\x20(capped\x205,000\x20CNY/item).\x20The\x20line\x20choice\x20is\x20a\x20build-time\x20selector\x20on\x20this\x20template\x20(conditional_guards\x20errand_line);\x20insurance\x20is\x20an\x20off-chain\x20policy,\x20not\x20an\x20on-chain\x20leg.','evidence':[]},{'id':'M3','class':'main','name':'Pay\x20and\x20escrow\x20(service\x20fee,\x20buy-for-me\x20budget\x20and\x20tip\x20in\x20one\x20total)','actor':'buyer','precondition':['M2'],'onchain':'expressible','chainFootprint':{'node':'paid','forward':'Enter','prev':'','identity':'order_holder','moneyEffect':'escrow_in'},'commercialSemantics':'One\x20atomic\x20buy:\x20the\x20quoted\x20errand\x20total\x20(fee\x20+\x20buy\x20budget\x20+\x20optional\x20tip)\x20is\x20escrowed\x20in\x20a\x20single\x20transaction.\x20Shansong\x20charges\x200\x20platform\x20commission\x20on\x20the\x20desk\x20side;\x20coupons\x20burn\x20at\x20order\x20time\x20and\x20refunds\x20return\x20the\x20discounted\x20total\x20only.','evidence':[]},{'id':'M4','class':'main','name':'Desk\x20dispatches\x20a\x20runner\x20(off-chain\x20decision,\x20dispatch\x20record\x20row)','actor':'keeper','precondition':['M3'],'onchain':'expressible','chainFootprint':{'node':'assigned','forward':'Dispatch','prev':'paid','identity':'permission_index','moneyEffect':'none'},'commercialSemantics':'Accepting,\x20choosing\x20a\x20runner\x20and\x20re-dispatching\x20are\x20off-chain\x20desk\x20acts;\x20the\x20dispatch_record\x20evidence\x20row\x20is\x20their\x20only\x20chain\x20footprint\x20and\x20it\x20starts\x20the\x20on-time\x20clock.\x20The\x20dispatch\x20moment\x20splits\x20a\x20free\x20buyer\x20cancel\x20(E1)\x20from\x20a\x20fee-bearing\x20kill\x20(E2).','guardKeyProbe':'dispatch_record','evidence':[]},{'id':'M5','class':'main','name':'Runner\x20picks\x20up\x20on\x20the\x20carry\x20line\x20(custody\x20evidence)','actor':'fulfiller','precondition':['M4'],'onchain':'expressible','chainFootprint':{'node':'picked_up','forward':'PickUpOrder','prev':'assigned','identity':'named_operator','moneyEffect':'none'},'commercialSemantics':'Carry\x20is\x20the\x20flagship\x20line:\x20only\x20the\x20rostered\x20runner\x20may\x20advance,\x20gated\x20by\x20a\x20custody\x20evidence\x20row\x20(photo/scan).\x20Roster\x20membership\x20IS\x20admission\x20power\x20—\x20desk\x20staff\x20write\x20the\x20roster,\x20runners\x20only\x20transact\x20through\x20it.','guardKeyProbe':'pickup_evidence','evidence':[{'file':'progress.move','line':0x124,'pattern':'fun\x20IsNamedOperator'}]},{'id':'M6','class':'main','name':'Runner\x20buys\x20on\x20the\x20buy_for_me\x20line\x20(receipt\x20evidence\x20within\x20the\x20escrowed\x20budget)','actor':'fulfiller','precondition':['M4'],'onchain':'expressible','chainFootprint':{'node':'picked_up','forward':'PickUpOrder','prev':'assigned','identity':'named_operator','moneyEffect':'none'},'commercialSemantics':'buy_for_me\x20substitutes\x20custody\x20evidence\x20with\x20the\x20runner\x27s\x20own\x20purchase\x20receipt,\x20whose\x20amount\x20must\x20stay\x20<=\x20the\x20escrowed\x20buy\x20budget\x20(see\x20E9\x20for\x20the\x20over-budget\x20case).\x20Same\x20roster\x20gate,\x20weaker\x20evidence\x20semantics\x20—\x20priced\x20the\x20same\x20by\x20the\x20real\x20product.','guardKeyProbe':'pickup_receipt_evidence','evidence':[]},{'id':'M7','class':'main','name':'Time-based\x20line\x20pickup\x20(buyer\x27s\x20own\x20declaration\x20advances)','actor':'buyer','precondition':['M4'],'onchain':'expressible_with_gap','chainFootprint':{'node':'picked_up','forward':'PickUpOrder','prev':'assigned','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'time_based\x20has\x20nothing\x20material\x20to\x20evidence\x20mid-queue,\x20so\x20the\x20BUYER\x27s\x20own\x20declaration\x20is\x20the\x20pickup\x20advance\x20—\x20the\x20weakest\x20of\x20the\x20three\x20lines.\x20The\x20gap\x20is\x20that\x20the\x20real\x20product\x20still\x20charges\x20full\x20price\x20for\x20it\x20while\x20offering\x20no\x20weaker-evidence\x20discount;\x20the\x20template\x20must\x20disclose\x20the\x20strength\x20difference.','guardKeyProbe':'pickup_declaration','gapPredicate':{'probe':'weakest\x20line|BUYER\x27s\x20own\x20declaration|price\x20it\x20lower'},'evidence':[]},{'id':'M8','class':'main','name':'Runner\x20hands\x20over\x20to\x20the\x20recipient\x20(delivery\x20evidence\x20row)','actor':'fulfiller','precondition':['M5'],'onchain':'expressible','chainFootprint':{'node':'delivered','forward':'HandOver','prev':'picked_up','identity':'named_operator','moneyEffect':'none'},'commercialSemantics':'Handover\x20is\x20roster-gated\x20like\x20pickup\x20and\x20attested\x20by\x20a\x20deliver_evidence\x20row\x20(recipient\x20confirmation\x20code\x20or\x20drop-off\x20kind).\x20This\x20is\x20the\x20moment\x20the\x20real\x20product\x27s\x20on-time\x20clock\x20stops;\x20any\x20of\x20the\x20three\x20pickup\x20lines\x20(M5/M6/M7)\x20reaches\x20it.','guardKeyProbe':'deliver_evidence','evidence':[{'file':'machine.move','line':0x5f,'pattern':'namedOperator,\x20permissionIndex,\x20and\x20guard\x20participate'}]},{'id':'M9','class':'main','name':'Buyer\x20confirms\x20receipt\x20(2-hour\x20window\x20on\x20the\x20real\x20product)','actor':'buyer','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'claim_window','forward':'ConfirmReceipt','prev':'delivered','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'The\x20buyer\x20confirms\x20within\x20the\x20auto-confirm\x20horizon\x20(2\x20hours\x20on\x20shansong\x20—\x20the\x20recipient\x20may\x20not\x20be\x20present);\x20confirmation\x20opens\x20the\x2024-hour\x20claim\x20window\x20during\x20which\x20funds\x20stay\x20escrowed.','guardKeyProbe':'deliver_confirm','evidence':[]},{'id':'M10','class':'main','name':'Silence\x20fallback\x20opens\x20the\x20claim\x20window\x20(keeper)','actor':'keeper','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'claim_window','forward':'OpenClaimWindow','prev':'delivered','identity':'permission_index','moneyEffect':'none'},'commercialSemantics':'A\x20silent\x20buyer\x20cannot\x20strand\x20the\x20escrow\x20at\x20delivered:\x20the\x20desk\x20force-opens\x20the\x20claim\x20window\x20after\x20the\x20auto-confirm\x20horizon\x20(2h).\x20The\x20real\x20product\x20auto-confirms\x20in-app;\x20the\x20template\x20routes\x20the\x20same\x20outcome\x20through\x20a\x20keeper\x20slot\x20instead.','guardKeyProbe':'deliver_confirm_timeout','evidence':[]},{'id':'M11','class':'main','name':'Settlement\x20after\x20the\x20claim\x20window\x20elapses\x20(escrow\x20releases\x20to\x20the\x20desk)','actor':'merchant','precondition':['M9'],'onchain':'expressible','chainFootprint':{'node':'completed','forward':'SettleAfterWindow','prev':'claim_window','identity':'permission_index','moneyEffect':'release'},'commercialSemantics':'Once\x20the\x2024-hour\x20claim\x20window\x20closes\x20untouched,\x20the\x20escrow\x20releases\x20in\x20one\x20shot\x20to\x20the\x20desk\x20Entity\x20(settle-once\x20allocator).\x20The\x20runner\x20is\x20NOT\x20paid\x20from\x20this\x20release\x20by\x20default\x20—\x20see\x20P2.\x20ConfirmReceipt\x20(M9)\x20and\x20the\x20timeout\x20fallback\x20(M10)\x20reach\x20the\x20same\x20waypoint.','guardKeyProbe':'settle_window_gate','evidence':[]},{'id':'M12','class':'main','name':'Buyer\x20reviews\x20the\x20errand\x20(0.05\x20WOW\x20bounty)','actor':'buyer','precondition':['M11'],'onchain':'expressible','chainFootprint':{'node':'reviewed','forward':'SubmitReview','prev':'completed','identity':'order_holder','moneyEffect':'reward'},'commercialSemantics':'Post-settlement\x20review\x20with\x20a\x200.05\x20WOW\x20per-claim\x20bounty\x20paid\x20from\x20a\x20pre-funded\x20review_reward_pool\x20—\x20the\x20shansong\x20free-delivery\x20voucher\x20economy\x20re-expressed\x20as\x20an\x20incentive\x20pool\x20rather\x20than\x20a\x20discount\x20on\x20the\x20escrow.','guardKeyProbe':'review_submit','evidence':[]},{'id':'M13','class':'main','name':'Review\x20rail\x20closes\x20back\x20to\x20the\x20settle\x20terminal','actor':'buyer','precondition':['M12'],'onchain':'expressible','chainFootprint':{'node':'completed','forward':'RestAfterReview','prev':'reviewed','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'RestAfterReview\x20returns\x20the\x20reviewed\x20order\x20to\x20the\x20completed\x20terminal\x20so\x20the\x20graph\x20has\x20a\x20unique\x20sink;\x20review\x20state\x20rides\x20the\x20review\x20object,\x20not\x20the\x20machine.\x20The\x20real\x20product\x27s\x20terminal\x20is\x20simply\x20\x27order\x20closed\x27.','evidence':[]},{'id':'E1','class':'exception','name':'Buyer\x20cancels\x20before\x20dispatch\x20(free\x20full\x20refund)','actor':'buyer','precondition':['M3'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','forward':'CancelBeforeDispatch','prev':'paid','identity':'order_holder','moneyEffect':'refund'},'commercialSemantics':'Shansong:\x20free\x20cancel\x20while\x20no\x20runner\x20is\x20assigned.\x20The\x20template\x20charges\x20nothing\x20pre-dispatch\x20and\x20refunds\x20the\x20whole\x20escrow;\x20the\x20buy\x20budget\x20rides\x20back\x20with\x20it\x20(discounted\x20total\x20only,\x20per\x20the\x20coupon\x20policy).','guardKeyProbe':'cancel_before_dispatch','evidence':[]},{'id':'E2','class':'exception','name':'Buyer\x20cancels\x20after\x20dispatch\x20(fee-bearing\x20kill)','actor':'buyer','precondition':['M4'],'onchain':'expressible','chainFootprint':{'node':'closed_kill','forward':'CancelAfterDispatch','prev':'assigned','identity':'order_holder','moneyEffect':'refund'},'commercialSemantics':'Post-dispatch\x20cancel\x20is\x20a\x20kill:\x20the\x20buyer\x20eats\x20a\x203%\x20fee\x20(kill_fee_bps\x20=\x20300)\x20and\x20the\x20desk\x20refunds\x20the\x20rest.\x20The\x20real\x20product\x20instead\x20deducts\x20a\x20courier\x20idle\x20fee;\x20same\x20shape,\x20different\x20fee\x20name.','guardKeyProbe':'cancel_after_dispatch','evidence':[]},{'id':'E3','class':'exception','name':'Runner\x20rejects\x20/\x20is\x20reassigned\x20(off-chain\x20re-dispatch)','actor':'fulfiller','precondition':['M4'],'onchain':'expressible_with_gap','chainFootprint':{'node':'assigned','moneyEffect':'none'},'commercialSemantics':'A\x20rejecting\x20runner\x20never\x20touches\x20the\x20chain:\x20the\x20desk\x20re-dispatches\x20off-chain\x20and\x20writes\x20another\x20roster\x20entry;\x20the\x20order\x20rests\x20at\x20assigned\x20until\x20a\x20new\x20runner\x20picks\x20up.\x20The\x20gap\x20is\x20that\x20there\x20is\x20no\x20RejectDispatch\x20forward\x20—\x20the\x20reassignment\x20is\x20invisible\x20to\x20the\x20buyer\x20except\x20through\x20the\x20roster\x27s\x20mutation.','gapPredicate':{'probe':'re-dispatch'},'evidence':[]},{'id':'E4','class':'exception','name':'No\x20runner\x20accepts\x20—\x20buyer\x20cancels\x20penalty-free\x20on\x20timeout','actor':'buyer','precondition':['M3'],'onchain':'expressible','chainFootprint':{'forward':'CancelForNoCapacity','moneyEffect':'refund'},'commercialSemantics':'Shansong\x20queues\x20the\x20order,\x20raises\x20the\x20visible\x20price,\x20and\x20lets\x20the\x20buyer\x20cancel\x20with\x20a\x20FULL\x20refund\x20when\x20no\x20courier\x20accepts.\x20CURED\x20(2026-11-06):\x20the\x20template\x20now\x20ships\x20CancelForNoCapacity\x20—\x20desk\x20slot\x201002\x20+\x20the\x20dispatch_window_hours\x20opening\x20clock\x20force-cancels\x20penalty-free\x20into\x20closed_cancel\x20once\x20the\x20promised\x20window\x20elapses\x20on\x20the\x20assigned\x20entry\x20with\x20no\x20rostered\x20pickup;\x20the\x203%\x20kill\x20stays\x20reserved\x20for\x20buyer-initiated\x20cancels.','evidence':[]},{'id':'E5','class':'exception','name':'Runner-side\x20late\x20penalty\x20(auto-deduct\x20a\x20share\x20of\x20the\x20fee)','actor':'platform','precondition':['M5'],'onchain':'unresolvable','unresolvableRef':'S7','commercialSemantics':'The\x20real\x20product\x20docks\x2020-50%\x20of\x20the\x20courier\x20fee\x20for\x20late\x20pickup/delivery.\x20The\x20chain\x20has\x20no\x20debit/clawback\x20primitive,\x20so\x20an\x20automated\x20penalty\x20on\x20an\x20already-released\x20escrow\x20is\x20UNCONSTRUCTIBLE;\x20the\x20honest\x20substitutes\x20are\x20the\x20arbitration\x20indemnity\x20and\x20the\x20C-11\x20experience-compensation\x20pool.','disclosureProbe':'NO\x20debit[^\x22]{0,40}clawback|automated\x20runner\x20penalt','evidence':[]},{'id':'E6','class':'exception','name':'On-time\x20guarantee\x20—\x20full\x20refund\x20when\x20the\x20deadline\x20is\x20missed','actor':'platform','precondition':['M8'],'onchain':'expressible_with_gap','chainFootprint':{'node':'claim_filed','moneyEffect':'refund'},'commercialSemantics':'Shansong\x20markets\x20\x27late\x20beyond\x20the\x20promised\x20window\x20=\x20full\x20refund\x27,\x20executed\x20in\x20practice\x20by\x20customer-service\x20discretion\x20(single-source,\x20D1).\x20On-chain\x20the\x20refund\x20rail\x20is\x20buyer-triggered:\x20file\x20a\x20dispute\x20in\x20the\x20claim\x20window\x20and\x20an\x20arb-refund\x20ruling\x20pays\x20out;\x20the\x20C-11\x20pool\x20pays\x20a\x20FIXED\x200.1\x20WOW\x20goodwill\x20claim,\x20not\x20a\x20full\x20refund.\x20The\x20gap\x20—\x20no\x20automatic\x20trigger\x20—\x20is\x20disclosed\x20via\x20the\x20SLA-miss\x20goodwill-pool\x20text.\x20Since\x20stage2\x20#20\x20the\x20lateness\x20itself\x20is\x20PROVABLE\x20on\x20chain\x20(E15):\x20the\x20buyer\x20records\x20the\x20compensated\x20marker\x20when\x20the\x20delivery\x20span\x20beats\x20promise_window_hours,\x20feeding\x20the\x20goodwill\x20claim\x20with\x20history-delta\x20evidence.','gapPredicate':{'probe':'SLA\x20miss|late\x20delivery\x20beyond|goodwill\x20pool'},'evidence':[]},{'id':'E7','class':'exception','name':'Item\x20lost\x20or\x20damaged\x20mid-custody\x20(buyer\x20declaration\x20into\x20arbitration)','actor':'buyer','precondition':['M5'],'onchain':'expressible','chainFootprint':{'node':'claim_filed','forward':'ReportItemLoss','prev':'picked_up','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'The\x20buyer\x20can\x20declare\x20loss/damage\x20straight\x20from\x20picked_up\x20—\x20the\x20item-loss\x20rail\x20(D4)\x20—\x20which\x20stamps\x20claim\x20state\x20for\x20the\x20compensation\x20fund\x20track.\x20Recovery\x20is\x20capped\x20at\x203x\x20the\x20escrowed\x20fee\x20(see\x20R5),\x20NOT\x20the\x20declared\x20value.','guardKeyProbe':'report_loss','evidence':[]},{'id':'E8','class':'exception','name':'Buy-for-me\x20substitution\x20needs\x20buyer\x20consent\x20(order\x20items\x20immutable)','actor':'fulfiller','precondition':['M6'],'onchain':'disclosure_only','commercialSemantics':'When\x20the\x20requested\x20item\x20is\x20out\x20of\x20stock,\x20shansong\x20substitutes\x20only\x20with\x20in-app\x20buyer\x20consent.\x20On-chain\x20the\x20order\x27s\x20items()\x20view\x20is\x20immutable\x20(U-23/S23)\x20and\x20there\x20is\x20no\x20consent\x20surface\x20—\x20the\x20honest\x20path\x20is\x20off-chain\x20negotiation,\x20then\x20cancel/reorder.\x20DISCLOSED\x20(stage2\x20#20\x20cure):\x20the\x20build_notes\x20carry\x20the\x20substitution\x20policy\x20(out-of-stock\x20substitute\x20with\x20in-app\x20consent,\x20cancel-and-replace\x20on\x20refusal,\x20the\x20buy-budget\x20cap\x20still\x20binding)\x20—\x20the\x20strict\x20probe\x20stays\x20so\x20a\x20corpus\x20regression\x20re-surfaces\x20here.','disclosureProbe':'substitut[^\x22]{0,60}|out\x20of\x20stock|out-of-stock|order\x20items\x20immutable','evidence':[]},{'id':'E9','class':'exception','name':'Receipt\x20exceeds\x20the\x20escrowed\x20buy\x20budget\x20(guard\x20rejects;\x20excess\x20unrecoverable)','actor':'fulfiller','precondition':['M6'],'onchain':'expressible_with_gap','chainFootprint':{'node':'picked_up','forward':'PickUpOrder','prev':'assigned','identity':'named_operator','moneyEffect':'none'},'commercialSemantics':'The\x20receipt\x20gate\x20rejects\x20amounts\x20above\x20the\x20escrowed\x20buy\x20budget\x20—\x20the\x20desk\x20eats\x20the\x20difference\x20(D5).\x20The\x20gap:\x20there\x20is\x20no\x20top-up\x20rail\x20(no\x20RefundPriceDiff\x20the\x20other\x20way),\x20so\x20the\x20buyer\x20cannot\x20be\x20charged\x20MORE\x20post-hoc\x20either;\x20pricing\x20discipline\x20moves\x20entirely\x20to\x20the\x20quote\x20step.','guardKeyProbe':'pickup_receipt_evidence','gapPredicate':{'probe':'escrowed\x20buy\x20budget|eats\x20the\x20difference'},'evidence':[]},{'id':'E10','class':'exception','name':'Fake\x20handover\x20(attested\x20but\x20never\x20delivered)','actor':'fulfiller','precondition':['M8'],'onchain':'expressible_with_gap','chainFootprint':{'node':'delivered','forward':'HandOver','prev':'picked_up','identity':'named_operator','moneyEffect':'none'},'commercialSemantics':'Collusion\x20between\x20the\x20roster\x20writer\x20and\x20a\x20rostered\x20runner\x20can\x20fabricate\x20a\x20delivery\x20evidence\x20row\x20without\x20a\x20parcel\x20moving.\x20The\x20roster\x20gate\x20proves\x20WHO\x20was\x20authorized,\x20not\x20that\x20a\x20specific\x20human\x20carried\x20the\x20item;\x20residual\x20risk\x20is\x20desk-staff\x20integrity\x20and\x20is\x20disclosed\x20as\x20such.','guardKeyProbe':'deliver_evidence','gapPredicate':{'probe':'not\x20that\x20a\x20specific\x20human|who\x20was\x20authorized'},'evidence':[]},{'id':'E11','class':'exception','name':'Prohibited-item\x20interception\x20(cash,\x20securities,\x20precious\x20metals)','actor':'platform','precondition':['M5'],'onchain':'not_applicable','commercialSemantics':'The\x20real\x20product\x20intercepts\x20prohibited\x20items\x20at\x20pickup\x20and\x20bans\x20the\x20account;\x20there\x20is\x20no\x20item-inspection\x20primitive\x20on-chain,\x20so\x20this\x20step\x20cannot\x20exist\x20there.\x20DISCLOSED\x20(2026-11-06):\x20the\x20template\x27s\x20build_notes\x20carry\x20the\x20prohibited-items\x20disclosure\x20(off-chain\x20desk\x20compliance;\x20the\x20on-chain\x20rails\x20continue\x20regardless).','disclosureProbe':'prohibit[^\x22]{0,60}|contraband|banned\x20item','evidence':[]},{'id':'E12','class':'exception','name':'Privacy\x20channel\x20—\x20recipient\x20PII\x20never\x20on-chain\x20(privacy\x20numbers,\x20no-contact\x20drop)','actor':'platform','precondition':['M2'],'onchain':'disclosure_only','commercialSemantics':'Shansong\x20routes\x20recipient\x20contact\x20through\x20privacy-number\x20relay\x20and\x20no-contact\x20drop\x20points.\x20On\x20this\x20template\x20the\x20buyer\x20coordinates\x20(address,\x20phone,\x20recipient)\x20live\x20off-chain\x20in\x20the\x20dispatch/point\x20systems;\x20the\x20chain\x20stores\x20none\x20of\x20it\x20—\x20a\x20privacy\x20FEATURE\x20expressed\x20by\x20omission.','disclosureProbe':'address,\x20phone,\x20recipient|live\x20OFF-CHAIN\x20in\x20the\x20dispatch','evidence':[]},{'id':'E13','class':'exception','name':'Recipient\x20refuses\x20/\x20is\x20unreachable\x20(relayed\x20return)','actor':'buyer','precondition':['M8'],'onchain':'expressible_with_gap','chainFootprint':{'node':'return_requested','forward':'RequestReturn','prev':'delivered','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'A\x20recipient\x27s\x20refusal\x20is\x20a\x20third\x20party\x27s\x20will\x20—\x20there\x20is\x20no\x20on-chain\x20channel\x20for\x20someone\x20who\x20is\x20not\x20the\x20order\x20holder,\x20so\x20the\x20buyer\x20must\x20relay\x20it\x20and\x20file\x20a\x20refund-request\x20inside\x20the\x2024-hour\x20window\x20(the\x20desk\x20confirms\x20or\x20rejects).\x20The\x20recipient-will\x20indirection\x20IS\x20DISCLOSED\x20(stage2\x20#20\x20cure):\x20the\x20build_notes\x20carry\x20the\x20RECIPIENT\x20REFUSES\x20path\x20(buyer\x20relays,\x20refund-request\x20inside\x20the\x20window).\x20The\x20gap\x20itself\x20stays\x20open:\x20no\x20fulfiller-side\x20blocked-delivery\x20declaration\x20(UndeliverableReport)\x20and\x20no\x20physical-return\x20tracking.','guardKeyProbe':'return_request','gapPredicate':{'probe':'recipient[^\x22]{0,80}refus|refus[^\x22]{0,80}recipient'},'evidence':[]},{'id':'E14','class':'exception','name':'Wrong\x20address\x20/\x20unreachable\x20address\x20(no\x20undeliverable\x20declaration)','actor':'fulfiller','precondition':['M5'],'onchain':'expressible_with_gap','chainFootprint':{'node':'picked_up','moneyEffect':'none'},'commercialSemantics':'The\x20runner\x20is\x20blocked\x20mid-custody\x20with\x20a\x20bad\x20address.\x20The\x20delivery\x20address\x20is\x20not\x20on-chain\x20at\x20all\x20(PII\x20off-chain,\x20no\x20required_info\x20surface)\x20and\x20items\x20are\x20immutable,\x20so\x20there\x20is\x20no\x20AddressChange\x20with\x20an\x20audit\x20trail\x20and\x20no\x20UndeliverableReport\x20forward\x20—\x20resolution\x20is\x20off-chain\x20negotiation,\x20then\x20dispute/cancel.\x20The\x20undeliverable\x20path\x20IS\x20DISCLOSED\x20(stage2\x20#20\x20cure):\x20the\x20build_notes\x20carry\x20the\x20WRONG\x20ADDRESS\x20/\x20UNDELIVERABLE\x20path\x20(off-chain\x20negotiation,\x20then\x20dispute/cancel\x20rails).','gapPredicate':{'probe':'wrong\x20address|undeliverable|address\x20change|cannot\x20deliver'},'evidence':[{'file':'order.move','line':0xcc,'pattern':'public\x20fun\x20items(self:&Order)'},{'file':'order.move','line':0x52,'pattern':'public\x20fun\x20required_info_update'}]},{'id':'E15','class':'exception','name':'Late-delivery\x20marker\x20(proven-late\x20rail\x20feeds\x20the\x20goodwill\x20claim)','actor':'buyer','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'compensated','moneyEffect':'none'},'commercialSemantics':'When\x20the\x20delivery\x20span\x20(delivered\x20FIRST\x20entry\x20minus\x20picked_up\x20FIRST\x20entry)\x20exceeds\x20promise_window_hours,\x20the\x20buyer\x20records\x20the\x20compensated\x20marker\x20(tpl_forward_late_delivery_gate\x20/\x20late_compensation,\x20order-holder\x20leg,\x20F-049\x20form)\x20—\x20history-delta\x20evidence\x20of\x20the\x20SLA\x20miss.\x20The\x20marker\x20moves\x20NO\x20money\x20and\x20never\x20auto-pays:\x20the\x20desk\x20resumes\x20the\x20serial\x20window\x20(ResumeAfterCompensation),\x20and\x20the\x20payout\x20stays\x20the\x20buyer\x27s\x20proactive\x20C-11\x20goodwill\x20claim\x20(fixed\x20tier)\x20or\x20a\x20full-refund\x20ruling\x20inside\x20the\x20window\x20(E6).\x20Distance/time-tiered\x20SLAs\x20stay\x20off-chain\x20—\x20the\x20promise\x20must\x20remain\x20a\x20static\x20window.','guardKeyProbe':'late_compensation','evidence':[]},{'id':'R1','class':'remedy','name':'File\x20a\x20dispute\x20inside\x20the\x20serial\x20claim\x20window','actor':'buyer','precondition':['M9'],'onchain':'expressible','chainFootprint':{'node':'claim_filed','forward':'FileDispute','prev':'claim_window','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'Within\x20the\x2024-hour\x20post-confirmation\x20window\x20the\x20buyer\x20escalates\x20to\x20arbitration\x20(the\x20real\x20product\x27s\x20customer-service\x20ticket).\x20The\x20window\x20math\x20is\x20serial:\x20claim_window\x20must\x20still\x20be\x20open\x20—\x20settling\x20or\x20a\x20return\x20confirm\x20closes\x20it\x20first.','guardKeyProbe':'claim_filed','evidence':[]},{'id':'R2','class':'remedy','name':'Buyer\x20withdraws\x20the\x20claim\x20(full-refund\x20rail\x20reopens)\x20(BANNED\x20-\x20D2\x20no-withdraw\x20doctrine:\x20a\x20filed\x20claim\x20reaches\x20a\x20RULING\x20instead)','actor':'buyer','precondition':['R1'],'onchain':'not_applicable','chainFootprint':{'node':'closed_cancel','prev':'claim_filed','identity':'order_holder','moneyEffect':'refund'},'commercialSemantics':'Settling\x20out-of-band\x20(the\x20real\x20product\x27s\x20\x27negotiated\x20with\x20the\x20courier\x27\x20outcome)\x20lets\x20the\x20buyer\x20pull\x20out\x20and\x20take\x20the\x20full\x20refund;\x20the\x20claimed_by\x20stamp\x20stays\x20taken\x20so\x20the\x20SAME\x20arb\x20case\x20can\x20never\x20re-claim\x20the\x20order.','guardKeyProbe':'withdraw_claim','evidence':[{'file':'order.move','line':0x79,'pattern':'option::is_none(&self.claimed_by)'}]},{'id':'R3','class':'remedy','name':'Desk-favor\x20ruling\x20resumes\x20the\x20order\x20at\x20delivered','actor':'merchant','precondition':['R1'],'onchain':'expressible','chainFootprint':{'node':'delivered','forward':'ResumeAfterDismissal','prev':'claim_filed','identity':'permission_index','moneyEffect':'none'},'commercialSemantics':'A\x20dismissed\x20dispute\x20puts\x20the\x20order\x20back\x20at\x20delivered\x20with\x20the\x20claim\x20window\x20re-armed\x20—\x20the\x20buyer\x20can\x20dispute\x20again\x20(the\x20real\x20product\x27s\x20\x27ticket\x20closed,\x20no\x20fault\x20found\x27).\x20Only\x20a\x20dismissal\x20RESUME\x20needs\x20the\x20guard;\x20a\x20plain\x20dismissal\x20keeps\x20the\x20rail\x20open\x20for\x20the\x20withdraw/arb-refund\x20pair.','guardKeyProbe':'arb_dismissed_resume','evidence':[]},{'id':'R4','class':'remedy','name':'Buyer-won\x20ruling\x20executes\x20the\x20full\x20refund','actor':'arbitrator','precondition':['R1'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'claim_filed','identity':'permission_index','moneyEffect':'refund'},'commercialSemantics':'A\x20ruling\x20won\x20by\x20the\x20buyer\x20refunds\x20the\x20escrowed\x20total\x20deterministically\x20—\x20the\x20merchant-side\x20execution\x20of\x20the\x20CS\x20decision\x20(R5\x20covers\x20the\x20indemnity\x20on\x20top).\x20The\x20real\x20product\x27s\x20ruling\x20is\x20discretionary;\x20here\x20it\x20is\x20a\x20signed\x20arb\x20outcome.','guardKeyProbe':'arb_refund','evidence':[]},{'id':'R5','class':'remedy','name':'Compensation-fund\x20payout\x20to\x20the\x20order\x20owner\x20(capped\x20at\x203x\x20the\x20escrowed\x20fee)','actor':'merchant','precondition':['R1'],'onchain':'expressible_with_gap','chainFootprint':{'node':'claim_filed','moneyEffect':'compensate'},'commercialSemantics':'For\x20loss/damage\x20claims\x20the\x20desk\x20pays\x20from\x20a\x20pre-locked\x20compensation_fund\x20(>=\x203x\x20its\x20largest\x20escrowed\x20order,\x20locked\x20BEFORE\x20launch).\x20The\x20gap:\x20the\x20cap\x20multiplies\x20the\x20ESCROWED\x20FEE,\x20not\x20the\x20parcel\x27s\x20declared\x20value\x20—\x20a\x203,000-CNY\x20parcel\x20on\x20a\x205-CNY\x20fee\x20recovers\x20~15\x20CNY\x20on-chain\x20(INV-SS-2),\x20far\x20below\x20the\x20official\x20insurance\x20promise.','gapPredicate':{'probe':'MAX_INDEMNITY_MULTIPLE|the\x20escrow\x20is\x20the\x20FEE|3x\x20the\x20escrow'},'evidence':[{'file':'arb.move','line':0x15,'pattern':'MAX_INDEMNITY_MULTIPLE'},{'file':'service.move','line':0x24c,'pattern':'public\x20fun\x20compensation_claim'},{'file':'service.move','line':0x265,'pattern':'order::owner(order)'}]},{'id':'R6','class':'remedy','name':'Arbitration\x2030-day\x20silence\x20=\x20acceptance\x20(case-fee\x20release)','actor':'platform','precondition':['R4'],'onchain':'not_applicable','commercialSemantics':'Protocol-level\x20arb-object\x20finality\x20(WITHDRAW_DURATION_TIME,\x20silence\x20treated\x20as\x20acceptance)\x20releasing\x20the\x20case\x20fee.\x20The\x20real\x20product\x20has\x20no\x20analog\x20step\x20—\x20its\x20CS\x20ruling\x20executes\x20immediately\x20—\x20and\x20this\x20template\x27s\x20machine\x20refund\x20rails\x20key\x20on\x20the\x20ruling\x20state\x20directly,\x20so\x20the\x20window\x20never\x20touches\x20the\x20buyer\x20path.','evidence':[]},{'id':'R7','class':'remedy','name':'Return\x20request\x20inside\x20the\x2024-hour\x20window\x20(refund-request\x20rail)','actor':'buyer','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'return_requested','forward':'RequestReturn','prev':'delivered','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'An\x20errand\x20has\x20no\x20goods\x20to\x20ship\x20back,\x20so\x20after-sales\x20is\x20a\x20REFUND-REQUEST\x20rail,\x20not\x20a\x20shipback:\x20the\x20buyer\x20requests\x20inside\x20the\x20window,\x20the\x20desk\x20confirms\x20(full\x20refund)\x20or\x20rejects.\x20The\x20real\x20product\x27s\x20\x27re-deliver\x20/\x20negotiate\x27\x20flow\x20maps\x20to\x20the\x20same\x20request-confirm\x20pair.','guardKeyProbe':'return_request','evidence':[]},{'id':'R8','class':'remedy','name':'Buyer\x20withdraws\x20the\x20return\x20request\x20(liveness\x20self-exit)','actor':'buyer','precondition':['R7'],'onchain':'expressible','chainFootprint':{'node':'delivered','forward':'WithdrawReturn','prev':'return_requested','identity':'order_holder','moneyEffect':'none'},'commercialSemantics':'The\x20buyer\x20backs\x20out\x20of\x20the\x20request\x20and\x20the\x20order\x20returns\x20to\x20delivered\x20with\x20the\x20window\x20still\x20armed\x20—\x20prevents\x20a\x20stale\x20request\x20from\x20freezing\x20the\x20desk\x27s\x20confirm/reject\x20choice.','guardKeyProbe':'return_withdraw','evidence':[]},{'id':'R9','class':'remedy','name':'Desk\x20confirms\x20the\x20return\x20(full\x20refund)','actor':'merchant','precondition':['R7'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','forward':'ConfirmReturn','prev':'return_requested','identity':'permission_index','moneyEffect':'refund'},'commercialSemantics':'The\x20desk\x20accepts\x20the\x20refund\x20request:\x20the\x20escrow\x20refunds\x20in\x20full\x20and\x20the\x20order\x20closes.\x20Intentionally\x20a\x20bare\x20permission_index\x20edge\x20—\x20the\x20desk\x20answers,\x20no\x20extra\x20evidence\x20row\x20is\x20required.','evidence':[]},{'id':'R10','class':'remedy','name':'Desk\x20rejects\x20the\x20return\x20(order\x20resumes\x20at\x20delivered)','actor':'merchant','precondition':['R7'],'onchain':'expressible','chainFootprint':{'node':'delivered','forward':'RejectReturn','prev':'return_requested','identity':'permission_index','moneyEffect':'none'},'commercialSemantics':'The\x20desk\x20contests\x20the\x20request;\x20the\x20order\x20resumes\x20at\x20delivered\x20and\x20the\x20buyer\x27s\x20remaining\x20remedies\x20are\x20the\x20claim\x20window\x20(R1)\x20or\x20withdrawal\x20(R8)\x20—\x20the\x20real\x20product\x27s\x20\x27request\x20denied,\x20ticket\x20if\x20you\x20disagree\x27.','evidence':[]},{'id':'R11','class':'remedy','name':'Platform\x20advance\x20compensation\x20(customer-service\x20make-good)','actor':'platform','precondition':['R4'],'onchain':'disclosure_only','commercialSemantics':'Shansong\x27s\x205-star\x20CS\x20occasionally\x20advances\x20compensation\x20without\x20a\x20ruling.\x20On-chain\x20the\x20counterpart\x20is\x20the\x20pre-locked\x20compensation_fund\x20paying\x20the\x20order\x20owner\x20—\x20no\x20discretion\x20needed,\x20and\x20the\x20desk\x27s\x20fund\x20watch\x20(three\x20water\x20tiers)\x20is\x20the\x20operational\x20duty.','disclosureProbe':'compensation[^\x22]{0,10}fund|pre-lock','evidence':[]},{'id':'P1','class':'post','name':'Review-reward\x20bounty\x20payout\x20(0.05\x20WOW\x20per\x20claim)','actor':'platform','precondition':['M12'],'onchain':'expressible','chainFootprint':{'node':'reviewed','moneyEffect':'reward'},'commercialSemantics':'The\x20bounty\x20claim\x20rides\x20the\x20reviewed\x20waypoint:\x20a\x20pre-funded\x20reward\x20pool\x20pays\x20per\x20accepted\x20review,\x20gated\x20by\x20content\x20checks\x20—\x20the\x20shansong\x20voucher\x20economy\x20with\x20the\x20discretion\x20removed.','evidence':[]},{'id':'P2','class':'post','name':'Runner\x20paid\x20(desk\x20payroll\x20default;\x20direct\x20escrow\x20leg\x20stays\x20a\x20hand-build\x20surface)','actor':'merchant','precondition':['M11'],'onchain':'expressible','chainFootprint':{'node':'completed','forward':'SettleAfterWindow','prev':'claim_window','identity':'permission_index','moneyEffect':'release'},'commercialSemantics':'Settlement\x20releases\x20the\x20escrow:\x20the\x20DESK\x20Entity\x20takes\x20its\x20share\x20(the\x20desk\x20pays\x20the\x20runner\x20off-chain\x20from\x20it\x20—\x20the\x20payroll\x20default).\x20Direct\x20courier\x20escrow\x20pay\x20is\x20NOT\x20an\x20encodable\x20catalog\x20row:\x20the\x20stage2\x20#20\x20Signer\x20leg\x20was\x20RETRACTED\x20pre-publish\x20because\x20the\x20settle_once\x20caller-authorization\x20leg\x20admits\x20owner-class\x20callers\x20only\x20(order.owner/agent,\x20permission.owner/admin)\x20and\x20no\x20Address-valued\x20runner-assignment\x20row\x20exists\x20for\x20a\x20placement\x20third\x20arm\x20—\x20the\x20rail\x20tripped\x20F-01\x20FUND_RAIL_UNREACHABLE\x20at\x20zero-input\x20compile\x20(CAT-B2/upwc-cat-261017).\x20A\x20hand-built\x20sso\x20CAN\x20mount\x20a\x20Signer\x20leg\x20and\x20the\x20settlement\x20CALLER\x20(the\x20authorized\x20tx\x20sender\x20of\x20the\x20kernel\x27s\x20signer-direct\x20allocation\x20shape)\x20is\x20paid\x20the\x20declared\x20share\x20—\x20the\x20T-06\x20live\x20shape\x20(a\x20shop\x27s\x20own\x20courier\x20account\x20fires\x20the\x20settle\x20from\x20the\x20staff\x20permission).\x20//\x20Probe\x20retirement\x20note\x20(stage2\x20#20):\x20the\x20former\x20feature\x20guardKeyProbe\x20(runner*pay\x20/\x20signer*leg)\x20is\x20retired\x20FULFILLED\x20—\x20the\x20retraction\x20still\x20leaves\x20the\x20settlement\x20rail\x20visible\x20at\x20the\x20ALLOCATOR\x20surface\x20(desk\x20Entity\x20row),\x20which\x20the\x20coverage\x20engine\x27s\x20edge-guard\x20sightline\x20structurally\x20cannot\x20see;\x20keeping\x20an\x20unsatisfiable\x20probe\x20would\x20pin\x20a\x20permanent\x20medium\x20advisory.\x20The\x20meituan/food-delivery\x20E15\x20ratchet\x20(leg\x20still\x20missing\x20there)\x20is\x20untouched.','evidence':[{'file':'allocation.move','line':0x275,'pattern':'tx_context::sender(ctx)'}]},{'id':'P3','class':'post','name':'Membership\x20top-up\x20discounts\x20/\x20corporate\x20accounts','actor':'platform','precondition':['M1'],'onchain':'not_applicable','commercialSemantics':'Membership\x20and\x20corporate\x20billing\x20are\x20off-chain\x20CRM\x20products;\x20they\x20price\x20the\x20quote\x20(M1)\x20and\x20never\x20touch\x20the\x20machine.\x20Unlike\x20the\x20food-delivery\x20free-delivery\x20voucher,\x20there\x20is\x20no\x20on-chain\x20candidate\x20shape\x20to\x20anchor.','evidence':[]},{'id':'P4','class':'post','name':'Immutable\x20order/waybill\x20record\x20retention','actor':'platform','precondition':['M11'],'onchain':'expressible','chainFootprint':{'node':'completed','moneyEffect':'none'},'commercialSemantics':'Every\x20advance\x20appends\x20to\x20the\x20order\x27s\x20history\x20(node,\x20session,\x20timestamp)\x20—\x20the\x20waybill\x20audit\x20trail\x20the\x20real\x20product\x20keeps\x20in\x20an\x20internal\x20database,\x20retained\x20by\x20construction.\x20Anchored\x20at\x20the\x20settle\x20terminal\x20as\x20the\x20last\x20append.','evidence':[{'file':'progress.move','line':0x8e,'pattern':'history:\x20ParentTableVec<History>'},{'file':'progress.move','line':0x22c,'pattern':'parent_table_vec::push_back'}]}],'invariants':[{'id':'INV-SS-1','statement':'A\x20cancel\x20caused\x20by\x20CAPACITY\x20SHORTAGE\x20(no\x20runner\x20accepted\x20within\x20the\x20promised\x20dispatch\x20window)\x20must\x20be\x20penalty-free\x20for\x20the\x20buyer\x20—\x20the\x20platform\x27s\x20fulfillment\x20failure,\x20not\x20the\x20buyer\x27s\x20will,\x20ends\x20the\x20order.','jurisdiction':'China\x20SAMR\x20instant-delivery\x20rules\x20(2026-10-08\x20draft,\x20para.\x2017\x20fulfiller-fault\x20cancellations);\x20EU\x20Platform\x20Work\x20Directive\x202024/2831\x20(dispatch\x20transparency).','chainConflict':'CURED\x20(2026-11-06):\x20the\x20template\x20ships\x20CancelForNoCapacity\x20(desk\x20slot\x201002,\x20pattern.time_lock_progress\x20/\x20cancel_no_capacity\x20—\x20Clock\x20>=\x20assigned\x20entry\x20+\x20dispatch_window_hours,\x20landing\x20on\x20the\x20EXISTING\x20closed_cancel\x20refund_full\x20allocator;\x20the\x203%\x20kill\x20CancelAfterDispatch\x20stays\x20reserved\x20for\x20buyer-initiated\x20cancels).\x20Before\x20the\x20cure\x20the\x20only\x20post-dispatch\x20buyer\x20exit\x20was\x20CancelAfterDispatch\x20—\x20a\x203%\x20fee-bearing\x20kill\x20(kill_fee_bps\x20=\x20300)\x20—\x20so\x20a\x20shortage\x20the\x20buyer\x20cannot\x20influence\x20was\x20charged\x20as\x20if\x20the\x20buyer\x20walked\x20away\x20(K3-PRODUCTS/delivery/shansong.md\x20D2).\x20The\x20registration\x20is\x20retained\x20as\x20a\x20standing\x20check:\x20removing\x20the\x20forward\x20while\x20kill_fee_bps\x20>\x200\x20re-fires\x20it.','violation':{'requiresFeeParamNonZero':'kill_fee_bps','whileMissingForward':'CancelForNoCapacity'}},{'id':'INV-SS-2','statement':'Official\x20declared-value\x20insurance\x20pays\x20up\x20to\x20min(declared\x20value,\x20platform-assessed\x20value)\x20with\x20category-tiered\x20premiums\x20(max\x205,000\x20CNY\x20per\x20item);\x20the\x20chain\x27s\x20indemnity\x20is\x20capped\x20at\x203x\x20the\x20ESCROWED\x20FEE\x20—\x20and\x20the\x20escrow\x20is\x20the\x20service\x20fee\x20plus\x20buy\x20budget,\x20not\x20the\x20parcel\x20value.','jurisdiction':'Shansong\x20declared-value\x20terms;\x20PRC\x20Civil\x20Code\x20art.\x20832-833\x20carrier\x20liability.','chainConflict':'The\x20on-chain\x20indemnity\x20ceiling\x20is\x203x\x20the\x20order\x27s\x20ESCROWED\x20amount\x20(the\x20arbitration\x20module\x27s\x20cap\x20base\x20is\x20the\x20escrow,\x20never\x20the\x20declared\x20parcel\x20value).\x20A\x203,000-CNY\x20parcel\x20on\x20a\x205-CNY\x20errand\x20fee\x20recovers\x20~15\x20CNY\x20on-chain;\x20the\x20pre-locked\x20compensation\x20fund\x20(>=\x203x\x20the\x20largest\x20ESCROWED\x20order)\x20softens\x20but\x20does\x20not\x20close\x20the\x20gap.\x20Text-only:\x20no\x20fee_params\x20key\x20exists\x20to\x20make\x20this\x20mechanical\x20yet.','evidence':[{'file':'arb.move','line':0x15,'pattern':'MAX_INDEMNITY_MULTIPLE'},{'file':'arb.move','line':0x21d,'pattern':'indemnity_cap_base'},{'file':'service.move','line':0x265,'pattern':'order::owner(order)'}]},{'id':'INV-SS-3','statement':'Runner\x20pay\x20defaults\x20to\x20the\x20desk\x27s\x20off-chain\x20payroll:\x20the\x20escrow\x20settles\x20to\x20the\x20desk\x20Entity\x20and\x20NO\x20catalog\x20rail\x20pays\x20a\x20signer.','jurisdiction':'EU\x20Platform\x20Work\x20Directive\x202024/2831\x20art.\x205\x20(pay\x20transparency\x20to\x20the\x20Courier).','chainConflict':'GUARDED-BY-RETRACTION\x20(stage2\x20#20,\x20N-01):\x20the\x20catalog\x20ships\x20NO\x20courier\x20direct-pay\x20leg\x20—\x20the\x20opt-in\x20Signer\x20row\x20was\x20RETRACTED\x20pre-publish\x20because\x20the\x20settle_alloc\x20caller-authorization\x20leg\x20(tpl_allocator_node_gate_settle_once)\x20admits\x20owner-class\x20identities\x20only\x20and\x20the\x20template\x20has\x20no\x20Address-valued\x20runner-assignment\x20row\x20a\x20placement\x20third\x20arm\x20could\x20probe:\x20the\x20rail\x20tripped\x20F-01\x20FUND_RAIL_UNREACHABLE\x20at\x20zero-input\x20compile\x20(CAT-B2/upwc-cat-261017:\x20NO\x20signer\x20leg\x20is\x20encodable\x20here).\x20The\x20standing\x20check\x20pins\x20the\x20desk-only\x20settlement\x20economics:\x20the\x20desk\x20Entity\x20takes\x20the\x20escrow,\x20roster-only\x20external\x20runners\x20stay\x20on\x20the\x20desk\x20payroll.\x20Direct\x20pay\x20remains\x20expressible\x20in\x20HAND-BUILT\x20sso\x20builds\x20—\x20a\x20mounted\x20Recipient::Signer\x20row\x20pays\x20the\x20authorized\x20settlement\x20caller\x20directly\x20from\x20escrow\x20(the\x20kernel\x27s\x20signer-direct\x20allocation\x20shape;\x20see\x20the\x20invariants\x27\x20evidence\x20pointers\x20for\x20the\x20exact\x20on-chain\x20anchor).\x20Do\x20NOT\x20drop\x20this\x20invariant\x20—\x20it\x20pins\x20the\x20desk-payroll\x20default\x20against\x20a\x20signer-rail\x20regression.','evidence':[{'file':'allocation.move','line':0x26d,'pattern':'ERECIPIENT_NOT_FOR_OBJECT'},{'file':'allocation.move','line':0x275,'pattern':'tx_context::sender(ctx)'}]}]};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const TAOBAO_PRESALE_ORACLE={'productRef':'taobao-presale','products':['taobao-tmall-presale','jd-presale'],'oracleVersion':'1.1.0','steps':[{'id':'M1','class':'offchain','name':'Browse\x20the\x20presale\x20campaign\x20(deposit-expansion\x20hype,\x20cross-shop\x20coupons)','actor':'buyer','precondition':[],'onchain':'not_applicable','commercialSemantics':'Campaign\x20economics\x20(deposit\x20expansion\x20coefficients,\x20stacked\x20coupons,\x2088VIP\x20vouchers)\x20are\x20platform\x20marketing\x20acts\x20with\x20no\x20order\x20object\x20yet.','evidence':[]},{'id':'M2','class':'offchain','name':'Place\x20the\x20presale\x20waitlist\x20order\x20(pre-deposit\x20reservation)','actor':'buyer','precondition':['M1'],'onchain':'not_applicable','commercialSemantics':'A\x20free\x20waitlist\x20slot\x20before\x20the\x20deposit\x20is\x20an\x20off-chain\x20Keeper\x20concern,\x20not\x20a\x20Machine\x20node:\x20no\x20unpaid-reservation\x20state\x20exists\x20on\x20chain\x20—\x20buy()\x20escrows\x20the\x20deposit\x20atomically.','evidence':[]},{'id':'M7','class':'offchain','name':'Carrier\x20transit\x20after\x20the\x20production\x20and\x20ship\x20step','actor':'keeper','precondition':['M6'],'onchain':'not_applicable','commercialSemantics':'Carrier\x20movement\x20is\x20off-chain;\x20the\x20after-sales\x20window\x20anchors\x20on\x20the\x20SHIPPED\x20entry\x20precisely\x20so\x20transit\x20time\x20cannot\x20eat\x20the\x20statutory\x20window.','evidence':[]},{'id':'M3','class':'main','name':'Pay\x20the\x20deposit\x20into\x20escrow\x20(single\x20atomic\x20entry)','actor':'buyer','precondition':['M2'],'onchain':'expressible','chainFootprint':{'node':'deposit_paid','forward':'Enter','prev':'','identity':'order_holder','moneyEffect':'escrow_in'},'commercialSemantics':'The\x20deposit\x20escrows\x20atomically\x20at\x20buy();\x20Order.amount\x20freezes\x20at\x20the\x20DEPOSIT\x20and\x20never\x20grows\x20—\x20amount\x20!=\x20captured\x20total\x20(H3\x20disclosure).\x20The\x20real\x2030-minute\x20unpaid-close\x20rule\x20has\x20no\x20on-chain\x20state\x20to\x20close.','evidence':[{'file':'order.move','line':0x41,'pattern':'public\x20struct\x20Order'}]},{'id':'M4','class':'main','name':'Keeper\x20opens\x20the\x20balance\x20window\x20after\x20the\x20production\x20lead\x20time','actor':'keeper','precondition':['M3'],'onchain':'expressible','chainFootprint':{'node':'balance_due','forward':'OpenBalanceWindow','prev':'deposit_paid','identity':'permission_index','moneyEffect':'none'},'guardKeyProbe':'balance_window_open','commercialSemantics':'production_lead_days\x20(30)\x20after\x20deposit_paid\x20the\x20keeper\x20advances\x20the\x20order\x20into\x20balance_due\x20—\x20the\x20production-scheduling\x20signal\x20made\x20literal.','evidence':[]},{'id':'M5','class':'main','name':'Buyer\x20pays\x20the\x20balance\x20(multi-TX\x20capture\x20through\x20the\x20fund\x20gate)','actor':'buyer','precondition':['M4'],'onchain':'expressible','chainFootprint':{'node':'balance_paid','forward':'PayBalance','prev':'balance_due','identity':'order_holder','moneyEffect':'escrow_in'},'guardKeyProbe':'balance_capture','commercialSemantics':'The\x20capture\x20is\x20NOT\x20one-PTB\x20atomic:\x20the\x20gate\x20reads\x20the\x20committed\x20pre-transaction\x20balance,\x20so\x20the\x20balance\x20funds\x20MUST\x20be\x20committed\x20in\x20a\x20PRIOR\x20transaction\x20(a\x20same-PTB\x20capture\x20always\x20aborts).\x20[HIS-35\x202026-11-09:\x20the\x20one-PTB\x20counter-example\x20rode\x20a\x20buy-escrowed\x20full-price\x20Allocation\x20(F-37\x20contamination);\x20adapter\x20read_object\x20resolves\x20committed\x20store\x20first\x20for\x20already-committed\x20child\x20objects\x20—\x20Card\x20B\x20post-state\x20query\x20family\x20is\x20the\x20future\x20unlock.]\x20min_balance\x20=\x20full_price\x20-\x20deposit\x20via\x20balance::join.','evidence':[{'file':'order.move','line':0xc5,'pattern':'public\x20fun\x20amount'}]},{'id':'M6','class':'main','name':'Seller\x20ships\x20after\x20production\x20(evidence-gated)','actor':'merchant','precondition':['M5'],'onchain':'expressible','chainFootprint':{'node':'shipped','forward':'Ship','prev':'balance_paid','identity':'permission_index','moneyEffect':'none'},'guardKeyProbe':'ship','commercialSemantics':'Ship\x20carries\x20the\x20tracking\x20evidence\x20row;\x20this\x20entry\x20starts\x20the\x20shipment-anchored\x20after-sales\x20clock\x20(F-52\x20doctrine).','evidence':[]},{'id':'M8','class':'main','name':'Buyer\x20confirms\x20delivery\x20(or\x20keeper\x20auto-confirm)','actor':'buyer','precondition':['M7'],'onchain':'expressible','chainFootprint':{'node':'delivered','forward':'ConfirmDelivery','prev':'shipped','identity':'order_holder','moneyEffect':'none'},'guardKeyProbe':'deliver_confirm','commercialSemantics':'auto_confirm_days\x20advances\x20a\x20silent\x20buyer;\x20delivered\x20opens\x20the\x20review\x20window\x20and\x20the\x20settlement\x20gate.','evidence':[]},{'id':'M9','class':'post','name':'Buyer\x20writes\x20an\x20optional\x20review\x20(reputation\x20rail)','actor':'buyer','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'reviewed','forward':'Review','prev':'delivered','identity':'order_holder','moneyEffect':'reward'},'guardKeyProbe':'review_window','commercialSemantics':'Reputation-only\x20rail\x20inside\x20review_window_days\x20—\x20no\x20pool-funded\x20reward\x20on\x20this\x20template.','evidence':[]},{'id':'M10','class':'post','name':'Settle\x20after\x20delivery\x20(state-freeze\x20gate,\x20pool-global\x20threshold)','actor':'keeper','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'completed','forward':'Settle','prev':'delivered','identity':'permission_index','moneyEffect':'release'},'guardKeyProbe':'settle_window_gate','commercialSemantics':'settlement_days\x20(7)\x20after\x20delivery\x20the\x20keeper\x27s\x20release\x20sweep\x20settles;\x20the\x20gate\x20is\x20topologically\x20mutually\x20exclusive\x20with\x20the\x20after-sales\x20rail\x20(a\x20return\x20happens\x20BEFORE\x20settlement\x20—\x20the\x20whole\x20pool\x20is\x20intact\x20on\x20that\x20rail).','evidence':[]},{'id':'E1','class':'exception','name':'Deposit\x20unpaid\x20in\x2030\x20minutes:\x20auto-close\x20of\x20the\x20reservation','actor':'keeper','precondition':['M2'],'onchain':'disclosure_only','disclosureProbe':'no\x20unpaid-reservation\x20state|free\x20waitlist\x20slot','commercialSemantics':'The\x20real\x20auto-close\x20has\x20no\x20on-chain\x20state\x20to\x20close:\x20the\x20two-node\x20reserved->deposit_paid\x20entry\x20collapses\x20to\x20ONE\x20deposit_paid\x20entry\x20node,\x20disclosed\x20via\x20the\x20differences\x20(unpaid\x20handling\x20is\x20a\x20Keeper-side\x20concern).','evidence':[]},{'id':'E2','class':'exception','name':'Buyer\x20cancels\x20during\x20the\x20deposit\x20stage\x20(selector-priced\x20exit)','actor':'buyer','precondition':['M3'],'onchain':'expressible','chainFootprint':{'node':'reservation_cancelled','forward':'CancelReservation','prev':'deposit_paid','identity':'order_holder','moneyEffect':'refund'},'guardKeyProbe':'deposit_exit','commercialSemantics':'The\x20deposit_exit_policy\x20selector\x20decides\x20the\x20money:\x20\x27refund\x27\x20returns\x20the\x20whole\x20deposit,\x20\x27kill_fee\x27\x20forfeits\x20kill_fee_bps\x20—\x20priced,\x20not\x20mechanical\x20(E5).','evidence':[]},{'id':'E3','class':'exception','name':'Buyer\x20declines\x20to\x20pay\x20the\x20balance\x20(kill-fee\x20or\x20refund\x20exit)','actor':'buyer','precondition':['M4'],'onchain':'expressible','chainFootprint':{'node':'reservation_cancelled','forward':'DeclineBalance','prev':'balance_due','identity':'order_holder','moneyEffect':'refund'},'guardKeyProbe':'deposit_exit','commercialSemantics':'There\x20is\x20NO\x20on-chain\x20obligation\x20to\x20pay\x20the\x20balance\x20(H1);\x20declining\x20exits\x20through\x20the\x20same\x20deposit_exit\x20selector\x20as\x20E2.','evidence':[]},{'id':'E4','class':'exception','name':'Balance\x20window\x20lapses:\x20keeper\x20timeout\x20exit','actor':'keeper','precondition':['M4'],'onchain':'expressible','chainFootprint':{'node':'reservation_cancelled','forward':'BalanceWindowTimeout','prev':'balance_due','identity':'permission_index','moneyEffect':'refund'},'guardKeyProbe':'balance_deadline','commercialSemantics':'balance_window_days\x20(14)\x20after\x20the\x20window\x20opens\x20the\x20keeper\x20fires\x20the\x20deposit-exit\x20so\x20the\x20deposit\x20can\x20never\x20strand\x20at\x20balance_due\x20(INV-B2).','evidence':[]},{'id':'E5','class':'exception','name':'Kill-fee\x20split\x20booked\x20(30%\x20seller\x20/\x2070%\x20buyer\x20by\x20default)','actor':'merchant','precondition':['E2'],'onchain':'expressible','chainFootprint':{'node':'reservation_cancelled','moneyEffect':'refund'},'commercialSemantics':'kill_fee_bps\x203000\x20/\x20kill_fee_buyer_bps\x207000\x20is\x20production\x20compensation,\x20not\x20punishment\x20—\x20the\x20forfeited\x20amount\x20is\x20quoted\x20in\x20the\x20Messenger\x20thread;\x20\x27deposits\x20are\x20nominally\x20non-refundable\x27\x20is\x20a\x20NEGOTIABLE\x20norm,\x20not\x20a\x20chain\x20rule.','evidence':[]},{'id':'E6','class':'exception','name':'Seller\x20at\x20fault\x20blocks\x20the\x20balance\x20(statutory\x20double\x20return)','actor':'merchant','precondition':['M4'],'onchain':'expressible_with_gap','chainFootprint':{'node':'reservation_cancelled','moneyEffect':'refund'},'gapPredicate':{'probe':'compensation\x20fund|arbitration.compensate|MAX_INDEMNITY_MULTIPLE'},'commercialSemantics':'Civil\x20Code\x20art.587:\x20seller\x20fault\x20=\x20deposit\x20back\x20+\x20equal\x20compensation.\x20The\x20deposit\x20rides\x20the\x20selector\x20rail\x20(which\x20does\x20NOT\x20carve\x20out\x20seller\x20fault\x20—\x20kill_fee\x20would\x20still\x20bite),\x20and\x20the\x20compensation\x20leg\x20rides\x20the\x20fund\x20channel\x20capped\x20at\x203x\x20escrow.\x20The\x20seller-fault\x20carve-out\x20from\x20the\x20kill-fee\x20selector\x20is\x20undisclosed\x20—\x20reported\x20finding.','evidence':[]},{'id':'E7','class':'exception','name':'Seller\x20cancels\x20or\x20raises\x20the\x20promised\x20discount\x20(bad-faith\x20breach)','actor':'merchant','precondition':['M4'],'onchain':'disclosure_only','disclosureProbe':'floor\x20coupons\x20at\x20issuance|discount\x20floor','commercialSemantics':'Platform\x20rule:\x20the\x20seller\x20must\x20honor\x20promised\x20discounts\x20or\x20eat\x20the\x20violation\x20penalty.\x20The\x20chain\x27s\x20counterpart\x20is\x20the\x20DISCOUNT\x20FLOOR\x20discipline\x20(coupons\x20cannot\x20zero\x20the\x20deposit;\x20the\x20registry\x20is\x20mutable\x20post-publish)\x20plus\x20the\x20negotiated-norm\x20disclosure\x20—\x20the\x20account-level\x20penalty\x20itself\x20is\x20off-chain.','evidence':[]},{'id':'E8','class':'exception','name':'Buyer\x20cancels\x20after\x20balance\x20paid,\x20before\x20shipment\x20(full\x20refund)','actor':'buyer','precondition':['M5'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','forward':'CancelBeforeShipment','prev':'balance_paid','identity':'order_holder','moneyEffect':'refund'},'guardKeyProbe':'cancel_before_ship','commercialSemantics':'Post-balance\x20pre-ship\x20cancel\x20refunds\x20in\x20FULL\x20—\x20a\x20DISTINCT\x20terminal\x20state\x20(never\x20reservation_cancelled),\x20so\x20the\x20kill-fee\x20selector\x20can\x20never\x20eat\x20a\x20paid-in-full\x20order.','evidence':[]},{'id':'E9','class':'exception','name':'Buyer\x20rejects\x20the\x20parcel\x20in\x20transit\x20(pre-delivery\x20return)','actor':'buyer','precondition':['M6'],'onchain':'expressible','chainFootprint':{'node':'return_requested','forward':'RequestReturnInTransit','prev':'shipped','identity':'order_holder','moneyEffect':'none'},'guardKeyProbe':'return_request_transit','commercialSemantics':'Refuse-the-parcel\x20opens\x20the\x20after-sales\x20rail\x20before\x20delivery;\x20the\x20window\x20anchor\x20stays\x20on\x20shipment.','evidence':[]},{'id':'E10','class':'exception','name':'Buyer\x20requests\x20a\x207-day\x20no-reason\x20return','actor':'buyer','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'return_requested','forward':'RequestReturn','prev':'delivered','identity':'order_holder','moneyEffect':'none'},'guardKeyProbe':'return_window_presale','commercialSemantics':'return_window_days\x20(7)\x20is\x20the\x20CLOSING\x20bound\x20anchored\x20on\x20the\x20SHIPPED\x20entry\x20—\x20never\x20delivered\x20—\x20so\x20the\x20value\x20covers\x20carrier\x20transit\x20(F-52\x20deadlock\x20doctrine;\x20U6\x20statutory-anchor\x20conflict\x20reported\x20separately).','evidence':[]},{'id':'E11','class':'exception','name':'Seller\x20silent\x20or\x20rejecting\x20on\x20the\x20return\x20(deemed\x20receipt\x20rail)','actor':'merchant','precondition':['E12'],'onchain':'expressible','chainFootprint':{'node':'returned','forward':'ReturnReceiptTimeoutByKeeper','prev':'return_in_transit','identity':'permission_index','moneyEffect':'none'},'guardKeyProbe':'return_response_timeout','commercialSemantics':'return_response_days\x20(7)\x20after\x20the\x20buyer\x27s\x20return-shipment\x20declaration\x20(the\x20return_in_transit\x20entry)\x20with\x20no\x20RMA\x20receipt\x20row,\x20the\x20keeper\x20deems\x20receipt\x20(returnless\x20approval)\x20so\x20the\x20after-sales\x20refund\x20rail\x20arms;\x20an\x20explicit\x20seller\x20contest\x20escalates\x20via\x20the\x20ArbRefundReturn\x20twin\x20—\x20a\x20buyer\x20who\x20shipped\x20the\x20return\x20is\x20never\x20hostage\x20to\x20the\x20merchant\x27s\x20acknowledgement\x20(F-TBPM9-O5-02).','evidence':[]},{'id':'E12','class':'exception','name':'Buyer\x20ships\x20the\x20return\x20back\x20(mid-leg\x20declaration)','actor':'buyer','precondition':['E10'],'onchain':'expressible','chainFootprint':{'node':'return_in_transit','forward':'ShipReturn','prev':'return_requested','identity':'order_holder','moneyEffect':'none'},'guardKeyProbe':'return_shipped','commercialSemantics':'The\x20TPL-10\x20mid-leg\x20waypoint\x20exists\x20on\x20this\x20template;\x20the\x20declaration\x20also\x20arms\x20the\x20receipt-timeout\x20clock.','evidence':[]},{'id':'E13','class':'exception','name':'Return\x20received\x20by\x20the\x20seller','actor':'merchant','precondition':['E12'],'onchain':'expressible','chainFootprint':{'node':'returned','forward':'ReturnReceived','prev':'return_in_transit','identity':'permission_index','moneyEffect':'none'},'guardKeyProbe':'return_received','commercialSemantics':'Merchant\x20acknowledgement\x20lands\x20in\x20the\x20returned\x20waypoint\x20(permission\x201001).','evidence':[]},{'id':'E14','class':'exception','name':'After-sales\x20refund\x20executed\x20(record\x20waypoint)','actor':'keeper','precondition':['E13'],'onchain':'expressible','chainFootprint':{'node':'refunded','forward':'RefundExecuted','prev':'returned','identity':'permission_index','moneyEffect':'refund'},'guardKeyProbe':'refund_executed','commercialSemantics':'The\x20refunded\x20node\x20is\x20the\x20machine-side\x20receipt\x20that\x20the\x20refund\x20allocator\x20actually\x20paid\x20—\x20the\x20money\x20authority\x20stays\x20the\x20allocation\x20rail.','evidence':[]},{'id':'E15','class':'exception','name':'Seller\x20ships\x20late\x20beyond\x20the\x20lead\x20time\x20and\x20fails\x20to\x20fulfill\x20(double\x20return)','actor':'merchant','precondition':['M5'],'onchain':'expressible_with_gap','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'delivered','moneyEffect':'refund'},'gapPredicate':{'probe':'compensation\x20fund|arbitration.compensate|MAX_INDEMNITY_MULTIPLE'},'commercialSemantics':'Tmall\x20rule:\x20unfulfilled-by-late-ship\x20=\x20deposit\x20back\x20+\x20equal\x20compensation.\x20The\x20compensation\x20leg\x20rides\x20the\x20fund\x20channel\x20(>=\x203x\x20cap),\x20but\x20the\x20machine\x20has\x20NO\x20claim\x20waypoint\x20and\x20NO\x20ship-by\x20deadline\x20—\x20the\x20ruling-driven\x20exit\x20from\x20delivered\x20is\x20the\x20only\x20in-shape\x20rail;\x20the\x20pre-delivery\x20variant\x20is\x20disclosure-only\x20upstream\x20of\x20it.','evidence':[]},{'id':'E16','class':'exception','name':'Seller\x20fulfilled\x20but\x20delivered\x20late\x20(late-delivery\x20compensation\x20regime)','actor':'merchant','precondition':['M8'],'onchain':'disclosure_only','disclosureProbe':'\x5cblate\x5cb[^\x22]{0,30}(deliver|ship|fulfil)|delay[^\x22]{0,30}(deliver|ship|fulfil)','commercialSemantics':'The\x20real\x20product\x20pays\x20a\x20per-order\x20late-delivery\x20compensation\x20rate.\x20The\x20template\x20corpus\x20discloses\x20NOTHING\x20about\x20a\x20late-delivery\x20compensation\x20regime\x20(production_lead_days\x20only\x20opens\x20the\x20balance\x20window)\x20—\x20standing\x20disclosure\x20gap.','evidence':[]},{'id':'E17','class':'exception','name':'Short\x20shipment\x20/\x20wrong\x20item','actor':'buyer','precondition':['M8'],'onchain':'expressible_with_gap','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'delivered','identity':'permission_index','moneyEffect':'refund'},'gapPredicate':{'probe':'disputes\x20flow\x20off-Machine|independent\x20Arbitration'},'commercialSemantics':'Content\x20disputes\x20flow\x20off-Machine\x20to\x20the\x20independent\x20Arbitration\x20object;\x20the\x20machine\x20records\x20only\x20the\x20ruling-driven\x20full-refund\x20exit.','evidence':[]},{'id':'E18','class':'exception','name':'Parcel\x20damaged\x20or\x20lost\x20in\x20carrier\x20transit','actor':'buyer','precondition':['M6'],'onchain':'expressible_with_gap','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'delivered','identity':'permission_index','moneyEffect':'refund'},'gapPredicate':{'probe':'lost\x20or\x20damaged\x20in\x20carrier\x20transit|no\x20carrier\x20oracle'},'commercialSemantics':'A\x20parcel\x20lost\x20or\x20damaged\x20in\x20carrier\x20transit\x20is\x20remedied\x20by\x20the\x20buyer\x27s\x20arbitration\x20route\x20into\x20closed_cancel\x20(GF2-31\x20full-refund\x20rail);\x20the\x20carrier\x20claim\x20itself\x20is\x20an\x20OFF-CHAIN\x20recovery\x20—\x20the\x20chain\x20has\x20no\x20carrier\x20oracle\x20(disclosed).','evidence':[]},{'id':'E19','class':'exception','name':'Counterfeit\x20/\x20not-as-described\x20claim','actor':'buyer','precondition':['M8'],'onchain':'expressible_with_gap','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'delivered','identity':'permission_index','moneyEffect':'refund'},'gapPredicate':{'probe':'disputes\x20flow\x20off-Machine|independent\x20Arbitration'},'commercialSemantics':'Same\x20off-Machine\x20dispute\x20rail\x20with\x20WTS\x20evidence;\x20no\x20counterfeit-specific\x20policy\x20is\x20disclosed.','evidence':[]},{'id':'E20','class':'exception','name':'Parcel\x20lost\x20before\x20the\x20delivery\x20scan','actor':'buyer','precondition':['M6'],'onchain':'expressible_with_gap','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'delivered','identity':'permission_index','moneyEffect':'refund'},'gapPredicate':{'probe':'lost\x20or\x20damaged\x20in\x20carrier\x20transit|OFF-CHAIN\x20recovery'},'commercialSemantics':'In-transit\x20loss\x20rides\x20the\x20disclosed\x20arbitration\x20remedy;\x20there\x20is\x20no\x20item_lost\x20waypoint\x20on\x20this\x20template.','evidence':[]},{'id':'E21','class':'exception','name':'Balance\x20payment\x20failed\x20for\x20channel/system\x20reasons','actor':'buyer','precondition':['M4'],'onchain':'disclosure_only','disclosureProbe':'committed\x20in\x20a\x20PRIOR\x20transaction|NOT\x20one-PTB\x20atomic|same-PTB\x20capture','commercialSemantics':'Payment-channel\x20failures\x20are\x20exactly\x20the\x20multi-TX\x20truth\x20the\x20fund-gate\x20note\x20discloses:\x20the\x20capture\x20needs\x20committed\x20prior\x20funds,\x20so\x20a\x20channel\x20failure\x20leaves\x20the\x20order\x20at\x20balance_due\x20where\x20the\x20keeper\x20deadline\x20(E4)\x20eventually\x20exits\x20it.','evidence':[]},{'id':'E22','class':'exception','name':'Buyer\x20files\x20an\x20arbitration\x20case','actor':'buyer','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'claim_filed','forward':'FileDispute','prev':'delivered','identity':'order_holder','moneyEffect':'none'},'guardKeyProbe':'claim_filed','commercialSemantics':'Assembled\x20stage2\x20#28\x20(TPL-09):\x20the\x20buyer\x20files\x20from\x20delivered\x20(claim_filed,\x20a\x20CLOSING\x20settle_window_days\x20window\x20on\x20the\x20delivered\x20ENTRY)\x20or\x20from\x20a\x20contested\x20return\x20(claim_filed_return:\x20return_in_transit\x20ENTRY\x20+\x20return_response_days\x20+\x20auto_confirm_days,\x20the\x20parcel-leg\x20grace).\x20RECORD\x20waypoint\x20only\x20(R-M1-11)\x20—\x20the\x20case\x20parks\x20the\x20order\x20and\x20every\x20keeper\x20clock\x20is\x20topologically\x20frozen\x20while\x20it\x20is\x20open.','evidence':[{'file':'order.move','line':0xa1,'pattern':'public\x20fun\x20has_open_dispute'}]},{'id':'E23','class':'exception','name':'Buyer\x20withdraws\x20the\x20claim','actor':'buyer','precondition':['E22'],'onchain':'expressible','chainFootprint':{'node':'delivered','forward':'WithdrawClaim','prev':'claim_filed','identity':'order_holder','moneyEffect':'none'},'guardKeyProbe':'withdraw_claim','commercialSemantics':'Assembled\x20stage2\x20#28:\x20a\x20no-ruling\x20withdrawal\x20returns\x20the\x20order\x20to\x20the\x20prior\x20state\x20with\x20ZERO\x20money\x20legs\x20(a\x20withdrawal\x20never\x20opens\x20the\x20full-refund\x20rail,\x20ktt5\x20F-03).\x20CRITICAL\x20residual,\x20disclosed\x20in\x20the\x20guard\x20and\x20the\x20waypoint\x20build\x20note:\x20the\x20kernel\x20WithdrawClaim\x20guard\x20is\x20identity-only\x20—\x20replayable,\x20binds\x20no\x20arbitration\x20case,\x20claimed_by\x20survives\x20withdrawal;\x20arb_withdraw\x20sweeps\x20ONLY\x20the\x20fee\x20balance\x20(S-27).','evidence':[{'file':'order.move','line':0x79,'pattern':'option::is_none(&self.claimed_by)'}]},{'id':'E24','class':'exception','name':'Arbitration\x20rules\x20for\x20the\x20buyer\x20with\x20the\x20award\x20floor\x20enforced','actor':'arbitrator','precondition':['E22'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'claim_filed','identity':'permission_index','moneyEffect':'refund'},'guardKeyProbe':'arb_refund_filed','commercialSemantics':'A\x20buyer-won\x20ruling\x20fires\x20the\x20full-refund\x20rail.\x20FLOWS\x20§2\x20said\x20the\x20existing\x20rails\x20stay\x20\x27unchanged\x27\x20—\x20that\x20strands\x20a\x20parked\x20case\x20(the\x20delivered/return_in_transit\x20originals\x20are\x20topologically\x20dead\x20from\x20the\x20waypoint),\x20so\x20the\x20PARKED-PATH\x20twin\x20(claim_filed\x20->\x20closed_cancel,\x20arb_refund_filed,\x20refund-rail\x20slot\x201001)\x20was\x20assembled\x20stage2\x20#28;\x20the\x20dual-prev\x20originals\x20remain\x20as\x20keeper-down\x20fallback\x20(KTT3).\x20arb.indemnity.amount\x20must\x20EXCEED\x20arb_indemnity_floor_bps\x20(3000)\x20—\x20a\x20token\x20award\x20cannot\x20unlock\x20the\x20rail\x20(F-54,\x20tbp\x20live\x20precedent).','evidence':[{'file':'arb.move','line':0x15,'pattern':'MAX_INDEMNITY_MULTIPLE'},{'file':'arb.move','line':0x21d,'pattern':'indemnity_cap_base'},{'file':'arb.move','line':0x1e6,'pattern':'frozen\x20at\x20BUY\x20time'}]},{'id':'E25','class':'exception','name':'Arb\x20silence\x20auto-accepts\x20the\x20claim\x20(protocol\x20finality)','actor':'arbitrator','precondition':['E22'],'onchain':'not_applicable','commercialSemantics':'The\x20real\x2030-day\x20arbitration\x20silence\x20rule\x20is\x20protocol-level\x20arb-object\x20finality\x20(WITHDRAW_DURATION_TIME),\x20not\x20a\x20machine\x20edge\x20—\x20excluded\x20like\x20the\x20shansong\x20pilot\x27s\x20R6.','evidence':[{'file':'arb.move','line':0x10,'pattern':'WITHDRAW_DURATION_TIME'}]},{'id':'E26','class':'exception','name':'Review\x20appeal\x20or\x20removal\x20request','actor':'buyer','precondition':['M9'],'onchain':'disclosure_only','disclosureProbe':'review[^\x22]{0,30}(appeal|remove|takedown)','commercialSemantics':'Real\x20product\x20runs\x20review\x20governance\x20(appeal/removal).\x20The\x20template\x20reviews\x20are\x20write-once\x20reputation\x20records\x20and\x20the\x20corpus\x20discloses\x20no\x20governance\x20—\x20standing\x20FIX-DISCLOSURE\x20gap.','evidence':[]},{'id':'E27','class':'exception','name':'Listing\x20delisted\x20/\x20shop\x20removed\x20mid-presale','actor':'keeper','precondition':['M4'],'onchain':'disclosure_only','disclosureProbe':'(delist|deactivat|suspend)[^\x22]{0,20}(listing|shop|store)','commercialSemantics':'Account-level\x20governance\x20(delist\x20the\x20presale,\x20close\x20the\x20shop)\x20has\x20no\x20per-order\x20chain\x20surface\x20and\x20no\x20corpus\x20disclosure;\x20the\x20deposit/balance\x20rails\x20above\x20are\x20the\x20only\x20fund-safety\x20story.','evidence':[]},{'id':'E28','class':'exception','name':'Deposit-expansion\x20/\x20coupon\x20stacking\x20miscalculation','actor':'merchant','precondition':['M3'],'onchain':'unresolvable','unresolvableRef':'S7','disclosureProbe':'floor\x20coupons\x20at\x20issuance|zeroing\x20coupon|DISCOUNT\x20FLOOR','commercialSemantics':'Expansion\x20coefficients\x20and\x20stacked\x20coupons\x20have\x20no\x20pricing\x20oracle\x20(S7);\x20the\x20corpus\x20discloses\x20the\x20DISCOUNT\x20FLOOR\x20(a\x20zeroing\x20coupon\x20would\x20empty\x20the\x20deposit\x20escrow\x20while\x20the\x20fund\x20gate\x20still\x20expects\x20full_price\x20—\x20floor\x20coupons\x20at\x20issuance).','evidence':[]},{'id':'E29','class':'exception','name':'Refund\x20judged\x20but\x20not\x20yet\x20in\x20the\x20bank\x20account','actor':'buyer','precondition':['E14'],'onchain':'disclosure_only','disclosureProbe':'terminal\x20RECORD\x20waypoint|money\x20authority\x20stays\x20the\x20allocation\x20rail','commercialSemantics':'Chain-side\x20the\x20refund\x20fact\x20is\x20final\x20at\x20the\x20rail;\x20the\x20refunded\x20node\x20is\x20the\x20queryable\x20receipt\x20(bank-side\x20timing\x20off-chain)\x20—\x20disclosed\x20via\x20the\x20after-sales\x20track\x20note.','evidence':[]},{'id':'E30','class':'exception','name':'External\x20chargeback\x20/\x20card-network\x20dispute','actor':'buyer','precondition':['M3'],'onchain':'unresolvable','unresolvableRef':'S9','disclosureProbe':'chargeback|credit\x20card\x20dispute','commercialSemantics':'No\x20chargeback\x20primitive\x20(S9)\x20and\x20no\x20corpus\x20disclosure\x20—\x20a\x20true\x20gap\x20for\x20the\x20double-11\x20complaint\x20economy\x20(heitu\x20complaint\x20leads).','evidence':[]},{'id':'E31','class':'exception','name':'Arb\x20dismisses\x20the\x20claim\x20and\x20the\x20order\x20resumes','actor':'arbitrator','precondition':['E22'],'onchain':'expressible','chainFootprint':{'node':'delivered','forward':'ResumeAfterDismissal','prev':'claim_filed','identity':'permission_index','moneyEffect':'none'},'guardKeyProbe':'arb_dismissed_resume','commercialSemantics':'Assembled\x20stage2\x20#28:\x20a\x20merchant-favour\x20(zero-indemnity)\x20ruling\x20resumes\x20the\x20order\x20(claim_filed\x20->\x20delivered\x20/\x20return_in_transit,\x20money-free,\x20merchant\x20ruling-execution\x20slot\x201004\x20—\x20the\x20N12\x20bucket,\x20W5-14\x20keeps\x201001\x20for\x20refunds);\x20the\x20fresh\x20history\x20entry\x20re-arms\x20the\x20settle/review/return\x20clocks\x20(find=last),\x20and\x20the\x20dismissed\x20buyer\x20keeps\x20every\x20exit\x20the\x20resumed\x20node\x20already\x20had.','evidence':[]},{'id':'R1','class':'remedy','name':'Statutory\x20double\x20return\x20(deposit\x20+\x20equal\x20compensation)','actor':'arbitrator','precondition':['E22'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'delivered','identity':'permission_index','moneyEffect':'refund'},'commercialSemantics':'Civil\x20Code\x20art.587\x27s\x20double\x20return\x20decomposes\x20into\x20the\x20ruling-driven\x20refund\x20rail\x20(deposit\x20portion)\x20plus\x20the\x20compensation\x20claim\x20to\x20order.owner\x20(equal\x20portion,\x20<=\x203x\x20cap)\x20—\x20both\x20expressible.','evidence':[{'file':'service.move','line':0x24c,'pattern':'public\x20fun\x20compensation_claim'},{'file':'service.move','line':0x265,'pattern':'order::owner(order)'}]},{'id':'R2','class':'remedy','name':'7-day\x20no-reason\x20return\x20vs\x20transit-eating\x20window\x20(anchor\x20doctrine)','actor':'buyer','precondition':['E10'],'onchain':'expressible_with_gap','chainFootprint':{'node':'return_requested','forward':'RequestReturn','prev':'delivered','identity':'order_holder','moneyEffect':'none'},'gapPredicate':{'probe':'anchored\x20on\x20the\x20SHIPPED\x20entry|never\x20delivered|covers\x20carrier\x20transit'},'commercialSemantics':'The\x20statutory\x20window\x20runs\x20from\x20RECEIPT;\x20the\x20template\x20anchors\x20the\x20SHIPPED\x20entry\x20so\x20transit\x20cannot\x20eat\x20the\x20window\x20(F-52)\x20—\x20the\x20divergence\x20is\x20disclosed\x20in\x20the\x20return_window_days\x20input\x20spec\x20(U6\x20report-only\x20conflict).','evidence':[]},{'id':'R3','class':'remedy','name':'Compensation\x20payout,\x20owner-bound','actor':'arbitrator','precondition':['E22'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','moneyEffect':'refund'},'commercialSemantics':'Compensation\x20is\x20paid\x20by\x20the\x20service\x20layer\x20to\x20the\x20order\x20owner\x20—\x20always\x20the\x20buyer,\x20structurally\x20unbribeable.','evidence':[{'file':'service.move','line':0x24c,'pattern':'public\x20fun\x20compensation_claim'},{'file':'service.move','line':0x265,'pattern':'order::owner(order)'}]},{'id':'R4','class':'remedy','name':'Indemnity\x20capped\x20at\x203x\x20the\x20deposit\x20escrow','actor':'arbitrator','precondition':['R3'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','moneyEffect':'refund'},'commercialSemantics':'MAX_INDEMNITY_MULTIPLE\x20(3x)\x20bounds\x20every\x20award\x20with\x20the\x20cap\x20base\x20(Order.amount)\x20frozen\x20at\x20BUY\x20time\x20—\x20for\x20a\x20presale\x20that\x20is\x20the\x20DEPOSIT\x20only,\x20so\x20the\x20equal-compensation\x20leg\x20must\x20stay\x20within\x203x\x20deposit\x20(UP9-ARBCAP).','evidence':[{'file':'arb.move','line':0x15,'pattern':'MAX_INDEMNITY_MULTIPLE'},{'file':'arb.move','line':0x21d,'pattern':'indemnity_cap_base'}]},{'id':'R5','class':'remedy','name':'Statutory\x20punitive\x20damages\x20above\x20the\x20cap','actor':'arbitrator','precondition':['R4'],'onchain':'unresolvable','unresolvableRef':'S7','disclosureProbe':'punitive|triple\x20damages|500','commercialSemantics':'Punitive\x20floors\x20(3x\x20price,\x20min\x20500\x20CNY)\x20cannot\x20ride\x20the\x203x\x20deposit-escrow\x20cap\x20and\x20are\x20undisclosed\x20—\x20structurally\x20rare\x20on\x20low-AOV\x20presale\x20items,\x20but\x20a\x20true\x20gap.','evidence':[]},{'id':'P1','class':'post','name':'Settlement\x20allocation\x20to\x20the\x20seller\x20(whole\x20pool\x20intact)','actor':'keeper','precondition':['M10'],'onchain':'expressible','chainFootprint':{'node':'completed','moneyEffect':'release'},'commercialSemantics':'The\x20keeper\x27s\x20release\x20sweep\x20pays\x20the\x20seller\x20share\x20above\x20the\x20allocator\x20threshold;\x20settlement\x20after\x20the\x20after-sales\x20topology\x20means\x20the\x20pool\x20is\x20always\x20intact\x20on\x20that\x20rail.','evidence':[{'file':'allocation.move','line':0x1f6,'pattern':'self.allocators.threshold'},{'file':'allocation.move','line':0x22c,'pattern':'alloc.fix'}]},{'id':'P2','class':'post','name':'Review-reward\x20style\x20claims\x20(signer-bound\x20where\x20mounted)','actor':'buyer','precondition':['M9'],'onchain':'expressible','chainFootprint':{'node':'reviewed','moneyEffect':'reward'},'commercialSemantics':'Any\x20reward\x20leg\x20mounted\x20on\x20the\x20reviewed\x20waypoint\x20pays\x20signer-bound\x20(recipient\x20==\x20sender)\x20—\x20the\x20general\x20reward\x20primitive,\x20used\x20sparingly\x20on\x20this\x20template.','evidence':[{'file':'reward.move','line':0x11b,'pattern':'recipient\x20==\x20tx_context::sender'}]},{'id':'P3','class':'post','name':'Keeper\x20duty\x20schedule\x20(windows,\x20deadlines,\x20water\x20levels)','actor':'keeper','precondition':['P1'],'onchain':'disclosure_only','disclosureProbe':'keeper|scheduled|duty','commercialSemantics':'The\x20whole\x20presale\x20pacing\x20(balance-window\x20open,\x20balance-deadline\x20exit,\x20auto-confirm,\x20return-receipt\x20timeout,\x20settlement\x20sweep,\x2048h\x20arb\x20absence)\x20is\x20a\x20declared\x20keeper\x20duty\x20roster\x20—\x20disclosed,\x20not\x20autonomous.','evidence':[]},{'id':'P4','class':'post','name':'Repurchase\x20into\x20the\x20next\x20presale\x20round','actor':'buyer','precondition':['P1'],'onchain':'not_applicable','commercialSemantics':'Next-round\x20repurchase\x20is\x20a\x20new\x20order;\x20no\x20cross-order\x20chain\x20footprint\x20exists.','evidence':[]},{'id':'P5','class':'post','name':'Append-only\x20dispute\x20trail\x20audit','actor':'keeper','precondition':['E22'],'onchain':'expressible','chainFootprint':{'node':'completed','moneyEffect':'none'},'commercialSemantics':'The\x20dispute\x20vector\x20is\x20append-only\x20(records\x20are\x20added,\x20never\x20removed);\x20the\x20settlement\x20gate\x20reads\x20it\x20state-frozen\x20at\x20the\x20settle\x20terminal\x20—\x20the\x20last\x20append\x20anchors\x20the\x20audit.','evidence':[{'file':'order.move','line':0x94,'pattern':'vector::push_back'}]}],'invariants':[{'id':'INV-TB-1','statement':'Statutory\x20deposit\x20cap:\x20the\x20deposit\x20must\x20not\x20exceed\x2020%\x20of\x20the\x20main\x20contract\x20value\x20(Civil\x20Code\x20art.586;\x20Tmall\x20tier\x20rules\x2010%-20%).\x20The\x20template\x20expresses\x20deposit_amount\x20as\x20a\x20free\x20STRING\x20directive\x20—\x20no\x20ratio\x20check\x20edge\x20exists;\x20only\x20the\x20fund\x20gate\x20(balance\x20>=\x20full_price)\x20is\x20on-chain.','jurisdiction':'PRC\x20Civil\x20Code\x20art.586\x20(deposit\x20<=\x2020%\x20of\x20contract\x20value);\x20Tmall\x20presale\x20administration\x20rules\x20(>=\x2010\x20CNY,\x20multiples\x20of\x2010,\x20tiered\x20caps).','chainConflict':'No\x20fee_param\x20pair\x20(deposit_amount,\x20full_price)\x20relation\x20is\x20checkable\x20by\x20any\x20guard;\x20the\x20cap\x20lives\x20in\x20listing-time\x20review\x20only.'},{'id':'INV-TB-2','statement':'The\x20double-return\x20promise\x20(art.587)\x20is\x20backed\x20ONLY\x20by\x20the\x20arbitration\x20rail\x20plus\x20a\x20non-zero\x20award\x20floor:\x20ArbRefund\x20must\x20exist\x20and\x20arb_indemnity_floor_bps\x20must\x20stay\x20non-zero,\x20or\x20the\x20promise\x20is\x20unbacked\x20(a\x20token\x20award\x20could\x20unlock\x20the\x20rail).','jurisdiction':'PRC\x20Civil\x20Code\x20art.587\x20(deposit\x20back\x20+\x20equal\x20compensation\x20on\x20promisor\x20fault);\x20Tmall\x20presale\x20rule\x205.2/5.4.','chainConflict':'Standing\x20check:\x20removing\x20the\x20ruling\x20rail\x20or\x20zeroing\x20the\x20floor\x20re-fires\x20this\x20invariant.\x20The\x20cap\x20side\x20(3x\x20deposit\x20escrow)\x20stays\x20a\x20text-only\x20bound.','violation':{'requiresFeeParamNonZero':'arb_indemnity_floor_bps','whileMissingForward':'ArbRefund'},'evidence':[{'file':'arb.move','line':0x15,'pattern':'MAX_INDEMNITY_MULTIPLE'},{'file':'arb.move','line':0x1e6,'pattern':'frozen\x20at\x20BUY\x20time'}]},{'id':'INV-TB-3','statement':'The\x20statutory\x20return\x20window\x20runs\x20from\x20RECEIPT\x20of\x20goods\x20(Consumer\x20Protection\x20Law\x20art.25);\x20the\x20template\x20anchors\x20the\x20after-sales\x20window\x20on\x20the\x20SHIPPED\x20entry\x20(F-52\x20deadlock\x20doctrine)\x20—\x20a\x20deliberate\x20divergence\x20that\x20must\x20stay\x20disclosed,\x20never\x20silently\x20re-anchored.','jurisdiction':'PRC\x20Consumer\x20Protection\x20Law\x20art.25\x20(7-day\x20no-reason\x20return\x20from\x20receipt);\x20Tmall\x207-day\x20return\x20rules.','chainConflict':'A\x20delivered-anchored\x20history\x20query\x20on\x20an\x20in-transit\x20presale\x20order\x20reads\x20a\x20row\x20the\x20order\x20never\x20wrote\x20(F-52\x20live\x20deadlock)\x20—\x20the\x20shipped-anchor\x20is\x20the\x20cure,\x20so\x20the\x20conflict\x20is\x20report-only\x20(U6).'},{'id':'INV-TB-4','statement':'Late-ship\x20/\x20late-delivery\x20compensation\x20(Tmall\x20delayed-dispatch\x20rules)\x20has\x20no\x20ship-by\x20deadline\x20primitive\x20and\x20no\x20disclosed\x20compensation\x20regime\x20—\x20only\x20the\x20compensation-fund\x20channel\x20(>=\x203x\x20cap,\x20water-tier\x20keeper\x20watch)\x20exists\x20as\x20the\x20payout\x20backstop.','jurisdiction':'Tmall\x20delayed-dispatch\x20compensation\x20rules;\x20FTC\x20Mail\x20Order\x20Rule\x2016\x20CFR\x20435\x20(US\x20reference\x20frame).','chainConflict':'No\x20deadline\x20primitive\x20anchors\x20Ship\x20to\x20a\x20calendar\x20clock\x20(S7);\x20the\x20fund\x20water-tier\x20duty\x20is\x20disclosure-level\x20only.','evidence':[{'file':'allocation.move','line':0x1f6,'pattern':'self.allocators.threshold'}]},{'id':'INV-TB-5','statement':'Claim-waypoint\x20exit\x20totality\x20(stage2\x20#28):\x20an\x20order\x20parked\x20at\x20claim_filed\x20has\x20every\x20keeper\x20clock\x20topologically\x20frozen,\x20so\x20the\x20waypoint\x20must\x20keep\x20ALL\x20its\x20sanctioned\x20exits\x20—\x20withdraw\x20(identity-only,\x20ZERO\x20money,\x20never\x20opens\x20the\x20full-refund\x20rail\x20ktt5\x20F-03),\x20dismissed-resume\x20(merchant\x20ruling-execution\x20slot\x201004,\x20the\x20N12\x20bucket;\x201001\x20stays\x20the\x20refund\x20rail\x20W5-14),\x20and\x20the\x20buyer-won\x20parked-path\x20twin\x20arb_refund_filed\x20(without\x20it\x20a\x20won\x20ruling\x20strands\x20a\x20parked\x20case).\x20Removing\x20any\x20exit\x20re-creates\x20the\x20algr9\x20brick:\x20a\x20case\x20that\x20can\x20be\x20filed\x20but\x20can\x20never\x20leave.','jurisdiction':'Machine-soundness\x20invariant\x20(TPL-09\x20family,\x20#22/#23/#24/#27/#28\x20precedent).','chainConflict':'Standing\x20check:\x20deleting\x20any\x20of\x20the\x20three\x20sanctioned\x20exits\x20(or\x20re-pointing\x20resume\x20at\x201001/1002)\x20re-fires\x20this\x20invariant.\x20Residual\x20S-27\x20stands\x20disclosed:\x20withdraw\x20is\x20identity-only\x20(replay\x20protection\x20structural,\x20claimed_by\x20survives,\x20arb_withdraw\x20sweeps\x20only\x20the\x20fee).','evidence':[{'file':'order.move','line':0xa1,'pattern':'public\x20fun\x20has_open_dispute'}]}]};
|
|
1
|
+
export const TAOBAO_PRESALE_ORACLE={'productRef':'taobao-presale','products':['taobao-tmall-presale','jd-presale'],'oracleVersion':'1.1.0','steps':[{'id':'M1','class':'offchain','name':'Browse\x20the\x20presale\x20campaign\x20(deposit-expansion\x20hype,\x20cross-shop\x20coupons)','actor':'buyer','precondition':[],'onchain':'not_applicable','commercialSemantics':'Campaign\x20economics\x20(deposit\x20expansion\x20coefficients,\x20stacked\x20coupons,\x2088VIP\x20vouchers)\x20are\x20platform\x20marketing\x20acts\x20with\x20no\x20order\x20object\x20yet.','evidence':[]},{'id':'M2','class':'offchain','name':'Place\x20the\x20presale\x20waitlist\x20order\x20(pre-deposit\x20reservation)','actor':'buyer','precondition':['M1'],'onchain':'not_applicable','commercialSemantics':'A\x20free\x20waitlist\x20slot\x20before\x20the\x20deposit\x20is\x20an\x20off-chain\x20Keeper\x20concern,\x20not\x20a\x20Machine\x20node:\x20no\x20unpaid-reservation\x20state\x20exists\x20on\x20chain\x20—\x20buy()\x20escrows\x20the\x20deposit\x20atomically.','evidence':[]},{'id':'M7','class':'offchain','name':'Carrier\x20transit\x20after\x20the\x20production\x20and\x20ship\x20step','actor':'keeper','precondition':['M6'],'onchain':'not_applicable','commercialSemantics':'Carrier\x20movement\x20is\x20off-chain;\x20the\x20after-sales\x20window\x20anchors\x20on\x20the\x20SHIPPED\x20entry\x20precisely\x20so\x20transit\x20time\x20cannot\x20eat\x20the\x20statutory\x20window.','evidence':[]},{'id':'M3','class':'main','name':'Pay\x20the\x20deposit\x20into\x20escrow\x20(single\x20atomic\x20entry)','actor':'buyer','precondition':['M2'],'onchain':'expressible','chainFootprint':{'node':'deposit_paid','forward':'Enter','prev':'','identity':'order_holder','moneyEffect':'escrow_in'},'commercialSemantics':'The\x20deposit\x20escrows\x20atomically\x20at\x20buy();\x20Order.amount\x20freezes\x20at\x20the\x20DEPOSIT\x20and\x20never\x20grows\x20—\x20amount\x20!=\x20captured\x20total\x20(H3\x20disclosure).\x20The\x20real\x2030-minute\x20unpaid-close\x20rule\x20has\x20no\x20on-chain\x20state\x20to\x20close.','evidence':[{'file':'order.move','line':0x41,'pattern':'public\x20struct\x20Order'}]},{'id':'M4','class':'main','name':'Keeper\x20opens\x20the\x20balance\x20window\x20after\x20the\x20production\x20lead\x20time','actor':'keeper','precondition':['M3'],'onchain':'expressible','chainFootprint':{'node':'balance_due','forward':'OpenBalanceWindow','prev':'deposit_paid','identity':'permission_index','moneyEffect':'none'},'guardKeyProbe':'balance_window_open','commercialSemantics':'production_lead_days\x20(30)\x20after\x20deposit_paid\x20the\x20keeper\x20advances\x20the\x20order\x20into\x20balance_due\x20—\x20the\x20production-scheduling\x20signal\x20made\x20literal.','evidence':[]},{'id':'M5','class':'main','name':'Buyer\x20pays\x20the\x20balance\x20(multi-TX\x20capture\x20through\x20the\x20fund\x20gate)','actor':'buyer','precondition':['M4'],'onchain':'expressible','chainFootprint':{'node':'balance_paid','forward':'PayBalance','prev':'balance_due','identity':'order_holder','moneyEffect':'escrow_in'},'guardKeyProbe':'balance_capture','commercialSemantics':'The\x20capture\x20is\x20NOT\x20one-PTB\x20atomic:\x20the\x20gate\x20reads\x20the\x20committed\x20pre-transaction\x20balance,\x20so\x20the\x20balance\x20funds\x20MUST\x20be\x20committed\x20in\x20a\x20PRIOR\x20transaction\x20(a\x20same-PTB\x20capture\x20always\x20aborts).\x20[HIS-35\x202026-11-09:\x20the\x20one-PTB\x20counter-example\x20rode\x20a\x20buy-escrowed\x20full-price\x20Allocation\x20(F-37\x20contamination);\x20adapter\x20read_object\x20resolves\x20committed\x20store\x20first\x20for\x20already-committed\x20child\x20objects\x20—\x20Card\x20B\x20post-state\x20query\x20family\x20is\x20the\x20future\x20unlock.]\x20The\x20fund\x20gate\x20is\x20the\x20DISCOUNT-AWARE\x20dynamic\x20floor\x20(HIS-44\x20cure):\x20allocation.balance\x20>=\x20order.amount\x20(query\x201561,\x20the\x20coupon-adjusted\x20deposit\x20frozen\x20at\x20buy)\x20+\x20balance_amount\x20—\x20the\x20floor\x20tracks\x20a\x20couponed\x20order\x27s\x20discounted\x20total,\x20so\x20a\x20Service-side\x20coupon\x20delivers\x20instead\x20of\x20being\x20neutralized\x20by\x20a\x20compiled\x20full-price\x20slot;\x20with\x20no\x20coupon\x20the\x20floor\x20is\x20exactly\x20full_price\x20(deposit_amount\x20+\x20balance_amount).','evidence':[{'file':'order.move','line':0xc5,'pattern':'public\x20fun\x20amount'}]},{'id':'M6','class':'main','name':'Seller\x20ships\x20after\x20production\x20(evidence-gated)','actor':'merchant','precondition':['M5'],'onchain':'expressible','chainFootprint':{'node':'shipped','forward':'Ship','prev':'balance_paid','identity':'permission_index','moneyEffect':'none'},'guardKeyProbe':'ship','commercialSemantics':'Ship\x20carries\x20the\x20tracking\x20evidence\x20row;\x20this\x20entry\x20starts\x20the\x20shipment-anchored\x20after-sales\x20clock\x20(F-52\x20doctrine).','evidence':[]},{'id':'M8','class':'main','name':'Buyer\x20confirms\x20delivery\x20(or\x20keeper\x20auto-confirm)','actor':'buyer','precondition':['M7'],'onchain':'expressible','chainFootprint':{'node':'delivered','forward':'ConfirmDelivery','prev':'shipped','identity':'order_holder','moneyEffect':'none'},'guardKeyProbe':'deliver_confirm','commercialSemantics':'auto_confirm_days\x20advances\x20a\x20silent\x20buyer;\x20delivered\x20opens\x20the\x20review\x20window\x20and\x20the\x20settlement\x20gate.','evidence':[]},{'id':'M9','class':'post','name':'Buyer\x20writes\x20an\x20optional\x20review\x20(reputation\x20rail)','actor':'buyer','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'reviewed','forward':'Review','prev':'delivered','identity':'order_holder','moneyEffect':'reward'},'guardKeyProbe':'review_window','commercialSemantics':'Reputation-only\x20rail\x20inside\x20review_window_days\x20—\x20no\x20pool-funded\x20reward\x20on\x20this\x20template.','evidence':[]},{'id':'M10','class':'post','name':'Settle\x20after\x20delivery\x20(state-freeze\x20gate,\x20pool-global\x20threshold)','actor':'keeper','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'completed','forward':'Settle','prev':'delivered','identity':'permission_index','moneyEffect':'release'},'guardKeyProbe':'settle_window_gate','commercialSemantics':'settlement_days\x20(7)\x20after\x20delivery\x20the\x20keeper\x27s\x20release\x20sweep\x20settles;\x20the\x20gate\x20is\x20topologically\x20mutually\x20exclusive\x20with\x20the\x20after-sales\x20rail\x20(a\x20return\x20happens\x20BEFORE\x20settlement\x20—\x20the\x20whole\x20pool\x20is\x20intact\x20on\x20that\x20rail).','evidence':[]},{'id':'E1','class':'exception','name':'Deposit\x20unpaid\x20in\x2030\x20minutes:\x20auto-close\x20of\x20the\x20reservation','actor':'keeper','precondition':['M2'],'onchain':'disclosure_only','disclosureProbe':'no\x20unpaid-reservation\x20state|free\x20waitlist\x20slot','commercialSemantics':'The\x20real\x20auto-close\x20has\x20no\x20on-chain\x20state\x20to\x20close:\x20the\x20two-node\x20reserved->deposit_paid\x20entry\x20collapses\x20to\x20ONE\x20deposit_paid\x20entry\x20node,\x20disclosed\x20via\x20the\x20differences\x20(unpaid\x20handling\x20is\x20a\x20Keeper-side\x20concern).','evidence':[]},{'id':'E2','class':'exception','name':'Buyer\x20cancels\x20during\x20the\x20deposit\x20stage\x20(selector-priced\x20exit)','actor':'buyer','precondition':['M3'],'onchain':'expressible','chainFootprint':{'node':'reservation_cancelled','forward':'CancelReservation','prev':'deposit_paid','identity':'order_holder','moneyEffect':'refund'},'guardKeyProbe':'deposit_exit','commercialSemantics':'The\x20deposit_exit_policy\x20selector\x20decides\x20the\x20money:\x20\x27refund\x27\x20returns\x20the\x20whole\x20deposit,\x20\x27kill_fee\x27\x20forfeits\x20kill_fee_bps\x20—\x20priced,\x20not\x20mechanical\x20(E5).','evidence':[]},{'id':'E3','class':'exception','name':'Buyer\x20declines\x20to\x20pay\x20the\x20balance\x20(kill-fee\x20or\x20refund\x20exit)','actor':'buyer','precondition':['M4'],'onchain':'expressible','chainFootprint':{'node':'reservation_cancelled','forward':'DeclineBalance','prev':'balance_due','identity':'order_holder','moneyEffect':'refund'},'guardKeyProbe':'deposit_exit','commercialSemantics':'There\x20is\x20NO\x20on-chain\x20obligation\x20to\x20pay\x20the\x20balance\x20(H1);\x20declining\x20exits\x20through\x20the\x20same\x20deposit_exit\x20selector\x20as\x20E2.','evidence':[]},{'id':'E4','class':'exception','name':'Balance\x20window\x20lapses:\x20keeper\x20timeout\x20exit','actor':'keeper','precondition':['M4'],'onchain':'expressible','chainFootprint':{'node':'reservation_cancelled','forward':'BalanceWindowTimeout','prev':'balance_due','identity':'permission_index','moneyEffect':'refund'},'guardKeyProbe':'balance_deadline','commercialSemantics':'balance_window_days\x20(14)\x20after\x20the\x20window\x20opens\x20the\x20keeper\x20fires\x20the\x20deposit-exit\x20so\x20the\x20deposit\x20can\x20never\x20strand\x20at\x20balance_due\x20(INV-B2).','evidence':[]},{'id':'E5','class':'exception','name':'Kill-fee\x20split\x20booked\x20(30%\x20seller\x20/\x2070%\x20buyer\x20by\x20default)','actor':'merchant','precondition':['E2'],'onchain':'expressible','chainFootprint':{'node':'reservation_cancelled','moneyEffect':'refund'},'commercialSemantics':'kill_fee_bps\x203000\x20/\x20kill_fee_buyer_bps\x207000\x20is\x20production\x20compensation,\x20not\x20punishment\x20—\x20the\x20forfeited\x20amount\x20is\x20quoted\x20in\x20the\x20Messenger\x20thread;\x20\x27deposits\x20are\x20nominally\x20non-refundable\x27\x20is\x20a\x20NEGOTIABLE\x20norm,\x20not\x20a\x20chain\x20rule.','evidence':[]},{'id':'E6','class':'exception','name':'Seller\x20at\x20fault\x20blocks\x20the\x20balance\x20(statutory\x20double\x20return)','actor':'merchant','precondition':['M4'],'onchain':'expressible_with_gap','chainFootprint':{'node':'reservation_cancelled','moneyEffect':'refund'},'gapPredicate':{'probe':'compensation\x20fund|arbitration.compensate|MAX_INDEMNITY_MULTIPLE'},'commercialSemantics':'Civil\x20Code\x20art.587:\x20seller\x20fault\x20=\x20deposit\x20back\x20+\x20equal\x20compensation.\x20The\x20deposit\x20rides\x20the\x20selector\x20rail\x20(which\x20does\x20NOT\x20carve\x20out\x20seller\x20fault\x20—\x20kill_fee\x20would\x20still\x20bite),\x20and\x20the\x20compensation\x20leg\x20rides\x20the\x20fund\x20channel\x20capped\x20at\x203x\x20escrow.\x20The\x20seller-fault\x20carve-out\x20from\x20the\x20kill-fee\x20selector\x20is\x20undisclosed\x20—\x20reported\x20finding.','evidence':[]},{'id':'E7','class':'exception','name':'Seller\x20cancels\x20or\x20raises\x20the\x20promised\x20discount\x20(bad-faith\x20breach)','actor':'merchant','precondition':['M4'],'onchain':'disclosure_only','disclosureProbe':'floor\x20coupons\x20at\x20issuance|discount\x20floor','commercialSemantics':'Platform\x20rule:\x20the\x20seller\x20must\x20honor\x20promised\x20discounts\x20or\x20eat\x20the\x20violation\x20penalty.\x20The\x20chain\x27s\x20counterpart\x20is\x20the\x20DISCOUNT\x20FLOOR\x20discipline\x20(coupons\x20cannot\x20zero\x20the\x20deposit;\x20the\x20registry\x20is\x20mutable\x20post-publish)\x20plus\x20the\x20negotiated-norm\x20disclosure\x20—\x20the\x20account-level\x20penalty\x20itself\x20is\x20off-chain.','evidence':[]},{'id':'E8','class':'exception','name':'Buyer\x20cancels\x20after\x20balance\x20paid,\x20before\x20shipment\x20(full\x20refund)','actor':'buyer','precondition':['M5'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','forward':'CancelBeforeShipment','prev':'balance_paid','identity':'order_holder','moneyEffect':'refund'},'guardKeyProbe':'cancel_before_ship','commercialSemantics':'Post-balance\x20pre-ship\x20cancel\x20refunds\x20in\x20FULL\x20—\x20a\x20DISTINCT\x20terminal\x20state\x20(never\x20reservation_cancelled),\x20so\x20the\x20kill-fee\x20selector\x20can\x20never\x20eat\x20a\x20paid-in-full\x20order.','evidence':[]},{'id':'E9','class':'exception','name':'Buyer\x20rejects\x20the\x20parcel\x20in\x20transit\x20(pre-delivery\x20return)','actor':'buyer','precondition':['M6'],'onchain':'expressible','chainFootprint':{'node':'return_requested','forward':'RequestReturnInTransit','prev':'shipped','identity':'order_holder','moneyEffect':'none'},'guardKeyProbe':'return_request_transit','commercialSemantics':'Refuse-the-parcel\x20opens\x20the\x20after-sales\x20rail\x20before\x20delivery;\x20the\x20window\x20anchor\x20stays\x20on\x20shipment.','evidence':[]},{'id':'E10','class':'exception','name':'Buyer\x20requests\x20a\x207-day\x20no-reason\x20return','actor':'buyer','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'return_requested','forward':'RequestReturn','prev':'delivered','identity':'order_holder','moneyEffect':'none'},'guardKeyProbe':'return_window_presale','commercialSemantics':'return_window_days\x20(7)\x20is\x20the\x20CLOSING\x20bound\x20anchored\x20on\x20the\x20SHIPPED\x20entry\x20—\x20never\x20delivered\x20—\x20so\x20the\x20value\x20covers\x20carrier\x20transit\x20(F-52\x20deadlock\x20doctrine;\x20U6\x20statutory-anchor\x20conflict\x20reported\x20separately).','evidence':[]},{'id':'E11','class':'exception','name':'Seller\x20silent\x20or\x20rejecting\x20on\x20the\x20return\x20(deemed\x20receipt\x20rail)','actor':'merchant','precondition':['E12'],'onchain':'expressible','chainFootprint':{'node':'returned','forward':'ReturnReceiptTimeoutByKeeper','prev':'return_in_transit','identity':'permission_index','moneyEffect':'none'},'guardKeyProbe':'return_response_timeout','commercialSemantics':'return_response_days\x20(7)\x20after\x20the\x20buyer\x27s\x20return-shipment\x20declaration\x20(the\x20return_in_transit\x20entry)\x20with\x20no\x20RMA\x20receipt\x20row,\x20the\x20keeper\x20deems\x20receipt\x20(returnless\x20approval)\x20so\x20the\x20after-sales\x20refund\x20rail\x20arms;\x20an\x20explicit\x20seller\x20contest\x20escalates\x20via\x20the\x20ArbRefundReturn\x20twin\x20—\x20a\x20buyer\x20who\x20shipped\x20the\x20return\x20is\x20never\x20hostage\x20to\x20the\x20merchant\x27s\x20acknowledgement\x20(F-TBPM9-O5-02).','evidence':[]},{'id':'E12','class':'exception','name':'Buyer\x20ships\x20the\x20return\x20back\x20(mid-leg\x20declaration)','actor':'buyer','precondition':['E10'],'onchain':'expressible','chainFootprint':{'node':'return_in_transit','forward':'ShipReturn','prev':'return_requested','identity':'order_holder','moneyEffect':'none'},'guardKeyProbe':'return_shipped','commercialSemantics':'The\x20TPL-10\x20mid-leg\x20waypoint\x20exists\x20on\x20this\x20template;\x20the\x20declaration\x20also\x20arms\x20the\x20receipt-timeout\x20clock.','evidence':[]},{'id':'E13','class':'exception','name':'Return\x20received\x20by\x20the\x20seller','actor':'merchant','precondition':['E12'],'onchain':'expressible','chainFootprint':{'node':'returned','forward':'ReturnReceived','prev':'return_in_transit','identity':'permission_index','moneyEffect':'none'},'guardKeyProbe':'return_received','commercialSemantics':'Merchant\x20acknowledgement\x20lands\x20in\x20the\x20returned\x20waypoint\x20(permission\x201001).','evidence':[]},{'id':'E14','class':'exception','name':'After-sales\x20refund\x20executed\x20(record\x20waypoint)','actor':'keeper','precondition':['E13'],'onchain':'expressible','chainFootprint':{'node':'refunded','forward':'RefundExecuted','prev':'returned','identity':'permission_index','moneyEffect':'refund'},'guardKeyProbe':'refund_executed','commercialSemantics':'The\x20refunded\x20node\x20is\x20the\x20machine-side\x20receipt\x20that\x20the\x20refund\x20allocator\x20actually\x20paid\x20—\x20the\x20money\x20authority\x20stays\x20the\x20allocation\x20rail.','evidence':[]},{'id':'E15','class':'exception','name':'Seller\x20ships\x20late\x20beyond\x20the\x20lead\x20time\x20and\x20fails\x20to\x20fulfill\x20(double\x20return)','actor':'merchant','precondition':['M5'],'onchain':'expressible_with_gap','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'delivered','moneyEffect':'refund'},'gapPredicate':{'probe':'compensation\x20fund|arbitration.compensate|MAX_INDEMNITY_MULTIPLE'},'commercialSemantics':'Tmall\x20rule:\x20unfulfilled-by-late-ship\x20=\x20deposit\x20back\x20+\x20equal\x20compensation.\x20The\x20compensation\x20leg\x20rides\x20the\x20fund\x20channel\x20(>=\x203x\x20cap),\x20but\x20the\x20machine\x20has\x20NO\x20claim\x20waypoint\x20and\x20NO\x20ship-by\x20deadline\x20—\x20the\x20ruling-driven\x20exit\x20from\x20delivered\x20is\x20the\x20only\x20in-shape\x20rail;\x20the\x20pre-delivery\x20variant\x20is\x20disclosure-only\x20upstream\x20of\x20it.','evidence':[]},{'id':'E16','class':'exception','name':'Seller\x20fulfilled\x20but\x20delivered\x20late\x20(late-delivery\x20compensation\x20regime)','actor':'merchant','precondition':['M8'],'onchain':'disclosure_only','disclosureProbe':'\x5cblate\x5cb[^\x22]{0,30}(deliver|ship|fulfil)|delay[^\x22]{0,30}(deliver|ship|fulfil)','commercialSemantics':'The\x20real\x20product\x20pays\x20a\x20per-order\x20late-delivery\x20compensation\x20rate.\x20The\x20template\x20corpus\x20discloses\x20NOTHING\x20about\x20a\x20late-delivery\x20compensation\x20regime\x20(production_lead_days\x20only\x20opens\x20the\x20balance\x20window)\x20—\x20standing\x20disclosure\x20gap.','evidence':[]},{'id':'E17','class':'exception','name':'Short\x20shipment\x20/\x20wrong\x20item','actor':'buyer','precondition':['M8'],'onchain':'expressible_with_gap','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'delivered','identity':'permission_index','moneyEffect':'refund'},'gapPredicate':{'probe':'disputes\x20flow\x20off-Machine|independent\x20Arbitration'},'commercialSemantics':'Content\x20disputes\x20flow\x20off-Machine\x20to\x20the\x20independent\x20Arbitration\x20object;\x20the\x20machine\x20records\x20only\x20the\x20ruling-driven\x20full-refund\x20exit.','evidence':[]},{'id':'E18','class':'exception','name':'Parcel\x20damaged\x20or\x20lost\x20in\x20carrier\x20transit','actor':'buyer','precondition':['M6'],'onchain':'expressible_with_gap','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'delivered','identity':'permission_index','moneyEffect':'refund'},'gapPredicate':{'probe':'lost\x20or\x20damaged\x20in\x20carrier\x20transit|no\x20carrier\x20oracle'},'commercialSemantics':'A\x20parcel\x20lost\x20or\x20damaged\x20in\x20carrier\x20transit\x20is\x20remedied\x20by\x20the\x20buyer\x27s\x20arbitration\x20route\x20into\x20closed_cancel\x20(GF2-31\x20full-refund\x20rail);\x20the\x20carrier\x20claim\x20itself\x20is\x20an\x20OFF-CHAIN\x20recovery\x20—\x20the\x20chain\x20has\x20no\x20carrier\x20oracle\x20(disclosed).','evidence':[]},{'id':'E19','class':'exception','name':'Counterfeit\x20/\x20not-as-described\x20claim','actor':'buyer','precondition':['M8'],'onchain':'expressible_with_gap','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'delivered','identity':'permission_index','moneyEffect':'refund'},'gapPredicate':{'probe':'disputes\x20flow\x20off-Machine|independent\x20Arbitration'},'commercialSemantics':'Same\x20off-Machine\x20dispute\x20rail\x20with\x20WTS\x20evidence;\x20no\x20counterfeit-specific\x20policy\x20is\x20disclosed.','evidence':[]},{'id':'E20','class':'exception','name':'Parcel\x20lost\x20before\x20the\x20delivery\x20scan','actor':'buyer','precondition':['M6'],'onchain':'expressible_with_gap','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'delivered','identity':'permission_index','moneyEffect':'refund'},'gapPredicate':{'probe':'lost\x20or\x20damaged\x20in\x20carrier\x20transit|OFF-CHAIN\x20recovery'},'commercialSemantics':'In-transit\x20loss\x20rides\x20the\x20disclosed\x20arbitration\x20remedy;\x20there\x20is\x20no\x20item_lost\x20waypoint\x20on\x20this\x20template.','evidence':[]},{'id':'E21','class':'exception','name':'Balance\x20payment\x20failed\x20for\x20channel/system\x20reasons','actor':'buyer','precondition':['M4'],'onchain':'disclosure_only','disclosureProbe':'committed\x20in\x20a\x20PRIOR\x20transaction|NOT\x20one-PTB\x20atomic|same-PTB\x20capture','commercialSemantics':'Payment-channel\x20failures\x20are\x20exactly\x20the\x20multi-TX\x20truth\x20the\x20fund-gate\x20note\x20discloses:\x20the\x20capture\x20needs\x20committed\x20prior\x20funds,\x20so\x20a\x20channel\x20failure\x20leaves\x20the\x20order\x20at\x20balance_due\x20where\x20the\x20keeper\x20deadline\x20(E4)\x20eventually\x20exits\x20it.','evidence':[]},{'id':'E22','class':'exception','name':'Buyer\x20files\x20an\x20arbitration\x20case','actor':'buyer','precondition':['M8'],'onchain':'expressible','chainFootprint':{'node':'claim_filed','forward':'FileDispute','prev':'delivered','identity':'order_holder','moneyEffect':'none'},'guardKeyProbe':'claim_filed','commercialSemantics':'Assembled\x20stage2\x20#28\x20(TPL-09):\x20the\x20buyer\x20files\x20from\x20delivered\x20(claim_filed,\x20a\x20CLOSING\x20settle_window_days\x20window\x20on\x20the\x20delivered\x20ENTRY)\x20or\x20from\x20a\x20contested\x20return\x20(claim_filed_return:\x20return_in_transit\x20ENTRY\x20+\x20return_response_days\x20+\x20auto_confirm_days,\x20the\x20parcel-leg\x20grace).\x20RECORD\x20waypoint\x20only\x20(R-M1-11)\x20—\x20the\x20case\x20parks\x20the\x20order\x20and\x20every\x20keeper\x20clock\x20is\x20topologically\x20frozen\x20while\x20it\x20is\x20open.','evidence':[{'file':'order.move','line':0xa1,'pattern':'public\x20fun\x20has_open_dispute'}]},{'id':'E23','class':'exception','name':'Buyer\x20withdraws\x20the\x20claim\x20(BANNED\x20on\x20this\x20product\x20—\x20D2\x20no-withdraw\x20doctrine\x202026-11-10)','actor':'buyer','precondition':['E22'],'onchain':'not_applicable','chainFootprint':{'node':'claim_filed','identity':'order_holder','moneyEffect':'none'},'guardKeyProbe':'withdraw_claim','disclosureProbe':'D2\x20no-withdraw\x20doctrine|reaches\x20a\x20RULING\x20instead|ruling-keyed','commercialSemantics':'D2\x20doctrine\x20(user\x20ruling\x202026-11-10):\x20a\x20FILED\x20claim\x20cannot\x20be\x20withdrawn\x20—\x20it\x20reaches\x20a\x20RULING\x20instead.\x20'+'Every\x20WithdrawClaim\x20machine\x20edge\x20and\x20its\x20withdraw_claim*\x20guard\x20binding\x20were\x20REMOVED\x20from\x20all\x20builtin\x20'+'templates\x20(template\x20v213):\x20the\x20forward\x20exists\x20in\x20the\x20KERNEL\x20(order-holder\x20identity-only,\x20replayable,\x20'+'claimed_by\x20survives,\x20arb_withdraw\x20sweeps\x20only\x20the\x20fee\x20balance,\x20S-27)\x20but\x20NO\x20template\x20route\x20expresses\x20it.\x20'+'The\x20buyer-side\x20escape\x20from\x20a\x20filed\x20claim\x20is\x20E24\x20(buyer-won\x20ruling\x20→\x20ArbRefund)\x20or\x20the\x20dismissed-resume\x20'+'(merchant\x20slot\x201004\x20→\x20ResumeAfterDismissal)\x20—\x20both\x20ruling-keyed\x20by\x20design.\x20DO\x20NOT\x20teach\x20or\x20attempt\x20a\x20'+'withdraw\x20here;\x20a\x20stranded\x20never-rules\x20case\x20is\x20the\x20W5-02\x20advisory\x20residual\x20(ForceSettleExpired\x20clock\x20edge).','evidence':[{'file':'order.move','line':0x79,'pattern':'option::is_none(&self.claimed_by)'}]},{'id':'E24','class':'exception','name':'Arbitration\x20rules\x20for\x20the\x20buyer\x20with\x20the\x20award\x20floor\x20enforced','actor':'arbitrator','precondition':['E22'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'claim_filed','identity':'permission_index','moneyEffect':'refund'},'guardKeyProbe':'arb_refund_filed','commercialSemantics':'A\x20buyer-won\x20ruling\x20fires\x20the\x20full-refund\x20rail.\x20FLOWS\x20§2\x20said\x20the\x20existing\x20rails\x20stay\x20\x27unchanged\x27\x20—\x20that\x20strands\x20a\x20parked\x20case\x20(the\x20delivered/return_in_transit\x20originals\x20are\x20topologically\x20dead\x20from\x20the\x20waypoint),\x20so\x20the\x20PARKED-PATH\x20twin\x20(claim_filed\x20->\x20closed_cancel,\x20arb_refund_filed,\x20refund-rail\x20slot\x201001)\x20was\x20assembled\x20stage2\x20#28;\x20the\x20dual-prev\x20originals\x20remain\x20as\x20keeper-down\x20fallback\x20(KTT3).\x20arb.indemnity.amount\x20must\x20EXCEED\x20arb_indemnity_floor_bps\x20(3000)\x20—\x20a\x20token\x20award\x20cannot\x20unlock\x20the\x20rail\x20(F-54,\x20tbp\x20live\x20precedent).','evidence':[{'file':'arb.move','line':0x15,'pattern':'MAX_INDEMNITY_MULTIPLE'},{'file':'arb.move','line':0x21d,'pattern':'indemnity_cap_base'},{'file':'arb.move','line':0x1e6,'pattern':'frozen\x20at\x20BUY\x20time'}]},{'id':'E25','class':'exception','name':'Arb\x20silence\x20auto-accepts\x20the\x20claim\x20(protocol\x20finality)','actor':'arbitrator','precondition':['E22'],'onchain':'not_applicable','commercialSemantics':'The\x20real\x2030-day\x20arbitration\x20silence\x20rule\x20is\x20protocol-level\x20arb-object\x20finality\x20(WITHDRAW_DURATION_TIME),\x20not\x20a\x20machine\x20edge\x20—\x20excluded\x20like\x20the\x20shansong\x20pilot\x27s\x20R6.','evidence':[{'file':'arb.move','line':0x10,'pattern':'WITHDRAW_DURATION_TIME'}]},{'id':'E26','class':'exception','name':'Review\x20appeal\x20or\x20removal\x20request','actor':'buyer','precondition':['M9'],'onchain':'disclosure_only','disclosureProbe':'review[^\x22]{0,30}(appeal|remove|takedown)','commercialSemantics':'Real\x20product\x20runs\x20review\x20governance\x20(appeal/removal).\x20The\x20template\x20reviews\x20are\x20write-once\x20reputation\x20records\x20and\x20the\x20corpus\x20discloses\x20no\x20governance\x20—\x20standing\x20FIX-DISCLOSURE\x20gap.','evidence':[]},{'id':'E27','class':'exception','name':'Listing\x20delisted\x20/\x20shop\x20removed\x20mid-presale','actor':'keeper','precondition':['M4'],'onchain':'disclosure_only','disclosureProbe':'(delist|deactivat|suspend)[^\x22]{0,20}(listing|shop|store)','commercialSemantics':'Account-level\x20governance\x20(delist\x20the\x20presale,\x20close\x20the\x20shop)\x20has\x20no\x20per-order\x20chain\x20surface\x20and\x20no\x20corpus\x20disclosure;\x20the\x20deposit/balance\x20rails\x20above\x20are\x20the\x20only\x20fund-safety\x20story.','evidence':[]},{'id':'E28','class':'exception','name':'Deposit-expansion\x20/\x20coupon\x20stacking\x20miscalculation','actor':'merchant','precondition':['M3'],'onchain':'unresolvable','unresolvableRef':'S7','disclosureProbe':'floor\x20coupons\x20at\x20issuance|zeroing\x20coupon|DISCOUNT\x20FLOOR','commercialSemantics':'Expansion\x20coefficients\x20and\x20stacked\x20coupons\x20have\x20no\x20pricing\x20oracle\x20(S7);\x20the\x20corpus\x20discloses\x20the\x20DISCOUNT\x20FLOOR\x20(a\x20zeroing\x20coupon\x20would\x20empty\x20the\x20deposit\x20escrow\x20while\x20the\x20fund\x20gate\x20still\x20expects\x20full_price\x20—\x20floor\x20coupons\x20at\x20issuance).','evidence':[]},{'id':'E29','class':'exception','name':'Refund\x20judged\x20but\x20not\x20yet\x20in\x20the\x20bank\x20account','actor':'buyer','precondition':['E14'],'onchain':'disclosure_only','disclosureProbe':'terminal\x20RECORD\x20waypoint|money\x20authority\x20stays\x20the\x20allocation\x20rail','commercialSemantics':'Chain-side\x20the\x20refund\x20fact\x20is\x20final\x20at\x20the\x20rail;\x20the\x20refunded\x20node\x20is\x20the\x20queryable\x20receipt\x20(bank-side\x20timing\x20off-chain)\x20—\x20disclosed\x20via\x20the\x20after-sales\x20track\x20note.','evidence':[]},{'id':'E30','class':'exception','name':'External\x20chargeback\x20/\x20card-network\x20dispute','actor':'buyer','precondition':['M3'],'onchain':'unresolvable','unresolvableRef':'S9','disclosureProbe':'chargeback|credit\x20card\x20dispute','commercialSemantics':'No\x20chargeback\x20primitive\x20(S9)\x20and\x20no\x20corpus\x20disclosure\x20—\x20a\x20true\x20gap\x20for\x20the\x20double-11\x20complaint\x20economy\x20(heitu\x20complaint\x20leads).','evidence':[]},{'id':'E31','class':'exception','name':'Arb\x20dismisses\x20the\x20claim\x20and\x20the\x20order\x20resumes','actor':'arbitrator','precondition':['E22'],'onchain':'expressible','chainFootprint':{'node':'delivered','forward':'ResumeAfterDismissal','prev':'claim_filed','identity':'permission_index','moneyEffect':'none'},'guardKeyProbe':'arb_dismissed_resume','commercialSemantics':'Assembled\x20stage2\x20#28:\x20a\x20merchant-favour\x20(zero-indemnity)\x20ruling\x20resumes\x20the\x20order\x20(claim_filed\x20->\x20delivered\x20/\x20return_in_transit,\x20money-free,\x20merchant\x20ruling-execution\x20slot\x201004\x20—\x20the\x20N12\x20bucket,\x20W5-14\x20keeps\x201001\x20for\x20refunds);\x20the\x20fresh\x20history\x20entry\x20re-arms\x20the\x20settle/review/return\x20clocks\x20(find=last),\x20and\x20the\x20dismissed\x20buyer\x20keeps\x20every\x20exit\x20the\x20resumed\x20node\x20already\x20had.','evidence':[]},{'id':'R1','class':'remedy','name':'Statutory\x20double\x20return\x20(deposit\x20+\x20equal\x20compensation)','actor':'arbitrator','precondition':['E22'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','forward':'ArbRefund','prev':'delivered','identity':'permission_index','moneyEffect':'refund'},'commercialSemantics':'Civil\x20Code\x20art.587\x27s\x20double\x20return\x20decomposes\x20into\x20the\x20ruling-driven\x20refund\x20rail\x20(deposit\x20portion)\x20plus\x20the\x20compensation\x20claim\x20to\x20order.owner\x20(equal\x20portion,\x20<=\x203x\x20cap)\x20—\x20both\x20expressible.','evidence':[{'file':'service.move','line':0x24c,'pattern':'public\x20fun\x20compensation_claim'},{'file':'service.move','line':0x265,'pattern':'order::owner(order)'}]},{'id':'R2','class':'remedy','name':'7-day\x20no-reason\x20return\x20vs\x20transit-eating\x20window\x20(anchor\x20doctrine)','actor':'buyer','precondition':['E10'],'onchain':'expressible_with_gap','chainFootprint':{'node':'return_requested','forward':'RequestReturn','prev':'delivered','identity':'order_holder','moneyEffect':'none'},'gapPredicate':{'probe':'anchored\x20on\x20the\x20SHIPPED\x20entry|never\x20delivered|covers\x20carrier\x20transit'},'commercialSemantics':'The\x20statutory\x20window\x20runs\x20from\x20RECEIPT;\x20the\x20template\x20anchors\x20the\x20SHIPPED\x20entry\x20so\x20transit\x20cannot\x20eat\x20the\x20window\x20(F-52)\x20—\x20the\x20divergence\x20is\x20disclosed\x20in\x20the\x20return_window_days\x20input\x20spec\x20(U6\x20report-only\x20conflict).','evidence':[]},{'id':'R3','class':'remedy','name':'Compensation\x20payout,\x20owner-bound','actor':'arbitrator','precondition':['E22'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','moneyEffect':'refund'},'commercialSemantics':'Compensation\x20is\x20paid\x20by\x20the\x20service\x20layer\x20to\x20the\x20order\x20owner\x20—\x20always\x20the\x20buyer,\x20structurally\x20unbribeable.','evidence':[{'file':'service.move','line':0x24c,'pattern':'public\x20fun\x20compensation_claim'},{'file':'service.move','line':0x265,'pattern':'order::owner(order)'}]},{'id':'R4','class':'remedy','name':'Indemnity\x20capped\x20at\x203x\x20the\x20deposit\x20escrow','actor':'arbitrator','precondition':['R3'],'onchain':'expressible','chainFootprint':{'node':'closed_cancel','moneyEffect':'refund'},'commercialSemantics':'MAX_INDEMNITY_MULTIPLE\x20(3x)\x20bounds\x20every\x20award\x20with\x20the\x20cap\x20base\x20(Order.amount)\x20frozen\x20at\x20BUY\x20time\x20—\x20for\x20a\x20presale\x20that\x20is\x20the\x20DEPOSIT\x20only,\x20so\x20the\x20equal-compensation\x20leg\x20must\x20stay\x20within\x203x\x20deposit\x20(UP9-ARBCAP).','evidence':[{'file':'arb.move','line':0x15,'pattern':'MAX_INDEMNITY_MULTIPLE'},{'file':'arb.move','line':0x21d,'pattern':'indemnity_cap_base'}]},{'id':'R5','class':'remedy','name':'Statutory\x20punitive\x20damages\x20above\x20the\x20cap','actor':'arbitrator','precondition':['R4'],'onchain':'unresolvable','unresolvableRef':'S7','disclosureProbe':'punitive|triple\x20damages|500','commercialSemantics':'Punitive\x20floors\x20(3x\x20price,\x20min\x20500\x20CNY)\x20cannot\x20ride\x20the\x203x\x20deposit-escrow\x20cap\x20and\x20are\x20undisclosed\x20—\x20structurally\x20rare\x20on\x20low-AOV\x20presale\x20items,\x20but\x20a\x20true\x20gap.','evidence':[]},{'id':'P1','class':'post','name':'Settlement\x20allocation\x20to\x20the\x20seller\x20(whole\x20pool\x20intact)','actor':'keeper','precondition':['M10'],'onchain':'expressible','chainFootprint':{'node':'completed','moneyEffect':'release'},'commercialSemantics':'The\x20keeper\x27s\x20release\x20sweep\x20pays\x20the\x20seller\x20share\x20above\x20the\x20allocator\x20threshold;\x20settlement\x20after\x20the\x20after-sales\x20topology\x20means\x20the\x20pool\x20is\x20always\x20intact\x20on\x20that\x20rail.','evidence':[{'file':'allocation.move','line':0x1f6,'pattern':'self.allocators.threshold'},{'file':'allocation.move','line':0x22c,'pattern':'alloc.fix'}]},{'id':'P2','class':'post','name':'Review-reward\x20style\x20claims\x20(signer-bound\x20where\x20mounted)','actor':'buyer','precondition':['M9'],'onchain':'expressible','chainFootprint':{'node':'reviewed','moneyEffect':'reward'},'commercialSemantics':'Any\x20reward\x20leg\x20mounted\x20on\x20the\x20reviewed\x20waypoint\x20pays\x20signer-bound\x20(recipient\x20==\x20sender)\x20—\x20the\x20general\x20reward\x20primitive,\x20used\x20sparingly\x20on\x20this\x20template.','evidence':[{'file':'reward.move','line':0x11b,'pattern':'recipient\x20==\x20tx_context::sender'}]},{'id':'P3','class':'post','name':'Keeper\x20duty\x20schedule\x20(windows,\x20deadlines,\x20water\x20levels)','actor':'keeper','precondition':['P1'],'onchain':'disclosure_only','disclosureProbe':'keeper|scheduled|duty','commercialSemantics':'The\x20whole\x20presale\x20pacing\x20(balance-window\x20open,\x20balance-deadline\x20exit,\x20auto-confirm,\x20return-receipt\x20timeout,\x20settlement\x20sweep,\x2048h\x20arb\x20absence)\x20is\x20a\x20declared\x20keeper\x20duty\x20roster\x20—\x20disclosed,\x20not\x20autonomous.','evidence':[]},{'id':'P4','class':'post','name':'Repurchase\x20into\x20the\x20next\x20presale\x20round','actor':'buyer','precondition':['P1'],'onchain':'not_applicable','commercialSemantics':'Next-round\x20repurchase\x20is\x20a\x20new\x20order;\x20no\x20cross-order\x20chain\x20footprint\x20exists.','evidence':[]},{'id':'P5','class':'post','name':'Append-only\x20dispute\x20trail\x20audit','actor':'keeper','precondition':['E22'],'onchain':'expressible','chainFootprint':{'node':'completed','moneyEffect':'none'},'commercialSemantics':'The\x20dispute\x20vector\x20is\x20append-only\x20(records\x20are\x20added,\x20never\x20removed);\x20the\x20settlement\x20gate\x20reads\x20it\x20state-frozen\x20at\x20the\x20settle\x20terminal\x20—\x20the\x20last\x20append\x20anchors\x20the\x20audit.','evidence':[{'file':'order.move','line':0x94,'pattern':'vector::push_back'}]}],'invariants':[{'id':'INV-TB-1','statement':'Statutory\x20deposit\x20cap:\x20the\x20deposit\x20must\x20not\x20exceed\x2020%\x20of\x20the\x20main\x20contract\x20value\x20(Civil\x20Code\x20art.586;\x20Tmall\x20tier\x20rules\x2010%-20%).\x20The\x20template\x20expresses\x20deposit_amount\x20as\x20a\x20free\x20STRING\x20directive\x20—\x20no\x20ratio\x20check\x20edge\x20exists;\x20only\x20the\x20fund\x20gate\x20(balance\x20>=\x20full_price)\x20is\x20on-chain.','jurisdiction':'PRC\x20Civil\x20Code\x20art.586\x20(deposit\x20<=\x2020%\x20of\x20contract\x20value);\x20Tmall\x20presale\x20administration\x20rules\x20(>=\x2010\x20CNY,\x20multiples\x20of\x2010,\x20tiered\x20caps).','chainConflict':'No\x20fee_param\x20pair\x20(deposit_amount,\x20full_price)\x20relation\x20is\x20checkable\x20by\x20any\x20guard;\x20the\x20cap\x20lives\x20in\x20listing-time\x20review\x20only.'},{'id':'INV-TB-2','statement':'The\x20double-return\x20promise\x20(art.587)\x20is\x20backed\x20ONLY\x20by\x20the\x20arbitration\x20rail\x20plus\x20a\x20non-zero\x20award\x20floor:\x20ArbRefund\x20must\x20exist\x20and\x20arb_indemnity_floor_bps\x20must\x20stay\x20non-zero,\x20or\x20the\x20promise\x20is\x20unbacked\x20(a\x20token\x20award\x20could\x20unlock\x20the\x20rail).','jurisdiction':'PRC\x20Civil\x20Code\x20art.587\x20(deposit\x20back\x20+\x20equal\x20compensation\x20on\x20promisor\x20fault);\x20Tmall\x20presale\x20rule\x205.2/5.4.','chainConflict':'Standing\x20check:\x20removing\x20the\x20ruling\x20rail\x20or\x20zeroing\x20the\x20floor\x20re-fires\x20this\x20invariant.\x20The\x20cap\x20side\x20(3x\x20deposit\x20escrow)\x20stays\x20a\x20text-only\x20bound.','violation':{'requiresFeeParamNonZero':'arb_indemnity_floor_bps','whileMissingForward':'ArbRefund'},'evidence':[{'file':'arb.move','line':0x15,'pattern':'MAX_INDEMNITY_MULTIPLE'},{'file':'arb.move','line':0x1e6,'pattern':'frozen\x20at\x20BUY\x20time'}]},{'id':'INV-TB-3','statement':'The\x20statutory\x20return\x20window\x20runs\x20from\x20RECEIPT\x20of\x20goods\x20(Consumer\x20Protection\x20Law\x20art.25);\x20the\x20template\x20anchors\x20the\x20after-sales\x20window\x20on\x20the\x20SHIPPED\x20entry\x20(F-52\x20deadlock\x20doctrine)\x20—\x20a\x20deliberate\x20divergence\x20that\x20must\x20stay\x20disclosed,\x20never\x20silently\x20re-anchored.','jurisdiction':'PRC\x20Consumer\x20Protection\x20Law\x20art.25\x20(7-day\x20no-reason\x20return\x20from\x20receipt);\x20Tmall\x207-day\x20return\x20rules.','chainConflict':'A\x20delivered-anchored\x20history\x20query\x20on\x20an\x20in-transit\x20presale\x20order\x20reads\x20a\x20row\x20the\x20order\x20never\x20wrote\x20(F-52\x20live\x20deadlock)\x20—\x20the\x20shipped-anchor\x20is\x20the\x20cure,\x20so\x20the\x20conflict\x20is\x20report-only\x20(U6).'},{'id':'INV-TB-4','statement':'Late-ship\x20/\x20late-delivery\x20compensation\x20(Tmall\x20delayed-dispatch\x20rules)\x20has\x20no\x20ship-by\x20deadline\x20primitive\x20and\x20no\x20disclosed\x20compensation\x20regime\x20—\x20only\x20the\x20compensation-fund\x20channel\x20(>=\x203x\x20cap,\x20water-tier\x20keeper\x20watch)\x20exists\x20as\x20the\x20payout\x20backstop.','jurisdiction':'Tmall\x20delayed-dispatch\x20compensation\x20rules;\x20FTC\x20Mail\x20Order\x20Rule\x2016\x20CFR\x20435\x20(US\x20reference\x20frame).','chainConflict':'No\x20deadline\x20primitive\x20anchors\x20Ship\x20to\x20a\x20calendar\x20clock\x20(S7);\x20the\x20fund\x20water-tier\x20duty\x20is\x20disclosure-level\x20only.','evidence':[{'file':'allocation.move','line':0x1f6,'pattern':'self.allocators.threshold'}]},{'id':'INV-TB-5','statement':'Claim-waypoint\x20exit\x20totality\x20(stage2\x20#28):\x20an\x20order\x20parked\x20at\x20claim_filed\x20has\x20every\x20keeper\x20clock\x20topologically\x20frozen,\x20so\x20the\x20waypoint\x20must\x20keep\x20ALL\x20its\x20sanctioned\x20exits\x20—\x20withdraw\x20(identity-only,\x20ZERO\x20money,\x20never\x20opens\x20the\x20full-refund\x20rail\x20ktt5\x20F-03),\x20dismissed-resume\x20(merchant\x20ruling-execution\x20slot\x201004,\x20the\x20N12\x20bucket;\x201001\x20stays\x20the\x20refund\x20rail\x20W5-14),\x20and\x20the\x20buyer-won\x20parked-path\x20twin\x20arb_refund_filed\x20(without\x20it\x20a\x20won\x20ruling\x20strands\x20a\x20parked\x20case).\x20Removing\x20any\x20exit\x20re-creates\x20the\x20algr9\x20brick:\x20a\x20case\x20that\x20can\x20be\x20filed\x20but\x20can\x20never\x20leave.','jurisdiction':'Machine-soundness\x20invariant\x20(TPL-09\x20family,\x20#22/#23/#24/#27/#28\x20precedent).','chainConflict':'Standing\x20check:\x20deleting\x20any\x20of\x20the\x20three\x20sanctioned\x20exits\x20(or\x20re-pointing\x20resume\x20at\x201001/1002)\x20re-fires\x20this\x20invariant.\x20Residual\x20S-27\x20stands\x20disclosed:\x20withdraw\x20is\x20identity-only\x20(replay\x20protection\x20structural,\x20claimed_by\x20survives,\x20arb_withdraw\x20sweeps\x20only\x20the\x20fee).','evidence':[{'file':'order.move','line':0xa1,'pattern':'public\x20fun\x20has_open_dispute'}]}]};
|