{"openapi":"3.2.0","info":{"title":"LootPanel Card API","version":"1.0.0-beta.1","description":"Public card metadata. No authentication required. Independent Neuroscape catalog; access does not grant rights to third-party card text or art."},"servers":[{"url":"https://api.lootpanel.com"}],"paths":{"/v1/games":{"get":{"summary":"Supported games","operationId":"_v1_games","parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["object","data","total","has_more","next_page","catalog_revision"],"properties":{"object":{"const":"list"},"data":{"type":"array","items":{"type":"object","required":["object","id","name","uri"],"properties":{"object":{"const":"game"},"id":{"type":"string"},"name":{"type":"string"},"uri":{"type":"string"}}}},"total":{"type":"integer"},"has_more":{"type":"boolean"},"next_page":{"type":["string","null"]},"catalog_revision":{"type":"string"}}}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape":{"get":{"summary":"Neuroscape catalog and source information","operationId":"_v1_games_neuroscape","parameters":[{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["object","id","name","status","catalog_revision","published_at","counts","search_fields","rights","links"],"properties":{"object":{"const":"game"},"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"catalog_revision":{"type":"string"},"published_at":{"type":"string"},"counts":{"type":"object","required":["cards","printings","sets"],"properties":{"cards":{"type":"integer","minimum":0},"printings":{"type":"integer","minimum":0},"sets":{"type":"integer","minimum":0}}},"search_fields":{"type":"array","items":{"type":"string"}},"rights":{"type":"string"},"links":{"type":"object","additionalProperties":{"type":"string"}}}}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/cards":{"get":{"summary":"Browse card identities","operationId":"_v1_games_neuroscape_cards","parameters":[{"name":"q","in":"query","description":"AND search: words, quoted phrases, -negation, name/text/type/faction/keyword/set/rarity/id/digital and numeric cost/attack/defense comparisons.","schema":{"type":"string","maxLength":512}},{"name":"name","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"text","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"type","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"faction","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"keyword","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"cost","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"attack","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"defense","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"set","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"rarity","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"id","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"digital","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort field.","schema":{"type":"string","enum":["name","cost","attack","defense"]}},{"name":"direction","in":"query","description":"Sort direction.","schema":{"type":"string","enum":["asc","desc"]}},{"name":"limit","in":"query","description":"Results per page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","description":"Use the returned next_page URL.","schema":{"type":"string"}},{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["object","data","total","has_more","next_page","catalog_revision"],"properties":{"object":{"const":"list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Card"}},"total":{"type":"integer"},"has_more":{"type":"boolean"},"next_page":{"type":["string","null"]},"catalog_revision":{"type":"string"}}}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/cards/search":{"get":{"summary":"Search card identities","operationId":"_v1_games_neuroscape_cards_search","parameters":[{"name":"q","in":"query","description":"AND search: words, quoted phrases, -negation, name/text/type/faction/keyword/set/rarity/id/digital and numeric cost/attack/defense comparisons.","schema":{"type":"string","maxLength":512}},{"name":"name","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"text","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"type","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"faction","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"keyword","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"cost","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"attack","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"defense","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"set","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"rarity","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"id","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"digital","in":"query","description":"Additional filter combined with q using AND.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort field.","schema":{"type":"string","enum":["name","cost","attack","defense"]}},{"name":"direction","in":"query","description":"Sort direction.","schema":{"type":"string","enum":["asc","desc"]}},{"name":"limit","in":"query","description":"Results per page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","description":"Use the returned next_page URL.","schema":{"type":"string"}},{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["object","data","total","has_more","next_page","catalog_revision"],"properties":{"object":{"const":"list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Card"}},"total":{"type":"integer"},"has_more":{"type":"boolean"},"next_page":{"type":["string","null"]},"catalog_revision":{"type":"string"}}}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/cards/named":{"get":{"summary":"Exact name, alias, or source ID lookup","operationId":"_v1_games_neuroscape_cards_named","parameters":[{"name":"exact","in":"query","description":"Supply exactly one of exact and source_id.","schema":{"type":"string"}},{"name":"source_id","in":"query","description":"Upstream printing ID, such as GEN-KS-022.","schema":{"type":"string"}},{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Card"}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/cards/autocomplete":{"get":{"summary":"Up to 20 matching names and IDs","operationId":"_v1_games_neuroscape_cards_autocomplete","parameters":[{"name":"q","in":"query","description":"Name fragment.","schema":{"type":"string","minLength":1,"maxLength":100},"required":true},{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["object","data","total","catalog_revision"],"properties":{"object":{"const":"catalog"},"data":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"total":{"type":"integer","minimum":0},"catalog_revision":{"type":"string"}}}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/cards/{id}":{"get":{"summary":"Current rules for one card","operationId":"_v1_games_neuroscape_cards__id_","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Card"}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/cards/{id}/printings":{"get":{"summary":"Printings of one card","operationId":"_v1_games_neuroscape_cards__id__printings","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Results per page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","description":"Use the returned next_page URL.","schema":{"type":"string"}},{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["object","data","total","has_more","next_page","catalog_revision"],"properties":{"object":{"const":"list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Printing"}},"total":{"type":"integer"},"has_more":{"type":"boolean"},"next_page":{"type":["string","null"]},"catalog_revision":{"type":"string"}}}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/cards/{id}/rulings":{"get":{"summary":"Attributed third-party rulings","operationId":"_v1_games_neuroscape_cards__id__rulings","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Results per page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","description":"Use the returned next_page URL.","schema":{"type":"string"}},{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["object","data","total","has_more","next_page","catalog_revision"],"properties":{"object":{"const":"list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Ruling"}},"total":{"type":"integer"},"has_more":{"type":"boolean"},"next_page":{"type":["string","null"]},"catalog_revision":{"type":"string"}}}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/printings/{id}":{"get":{"summary":"One printing","operationId":"_v1_games_neuroscape_printings__id_","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Printing"}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/sets":{"get":{"summary":"Known source sets","operationId":"_v1_games_neuroscape_sets","parameters":[{"name":"limit","in":"query","description":"Results per page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","description":"Use the returned next_page URL.","schema":{"type":"string"}},{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["object","data","total","has_more","next_page","catalog_revision"],"properties":{"object":{"const":"list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Set"}},"total":{"type":"integer"},"has_more":{"type":"boolean"},"next_page":{"type":["string","null"]},"catalog_revision":{"type":"string"}}}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/sets/{id}":{"get":{"summary":"Set by ID or code","operationId":"_v1_games_neuroscape_sets__id_","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Set"}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/sets/{id}/printings":{"get":{"summary":"Printings in a set","operationId":"_v1_games_neuroscape_sets__id__printings","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Results per page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","description":"Use the returned next_page URL.","schema":{"type":"string"}},{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["object","data","total","has_more","next_page","catalog_revision"],"properties":{"object":{"const":"list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Printing"}},"total":{"type":"integer"},"has_more":{"type":"boolean"},"next_page":{"type":["string","null"]},"catalog_revision":{"type":"string"}}}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/catalogs/{name}":{"get":{"summary":"Filter values","operationId":"_v1_games_neuroscape_catalogs__name_","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","enum":["factions","types","keywords","rarities","card-names"]}},{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["object","data","total","catalog_revision"],"properties":{"object":{"const":"catalog"},"data":{"type":"array","items":{"type":"string"}},"total":{"type":"integer","minimum":0},"catalog_revision":{"type":"string"}}}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/bulk-data":{"get":{"summary":"Checksummed bulk downloads","operationId":"_v1_games_neuroscape_bulk_data","parameters":[{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["object","schema_version","catalog_revision","published_at","files"],"properties":{"object":{"const":"bulk_data"},"schema_version":{"type":"string"},"catalog_revision":{"type":"string"},"published_at":{"type":"string"},"files":{"type":"array","items":{"type":"object","required":["name","count","bytes","sha256","content_type","format","compression","url"],"properties":{"name":{"type":"string"},"count":{"type":"integer","minimum":0},"bytes":{"type":"integer","minimum":0},"sha256":{"type":"string"},"content_type":{"type":"string"},"format":{"type":"string"},"compression":{"type":"string"},"url":{"type":"string"}}}}}}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/changes":{"get":{"summary":"Published revisions","operationId":"_v1_games_neuroscape_changes","parameters":[{"name":"limit","in":"query","description":"Results per page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","description":"Use the returned next_page URL.","schema":{"type":"string"}},{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["object","data","total","has_more","next_page","catalog_revision"],"properties":{"object":{"const":"list"},"data":{"type":"array","items":{"type":"object","required":["object","id","published_at","bulk_uri","counts"],"properties":{"object":{"const":"catalog_revision"},"id":{"type":"string"},"published_at":{"type":"string"},"bulk_uri":{"type":"string"},"counts":{"type":"object","required":["cards","printings"],"properties":{"cards":{"type":"integer","minimum":0},"printings":{"type":"integer","minimum":0}}}}}},"total":{"type":"integer"},"has_more":{"type":"boolean"},"next_page":{"type":["string","null"]},"catalog_revision":{"type":"string"}}}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/migrations":{"get":{"summary":"Identifier corrections","operationId":"_v1_games_neuroscape_migrations","parameters":[{"name":"limit","in":"query","description":"Results per page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","description":"Use the returned next_page URL.","schema":{"type":"string"}},{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["object","data","total","has_more","next_page","catalog_revision"],"properties":{"object":{"const":"list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Migration"}},"total":{"type":"integer"},"has_more":{"type":"boolean"},"next_page":{"type":["string","null"]},"catalog_revision":{"type":"string"}}}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/formats":{"get":{"summary":"Attributed deck construction rules","operationId":"_v1_games_neuroscape_formats","parameters":[{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["object","data","total","has_more","next_page","catalog_revision"],"properties":{"object":{"const":"list"},"data":{"type":"array","items":{"type":"object","required":["object","id","name","rules_revision","source_url","verification","zones","copies_by_name","exceptions"],"properties":{"object":{"const":"format"},"id":{"type":"string"},"name":{"type":"string"},"rules_revision":{"type":"string"},"source_url":{"type":"string"},"verification":{"type":"string"},"zones":{"type":"object","required":["mainframe","cyberdeck","ram","sideboard","sideboard_mainframe"],"properties":{"mainframe":{"type":"object","required":["min","max"],"properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0}}},"cyberdeck":{"type":"object","required":["min","max"],"properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0}}},"ram":{"type":"object","required":["min","max"],"properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0}}},"sideboard":{"type":"object","required":["min","max"],"properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0}}},"sideboard_mainframe":{"type":"object","required":["min","max"],"properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0}}}}},"copies_by_name":{"type":"integer","minimum":0},"exceptions":{"type":"array","items":{"type":"string"}}}}},"total":{"type":"integer"},"has_more":{"type":"boolean"},"next_page":{"type":["string","null"]},"catalog_revision":{"type":"string"}}}}}},"304":{"description":"ETag matches; no body."},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/neuroscape/cards/collection":{"post":{"summary":"Resolve a batch of identifiers; preserves order and per-item failures","operationId":"resolveCollection","parameters":[{"name":"revision","in":"query","description":"Pin a published catalog revision.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["identifiers"],"additionalProperties":false,"properties":{"identifiers":{"type":"array","minItems":1,"maxItems":100,"items":{"oneOf":[{"type":"object","required":["id"],"additionalProperties":false,"properties":{"id":{"type":"string"}}},{"type":"object","required":["source_id"],"additionalProperties":false,"properties":{"source_id":{"type":"string"}}},{"type":"object","required":["printing_id"],"additionalProperties":false,"properties":{"printing_id":{"type":"string"}}},{"type":"object","required":["exact"],"additionalProperties":false,"properties":{"exact":{"type":"string"}}}]}}}},"example":{"identifiers":[{"source_id":"GEN-KS-022"},{"exact":"Deep Diver"}]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["object","catalog_revision","data"],"properties":{"object":{"const":"collection"},"catalog_revision":{"type":"string"},"data":{"type":"array","items":{"type":"object","required":["index","identifier","card","error"],"properties":{"index":{"type":"integer","minimum":0},"identifier":{"oneOf":[{"type":"object","required":["id"],"additionalProperties":false,"properties":{"id":{"type":"string"}}},{"type":"object","required":["source_id"],"additionalProperties":false,"properties":{"source_id":{"type":"string"}}},{"type":"object","required":["printing_id"],"additionalProperties":false,"properties":{"printing_id":{"type":"string"}}},{"type":"object","required":["exact"],"additionalProperties":false,"properties":{"exact":{"type":"string"}}}]},"card":{"anyOf":[{"$ref":"#/components/schemas/Card"},{"type":"null"}]},"error":{"anyOf":[{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},{"type":"null"}]}}}}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Card":{"type":"object","properties":{"object":{"type":"string","const":"card"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"game_id":{"type":"string","const":"neuroscape"},"name":{"type":"string","minLength":1},"aliases":{"type":"array","items":{"type":"string"}},"source_ids":{"type":"array","items":{"type":"string"}},"rules_text":{"type":"string"},"rules_revision":{"type":"string"},"default_printing_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"web_url":{"type":"string","format":"uri"},"mechanics":{"type":"object","properties":{"type":{"type":"string"},"subtype":{"type":["string","null"]},"factions":{"type":"array","items":{"type":"string"}},"cost":{"type":["number","null"]},"attack":{"type":["number","null"]},"defense":{"type":["number","null"]},"damage_affinity":{"type":["string","null"]},"requirements":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},{"type":"null"}]},"ports":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},{"type":"null"}]},"additional_cost":{"type":["string","null"]},"reversed_text":{"type":["string","null"]},"keywords":{"type":"array","items":{"type":"string"}},"abilities":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"text":{"type":"string"},"name":{"type":["string","null"]},"cost":{"type":["string","null"]},"tiers":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"requirements":{"type":"array","items":{"type":"object","properties":{"faction":{"type":"string"},"synergy":{"type":"number"}},"required":["faction","synergy"],"additionalProperties":false}}},"required":["text","requirements"],"additionalProperties":false}}},"required":["type","text","name","cost","tiers"],"additionalProperties":false}},"mainframe_tiers":{"type":"array","items":{"type":"object","properties":{"persistent_count":{"type":"number"},"synergy":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}}},"required":["persistent_count","synergy"],"additionalProperties":false}},"unlimited_copies":{"type":"boolean"}},"required":["type","subtype","factions","cost","attack","defense","damage_affinity","requirements","ports","additional_cost","reversed_text","keywords","abilities","mainframe_tiers","unlimited_copies"],"additionalProperties":false},"provenance":{"type":"object","properties":{"source_url":{"type":"string","format":"uri"},"retrieved_at":{"type":"string"},"authority":{"type":"string","const":"third_party"},"corrections":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"source":{"type":"string"}},"required":["field","source"],"additionalProperties":false}}},"required":["source_url","retrieved_at","authority","corrections"],"additionalProperties":false},"digital_support":{"type":"object","properties":{"status":{"type":"string","enum":["available","unavailable"]},"engine_card_id":{"type":["string","null"]},"evidence_url":{"type":"string","format":"uri"},"note":{"type":"string"}},"required":["status","engine_card_id","evidence_url","note"],"additionalProperties":false}},"required":["object","id","game_id","name","aliases","source_ids","rules_text","rules_revision","default_printing_id","web_url","mechanics","provenance","digital_support"],"additionalProperties":false},"Printing":{"type":"object","properties":{"object":{"type":"string","const":"printing"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"card_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"game_id":{"type":"string","const":"neuroscape"},"source_id":{"type":"string"},"set_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"collector_number":{"type":"string"},"language":{"type":["string","null"]},"printed_name":{"type":"string"},"printed_text":{"type":"string"},"text_status":{"type":"string","const":"source_transcription"},"rarity":{"type":["string","null"]},"artists":{"type":"array","items":{"type":"string"}},"images":{"type":"object","properties":{"normal":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","format":"uri"},"content_type":{"type":"string"},"bytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"sha256":{"type":"string","minLength":64,"maxLength":64}},"required":["url","content_type","bytes","sha256"],"additionalProperties":false},{"type":"null"}]}},"required":["normal"],"additionalProperties":false},"source_image_url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"finishes":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"source_image_url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"status":{"type":"string","const":"source_reported"}},"required":["code","source_image_url","status"],"additionalProperties":false}},"standard_legal":{"type":["boolean","null"]},"provenance":{"type":"object","properties":{"source_url":{"type":"string","format":"uri"},"retrieved_at":{"type":"string"},"authority":{"type":"string","const":"third_party"},"corrections":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"source":{"type":"string"}},"required":["field","source"],"additionalProperties":false}}},"required":["source_url","retrieved_at","authority","corrections"],"additionalProperties":false}},"required":["object","id","card_id","game_id","source_id","set_id","collector_number","language","printed_name","printed_text","text_status","rarity","artists","images","source_image_url","finishes","standard_legal","provenance"],"additionalProperties":false},"Set":{"type":"object","properties":{"object":{"type":"string","const":"set"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"game_id":{"type":"string","const":"neuroscape"},"code":{"type":"string"},"name":{"type":"string"},"release_date":{"type":["string","null"]},"printing_count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"source_url":{"type":"string","format":"uri"}},"required":["object","id","game_id","code","name","release_date","printing_count","source_url"],"additionalProperties":false},"Ruling":{"type":"object","properties":{"object":{"type":"string","const":"ruling"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"card_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"text":{"type":"string"},"source_kind":{"type":"string","const":"third_party"},"source_url":{"type":"string","format":"uri"},"published_at":{"type":["string","null"]},"retrieved_at":{"type":"string"}},"required":["object","id","card_id","text","source_kind","source_url","published_at","retrieved_at"],"additionalProperties":false},"Migration":{"type":"object","properties":{"object":{"type":"string","const":"migration"},"old_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"new_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reason":{"type":"string"},"published_at":{"type":"string"}},"required":["object","old_id","new_id","reason","published_at"],"additionalProperties":false},"Error":{"type":"object","required":["object","status","code","message"],"properties":{"object":{"const":"error"},"status":{"type":"integer"},"code":{"type":"string"},"message":{"type":"string"},"parameter":{"type":"string"},"position":{"type":"integer"},"request_id":{"type":"string"}}}}}}