← Help · Engineering contracts
Meguro Receipt Schema
Meguro receipts are public JSON artifacts for a finished run. The current schema version is "1".
Top-Level Shape
| Field | Type | Required | Notes |
|---|---|---|---|
schemaVersion | string | yes | Current value: "1". Consumers should reject unknown major versions. |
attempt | object | yes | The run attempt: ids, tenant-safe store ids, status, clock, agent metadata, and report paths. |
events.actions | array | yes | State-changing actions Meguro recorded for the run. Rows include additive ledger identity fields when the action is joinable to a ledger entry. |
events.calls | array | yes | Admin GraphQL calls Meguro recorded for the run. Calls may include document, variables, targetGid, receiptEvidence, userErrors, errors, rejected, rejectionReason, requestedApiVersion, and sequencing fields. |
clock | object | yes | Human-readable and machine-readable simulated-time summary for the run. |
recordedAt | string | no | ISO timestamp when the run was recorded, when available. |
webhooks | object | yes | Webhook delivery summary for event-loop evidence. Empty/zero values mean not exercised. |
graphqlCost | object | yes | Cost and throttle summary derived from recorded Admin GraphQL calls. |
receiptEvidence | object | yes | Evidence summary for webhooks, throttling, assertions, and limitations. |
catalogSourceEvidence | object | no | Public-safe catalog source metadata when the run used a Shopify catalog snapshot or saved slice. |
report | object | yes | Compatibility verdict, outcome summary, manifest, markdown, and mirrored evidence fields used by the console. |
Call Evidence
Each events.calls[] row is bounded and tenant-safe. New optional fields can be added, but existing fields should not change meaning within schema version "1".
| Field | Type | Required | Notes |
|---|---|---|---|
seq | number | yes | Monotonic sequence within the store or attempt. |
day | number | no | Simulated day when Meguro observed the call. |
plane | string | yes | Usually admin. |
operation | string | yes | GraphQL operation type or facade operation. |
operationName | string | no | GraphQL operation name when known. |
document | string | no | Truncated GraphQL document, capped server-side. |
variables | object | no | Sanitized variables. Secret-shaped keys are redacted before storage. |
status | number | yes | HTTP-style status. |
userErrors | array | no | Shopify-shaped user errors. Non-empty arrays count as blocked writes in the gate. |
errors | array | no | Top-level GraphQL errors. Non-empty arrays count as rejected calls in receipts and gates. |
rejected | boolean | no | Canonical rejection marker set when Meguro knows the call was blocked or failed. |
rejectionReason | string | no | Human-readable reason for a rejected call, usually naming the GraphQL field or wire endpoint. |
requestedApiVersion | string | no | Admin API version segment the agent requested when it differs from Meguro's modeled version. |
actionCount | number | yes | Number of accepted store-changing actions caused by this call. |
entryId | string | no | Ledger entry id for single-action mutation calls, formatted as runId:sequence. Multi-action calls use entryIds. |
entryIds | array | no | Ledger entry ids when one call produced more than one ledgered action. |
ledgerStatus | string | no | Ledger status for the action caused by this call: intended, applied, observed, failed, or skipped. Calls keep their existing numeric HTTP-style status. |
ledgerStatuses | array | no | Ledger statuses when one call produced multiple ledgered actions. |
actor | string | no | Ledger actor for the action caused by this call: external for agent/customer writes, world for Meguro physics. |
actorId | string | no | Stable external actor id when available. |
intentId | string | no | Stable intended-action identity for grouping retries of the same action target across distinct ledger entryIds. Multi-action calls use intentIds. |
intentIds | array | no | Intended-action identities when one call produced multiple ledgered actions. |
resourceIds | array | no | Resulting Admin object ids when Meguro can derive them, such as gid://shopify/Refund/... for accepted refund writes. |
receiptEvidence.targetTitle | string | no | Human-readable order, return, product, or variant title when derivable. |
receiptEvidence.amountCents | number | no | Money amount in cents when derivable. |
receiptEvidence.actionSummaries | array | no | Short human-readable action summaries. |
receiptEvidence.stateDelta | array | no | Up to six before/after fields touched by the write. |
Action Evidence
Each events.actions[] row keeps its existing day, seq, actorId, and action shape. Schema version "1" also permits additive ledger identity fields:
| Field | Type | Required | Notes |
|---|---|---|---|
entryId | string | no | Stable ledger entry id, formatted as runId:sequence. Distinct retries have distinct entryIds. |
status | string | no | Ledger status: intended, applied, observed, failed, or skipped. |
actor | string | no | Ledger actor: external for agent/customer writes, world for Meguro physics. Consumers auditing only customer/agent writes should filter to actor: "external". |
actorId | string or null | no | Stable external actor id when available; null for world entries. |
intentId | string | no | Stable intended-action identity for grouping retries of the same action target across distinct entryIds. |
resourceIds | array | no | Resulting Admin object ids when Meguro can derive them. Refund writes include the modeled Admin Refund id so receipt rows can be joined to facade-visible refund objects. |
Compatibility Rule
For schema version "1", consumers should treat missing optional evidence as unknown, not false. A receipt can still be valid when entity resolution is partial; rows simply omit title, amount, state-delta, ledger identity, or resource-id clauses rather than inventing values.