{"ok":true,"data":{"orderSchema":{"knife":{"total":98,"current":98,"remaining":0},"generatedAt":"2026-07-21T21:06:17.811Z","domain":"global_order_system","product":"Matrix Order","description":"Global modular order system with a custom-only order kind. Appointments, consumption requests, votes, quotes, internal requests, commercial candidates, and paid self-serve form assessments are represented as custom categories instead of separate commercial/internal order kinds.","orderKinds":[{"id":"custom_order","label":"Custom order","description":"Configurable merchant-owned orders such as appointments, quote requests, voting-style services, intake forms, commercial candidates, internal requests, paid form assessments, and custom service calendars.","currentStatus":"active-default","futureApis":["/api/projects/:projectId/bookings","/api/custom-orders","/api/integrations/im-core/order","/api/ops/orders?orderKind=custom_order"]}],"customCategories":[{"id":"appointment","label":"Appointment","description":"Calendar-backed custom booking, service slot, consultation, demo, or onboarding session."},{"id":"consumption","label":"Consumption","description":"Priced custom service or package request without opening a payment/order transaction module."},{"id":"quote_request","label":"Quote request","description":"Custom inquiry that needs merchant review before service scope or amount is confirmed."},{"id":"voting","label":"Voting","description":"Custom poll, preference, RSVP, or group decision request from an IM or community surface."},{"id":"internal_request","label":"Internal request","description":"Staff or operations request represented as a custom order category, not a separate internal order kind."},{"id":"commercial_candidate","label":"Commercial candidate","description":"Custom order with amount/duration signals that could later move into a finance-approved commerce flow."},{"id":"support","label":"Support","description":"Customer support, handoff, or follow-up request that should remain in the custom workflow."},{"id":"assessment","label":"Assessment","description":"Paid self-serve form / quiz / practice session delivered without a calendar slot (心理测试、驾照刷题、星座测试等)."}],"fulfillmentTypes":[{"id":"appointment","label":"Appointment","description":"Calendar-backed booking with slot and review queue."},{"id":"form","label":"Self-serve form","description":"Digital form / quiz / practice without calendar slot."}],"paymentTimings":[{"id":"access_gate","label":"Pay before answer","description":"Checkout required before answering (刷题默认)."},{"id":"result_gate","label":"Pay to unlock result","description":"Answers may be drafted free; full result unlocks after payment (测评报告)."}],"formBilling":{"fulfillmentTypes":[{"id":"appointment","label":"Appointment","description":"Calendar-backed booking with slot and review queue."},{"id":"form","label":"Self-serve form","description":"Digital form / quiz / practice without calendar slot."}],"paymentTimings":[{"id":"access_gate","label":"Pay before answer","description":"Checkout required before answering (刷题默认)."},{"id":"result_gate","label":"Pay to unlock result","description":"Answers may be drafted free; full result unlocks after payment (测评报告)."}],"formDefinition":{"maxQuestions":30,"questionTypes":["single","multi","text"],"scoringModes":["none","sum"],"entitlementKinds":["one_shot","n_sessions","t_days"]},"assessmentCategory":{"id":"assessment","label":"Assessment","description":"Paid self-serve form / quiz / practice session delivered without a calendar slot (心理测试、驾照刷题、星座测试等)."},"routes":{"publicForm":"/api/prices/:id/form","formCheckout":"/api/form-orders/:id/checkout","formAnswers":"/api/form-orders/:id/answers","formResult":"/api/form-orders/:id/result"},"hardRules":["intakeFields remain appointment-attached questionnaires and are not sellable form products.","Webhook is the payment authority; success_url only polls order status.","Create internal form order before Stripe Checkout; never trust client amount."]},"currentImplementation":{"defaultOrderKind":"custom_order","orderMode":"custom-only","customCategoryField":"customCategory","fulfillmentTypeField":"fulfillmentType","paymentTimingField":"paymentTiming","formDefinitionField":"formDefinition","appointmentBookingRoute":"/api/projects/:projectId/bookings","customOrderWrite":"/api/custom-orders","globalAdminView":"/api/ops/orders","imCoreOrderBridge":"/api/integrations/im-core/order","imCoreOrderWrite":"/api/integrations/im-core/order","publicSchema":"/api/orders/schema","merchantAttribution":true,"idempotencyHeader":"Idempotency-Key","writeModel":"custom-order-idempotent-write / lifecycle-callbacks-later","readModel":"admin-global-order-view","formBillingKnife":"FB-1"},"merchantAttributes":["merchantId","merchantName","merchantRole","merchantEmailHash","projectId","projectSlug","projectTitle","projectKind","tenantId","tenantSlug","tenantTitle","tenantStatus","publicUrl","productSurface"],"permissions":[{"role":"admin","scope":"global","canViewAllMerchants":true,"route":"/api/ops/orders"},{"role":"owner","scope":"global-compat","canViewAllMerchants":true,"route":"/api/ops/orders"},{"role":"member","scope":"merchant-owned","canViewAllMerchants":false,"route":"/api/projects/:projectId/bookings"}],"guardrails":["Global order admin view remains owner/admin-only and read-focused; write requests go through /api/custom-orders or the IM Core bridge.","Custom order writes require Idempotency-Key so IM/OpenSDK retries do not create duplicate bookings or double-occupy a calendar slot.","Customer phone, raw email, customer token, private link hash, raw notes, intake answers, and provider payloads are not returned in global order rows.","Merchant email is represented as SHA-256 hash; merchant/project/tenant IDs remain available for internal reconciliation.","Commercial-like, internal, voting, and quote workflows remain custom categories until separate finance-approved modules are explicitly opened.","The im-core integration contract uses custom_order plus customCategory so IM mini apps can call one order surface.","No payment, card collection, checkout, or transfer execution is performed by this custom order write model."],"references":["Shopify Admin Orders: admin-scoped order list with merchant/store context.","Stripe reporting and PaymentIntents: payment lifecycles stay outside this custom-order read model.","Microsoft Bookings appointments: service booking records can still be represented as order-like operational rows.","Google Calendar Appointment Schedules: appointment slots and duration are scheduling dimensions, not payment execution."]}}}