{"data":{"schema":"cambridgetcg.card-data-contract/1","reviewed_at":"2026-09-29","documentation":"/standards/card-data","identity":{"version":"cambridge.sku.v1","form":"<game>-<set>-<number>-<lang>[-<variant>]","scope":"syntax_only","game":"Registered game code from @cambridge-tcg/sku; registry presence is not catalog availability.","set_and_number":"Lowercase alphanumeric segments; leading zeros are significant.","language":"Two-letter shape; ISO membership and printing language are not verified.","variant":"Optional hyphen-joined lowercase alphanumeric tokens; order is preserved.","normalization":"Recognized legacy prefixes, language aliases and swapped number/language forms may yield a candidate. Stored identifiers remain unchanged.","example":{"raw_sku":"PK-SV2A-011-JP-V4K5","canonical_sku":"pkm-sv2a-011-ja-v4k5","game":"pkm","set":"sv2a","number":"011","lang":"ja","variant":"v4k5","scope":"syntax_only"},"example_scope":"Normalization example only; no catalog lookup or source-product mapping is asserted.","validation":{"method":"POST","path":"/api/v1/identifiers/validate","documentation":"/standards/validator"},"compatibility":"Legacy sku fields and lookup URLs remain unchanged. Search matches and card composition add identity with raw and normalized values."},"images":{"english_base_reference":{"version":"cambridge.image-reference.v1","relationship":"reference","scope":"syntax_only","reason":"english_base_reference","games":["op","dbf"],"meaning":"A reference to the selected English base-image row. Requested and depicted raw keys are preserved alongside their normalized syntax candidates.","limitations":"No exact-printing, source-image, authenticity or publication-rights verification. Matching canonical keys still produce a reference. Only the recorded One Piece and Fusion World English-base mapping policy is supported.","validation":"createImageReference checks full SKU syntax, supported game and the depicted English base key. JSON Schema checks structural shape only; it does not enforce those cross-field relationships.","status":"implemented","example":{"requested_sku":"OP-OP01-001-JP-V11DZ","requested_canonical_sku":"op-op01-001-ja-v11dz","depicted_sku":"OP-OP01-001-EN","depicted_canonical_sku":"op-op01-001-en","relationship":"reference","scope":"syntax_only","reason":"english_base_reference"},"example_scope":"Illustrative syntax relationship only; no image row, catalog record or provider was queried.","representation":"Eligible English reference images carry image_url, image_attribution and image_reference together in market and universal-card responses. Universal sparse density omits all three fields. A retained catalog fallback has no English-reference claim and leaves image_reference null. A same-language official image travels separately in image_same_language.","missing":"A null reference means this projection establishes no eligible English base-image relationship; it does not prove that card art does not exist."},"practice_card_number_reference":{"version":"cambridge.card-number-image-reference.v1","games":["op"],"relationship":"reference","scope":"syntax_only","reason":"english_card_number_reference","meaning":"An English image row associated by game, set and collector number with a One Piece practice request. Raw card number and depicted SKU are preserved; the depicted key may retain a pN parallel or rN reprint suffix.","limitations":"The request does not identify a printing or language. No exact-printing, source-image, illustrator, authenticity or publication-rights verification is performed. A reprint suffix is not a base-print claim.","validation":"The resolver checks complete card-number and SKU syntax, One Piece game, English depicted language and matching set/number. JSON Schema checks structural shape only; it does not enforce those cross-field relationships.","status":"implemented","example":{"requested_game":"op","requested_card_number":"ST01-001","requested_canonical_card_number":"st01-001","depicted_sku":"OP-ST01-001-EN-P1","depicted_canonical_sku":"op-st01-001-en-p1","relationship":"reference","scope":"syntax_only","reason":"english_card_number_reference"},"example_scope":"Illustrative card-number request and selected English parallel key; no image row or provider was queried.","representation":"Starter reads use image_url, image_attribution and image_reference. Game-ready cards preserve the same values as imageUrl, imageAttribution and imageReference. The encoded practice deck remains complete when catalog/media enrichment is unavailable.","compatibility":"The existing ImageReference schema remains English-base-only. CardNumberImageReference is a separate shape for card-number requests, including the selected reprint or parallel suffix; it does not synthesize a requested printing SKU."},"same_language_reference":{"version":"cambridge.same-language-image-reference.v1","relationship":"reference","scope":"syntax_only","reason":"same_language_base_reference","games":["op","dbf"],"languages":["ja"],"meaning":"A reference to the selected base-image row in the requested SKU's own language. Requested and depicted raw keys are preserved alongside their normalized syntax candidates.","limitations":"No exact-printing, source-image, authenticity or publication-rights verification. A requested parallel or other variant still depicts the base print. Only the recorded One Piece and Fusion World Japanese base-image policy is supported.","validation":"createSameLanguageImageReference checks full SKU syntax, supported game and language, and the depicted same-language base key. JSON Schema checks structural shape only; it does not enforce those cross-field relationships.","status":"implemented","example":{"requested_sku":"OP-OP01-001-JP-V11DZ","requested_canonical_sku":"op-op01-001-ja-v11dz","depicted_sku":"OP-OP01-001-JA","depicted_canonical_sku":"op-op01-001-ja","language":"ja","relationship":"reference","scope":"syntax_only","reason":"same_language_base_reference"},"example_scope":"Illustrative syntax relationship only; no image row, catalog record or provider was queried.","representation":"The universal card carries a Japanese request's own-language official image as one unit, image_same_language: url, attribution (the Japanese credit line), language and reference, or null; sparse density omits it. Market responses carry image_language and image_same_language_reference beside image_url and image_attribution; the market catalogue gives the Japanese image only to a request with images=same-language. The English image_url, image_attribution and image_reference keep their v1 meaning.","compatibility":"Additive. ImageReference v1 keeps reason english_base_reference; SameLanguageImageReference is a separate shape. OFFICIAL_IMAGES_JA=off withholds every same-language image."},"rights":"Image identity and publication are separate checks. A valid ImageReference, self-hosted URL or attribution does not establish image rights or permission for downstream reuse.","planned_scope":"A complete cross-source ImageRecord, verified printing crosswalk and rights-evidence contract remain planned; this implemented reference shape does not provide them."},"prices":{"legacy_gbp":{"amount_type":"finite number or null","unit":"major","currency":"GBP","missing":"null is not zero; inspect endpoint source and publication status"},"native_observations":{"version":"ctcg.member-prices/v1","amount":"Positive decimal string, native currency major units; never a converted value or minor-unit integer. JPY is whole yen.","zero":"Zero is quarantined for native source observations, not converted to a free price. Generic money may represent zero.","missing":"Missing source prices create no observation; unavailable or withheld data never becomes zero.","identity":"Exact source-product crosswalk only. Unmapped or ambiguous observations keep sku and setCode null. Syntax normalization is not a mapping.","sourceSetKey":"Optional native field: the source's own set key (Cardmarket idExpansion, the set code a CardRush title prints, TCGplayer setId), kept so set crosswalks can be joined. It is evidence, not a mapping, and not part of an observation's identity. Absent or null means the source named no set or the row was stored before the key was kept. The member feed does not serve it.","comparison":"Match currency, metric, granularity, finish, language, condition and time before comparing. Product aggregates are not individual sales.","scope":"cardmarket: EUR source-product aggregates. scryfall: EUR or USD printing values relayed from Cardmarket or TCGplayer. cardrush: JPY printing values. tcgplayer: USD printing values. Currency names the underlying market: EUR Cardmarket, USD TCGplayer, JPY CardRush.","provenance":"sourceUpdatedAt is source time; retrievedAt is retrieval time; pagination asOf is neither. Live retail pages (cardrush, tcgplayer) publish no clock of their own: source time is the instant the page was read, so sourceUpdatedAt equals retrievedAt. Their retrievedAt is at or after 2026-10-28T00:00:00Z, when collection was permitted; nothing read earlier is stored or served.","rights":"Evidence and permittedUses remain source- and operation-specific; this schema grants no publication or reuse rights.","legacy":"Existing *_gbp numeric fields remain GBP major units with their existing null/publication semantics. No mass unit or wire-type conversion.","compatibility":"2026-10-28 added the cardrush and tcgplayer sources, JPY, the cardrush market and the optional native sourceSetKey within v1. Those sources are released for member display only, and member items do not carry sourceSetKey, so member API and download payloads keep their earlier value sets and fields.","amount_type":"positive decimal string","unit":"major","conversion":"none; preserve native source currency and precision","timestamps":"sourceUpdatedAt describes the source; retrievedAt describes retrieval; pagination asOf is not price freshness.","endpoint":"/api/v1/member-prices","access":"account-owned member data key and permitted source/use; not public price publication"},"comparability":"Compare only compatible identity, printing, language, finish, condition, metric, currency and time. Unknown dimensions remain unknown.","rights":"Schema validity, storage, authentication and transformation do not establish publication or reuse rights."},"schemas":{"sku_identity":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://cambridgetcg.com/spec/v1/SkuIdentity.schema.json","title":"SKU identity syntax candidate","description":"Preserves a storage identifier alongside a normalized syntax candidate. No catalog existence, physical printing, source-product mapping or publication permission is implied. Cross-field consistency is checked by skuIdentity(), not this structural schema.","type":"object","additionalProperties":false,"required":["raw_sku","canonical_sku","game","set","number","lang","variant","scope"],"properties":{"raw_sku":{"type":"string","minLength":1,"description":"Unchanged storage or supplied identifier."},"canonical_sku":{"type":"string","pattern":"^(op|pkm|dbf|mtg|ygo|dbs|wei|vng|dmw|bsr|lcg|fab|lgr|swu|sor|alt|rft|rsh|pkp|gen|gcg|una|tst)-[a-z0-9]+-[a-z0-9]+-[a-z]{2}(?:-[a-z0-9]+)*$"},"game":{"type":"string","enum":["op","pkm","dbf","mtg","ygo","dbs","wei","vng","dmw","bsr","lcg","fab","lgr","swu","sor","alt","rft","rsh","pkp","gen","gcg","una","tst"]},"set":{"type":"string","pattern":"^[a-z0-9]+$"},"number":{"type":"string","pattern":"^[a-z0-9]+$","description":"Leading zeros are significant."},"lang":{"type":"string","pattern":"^[a-z]{2}$","description":"Two-letter syntax only; ISO membership is not checked."},"variant":{"type":["string","null"],"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","description":"Opaque token order is preserved."},"scope":{"const":"syntax_only"}}},"image_reference":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://cambridgetcg.com/spec/v1/ImageReference.schema.json","title":"English base image reference","description":"createImageReference checks full SKU syntax, supported game and the depicted English base key. JSON Schema checks structural shape only; it does not enforce those cross-field relationships.","type":"object","additionalProperties":false,"required":["requested_sku","requested_canonical_sku","depicted_sku","depicted_canonical_sku","relationship","scope","reason"],"properties":{"requested_sku":{"type":"string","minLength":1,"description":"Unchanged requested identifier."},"requested_canonical_sku":{"type":"string","pattern":"^(op|pkm|dbf|mtg|ygo|dbs|wei|vng|dmw|bsr|lcg|fab|lgr|swu|sor|alt|rft|rsh|pkp|gen|gcg|una|tst)-[a-z0-9]+-[a-z0-9]+-[a-z]{2}(?:-[a-z0-9]+)*$"},"depicted_sku":{"type":"string","minLength":1,"description":"Unchanged identifier from the selected image row, not a verified physical-printing identity."},"depicted_canonical_sku":{"type":"string","pattern":"^(op|pkm|dbf|mtg|ygo|dbs|wei|vng|dmw|bsr|lcg|fab|lgr|swu|sor|alt|rft|rsh|pkp|gen|gcg|una|tst)-[a-z0-9]+-[a-z0-9]+-[a-z]{2}(?:-[a-z0-9]+)*$"},"relationship":{"const":"reference"},"scope":{"const":"syntax_only"},"reason":{"const":"english_base_reference"}}},"card_number_image_reference":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://cambridgetcg.com/spec/v1/CardNumberImageReference.schema.json","title":"English practice card-number image reference","description":"The resolver checks complete card-number and SKU syntax, One Piece game, English depicted language and matching set/number. JSON Schema checks structural shape only; it does not enforce those cross-field relationships.","type":"object","additionalProperties":false,"required":["requested_game","requested_card_number","requested_canonical_card_number","depicted_sku","depicted_canonical_sku","relationship","scope","reason"],"properties":{"requested_game":{"const":"op"},"requested_card_number":{"type":"string","pattern":"^[A-Za-z0-9]+-[A-Za-z0-9]+$","not":{"pattern":"\\s"},"description":"Unchanged SET-NUMBER request; no printing SKU or language is asserted."},"requested_canonical_card_number":{"type":"string","pattern":"^[a-z0-9]+-[a-z0-9]+$","not":{"pattern":"\\s"},"description":"Lowercase syntax candidate; leading zeros remain significant."},"depicted_sku":{"type":"string","minLength":1,"description":"Unchanged selected image-row identifier, including any recorded parallel or reprint suffix."},"depicted_canonical_sku":{"type":"string","pattern":"^(op|pkm|dbf|mtg|ygo|dbs|wei|vng|dmw|bsr|lcg|fab|lgr|swu|sor|alt|rft|rsh|pkp|gen|gcg|una|tst)-[a-z0-9]+-[a-z0-9]+-[a-z]{2}(?:-[a-z0-9]+)*$"},"relationship":{"const":"reference"},"scope":{"const":"syntax_only"},"reason":{"const":"english_card_number_reference"}}},"same_language_image_reference":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://cambridgetcg.com/spec/v1/SameLanguageImageReference.schema.json","title":"Same-language base image reference","description":"createSameLanguageImageReference checks full SKU syntax, supported game and language, and the depicted same-language base key. JSON Schema checks structural shape only; it does not enforce those cross-field relationships.","type":"object","additionalProperties":false,"required":["requested_sku","requested_canonical_sku","depicted_sku","depicted_canonical_sku","language","relationship","scope","reason"],"properties":{"requested_sku":{"type":"string","minLength":1,"description":"Unchanged requested identifier."},"requested_canonical_sku":{"type":"string","pattern":"^(op|pkm|dbf|mtg|ygo|dbs|wei|vng|dmw|bsr|lcg|fab|lgr|swu|sor|alt|rft|rsh|pkp|gen|gcg|una|tst)-[a-z0-9]+-[a-z0-9]+-[a-z]{2}(?:-[a-z0-9]+)*$"},"depicted_sku":{"type":"string","minLength":1,"description":"Unchanged identifier from the selected image row, not a verified physical-printing identity."},"depicted_canonical_sku":{"type":"string","pattern":"^(op|pkm|dbf|mtg|ygo|dbs|wei|vng|dmw|bsr|lcg|fab|lgr|swu|sor|alt|rft|rsh|pkp|gen|gcg|una|tst)-[a-z0-9]+-[a-z0-9]+-[a-z]{2}(?:-[a-z0-9]+)*$"},"language":{"enum":["ja"],"description":"The language both identifiers name."},"relationship":{"const":"reference"},"scope":{"const":"syntax_only"},"reason":{"const":"same_language_base_reference"}}},"money":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://cambridgetcg.com/spec/v1/Money.schema.json","title":"Money","description":"A nonnegative decimal amount in major units; no conversion, quote, publication permission or settlement precision is implied.","type":"object","additionalProperties":false,"required":["amount","currency","unit"],"properties":{"amount":{"type":"string","pattern":"^\\d{1,12}(?:\\.\\d{1,6})?$"},"currency":{"enum":["GBP","EUR","USD","JPY"]},"unit":{"const":"major"}}},"native_price_observation":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://cambridgetcg.com/spec/v1/NativePriceObservation.schema.json","title":"NativePriceObservation","description":"The existing source-normalized observation contract. Exact mapping and source-product/printing scope are independent. A live-page observation's sourceUpdatedAt must equal its retrievedAt, and its retrievedAt must be at or after 2026-10-28T00:00:00Z; JSON Schema cannot compare two fields or bound a date-time, so assertPriceObservationValues enforces both. This schema neither publishes data nor grants rights.","type":"object","additionalProperties":false,"properties":{"source":{"enum":["cardmarket","scryfall","cardrush","tcgplayer"]},"sourceProductId":{"type":"string","minLength":1},"sku":{"type":["string","null"]},"mappingStatus":{"enum":["exact","unmapped","ambiguous"]},"game":{"type":"string","minLength":1},"setCode":{"type":["string","null"]},"productName":{"type":["string","null"]},"granularity":{"enum":["source-product","printing"]},"finish":{"type":["string","null"]},"language":{"type":["string","null"]},"condition":{"type":["string","null"]},"metric":{"type":"string","minLength":1},"amount":{"type":"string","pattern":"^(?!0+(?:\\.0+)?$)\\d{1,12}(?:\\.\\d{1,6})?(?![\\s\\S])","description":"Positive native-currency major units, preserving source precision. Never pennies/cents, FX-converted GBP or a zero sentinel."},"currency":{"enum":["EUR","USD","JPY"]},"underlyingMarket":{"enum":["cardmarket","tcgplayer","cardrush"]},"sourceUpdatedAt":{"type":"string","format":"date-time","description":"Source time. Live retail pages (cardrush, tcgplayer) publish no clock of their own, so for them it equals retrievedAt."},"retrievedAt":{"type":"string","format":"date-time"},"sourceUrl":{"type":"string","format":"uri"},"parserVersion":{"type":"string","minLength":1},"crosswalkVersion":{"type":"string","minLength":1},"evidenceVersion":{"type":"string","minLength":1},"artifactSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"catalogSourceUrl":{"type":["string","null"],"format":"uri"},"catalogUpdatedAt":{"type":["string","null"],"format":"date-time"},"catalogArtifactSha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"quality":{"const":"accepted"},"sourceSetKey":{"type":["string","null"],"minLength":1,"pattern":"\\S","description":"The source's own set key (Cardmarket idExpansion, the set code a CardRush title prints, TCGplayer setId), for joining set crosswalks. Evidence, not a mapping; not part of the observation's identity. Absent or null where the source names no set or the row predates the key."}},"required":["source","sourceProductId","sku","mappingStatus","game","setCode","productName","granularity","finish","language","condition","metric","amount","currency","underlyingMarket","sourceUpdatedAt","retrievedAt","sourceUrl","parserVersion","crosswalkVersion","evidenceVersion","artifactSha256","catalogSourceUrl","catalogUpdatedAt","catalogArtifactSha256","quality"],"allOf":[{"if":{"properties":{"mappingStatus":{"const":"exact"}},"required":["mappingStatus"]},"then":{"properties":{"sku":{"type":"string","minLength":1},"setCode":{"type":"string","minLength":1}}},"else":{"properties":{"sku":{"type":"null"},"setCode":{"type":"null"}}}},{"if":{"properties":{"source":{"const":"cardmarket"}},"required":["source"]},"then":{"properties":{"currency":{"const":"EUR"},"granularity":{"const":"source-product"},"language":{"type":"null"},"condition":{"type":"null"}}},"else":{"properties":{"granularity":{"const":"printing"}}}},{"if":{"properties":{"source":{"const":"scryfall"}},"required":["source"]},"then":{"properties":{"currency":{"enum":["EUR","USD"]}}}},{"if":{"properties":{"source":{"const":"cardrush"}},"required":["source"]},"then":{"properties":{"currency":{"const":"JPY"}}}},{"if":{"properties":{"source":{"const":"tcgplayer"}},"required":["source"]},"then":{"properties":{"currency":{"const":"USD"}}}},{"if":{"properties":{"currency":{"const":"EUR"}},"required":["currency"]},"then":{"properties":{"underlyingMarket":{"const":"cardmarket"}}}},{"if":{"properties":{"currency":{"const":"USD"}},"required":["currency"]},"then":{"properties":{"underlyingMarket":{"const":"tcgplayer"}}}},{"if":{"properties":{"currency":{"const":"JPY"}},"required":["currency"]},"then":{"properties":{"underlyingMarket":{"const":"cardrush"},"amount":{"pattern":"^\\d{1,12}(?:\\.0{1,6})?(?![\\s\\S])"}}}}]},"member_price_observation":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://cambridgetcg.com/spec/v1/MemberPriceObservation.schema.json","title":"MemberPriceObservation","description":"Actual member feed/export item, with per-use permission evidence and attribution. Schema validity does not authorize access or reuse; source/use release policy remains authoritative.","type":"object","additionalProperties":false,"properties":{"source":{"enum":["cardmarket","scryfall","cardrush","tcgplayer"]},"sourceProductId":{"type":"string","minLength":1},"sku":{"type":["string","null"]},"mappingStatus":{"enum":["exact","unmapped","ambiguous"]},"game":{"type":"string","minLength":1},"setCode":{"type":["string","null"]},"productName":{"type":["string","null"]},"granularity":{"enum":["source-product","printing"]},"finish":{"type":["string","null"]},"language":{"type":["string","null"]},"condition":{"type":["string","null"]},"metric":{"type":"string","minLength":1},"amount":{"type":"string","pattern":"^(?!0+(?:\\.0+)?$)\\d{1,12}(?:\\.\\d{1,6})?(?![\\s\\S])","description":"Positive native-currency major units, preserving source precision. Never pennies/cents, FX-converted GBP or a zero sentinel."},"currency":{"enum":["EUR","USD","JPY"]},"underlyingMarket":{"enum":["cardmarket","tcgplayer","cardrush"]},"sourceUpdatedAt":{"type":"string","format":"date-time","description":"Source time. Live retail pages (cardrush, tcgplayer) publish no clock of their own, so for them it equals retrievedAt."},"retrievedAt":{"type":"string","format":"date-time"},"sourceUrl":{"type":"string","format":"uri"},"parserVersion":{"type":"string","minLength":1},"crosswalkVersion":{"type":"string","minLength":1},"evidenceVersion":{"type":"string","minLength":1},"artifactSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"catalogSourceUrl":{"type":["string","null"],"format":"uri"},"catalogUpdatedAt":{"type":["string","null"],"format":"date-time"},"catalogArtifactSha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"quality":{"const":"accepted"},"id":{"type":"string","minLength":1},"permittedUses":{"type":"array","minItems":1,"uniqueItems":true,"items":{"enum":["member-display","member-api","member-download"]}},"attribution":{"type":"string","minLength":1}},"required":["source","sourceProductId","sku","mappingStatus","game","setCode","productName","granularity","finish","language","condition","metric","amount","currency","underlyingMarket","sourceUpdatedAt","retrievedAt","sourceUrl","parserVersion","crosswalkVersion","evidenceVersion","artifactSha256","catalogSourceUrl","catalogUpdatedAt","catalogArtifactSha256","quality","id","permittedUses","attribution"],"allOf":[{"if":{"properties":{"mappingStatus":{"const":"exact"}},"required":["mappingStatus"]},"then":{"properties":{"sku":{"type":"string","minLength":1},"setCode":{"type":"string","minLength":1}}},"else":{"properties":{"sku":{"type":"null"},"setCode":{"type":"null"}}}},{"if":{"properties":{"source":{"const":"cardmarket"}},"required":["source"]},"then":{"properties":{"currency":{"const":"EUR"},"granularity":{"const":"source-product"},"language":{"type":"null"},"condition":{"type":"null"}}},"else":{"properties":{"granularity":{"const":"printing"}}}},{"if":{"properties":{"source":{"const":"scryfall"}},"required":["source"]},"then":{"properties":{"currency":{"enum":["EUR","USD"]}}}},{"if":{"properties":{"source":{"const":"cardrush"}},"required":["source"]},"then":{"properties":{"currency":{"const":"JPY"}}}},{"if":{"properties":{"source":{"const":"tcgplayer"}},"required":["source"]},"then":{"properties":{"currency":{"const":"USD"}}}},{"if":{"properties":{"currency":{"const":"EUR"}},"required":["currency"]},"then":{"properties":{"underlyingMarket":{"const":"cardmarket"}}}},{"if":{"properties":{"currency":{"const":"USD"}},"required":["currency"]},"then":{"properties":{"underlyingMarket":{"const":"tcgplayer"}}}},{"if":{"properties":{"currency":{"const":"JPY"}},"required":["currency"]},"then":{"properties":{"underlyingMarket":{"const":"cardrush"},"amount":{"pattern":"^\\d{1,12}(?:\\.0{1,6})?(?![\\s\\S])"}}}}]}}},"_meta":{"spec_version":"1","endpoint":"/api/v1/contracts/card-data","retrieved_at":"2026-11-13T21:31:49.854Z","as_of":"2026-09-29T00:00:00.000Z","sources":["sku_contract","data_spec"],"freshness_seconds":86400,"license":"NOASSERTION","request_id":"req_5d791722-310","deprecation":null,"next_link":null,"self_reference":null}}