← 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

FieldTypeRequiredNotes
schemaVersionstringyesCurrent value: "1". Consumers should reject unknown major versions.
attemptobjectyesThe run attempt: ids, tenant-safe store ids, status, clock, agent metadata, and report paths.
events.actionsarrayyesState-changing actions Meguro recorded for the run. Rows include additive ledger identity fields when the action is joinable to a ledger entry.
events.callsarrayyesAdmin GraphQL calls Meguro recorded for the run. Calls may include document, variables, targetGid, receiptEvidence, userErrors, errors, rejected, rejectionReason, requestedApiVersion, and sequencing fields.
clockobjectyesHuman-readable and machine-readable simulated-time summary for the run.
recordedAtstringnoISO timestamp when the run was recorded, when available.
webhooksobjectyesWebhook delivery summary for event-loop evidence. Empty/zero values mean not exercised.
graphqlCostobjectyesCost and throttle summary derived from recorded Admin GraphQL calls.
receiptEvidenceobjectyesEvidence summary for webhooks, throttling, assertions, and limitations.
catalogSourceEvidenceobjectnoPublic-safe catalog source metadata when the run used a Shopify catalog snapshot or saved slice.
reportobjectyesCompatibility 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".

FieldTypeRequiredNotes
seqnumberyesMonotonic sequence within the store or attempt.
daynumbernoSimulated day when Meguro observed the call.
planestringyesUsually admin.
operationstringyesGraphQL operation type or facade operation.
operationNamestringnoGraphQL operation name when known.
documentstringnoTruncated GraphQL document, capped server-side.
variablesobjectnoSanitized variables. Secret-shaped keys are redacted before storage.
statusnumberyesHTTP-style status.
userErrorsarraynoShopify-shaped user errors. Non-empty arrays count as blocked writes in the gate.
errorsarraynoTop-level GraphQL errors. Non-empty arrays count as rejected calls in receipts and gates.
rejectedbooleannoCanonical rejection marker set when Meguro knows the call was blocked or failed.
rejectionReasonstringnoHuman-readable reason for a rejected call, usually naming the GraphQL field or wire endpoint.
requestedApiVersionstringnoAdmin API version segment the agent requested when it differs from Meguro's modeled version.
actionCountnumberyesNumber of accepted store-changing actions caused by this call.
entryIdstringnoLedger entry id for single-action mutation calls, formatted as runId:sequence. Multi-action calls use entryIds.
entryIdsarraynoLedger entry ids when one call produced more than one ledgered action.
ledgerStatusstringnoLedger status for the action caused by this call: intended, applied, observed, failed, or skipped. Calls keep their existing numeric HTTP-style status.
ledgerStatusesarraynoLedger statuses when one call produced multiple ledgered actions.
actorstringnoLedger actor for the action caused by this call: external for agent/customer writes, world for Meguro physics.
actorIdstringnoStable external actor id when available.
intentIdstringnoStable intended-action identity for grouping retries of the same action target across distinct ledger entryIds. Multi-action calls use intentIds.
intentIdsarraynoIntended-action identities when one call produced multiple ledgered actions.
resourceIdsarraynoResulting Admin object ids when Meguro can derive them, such as gid://shopify/Refund/... for accepted refund writes.
receiptEvidence.targetTitlestringnoHuman-readable order, return, product, or variant title when derivable.
receiptEvidence.amountCentsnumbernoMoney amount in cents when derivable.
receiptEvidence.actionSummariesarraynoShort human-readable action summaries.
receiptEvidence.stateDeltaarraynoUp 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:

FieldTypeRequiredNotes
entryIdstringnoStable ledger entry id, formatted as runId:sequence. Distinct retries have distinct entryIds.
statusstringnoLedger status: intended, applied, observed, failed, or skipped.
actorstringnoLedger actor: external for agent/customer writes, world for Meguro physics. Consumers auditing only customer/agent writes should filter to actor: "external".
actorIdstring or nullnoStable external actor id when available; null for world entries.
intentIdstringnoStable intended-action identity for grouping retries of the same action target across distinct entryIds.
resourceIdsarraynoResulting 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.