@instruments/materialgraph 0.33.0 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/association-types.d.ts +11 -11
  2. package/associations-client.d.ts +7 -7
  3. package/associations-client.js +5 -5
  4. package/brand-types.d.ts +37 -41
  5. package/brand-types.js +3 -5
  6. package/brands-client.d.ts +22 -9
  7. package/brands-client.js +20 -6
  8. package/by-spec-types.d.ts +1 -1
  9. package/catalog-discovery-types.d.ts +3 -3
  10. package/catalogue-client.d.ts +2 -50
  11. package/catalogue-client.js +2 -10
  12. package/catalogue-types.d.ts +1 -1
  13. package/categories-client.d.ts +3 -5
  14. package/categories-client.js +1 -1
  15. package/category-types.d.ts +17 -30
  16. package/citation-types.d.ts +2 -2
  17. package/client-vocabulary.d.ts +2 -2
  18. package/client-vocabulary.js +4 -1
  19. package/client.d.ts +57 -100
  20. package/client.js +63 -101
  21. package/color-profiles-types.d.ts +70 -0
  22. package/colors-client.d.ts +76 -0
  23. package/colors-client.js +52 -0
  24. package/find-companions-types.d.ts +8 -8
  25. package/{find-variants-by-colour-types.d.ts → find-variants-by-color-types.d.ts} +70 -64
  26. package/find-variants-by-vector-types.d.ts +4 -1
  27. package/get-variant-types.d.ts +14 -2
  28. package/http-transport.d.ts +1 -1
  29. package/http-transport.js +1 -2
  30. package/identifiers.d.ts +2 -2
  31. package/identifiers.js +1 -1
  32. package/index.d.ts +4 -13
  33. package/index.js +1 -3
  34. package/list-variant-facets-types.d.ts +4 -4
  35. package/list-variants-types.d.ts +71 -21
  36. package/material-asset-types.d.ts +3 -3
  37. package/material-block-types.d.ts +9 -9
  38. package/material-types.d.ts +10 -8
  39. package/operations.d.ts +2 -2
  40. package/operations.js +13 -24
  41. package/package.json +2 -2
  42. package/{resolve-colour-types.d.ts → resolve-color-types.d.ts} +18 -18
  43. package/response-schemas.generated.d.ts +2 -2
  44. package/response-schemas.generated.js +39 -70
  45. package/response-schemas.js +1 -1
  46. package/samplize-catalogue-types.d.ts +4 -4
  47. package/samplize-colorvec.js +6 -6
  48. package/{corpus-scope-types.d.ts → search-catalogue-subset-types.d.ts} +3 -3
  49. package/search-variants-types.d.ts +20 -2
  50. package/types.d.ts +31 -283
  51. package/webmcp.generated.js +4 -9
  52. package/attribution-types.d.ts +0 -51
  53. package/attribution-types.js +0 -13
  54. package/by-colour-types.d.ts +0 -320
  55. package/colour-region-types.d.ts +0 -18
  56. package/colours-client.d.ts +0 -70
  57. package/colours-client.js +0 -38
  58. package/material-query-plan-types.d.ts +0 -70
  59. package/material-query-plan-types.js +0 -1
  60. package/palette-search-types.d.ts +0 -171
  61. package/palette-search-types.js +0 -1
  62. package/query-understanding-types.d.ts +0 -254
  63. package/query-understanding-types.js +0 -1
  64. package/resolve-colour-types.js +0 -1
  65. package/search-card-types.d.ts +0 -86
  66. package/search-card-types.js +0 -1
  67. package/search-index-plan-types.d.ts +0 -74
  68. package/search-index-plan-types.js +0 -1
  69. package/search-refinement-types.d.ts +0 -103
  70. package/search-refinement-types.js +0 -2
  71. package/search-request-types.d.ts +0 -170
  72. package/search-request-types.js +0 -1
  73. package/search-response-receipt-types.d.ts +0 -24
  74. package/search-response-receipt-types.js +0 -1
  75. package/search-response-types.d.ts +0 -11
  76. package/search-response-types.js +0 -1
  77. package/search-result-validation.d.ts +0 -9
  78. package/search-result-validation.js +0 -83
  79. package/spec-types.d.ts +0 -109
  80. package/spec-types.js +0 -54
  81. package/specifications.d.ts +0 -34
  82. package/specifications.js +0 -56
  83. package/validation.d.ts +0 -43
  84. package/validation.js +0 -117
  85. /package/{by-colour-types.js → color-profiles-types.js} +0 -0
  86. /package/{colour-region-types.js → find-variants-by-color-types.js} +0 -0
  87. /package/{corpus-scope-types.js → resolve-color-types.js} +0 -0
  88. /package/{find-variants-by-colour-types.js → search-catalogue-subset-types.js} +0 -0
@@ -1,20 +1,14 @@
1
1
  // GENERATED by apps/web/scripts/generate-openapi-v1.ts. Do not edit.
2
2
  // Run `pnpm --filter @materialgraph/web generate:openapi` to regenerate.
3
3
  /** The API contract version the schemas were generated from. */
4
- export const RESPONSE_SCHEMA_API_VERSION = "0.7.0";
4
+ export const RESPONSE_SCHEMA_API_VERSION = "0.8.0";
5
5
  /** Every SDK operation whose success response has a published JSON Schema. */
6
6
  export const RESPONSE_SCHEMA_OPERATION_IDS = [
7
- "samplize_colorvec_cache",
8
- "samplize_catalogue_search",
9
7
  "list_catalog_documents",
10
8
  "list_catalog_pages",
11
9
  "get_catalog_page_representation",
12
10
  "list_catalog_product_references",
13
- "search_materials_post",
14
- "plan_material_query",
15
11
  "samplize_catalogue_products",
16
- "search_materials_get",
17
- "search_by_colour",
18
12
  "get_catalogue_references_batch",
19
13
  "list_catalogue_channel_collections",
20
14
  "get_catalogue_document_access",
@@ -29,18 +23,18 @@ export const RESPONSE_SCHEMA_OPERATION_IDS = [
29
23
  "list_variants",
30
24
  "list_variant_facets",
31
25
  "search_variants",
32
- "find_variants_by_colour",
26
+ "find_variants_by_color",
33
27
  "find_variants_by_vector",
34
28
  "find_companions",
35
29
  "resolve_variant",
36
30
  "get_variant",
37
- "resolve_colour_name",
31
+ "resolve_color_name",
38
32
  "catalog_list_attributes",
39
33
  "catalog_list_enum_values",
40
34
  "list_categories",
41
35
  "get_category",
42
36
  "whoami",
43
- "search_by_palette",
37
+ "get_category_color_profiles",
44
38
  "extract_image_palette",
45
39
  "list_brands",
46
40
  "upload_source_material",
@@ -49,64 +43,39 @@ export const RESPONSE_SCHEMA_OPERATION_IDS = [
49
43
  "get_verdict_citation",
50
44
  ];
51
45
  export const RESPONSE_SCHEMA_CATALOGUE_JSON = [
52
- "{\"definitions\":{\"ApplicabilityCollection\":{\"type\":\"object\",\"properties\":{\"direction\":{\"type\":\"string\",\"enum\":[\"forward\",\"reverse\"]},\"kind\":{\"type\":\"string\",\"const\":\"manufacturer_declared_applicability\"},\"requestedSubject\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"product\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]},\"sources\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"coverage\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"countKind\":{\"type\":\"string\",\"enum\":[\"exact\",\"partial\"]},\"declaredCount\":{\"anyOf\":[{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},{\"type\":\"null\"}]},\"sourceAuthority\":{\"type\":\"string\",\"minLength\":1},\"sourceLocator\":{\"type\":\"string\",\"minLength\":1},\"sourceRevision\":{\"type\":\"string\",\"minLength\":1},\"state\":{\"type\":\"string\",\"enum\":[\"available\",\"partial\",\"none_declared\",\"not_ingested\",\"source_not_applicable\",\"unavailable\"]}},\"required\":[\"countKind\",\"declaredCount\",\"sourceAuthority\",\"sourceLocator\",\"sourceRevision\",\"state\"]},{\"type\":\"null\"}]},\"factRevisions\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}},\"facts\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"declaringBrandId\":{\"type\":\"string\",\"minLength\":1},\"evidenceScope\":{\"type\":\"string\",\"const\":\"manufacturer_declared\"},\"finish\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]},\"id\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":21},\"lifecycle\":{\"type\":\"string\",\"enum\":[\"active\",\"tombstoned\"]},\"relation\":{\"type\":\"string\",\"const\":\"applicable_finish\"},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"locator\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"locator\",\"revision\"]},\"subject\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"product\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]}},\"required\":[\"declaringBrandId\",\"evidenceScope\",\"finish\",\"id\",\"lifecycle\",\"relation\",\"source\",\"subject\"]}},\"scope\":{\"type\":\"object\",\"properties\":{\"sourceAuthority\":{\"type\":\"string\",\"minLength\":1},\"sourceLocator\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"sourceAuthority\",\"sourceLocator\"]},\"unresolved\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"declaringBrandId\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"finishKind\":{\"type\":\"string\",\"enum\":[\"variant\",\"unknown\"]},\"finishLocator\":{\"type\":\"string\",\"minLength\":1},\"reason\":{\"type\":\"string\",\"enum\":[\"subject_unresolved\",\"finish_unresolved\",\"both_unresolved\",\"unsupported_subject_kind\"]},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"locator\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"locator\",\"revision\"]},\"subjectKind\":{\"type\":\"string\",\"enum\":[\"product\",\"variant\",\"unknown\"]},\"subjectLocator\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"declaringBrandId\",\"finishKind\",\"finishLocator\",\"reason\",\"source\",\"subjectKind\",\"subjectLocator\"]}}},\"required\":[\"coverage\",\"factRevisions\",\"facts\",\"scope\",\"unresolved\"]}}},\"required\":[\"direction\",\"kind\",\"requestedSubject\",\"sources\"]},\"BrandCatalogListPage\":{\"type\":\"object\",\"properties\":{\"corpusScope\":{\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\",\"description\":\"What the scope admits, in one sentence, for a human reader.\"},\"scope\":{\"type\":\"string\",\"enum\":[\"all\",\"samplizeCatalogue\",\"materialBankOrderable\",\"materialBankNaOrderable\",\"materialBankNaAndCatalogue\",\"materialBankEuOrderable\",\"designShopOrderable\"],\"description\":\"Which corpus to list from. samplizeCatalogue admits published US paint colours regardless of stock. ABSENT (or 'all') means the WHOLE GR",
53
- "APH — every brand MaterialGraph knows, orderable or not; absence is never a narrower default. Every scope narrows the BRANDS listed AND the corpus `productCount` / `variantCount` are counted over, both applied INSIDE the query: a page of `limit` fills with eligible brands rather than being shortened afterwards. 'materialBankNaOrderable', 'materialBankEuOrderable', 'materialBankNaAndCatalogue' and 'designShopOrderable' gate on governed CHANNEL membership. The token-specific receipt states whether that membership is a storefront or editorial inclusion; the union is not itself a transaction claim. 'materialBankOrderable' does not: it lists brands on record as carrying Material Bank presence, which is a provenance signal, and nearly every brand in the feed carries it. An unknown value is a 400 naming it, never a silent fall back to the whole graph.\"}},\"required\":[\"description\",\"scope\"],\"description\":\"The corpus this page AND its per-brand counts were drawn from. Present only when a narrowing scope applied — absence means the whole graph. Read it alongside `meta.total`: a short list under a scope is a small SCOPED corpus, not a truncated one.\"},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"homepageUrl\":{\"type\":[\"string\",\"null\"]},\"id\":{\"type\":\"string\"},\"materialBankPresence\":{\"description\":\"Whether this brand is ON RECORD as carrying Material Bank presence. `true` is the standing orderability tell — every brand holding it has Material Bank SKUs. `null` (or absent) means NOT ON RECORD, never false: the brand may still hold products, none of them orderable through Material Bank. `productCount` and `variantCount` are counted over the WHOLE catalogue unless `corpusScope` says otherwise, so a brand without this flag can still report thousands of variants.\",\"type\":[\"boolean\",\"null\"]},\"name\":{\"type\":\"string\"},\"primaryMarketSegment\":{\"type\":\"string\"},\"productCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"slug\":{\"type\":\"string\"},\"variantCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"homepageUrl\",\"id\",\"name\",\"primaryMarketSegment\",\"productCount\",\"slug\",\"variantCount\"]}},\"meta\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"hasMore\":{\"type\":\"boolean\"},\"limit\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":250},\"offset\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"total\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"count\",\"hasMore\",\"limit\",\"offset\",\"total\"]}},\"required\":[\"items\",\"meta\"]},\"ByColourResponse\":{\"type\":\"object\",\"properties\":{\"categoryGate\":{\"description\":\"Receipt for the category gate. Every live page carries it: the caller's `?category=`, or the surface-material default (`defaulted: true`). Unclassified variants are excluded because unknown category is not membership. ABSENT only on responses stored before the default existed.\",\"type\":\"object\",\"properties\":{\"defaulted\":{\"description\":\"Present when the caller named no category: a colour page then holds surface materials only (the `materials` product-type groups, listed in `requested`), so lights, taps and furniture do not answer a colour question. Send `?category=` to search other groups.\",\"type\":\"boolean\",\"const\":true},\"requested\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Category names or keys the caller asked the hard gate to keep.\"},\"requiresAcceptedPrimaryProductType\":{\"type\":\"boolean\",\"const\":true,\"description\":\"The gate admits a variant only through an accepted primary product type.\"},\"unclassifiedVariantsExcluded\":{\"type\":\"boolean\",\"const\":true,\"description\":\"Variants without an accepted primary product type were ineligible, not proven to belong outside the requested category.\"}},\"required\":[\"requested\",\"requiresAcceptedPrimaryProductType\",\"unclassifiedVariantsExcluded\"]},\"collapse\":{\"description\":\"Receipt for the colour-identity collapse the old colour lane ran. ABSENT on live pages: the one search pages one row per product, so there is nothing to collapse. Kept so stored responses still p",
54
- "arse.\",\"type\":\"object\",\"properties\":{\"considered\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Ranked rows the collapse examined — the retrieved pool for this page, never a corpus total.\"},\"droppedByIdentity\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Rows dropped because an earlier, better-ranked row had the same brand, product and dominant hex.\"},\"droppedBySharedImage\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Rows dropped because an earlier, better-ranked row resolved to the same stored photograph.\"}},\"required\":[\"considered\",\"droppedByIdentity\",\"droppedBySharedImage\"]},\"corpusScope\":{\"description\":\"The corpus this page was drawn from — present ONLY when the request narrowed it. ABSENT means the whole graph: every material MaterialGraph knows, orderable or not. Under a scope the `familyGate` and `collapse` pool counts describe the SCOPED corpus too, because the scope was applied inside retrieval rather than over the page it produced.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\",\"description\":\"What the scope admits, in one sentence, for a human reader.\"},\"scope\":{\"type\":\"string\",\"enum\":[\"all\",\"samplizeCatalogue\",\"materialBankOrderable\",\"materialBankNaOrderable\",\"materialBankNaAndCatalogue\",\"materialBankEuOrderable\",\"designShopOrderable\"],\"description\":\"Which corpus to answer from. samplizeCatalogue admits published US paint colours regardless of stock. ABSENT (or 'all') means the WHOLE GRAPH — every material MaterialGraph knows, orderable or not; absence is never a narrower default. Three transaction-oriented scopes gate on governed CHANNEL membership: 'materialBankNaOrderable' (Material Bank North America, ~277,000 materials), 'materialBankEuOrderable' (Material Bank Europe, ~65,000) and 'designShopOrderable' (DesignShop, ~34,000, with the products DesignShop hides from browse excluded). 'materialBankNaAndCatalogue' is the one-query union of Material Bank North America and the governed Catalogue editorial discovery corpus; that union does not by itself claim every member is transactable. 'materialBankOrderable' is NOT one of them: it selects materials carrying a Material Bank identity, which is a provenance signal rather than a channel one, and it admits 98.4% of the graph — use it to exclude crawl-sourced brands, not to mean orderable. A scope answers membership in its named governed corpus, never suitability: scope on channel, then refine on sector. Every scope is applied INSIDE the query: `limit` fills with eligible rows and `counts` describe the scoped corpus, which post-filtering a page cannot give you. An unknown value is a 400 naming it, never a silent fall back to the whole graph.\"}},\"required\":[\"description\",\"scope\"]},\"count\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Number of matches returned.\"},\"familyGate\":{\"description\":\"Receipt for `?family=`: the family applied and the candidate counts behind it. ABSENT when no family filter was asked for. A page filtered to a family can be shorter than `limit` — the gate runs on a retrieved pool, and `considered`/`dropped` say how much of that pool it cost.\",\"type\":\"object\",\"properties\":{\"considered\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Candidates the gate examined — the retrieved pool for this page. A pool size, never a corpus total.\"},\"dropped\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Candidates the gate rejected: their dominant hex belongs to another family, or they carried no readable hex (unknown is not membership).\"},\"droppedOnPublishedHex\":{\"description\":\"Rows the gate rejected a SECOND time, after the page was hydrated with the brand's declared `colour_hex`. A paint's chip photograph and its published hex are different colours and colorscope can place them in different families, so the page is re-gated on the hex it actually reports. Present only when a family gate ran; a",
55
- " shorter page is the honest answer. Absent means the hydration moved nothing across a family boundary.\",\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"family\":{\"type\":\"string\",\"description\":\"The colorscope taxonomy family id the gate kept (the `?family=` value, normalised).\"}},\"required\":[\"considered\",\"dropped\",\"family\"]},\"lane\":{\"description\":\"Which retrieval lane answered, and the colours it actually ran on. ALWAYS present on the live endpoint — a one-colour query is a containment question and a palette is a similarity question, and a consumer cannot tell which ran from the results alone. Optional only so responses captured before the lane split still parse.\",\"type\":\"object\",\"properties\":{\"droppedColours\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Colours removed from the query for carrying a proportion below the accent threshold. EMPTY is the normal case. Non-empty and the dropped colours are absent from retrieval entirely — they did not merely rank low.\"},\"effectiveColours\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"The `#rrggbb` colours the search ACTUALLY ran on, after minor-proportion accents were dropped. Compare against `query.colours`: a difference means the search that ran is not the search that was asked for.\"},\"lane\":{\"type\":\"string\",\"enum\":[\"index\",\"containment\",\"palette\"],\"description\":\"Which retrieval lane answered. `index` = the one search's colour key: materials in the query colour's family on the search index, nearest first by OKLab distance from each material's own colour; every live page says `index`. `containment` = materials holding a swatch within an OKLab ball of the query colour, ranked by their nearest swatch. `palette` = nearest palettes by colorscope embedding, ranked by cosine. The two rank on DIFFERENT geometries, so a match's `distance` means a different thing in each and is not comparable across them. READ `colourDistance`/`proximity` WITH CARE ON THE CONTAINMENT LANE: those describe the distance from your colour to the hex the card REPORTS — the material's dominant or declared colour — not to the swatch that matched. A textured material can hold your colour in a minor swatch and still report `proximity: \\\"unrelated\\\"` about its dominant one; the match is not wrong, the two fields answer different questions. The match's own `distance` is the matched swatch's.\"},\"order\":{\"type\":\"string\",\"enum\":[\"representative\",\"nearest\",\"similarity\"],\"description\":\"How the page was ordered. `similarity` = palette-embedding cosine (the palette lane). `nearest` = strictly closest swatch first. `representative` = the containment lane's default, which draws the page in the contained set's OWN proportions of solid and multi-swatch materials, nearest-first within each. Ordering containment by proximity alone returns a page of solids — measured 48/48 one-swatch for `#6D3D1E` — because a flat image's single swatch can land arbitrarily close to any colour while a textured material's scatter.\"},\"reason\":{\"type\":\"string\",\"description\":\"Why this lane, in one sentence — stated so the route is legible without reading the source.\"}},\"required\":[\"droppedColours\",\"effectiveColours\",\"lane\",\"order\",\"reason\"]},\"matches\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"brandSlug\":{\"type\":[\"string\",\"null\"]},\"closeness\":{\"type\":\"number\"},\"color\":{\"type\":[\"string\",\"null\"]},\"distance\":{\"type\":\"number\"},\"hex\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"materialBankId\":{\"type\":\"string\"},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":[\"string\",\"null\"]},\"productType\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]},\"category\":{\"description\":\"The match's primary product type (accepted classifications only), or null when unclassified.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"group\":{\"description\":\"Product-type GROUP display name (coarse), or null.\",\"type\":[\"string\",\"null\"]},\"type\":{\"description\":\"Primary product-TYPE display name (fine), or null.\",\"type\":[\"string\",\"null\"]}},\"required\":[",
56
- "\"group\",\"type\"]},{\"type\":\"null\"}]},\"colourDistance\":{\"description\":\"OKLab distance from the QUERY colour to this match's reported `hex` — two single colours. NOT `distance`, which is the imagery ranking's geometry over whole palettes. They disagree: a match ranked 4th by imagery was the closest by hex. ABSENT when the match has no hex or the query was a palette.\",\"type\":\"number\"},\"hueCompatible\":{\"description\":\"Whether this match's reported `hex` has a hue compatible with the query colour, by colorscope's `isHueCompatible` at its default thresholds. A flag, never a gate: the page and its order are the same with or without it. ABSENT when the match has no hex or the query was a palette.\",\"type\":\"boolean\"},\"imageSha256\":{\"description\":\"SHA-256 of the displayed image `imageUrl` points at, as a hex digest. ABSENT means no hash is on record, never that there is no image.\",\"type\":\"string\"},\"oklab\":{\"description\":\"OKLab of the match hex, or null when the match carried no hex.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"l\":{\"type\":\"number\"}},\"required\":[\"a\",\"b\",\"l\"]},{\"type\":\"null\"}]},\"palette\":{\"description\":\"The match's own image palette — the FULL stored palette, uncapped and in stored order, each swatch with proportion, stored name and OKLab. A one-swatch palette means the extractor found one colour (solid-colour materials are genuinely monochrome), not that the list was trimmed. ABSENT when no palette is on record for the match: absent means unknown, not 'this material has no colours'.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"description\":\"`#rrggbb` of the swatch, as extracted from the product image.\"},\"name\":{\"description\":\"Stored human colour name for the swatch, or null when none was extracted.\",\"type\":[\"string\",\"null\"]},\"oklab\":{\"type\":\"object\",\"properties\":{\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"l\":{\"type\":\"number\"}},\"required\":[\"a\",\"b\",\"l\"],\"description\":\"OKLab of this swatch's `hex`, derived so clients need not re-derive it.\"},\"proportion\":{\"type\":\"number\",\"description\":\"The swatch's share of the analysed image, in [0,1].\"}},\"required\":[\"hex\",\"name\",\"oklab\",\"proportion\"]}},\"proximity\":{\"description\":\"`colourDistance` as a named band, so nobody thresholds a float. Not a confidence and not a percentage. `very-near` is Colorscope's closest perceptual band; `very-close` still covers differences a client would reject in a paint order. Read `sourceBasis` before quoting any of it as a specification. ABSENT exactly when `colourDistance` is.\",\"type\":\"string\",\"enum\":[\"very-near\",\"very-close\",\"close\",\"related\",\"unrelated\"]},\"sourceBasis\":{\"description\":\"Where `hex` came from. `declared` means the MANUFACTURER published this hex (their own colour system, as ingested) — a stated colour specification. `derived` means it was extracted from product imagery — a visual likeness, never a stated spec. Per MATCH, not per response: a paint carrying a published hex reports `declared` beside a photographed textile reporting `derived`. ABSENT only when `hex` is null (no colour to state a basis for) or on a response captured before this field existed. Note `distance`/`closeness` always describe the IMAGERY ranking, whatever the basis of `hex`.\",\"type\":\"string\",\"enum\":[\"declared\",\"derived\"]}},\"required\":[\"brand\",\"closeness\",\"color\",\"distance\",\"hex\",\"imageUrl\",\"product\",\"variantId\",\"variantName\",\"category\",\"oklab\"]},\"description\":\"Colour matches, nearest palette first.\"},\"proximityGate\":{\"description\":\"Receipt for `?maxColourDistance=`. ABSENT when no proximity threshold was requested.\",\"type\":\"object\",\"properties\":{\"considered\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"dropped\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"maxColourDistance\":{\"type\":\"number\",\"minimum\":0}},\"required\":[\"considered\",\"dropped\",\"maxColourDistance\"]},\"query\":{\"type\":\"object\",\"properties\":{\"brands\":{\"description\":\"Echoed brand scope as resolved SLUGS, present only when one was applied — the slugs are the answer to 'which brand did that name resolve to'.",
57
- " ABSENT means every brand.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"categories\":{\"description\":\"Echoed category filter, present only when one was applied.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"colours\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"The normalised `#rrggbb` palette the search ran against.\"},\"family\":{\"description\":\"Echoed colour-family filter (normalised), present only when one was applied.\",\"type\":\"string\"},\"maxColourDistance\":{\"type\":\"number\",\"minimum\":0},\"oklab\":{\"description\":\"Echoed OKLab triple, present only when one was provided.\",\"type\":\"object\",\"properties\":{\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"l\":{\"type\":\"number\"}},\"required\":[\"a\",\"b\",\"l\"]},\"order\":{\"type\":\"string\",\"enum\":[\"representative\",\"nearest\"]},\"q\":{\"type\":\"string\"}},\"required\":[\"colours\"],\"description\":\"Echo of the resolved query input.\"},\"understanding\":{\"type\":\"object\",\"properties\":{\"ambiguity\":{\"type\":\"object\",\"properties\":{\"changedArm\":{\"type\":\"boolean\"},\"confidence\":{\"type\":[\"number\",\"null\"]},\"durationMs\":{\"type\":\"number\",\"minimum\":0},\"modelId\":{\"type\":[\"string\",\"null\"]},\"outcome\":{\"type\":\"string\",\"enum\":[\"applied\",\"abstained\",\"refused\",\"timeout\"]},\"productTypeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"providerRan\":{\"type\":\"boolean\"},\"refusalCode\":{\"type\":[\"string\",\"null\"]},\"routing\":{\"anyOf\":[{\"type\":\"string\",\"enum\":[\"compound\",\"descriptive\"]},{\"type\":\"null\"}]},\"timeoutMs\":{\"type\":\"number\",\"exclusiveMinimum\":0},\"validation\":{\"type\":\"string\",\"enum\":[\"valid\",\"invalid\",\"not-run\"]}},\"required\":[\"changedArm\",\"confidence\",\"durationMs\",\"modelId\",\"outcome\",\"productTypeIds\",\"providerRan\",\"refusalCode\",\"routing\",\"timeoutMs\",\"validation\"]},\"arm\":{\"type\":\"object\",\"properties\":{\"arm\":{\"anyOf\":[{\"type\":\"string\",\"enum\":[\"dense\",\"lexical\",\"colour\"]},{\"type\":\"null\"}]},\"decidedBy\":{\"type\":\"string\",\"enum\":[\"deterministic\",\"model\"]},\"outcome\":{\"type\":\"string\",\"enum\":[\"dense\",\"lexical\",\"colour\",\"browse\",\"criteria-only\",\"ambiguous\"]},\"productTypeGate\":{\"type\":\"string\",\"enum\":[\"hard\",\"constrain\",\"none\"]},\"productTypeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"reason\":{\"type\":\"string\",\"minLength\":1},\"reasonDetail\":{\"type\":\"string\",\"enum\":[\"derived-colour-veto\",\"typo-recovery\",\"literal-compound-without-type\"]},\"registryVersion\":{\"type\":\"string\",\"minLength\":1},\"residual\":{\"type\":\"object\",\"properties\":{\"comparisonFrame\":{\"type\":\"boolean\"},\"kind\":{\"type\":\"string\",\"enum\":[\"compound\",\"descriptive\",\"ambiguous\",\"empty\"]},\"resolvedRatio\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"resolvedTokens\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"tokens\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unresolvedTokens\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"comparisonFrame\",\"kind\",\"resolvedRatio\",\"resolvedTokens\",\"tokens\",\"unresolvedTokens\"]}},\"required\":[\"arm\",\"decidedBy\",\"outcome\",\"productTypeGate\",\"productTypeIds\",\"reason\",\"registryVersion\",\"residual\"]},\"canonicalLexical\":{\"type\":\"object\",\"properties\":{\"matches\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"canonical\":{\"type\":\"string\"},\"coverage\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"original\":{\"type\":\"string\"},\"readings\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"aliasCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"authority\":{\"type\":\"string\",\"enum\":[\"taxonomy\",\"colorscope\"]},\"code\":{\"type\":\"string\"},\"collisionCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"colorResolution\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"confidence\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"input\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"const\":\"resolved\"},\"others\":{\"maxItems\":4,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"band\":{\"type\":\"string\",\"enum\":[\"inside\",\"near\",\"far\"]},\"family\":{\"type\":\"string\",\"enum\":[\"white\",\"cream\",\"gray\",\"black\",\"beige\",\"taupe\",\"brown\",\"red\",\"orange\",\"yellow\",\"green\",\"teal\",\"blue\",\"purple\",\"pink\"]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1},\"range\":{\"type\":\"object\",\"pro",
58
- "perties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"band\",\"family\",\"hex\",\"id\",\"name\",\"range\"]}},\"principal\":{\"type\":\"object\",\"properties\":{\"band\":{\"type\":\"string\",\"enum\":[\"inside\",\"near\",\"far\"]},\"family\":{\"type\":\"string\",\"enum\":[\"white\",\"cream\",\"gray\",\"black\",\"beige\",\"taupe\",\"brown\",\"red\",\"orange\",\"yellow\",\"green\",\"teal\",\"blue\",\"purple\",\"pink\"]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"band\",\"family\",\"hex\",\"id\",\"name\",\"range\"]},\"source\":{\"type\":\"string\",\"enum\":[\"name\",\"family\",\"composed\",\"hex\",\"reference\",\"semantic\"]}},\"required\":[\"confidence\",\"input\",\"kind\",\"others\",\"principal\",\"source\"]},{\"type\":\"object\",\"properties\":{\"input\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"const\":\"unresolved\"},\"reason\":{\"type\":\"string\",\"enum\":[\"unknown-term\",\"ambiguous-modifier\",\"contradictory-modifiers\",\"unsupported-base\",\"empty-range\",\"unrepresentable-color\"]},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"input\",\"kind\",\"reason\",\"terms\"]}]},\"executionStatus\":{\"type\":\"string\",\"enum\":[\"applied\",\"suppressed\",\"executable\",\"recognized-but-unexecutable\",\"declined\"],\"description\":\"MaterialGraph's execution verdict for this provider-owned reading. Taxonomy adapters report 'applied' only when their category or criterion contributed to this query; an adapter-known ambiguous or conflicting reading is 'suppressed'. 'recognized-but-unexecutable' means no current mapping can apply it.\"},\"familyId\":{\"type\":\"string\"},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"identity\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"enum\":[\"domain\",\"core-colour\",\"paint\"]},\"label\":{\"type\":\"string\"},\"level\":{\"type\":\"string\",\"enum\":[\"family\",\"tone-band\",\"branch\",\"concept\"]},\"libraryId\":{\"type\":\"string\"},\"lifecycle\":{\"type\":\"object\",\"properties\":{\"introducedAt\":{\"type\":\"string\",\"minLength\":1},\"reviewedAt\":{\"type\":\"string\",\"minLength\":1},\"status\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"introducedAt\",\"status\"]},\"matchForm\":{\"type\":\"string\",\"enum\":[\"name\",\"code\",\"authoritative-term\"]},\"matchTarget\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"hasSelection\":{\"type\":\"boolean\",\"const\":false},\"type\":{\"type\":\"string\",\"const\":\"none\"}},\"required\":[\"hasSelection\",\"type\"]},{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"hasSelection\":{\"type\":\"boolean\",\"const\":true},\"label\":{\"type\":\"string\"},\"previewColors\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"type\":{\"type\":\"string\",\"const\":\"oklab\"}},\"required\":[\"L\",\"a\",\"b\",\"hasSelection\",\"label\",\"previewColors\",\"type\"]},{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"hasSelection\":{\"type\":\"boolean\",\"const\":true},\"label\":{\"type\":\"string\"},\"previewColors\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"range\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"numbe",
59
- "r\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"representative\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"}},\"required\":[\"hex\"]},\"type\":{\"type\":\"string\",\"const\":\"range\"}},\"required\":[\"L\",\"a\",\"b\",\"hasSelection\",\"label\",\"previewColors\",\"range\",\"representative\",\"type\"]}]},\"outcome\":{\"type\":\"string\",\"enum\":[\"equivalent\",\"ambiguous\",\"declined\"]},\"provenance\":{\"type\":\"object\",\"properties\":{\"basis\":{\"type\":\"string\",\"minLength\":1},\"snapshot\":{\"type\":\"string\",\"minLength\":1},\"source\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"basis\",\"source\"]},\"role\":{\"anyOf\":[{\"type\":\"string\",\"enum\":[\"primary\",\"secondary\"]},{\"type\":\"null\"}]}},\"required\":[\"authority\",\"executionStatus\",\"identity\",\"outcome\",\"role\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"authorities\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"enum\":[\"taxonomy\",\"colorscope\"]},\"digest\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1},\"version\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"revision\",\"version\"]}},\"canonical\":{\"type\":\"string\"},\"original\":{\"type\":\"string\"},\"rule\":{\"type\":\"string\",\"enum\":[\"exact\",\"plural-to-singular\",\"typo-to-canonical\"]}},\"required\":[\"authorities\",\"canonical\",\"original\",\"rule\"]},\"rule\":{\"type\":\"string\",\"enum\":[\"exact\",\"plural-to-singular\",\"typo-to-canonical\"]},\"span\":{\"type\":\"object\",\"properties\":{\"end\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"start\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"end\",\"start\"]}},\"required\":[\"canonical\",\"coverage\",\"original\",\"readings\",\"receipt\",\"rule\",\"span\"]}},\"original\":{\"type\":\"string\"},\"outcome\":{\"type\":\"string\",\"enum\":[\"resolved\",\"ambiguous\",\"declined\",\"partial\",\"unresolved\"]},\"unresolved\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"canonical\":{\"type\":\"string\"},\"coverage\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"original\":{\"type\":\"string\"},\"readings\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"aliasCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"authority\":{\"type\":\"string\",\"enum\":[\"taxonomy\",\"colorscope\"]},\"code\":{\"type\":\"string\"},\"collisionCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"colorResolution\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"confidence\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"input\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"const\":\"resolved\"},\"others\":{\"maxItems\":4,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"band\":{\"type\":\"string\",\"enum\":[\"inside\",\"near\",\"far\"]},\"family\":{\"type\":\"string\",\"enum\":[\"white\",\"cream\",\"gray\",\"black\",\"beige\",\"taupe\",\"brown\",\"red\",\"orange\",\"yellow\",\"green\",\"teal\",\"blue\",\"purple\",\"pink\"]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"band\",\"family\",\"hex\",\"id\",\"name\",\"range\"]}},\"principal\":{\"type\":\"object\",\"properties\":{\"band\":{\"type\":\"string\",\"enum\":[\"inside\",\"near\",\"far\"]},\"family\":{\"type\":",
60
- "\"string\",\"enum\":[\"white\",\"cream\",\"gray\",\"black\",\"beige\",\"taupe\",\"brown\",\"red\",\"orange\",\"yellow\",\"green\",\"teal\",\"blue\",\"purple\",\"pink\"]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"band\",\"family\",\"hex\",\"id\",\"name\",\"range\"]},\"source\":{\"type\":\"string\",\"enum\":[\"name\",\"family\",\"composed\",\"hex\",\"reference\",\"semantic\"]}},\"required\":[\"confidence\",\"input\",\"kind\",\"others\",\"principal\",\"source\"]},{\"type\":\"object\",\"properties\":{\"input\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"const\":\"unresolved\"},\"reason\":{\"type\":\"string\",\"enum\":[\"unknown-term\",\"ambiguous-modifier\",\"contradictory-modifiers\",\"unsupported-base\",\"empty-range\",\"unrepresentable-color\"]},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"input\",\"kind\",\"reason\",\"terms\"]}]},\"executionStatus\":{\"type\":\"string\",\"enum\":[\"applied\",\"suppressed\",\"executable\",\"recognized-but-unexecutable\",\"declined\"],\"description\":\"MaterialGraph's execution verdict for this provider-owned reading. Taxonomy adapters report 'applied' only when their category or criterion contributed to this query; an adapter-known ambiguous or conflicting reading is 'suppressed'. 'recognized-but-unexecutable' means no current mapping can apply it.\"},\"familyId\":{\"type\":\"string\"},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"identity\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"enum\":[\"domain\",\"core-colour\",\"paint\"]},\"label\":{\"type\":\"string\"},\"level\":{\"type\":\"string\",\"enum\":[\"family\",\"tone-band\",\"branch\",\"concept\"]},\"libraryId\":{\"type\":\"string\"},\"lifecycle\":{\"type\":\"object\",\"properties\":{\"introducedAt\":{\"type\":\"string\",\"minLength\":1},\"reviewedAt\":{\"type\":\"string\",\"minLength\":1},\"status\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"introducedAt\",\"status\"]},\"matchForm\":{\"type\":\"string\",\"enum\":[\"name\",\"code\",\"authoritative-term\"]},\"matchTarget\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"hasSelection\":{\"type\":\"boolean\",\"const\":false},\"type\":{\"type\":\"string\",\"const\":\"none\"}},\"required\":[\"hasSelection\",\"type\"]},{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"hasSelection\":{\"type\":\"boolean\",\"const\":true},\"label\":{\"type\":\"string\"},\"previewColors\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"type\":{\"type\":\"string\",\"const\":\"oklab\"}},\"required\":[\"L\",\"a\",\"b\",\"hasSelection\",\"label\",\"previewColors\",\"type\"]},{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"hasSelection\":{\"type\":\"boolean\",\"const\":true},\"label\":{\"type\":\"string\"},\"previewColors\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"range\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"representative\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"}},\"required\":[\"hex\"]},\"type\":{\"type\":\"string\",\"const\":\"range\"}},\"required\":[\"L\",\"a\",\"b\",\"hasSelection\",\"label\",\"previewColors\",\"range\",\"rep",
61
- "resentative\",\"type\"]}]},\"outcome\":{\"type\":\"string\",\"enum\":[\"equivalent\",\"ambiguous\",\"declined\"]},\"provenance\":{\"type\":\"object\",\"properties\":{\"basis\":{\"type\":\"string\",\"minLength\":1},\"snapshot\":{\"type\":\"string\",\"minLength\":1},\"source\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"basis\",\"source\"]},\"role\":{\"anyOf\":[{\"type\":\"string\",\"enum\":[\"primary\",\"secondary\"]},{\"type\":\"null\"}]}},\"required\":[\"authority\",\"executionStatus\",\"identity\",\"outcome\",\"role\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"authorities\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"enum\":[\"taxonomy\",\"colorscope\"]},\"digest\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1},\"version\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"revision\",\"version\"]}},\"canonical\":{\"type\":\"string\"},\"original\":{\"type\":\"string\"},\"rule\":{\"type\":\"string\",\"enum\":[\"exact\",\"plural-to-singular\",\"typo-to-canonical\"]}},\"required\":[\"authorities\",\"canonical\",\"original\",\"rule\"]},\"rule\":{\"type\":\"string\",\"enum\":[\"exact\",\"plural-to-singular\",\"typo-to-canonical\"]},\"span\":{\"type\":\"object\",\"properties\":{\"end\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"start\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"end\",\"start\"]}},\"required\":[\"canonical\",\"coverage\",\"original\",\"readings\",\"receipt\",\"rule\",\"span\"]}}},\"required\":[\"matches\",\"original\",\"outcome\",\"unresolved\"]},\"categoryScope\":{\"type\":\"object\",\"properties\":{\"ceiling\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"mechanism\":{\"type\":\"string\",\"enum\":[\"sql-predicate\",\"provider-filter\",\"allowlist\",\"prune\"]},\"source\":{\"type\":\"string\",\"enum\":[\"caller\",\"anchor\"]},\"specScanBounded\":{\"type\":\"boolean\"},\"variantCount\":{\"anyOf\":[{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},{\"type\":\"null\"}]}},\"required\":[\"ceiling\",\"mechanism\",\"source\",\"variantCount\"],\"additionalProperties\":{}},\"criteria\":{\"type\":\"object\",\"properties\":{\"applied\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"criterion\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id, e.g. \\\"primary_material\\\" or \\\"fire_rating\\\" — or the special id \\\"brand\\\", which filters on the brand RELATION (a join, carried by every variant) rather than on any attribute.\"},\"term\":{\"type\":\"string\",\"description\":\"Canonical term the attribute must equal, e.g. \\\"textile\\\". For \\\"brand\\\", a brand slug (\\\"kvadrat\\\") or display name (\\\"Kvadrat\\\"), case-insensitive — exactly the `value` a `brand` facet reports. An unrecognised brand is a 400 naming it, never an empty page.\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\",\"term\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id, or the special id \\\"brand\\\" for the brand relation.\"},\"terms\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Canonical terms, ANY ONE of which satisfies the filter — this is how OR is expressed. OR lives inside one entry; separate `filters[]` entries AND together. Used for ordinal scales, where a stricter class satisfies a looser one, and for a multi-select rail — `{attributeId:\\\"brand\\\", terms:[\\\"kvadrat\\\",\\\"rubelli\\\"]}` returns materials from either brand.\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"des",
62
- "cription\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\",\"terms\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"excludesTerm\":{\"type\":\"string\",\"minLength\":1},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}},\"whenUnstated\":{\"description\":\"What an UNKNOWN effective value does. \\\"drop\\\" (default) requires a known effective value — a variant that never states the attribute does not pass. \\\"pass\\\" admits it — a variant only fails by STATING the excluded term.\",\"type\":\"string\",\"enum\":[\"drop\",\"pass\"]}},\"required\":[\"attributeId\",\"excludesTerm\"]},{\"type\":\"object\",\"properties\":{\"asOf\":{\"description\":\"Reference date for EPD expiration, exclusive: the value must remain valid after this date.\",\"type\":\"string\",\"format\":\"date\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))$\"},\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id that must have an accepted value, e.g. \\\"sample_image_mm_per_px\\\".\"},\"hasValue\":{\"type\":\"boolean\",\"const\":true,\"description\":\"Require any accepted value for this attribute.\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\",\"hasValue\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id holding a NUMBER, e.g. \\\"light_reflectance_value\\\" or \\\"lead_time_days\\\".\"},\"max\":{\"description\":\"Inclusive upper bound. Omit for a floor-only range.\",\"type\":\"number\"},\"min\":{\"description\":\"Inclusive lower bound. Omit for a ceiling-only range.\",\"type\":\"number\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\"]}]},\"lane\":{\"type\":\"string\",\"enum\":[\"filter\",\"preference\"]},\"lexicalSignal\":{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"minLength\":1},\"canonical\":{\"type\":\"string\",\"minLength\":1},\"identity\":{\"type\":\"string\",\"minLength\":1},\"original\":{\"type\":\"string\",\"minLength\":1},\"relation\":{\"type\":\"string\",\"enum\":[\"equivalent\",\"broader-storage-term\"]},\"span\":{\"type\":\"object\",\"properties\":{\"end\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"start\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"end\",\"start\"]},\"storedTerm\":{\"typ",
63
- "e\":\"string\",\"minLength\":1}},\"required\":[\"attributeId\",\"canonical\",\"identity\",\"original\",\"relation\",\"span\",\"storedTerm\"]},\"source\":{\"type\":\"string\",\"enum\":[\"compiled\",\"taxonomy-adapter\"]},\"span\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"criterion\",\"lane\",\"source\",\"span\"]}},\"conflicts\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"minLength\":1},\"caller\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id, e.g. \\\"primary_material\\\" or \\\"fire_rating\\\" — or the special id \\\"brand\\\", which filters on the brand RELATION (a join, carried by every variant) rather than on any attribute.\"},\"term\":{\"type\":\"string\",\"description\":\"Canonical term the attribute must equal, e.g. \\\"textile\\\". For \\\"brand\\\", a brand slug (\\\"kvadrat\\\") or display name (\\\"Kvadrat\\\"), case-insensitive — exactly the `value` a `brand` facet reports. An unrecognised brand is a 400 naming it, never an empty page.\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\",\"term\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id, or the special id \\\"brand\\\" for the brand relation.\"},\"terms\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Canonical terms, ANY ONE of which satisfies the filter — this is how OR is expressed. OR lives inside one entry; separate `filters[]` entries AND together. Used for ordinal scales, where a stricter class satisfies a looser one, and for a multi-select rail — `{attributeId:\\\"brand\\\", terms:[\\\"kvadrat\\\",\\\"rubelli\\\"]}` returns materials from either brand.\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\",\"terms\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"excludesTerm\":{\"type\":\"string\",\"minLength\":1},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}},\"whenUnstated\":{\"description\":\"What an UNKNOWN effective value does. \\\"drop\\\" (default) requires a known effective value — a variant that never states the attribute does not pass. \\\"pass\\\" admits it — a variant only fails by STATING the excluded term.\",\"type\":\"string\",\"enum\":[\"drop\",\"pass\"]}},\"required\":[\"attributeId\",\"excludesTerm\"]},{\"type\":\"object\",\"properties\":{\"asOf\":{\"description\":\"Reference date for EPD expiration, exclusive: the value must remain valid after this date.\",\"type\":\"string\",\"format\":\"date\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]",
64
- "|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))$\"},\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id that must have an accepted value, e.g. \\\"sample_image_mm_per_px\\\".\"},\"hasValue\":{\"type\":\"boolean\",\"const\":true,\"description\":\"Require any accepted value for this attribute.\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\",\"hasValue\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id holding a NUMBER, e.g. \\\"light_reflectance_value\\\" or \\\"lead_time_days\\\".\"},\"max\":{\"description\":\"Inclusive upper bound. Omit for a floor-only range.\",\"type\":\"number\"},\"min\":{\"description\":\"Inclusive lower bound. Omit for a ceiling-only range.\",\"type\":\"number\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\"]}]},\"compiled\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id, e.g. \\\"primary_material\\\" or \\\"fire_rating\\\" — or the special id \\\"brand\\\", which filters on the brand RELATION (a join, carried by every variant) rather than on any attribute.\"},\"term\":{\"type\":\"string\",\"description\":\"Canonical term the attribute must equal, e.g. \\\"textile\\\". For \\\"brand\\\", a brand slug (\\\"kvadrat\\\") or display name (\\\"Kvadrat\\\"), case-insensitive — exactly the `value` a `brand` facet reports. An unrecognised brand is a 400 naming it, never an empty page.\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\",\"term\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id, or the special id \\\"brand\\\" for the brand relation.\"},\"terms\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Canonical terms, ANY ONE of which satisfies the filter — this is how OR is expressed. OR lives inside one entry; separate `filters[]` entries AND together. Used for ordinal scales, where a stricter class satisfies a looser one, and for a multi-select rail — `{attributeId:\\\"brand\\\", terms:[\\\"kvadrat\\\",\\\"rubelli\\\"]}` returns materials from either brand.\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require a",
65
- "n EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\",\"terms\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"excludesTerm\":{\"type\":\"string\",\"minLength\":1},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}},\"whenUnstated\":{\"description\":\"What an UNKNOWN effective value does. \\\"drop\\\" (default) requires a known effective value — a variant that never states the attribute does not pass. \\\"pass\\\" admits it — a variant only fails by STATING the excluded term.\",\"type\":\"string\",\"enum\":[\"drop\",\"pass\"]}},\"required\":[\"attributeId\",\"excludesTerm\"]},{\"type\":\"object\",\"properties\":{\"asOf\":{\"description\":\"Reference date for EPD expiration, exclusive: the value must remain valid after this date.\",\"type\":\"string\",\"format\":\"date\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))$\"},\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id that must have an accepted value, e.g. \\\"sample_image_mm_per_px\\\".\"},\"hasValue\":{\"type\":\"boolean\",\"const\":true,\"description\":\"Require any accepted value for this attribute.\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\",\"hasValue\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id holding a NUMBER, e.g. \\\"light_reflectance_value\\\" or \\\"lead_time_days\\\".\"},\"max\":{\"description\":\"Inclusive upper bound. Omit for a floor-only range.\",\"type\":\"number\"},\"min\":{\"description\":\"Inclusive lower bound. Omit for a ceiling-only range.\",\"type\":\"number\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\"]}]},\"reason\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"attributeId\",\"caller\",\"compiled\",\"reason\"]}},\"exclusions\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"criterion\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id, e.g. \\\"primary_material\\\" or \\\"fire_rating\\\" — or the special id \\\"brand\\\", which filters on the brand RELATION (a join, carried by every variant) rather than on any attribute.\"},\"term\":{\"type\":\"string\",\"description\":\"Canonical term the attribute must equal, e.g. \\\"textile\\\". For \\\"brand\\\", a brand slug (\\\"kvadrat\\\") or display name (\\\"Kvadrat\\\"), case-insensitive — exactly the `value` a `brand` facet reports. An unrecogn",
66
- "ised brand is a 400 naming it, never an empty page.\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\",\"term\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id, or the special id \\\"brand\\\" for the brand relation.\"},\"terms\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Canonical terms, ANY ONE of which satisfies the filter — this is how OR is expressed. OR lives inside one entry; separate `filters[]` entries AND together. Used for ordinal scales, where a stricter class satisfies a looser one, and for a multi-select rail — `{attributeId:\\\"brand\\\", terms:[\\\"kvadrat\\\",\\\"rubelli\\\"]}` returns materials from either brand.\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\",\"terms\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"excludesTerm\":{\"type\":\"string\",\"minLength\":1},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}},\"whenUnstated\":{\"description\":\"What an UNKNOWN effective value does. \\\"drop\\\" (default) requires a known effective value — a variant that never states the attribute does not pass. \\\"pass\\\" admits it — a variant only fails by STATING the excluded term.\",\"type\":\"string\",\"enum\":[\"drop\",\"pass\"]}},\"required\":[\"attributeId\",\"excludesTerm\"]},{\"type\":\"object\",\"properties\":{\"asOf\":{\"description\":\"Reference date for EPD expiration, exclusive: the value must remain valid after this date.\",\"type\":\"string\",\"format\":\"date\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))$\"},\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id that must have an accepted value, e.g. \\\"sample_image_mm_per_px\\\".\"},\"hasValue\":{\"type\":\"boolean\",\"const\":true,\"description\":\"Require any accepted value for this attribute.\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\",\"hasValue\"]},{\"ty",
67
- "pe\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id holding a NUMBER, e.g. \\\"light_reflectance_value\\\" or \\\"lead_time_days\\\".\"},\"max\":{\"description\":\"Inclusive upper bound. Omit for a floor-only range.\",\"type\":\"number\"},\"min\":{\"description\":\"Inclusive lower bound. Omit for a ceiling-only range.\",\"type\":\"number\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\"]}]},\"execution\":{\"type\":\"string\",\"const\":\"blocked-positive-only-contract\"},\"lane\":{\"type\":\"string\",\"enum\":[\"hard\",\"soft\"]},\"missingValuePolicy\":{\"type\":\"string\",\"const\":\"retain-unknown\"},\"span\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"criterion\",\"execution\",\"lane\",\"missingValuePolicy\",\"span\"]}},\"preferences\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id, e.g. \\\"primary_material\\\" or \\\"fire_rating\\\" — or the special id \\\"brand\\\", which filters on the brand RELATION (a join, carried by every variant) rather than on any attribute.\"},\"term\":{\"type\":\"string\",\"description\":\"Canonical term the attribute must equal, e.g. \\\"textile\\\". For \\\"brand\\\", a brand slug (\\\"kvadrat\\\") or display name (\\\"Kvadrat\\\"), case-insensitive — exactly the `value` a `brand` facet reports. An unrecognised brand is a 400 naming it, never an empty page.\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\",\"term\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id, or the special id \\\"brand\\\" for the brand relation.\"},\"terms\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Canonical terms, ANY ONE of which satisfies the filter — this is how OR is expressed. OR lives inside one entry; separate `filters[]` entries AND together. Used for ordinal scales, where a stricter class satisfies a looser one, and for a multi-select rail — `{attributeId:\\\"brand\\\", terms:[\\\"kvadrat\\\",\\\"rubelli\\\"]}` returns materials from either brand.\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\",\"terms\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"excludesTerm\":{\"type\":\"string\",\"minLength\":1},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the val",
68
- "ue must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}},\"whenUnstated\":{\"description\":\"What an UNKNOWN effective value does. \\\"drop\\\" (default) requires a known effective value — a variant that never states the attribute does not pass. \\\"pass\\\" admits it — a variant only fails by STATING the excluded term.\",\"type\":\"string\",\"enum\":[\"drop\",\"pass\"]}},\"required\":[\"attributeId\",\"excludesTerm\"]},{\"type\":\"object\",\"properties\":{\"asOf\":{\"description\":\"Reference date for EPD expiration, exclusive: the value must remain valid after this date.\",\"type\":\"string\",\"format\":\"date\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))$\"},\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id that must have an accepted value, e.g. \\\"sample_image_mm_per_px\\\".\"},\"hasValue\":{\"type\":\"boolean\",\"const\":true,\"description\":\"Require any accepted value for this attribute.\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\",\"hasValue\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"description\":\"Canonical attribute id holding a NUMBER, e.g. \\\"light_reflectance_value\\\" or \\\"lead_time_days\\\".\"},\"max\":{\"description\":\"Inclusive upper bound. Omit for a floor-only range.\",\"type\":\"number\"},\"min\":{\"description\":\"Inclusive lower bound. Omit for a ceiling-only range.\",\"type\":\"number\"},\"trust\":{\"type\":\"object\",\"properties\":{\"meetsRequirement\":{\"description\":\"Require the value to clear the attribute's REGISTRY confidence floor. `minConfidence` wins; does NOT constrain basis; no requirement is met vacuously.\",\"type\":\"boolean\",\"const\":true},\"minConfidence\":{\"description\":\"Explicit confidence floor ∈ [0,1] the value must clear.\",\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"sourceBasis\":{\"description\":\"Require an EXACT source basis (closed enum: catalog_feed, declared, derived).\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]}}}},\"required\":[\"attributeId\"]}]}},\"residualText\":{\"type\":[\"string\",\"null\"]},\"unresolved\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\",\"enum\":[\"missing-searchable-attribute\",\"missing-dimension-pair-contract\",\"missing-explicit-comparator\",\"negative-criterion-contract-blocked\",\"registry-contract-drift\",\"unsupported-numeric-format\",\"unsupported-unit\",\"unsupported-strict-comparator\"]},\"reason\":{\"type\":\"string\",\"minLength\":1},\"span\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"code\",\"reason\",\"span\"]}}},\"required\":[\"applied\",\"conflicts\",\"exclusions\",\"preferences\",\"residualText\",\"unresolved\"]},\"mode\":{\"type\":\"string\",\"enum\":[\"image\",\"colour\",\"text\",\"lexical\",\"entity-browse\",\"attribute\"]},\"normalisedQuery\":{\"type\":\"string\"},\"phraseReading\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"outcome\":{\"type\":\"string\",\"const\":\"skipped\"},\"reason\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"outcome\",\"reason\"]},{\"type\":\"object\",\"properties\":{\"calls\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"elapsedMs\":{\"type\":\"number\",\"minimum\":0},\"leftAsText\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"outcome\":{\"type\":\"string\",\"const\":\"read\"},\"reader\":{\"type\":\"string\",\"enum\":[\"jev\",\"second\"]},\"rows\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"applied\":{\"type\":\"boolean\"},\"attributeId\":{\"type\":\"str",
69
- "ing\",\"minLength\":1},\"confidence\":{\"type\":\"number\"},\"kind\":{\"type\":\"string\",\"enum\":[\"want\",\"avoid\"]},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"applied\",\"attributeId\",\"confidence\",\"kind\",\"values\"]}}},\"required\":[\"calls\",\"elapsedMs\",\"leftAsText\",\"outcome\",\"reader\",\"rows\"]}]},\"productType\":{\"type\":\"object\",\"properties\":{\"candidates\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"displayName\":{\"type\":\"string\",\"minLength\":1},\"productTypeId\":{\"type\":\"string\",\"minLength\":1},\"similarity\":{\"type\":\"number\"}},\"required\":[\"displayName\",\"productTypeId\",\"similarity\"]}},\"displayName\":{\"type\":[\"string\",\"null\"]},\"durationMs\":{\"type\":\"number\",\"minimum\":0},\"gate\":{\"type\":\"string\",\"enum\":[\"hard\",\"constrain\",\"none\"]},\"groupKey\":{\"type\":[\"string\",\"null\"]},\"kind\":{\"type\":\"string\",\"enum\":[\"leaf\",\"group\",\"vector\",\"ambiguous\",\"none\"]},\"margin\":{\"type\":[\"number\",\"null\"]},\"pass\":{\"type\":\"string\",\"enum\":[\"taxonomy\",\"synonym\",\"display-name\",\"group\",\"head-noun\",\"vector\",\"none\"]},\"productTypeId\":{\"type\":[\"string\",\"null\"]},\"productTypeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"reason\":{\"type\":\"string\",\"minLength\":1},\"registryVersion\":{\"type\":\"string\",\"minLength\":1},\"residualText\":{\"type\":\"string\"},\"similarity\":{\"type\":[\"number\",\"null\"]},\"vectorPassRan\":{\"type\":\"boolean\"}},\"required\":[\"candidates\",\"displayName\",\"durationMs\",\"gate\",\"groupKey\",\"kind\",\"margin\",\"pass\",\"productTypeId\",\"productTypeIds\",\"reason\",\"registryVersion\",\"residualText\",\"similarity\",\"vectorPassRan\"]},\"rawQuery\":{\"type\":\"string\"},\"residualText\":{\"type\":\"string\"},\"senses\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"confidence\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"effect\":{\"type\":\"string\",\"enum\":[\"restrict\",\"prioritize\",\"rerank\",\"offer\",\"none\"]},\"entity\":{\"type\":\"object\",\"properties\":{\"brandSlug\":{\"type\":\"string\"},\"hex\":{\"type\":\"string\"},\"materialBankId\":{\"type\":\"string\"},\"paintCode\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"productTypeId\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"}}},\"evidence\":{\"type\":\"object\",\"properties\":{\"matchedText\":{\"type\":\"string\",\"minLength\":1},\"source\":{\"type\":\"string\",\"minLength\":1},\"span\":{\"type\":\"object\",\"properties\":{\"end\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"start\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"end\",\"start\"]}},\"required\":[\"matchedText\",\"source\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"enum\":[\"brand\",\"product\",\"paint_identity\",\"category\",\"material\",\"colour\",\"attribute\",\"attribute_value\",\"certification\"]},\"label\":{\"type\":\"string\",\"minLength\":1},\"outcome\":{\"type\":\"string\",\"enum\":[\"applied\",\"ambiguous\",\"recognized\",\"refused\"]},\"reason\":{\"type\":\"string\"}},\"required\":[\"confidence\",\"effect\",\"evidence\",\"id\",\"kind\",\"label\",\"outcome\"]}},\"specAllowlist\":{\"type\":\"object\",\"properties\":{\"emptyMeansScarcity\":{\"type\":\"boolean\"},\"limit\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"outcome\":{\"type\":\"string\",\"enum\":[\"corpus-scarcity\",\"retrieval-miss\",\"unknown\"]},\"retrieved\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"returned\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"truncated\":{\"type\":\"boolean\"}},\"required\":[\"emptyMeansScarcity\",\"limit\",\"returned\",\"truncated\"]},\"status\":{\"type\":\"string\",\"enum\":[\"resolved\",\"ambiguous\",\"partial\",\"unresolved\"]},\"unsatisfiableNarrowing\":{\"type\":\"object\",\"properties\":{\"displayName\":{\"type\":\"string\",\"minLength\":1},\"evidence\":{\"type\":\"string\",\"enum\":[\"zero-accepted-variants\"]},\"gate\":{\"type\":\"string\",\"enum\":[\"hard\"]},\"narrowing\":{\"type\":\"string\",\"enum\":[\"product-type\"]},\"pass\":{\"type\":\"string\",\"minLength\":1},\"productTypeId\":{\"type\":\"string\",\"minLength\":1},\"productTypeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}},\"relaxedDisplayName\":{\"type\":\"string\",\"minLength\":1},\"relaxedProductTypeId\":{\"type\":\"string\",\"minLength\":1},\"relaxedProductTypeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}},\"relaxedTo\":{\"type\":\"string\",\"enum\":[\"head-noun\",\"none\"]}},\"required\":[\"displayName\",\"evidence\",\"gate\",\"narrowing\",\"pass\",",
70
- "\"productTypeId\",\"productTypeIds\",\"relaxedTo\"]},\"version\":{\"type\":\"string\",\"const\":\"1\"}},\"required\":[\"mode\",\"normalisedQuery\",\"rawQuery\",\"residualText\",\"senses\",\"status\",\"version\"]}},\"required\":[\"count\",\"matches\",\"query\"]},\"CatalogDocumentList\":{\"type\":\"object\",\"properties\":{\"catalogs\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"title\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"document\"},\"productStatus\":{\"type\":\"string\",\"enum\":[\"partial\",\"not_processed\"]},\"title\":{\"type\":\"string\",\"minLength\":1},\"availability\":{\"type\":\"string\",\"const\":\"available\"},\"document\":{\"type\":\"object\",\"properties\":{\"contentScope\":{\"type\":\"string\",\"enum\":[\"full_document\",\"cover_only\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"application/pdf\"},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"contentScope\",\"id\",\"mediaType\",\"pageCount\"]},\"receipt\":{\"type\":\"object\",\"properties\":{\"extraction\":{\"type\":\"object\",\"properties\":{\"references\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"status\":{\"type\":\"string\",\"enum\":[\"partial\",\"not_processed\"]}},\"required\":[\"references\",\"status\"]},\"failures\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1},\"stage\":{\"type\":\"string\",\"enum\":[\"source\",\"render\",\"extraction\"]}},\"required\":[\"count\",\"reason\",\"stage\"]}},\"pages\":{\"type\":\"object\",\"properties\":{\"documentPositionBase\":{\"type\":\"number\",\"const\":1},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"documentPositionBase\",\"pageCount\"]},\"render\":{\"type\":\"object\",\"properties\":{\"failedPages\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\",\"reason\"]}},\"renderedPages\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"status\":{\"type\":\"string\",\"enum\":[\"complete\",\"partial\",\"not_recorded\"]}},\"required\":[\"failedPages\",\"renderedPages\",\"status\"]},\"source\":{\"type\":\"object\",\"properties\":{\"checksum\":{\"type\":\"object\",\"properties\":{\"algorithm\":{\"type\":\"string\",\"const\":\"sha256\"},\"value\":{\"type\":\"string\",\"pattern\":\"^[a-f0-9]{64}$\"}},\"required\":[\"algorithm\",\"value\"]},\"retainedUrl\":{\"type\":\"string\",\"format\":\"uri\"},\"sourceBasis\":{\"type\":\"string\",\"const\":\"brand_supplied\"},\"status\":{\"type\":\"string\",\"const\":\"retained\"}},\"required\":[\"checksum\",\"retainedUrl\",\"sourceBasis\",\"status\"]}},\"required\":[\"extraction\",\"failures\",\"pages\",\"render\",\"source\"]}},\"required\":[\"brand\",\"edition\",\"id\",\"kind\",\"productStatus\",\"title\",\"availability\",\"document\",\"receipt\"]},{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"title\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"document\"},\"productStatus\":{\"type\":\"string\",\"const\":\"not_processed\"},\"title\":{\"type\":\"string\",\"minLength\":1},\"availability\":{\"type\":\"string\",\"const\":\"source_unavailable\"},\"document\":{\"type\":\"null\"},\"receipt\":{\"type\":\"object\",\"properties\":{\"extraction\":{\"type\":\"object\",\"properties\":{\"references\":{\"type\":\"number\",\"const\":0},\"status\":{\"type\":\"string\",\"const\":\"blocked_source_unavailable\"}},\"required\":[\"references\",\"status\"]},\"failures\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"exclusiveMinimum\":0",
71
- ",\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1},\"stage\":{\"type\":\"string\",\"enum\":[\"source\",\"render\",\"extraction\"]}},\"required\":[\"count\",\"reason\",\"stage\"]}},\"pages\":{\"type\":\"object\",\"properties\":{\"documentPositionBase\":{\"type\":\"number\",\"const\":1},\"pageCount\":{\"type\":\"null\"}},\"required\":[\"documentPositionBase\",\"pageCount\"]},\"render\":{\"type\":\"object\",\"properties\":{\"failedPages\":{\"minItems\":0,\"maxItems\":0,\"type\":\"array\",\"items\":{\"not\":{}}},\"renderedPages\":{\"type\":\"number\",\"const\":0},\"status\":{\"type\":\"string\",\"const\":\"blocked_source_unavailable\"}},\"required\":[\"failedPages\",\"renderedPages\",\"status\"]},\"source\":{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"const\":\"retained_source_not_found\"},\"status\":{\"type\":\"string\",\"const\":\"unavailable\"}},\"required\":[\"reason\",\"status\"]}},\"required\":[\"extraction\",\"failures\",\"pages\",\"render\",\"source\"]}},\"required\":[\"brand\",\"edition\",\"id\",\"kind\",\"productStatus\",\"title\",\"availability\",\"document\",\"receipt\"]}]}},\"source\":{\"type\":\"string\",\"const\":\"verified-source-material-registry\"}},\"required\":[\"catalogs\",\"source\"]},\"CatalogPageListResult\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"catalog\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"title\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"document\"},\"productStatus\":{\"type\":\"string\",\"enum\":[\"partial\",\"not_processed\"]},\"title\":{\"type\":\"string\",\"minLength\":1},\"availability\":{\"type\":\"string\",\"const\":\"available\"},\"document\":{\"type\":\"object\",\"properties\":{\"contentScope\":{\"type\":\"string\",\"enum\":[\"full_document\",\"cover_only\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"application/pdf\"},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"contentScope\",\"id\",\"mediaType\",\"pageCount\"]},\"receipt\":{\"type\":\"object\",\"properties\":{\"extraction\":{\"type\":\"object\",\"properties\":{\"references\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"status\":{\"type\":\"string\",\"enum\":[\"partial\",\"not_processed\"]}},\"required\":[\"references\",\"status\"]},\"failures\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1},\"stage\":{\"type\":\"string\",\"enum\":[\"source\",\"render\",\"extraction\"]}},\"required\":[\"count\",\"reason\",\"stage\"]}},\"pages\":{\"type\":\"object\",\"properties\":{\"documentPositionBase\":{\"type\":\"number\",\"const\":1},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"documentPositionBase\",\"pageCount\"]},\"render\":{\"type\":\"object\",\"properties\":{\"failedPages\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\",\"reason\"]}},\"renderedPages\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"status\":{\"type\":\"string\",\"enum\":[\"complete\",\"partial\",\"not_recorded\"]}},\"required\":[\"failedPages\",\"renderedPages\",\"status\"]},\"source\":{\"type\":\"object\",\"properties\":{\"checksum\":{\"type\":\"object\",\"properties\":{\"algorithm\":{\"type\":\"string\",\"const\":\"sha256\"},\"value\":{\"type\":\"string\",\"pattern\":\"^[a-f0-9]{64}$\"}},\"required\":[\"algorithm\",\"value\"]},\"retainedUrl\":{\"type\":\"string\",\"format\":\"uri\"},\"sourceBasis\":{\"type\":\"string\",\"const\":\"brand_supplied\"},\"status\":{\"type\":\"string\",\"const\":\"retained\"}},\"required\":[\"checksum\",\"retainedUrl\",\"sourceBasis\",\"status\"]}},\"required\":[\"extraction\",\"failures\",\"pages\",\"render\",\"source\"]}},\"required\":[\"brand\",\"edition\",\"id\",\"kind\",\"productStatus\",\"title\",\"availability\",\"document\",\"receipt\"]},\"pages\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"catalogId\":{\"type\":\"string\",\"minLength\":1},\"documentId\"",
72
- ":{\"type\":\"string\",\"minLength\":1},\"editionId\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"original\":{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"documentId\",\"documentPage\"]},\"page\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"printedPageLabel\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\"]},\"representation\":{\"type\":\"object\",\"properties\":{\"artifact\":{\"type\":\"object\",\"properties\":{\"bucket\":{\"type\":\"string\",\"const\":\"materialgraph\"},\"key\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"image/webp\"},\"url\":{\"type\":\"string\",\"format\":\"uri\"}},\"required\":[\"bucket\",\"key\",\"mediaType\",\"url\"]},\"status\":{\"type\":\"string\",\"const\":\"available\"}},\"required\":[\"artifact\",\"status\"]}},\"required\":[\"catalogId\",\"documentId\",\"editionId\",\"id\",\"original\",\"page\",\"representation\"]},{\"type\":\"object\",\"properties\":{\"catalogId\":{\"type\":\"string\",\"minLength\":1},\"documentId\":{\"type\":\"string\",\"minLength\":1},\"editionId\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"original\":{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"documentId\",\"documentPage\"]},\"page\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"printedPageLabel\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\"]},\"representation\":{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"const\":\"retained_representation_not_found\"},\"requiredArtifact\":{\"type\":\"object\",\"properties\":{\"mediaType\":{\"type\":\"string\",\"const\":\"image/webp\"},\"version\":{\"type\":\"string\",\"const\":\"catalogue-page-webp-v1\"}},\"required\":[\"mediaType\",\"version\"]},\"status\":{\"type\":\"string\",\"const\":\"unavailable\"}},\"required\":[\"reason\",\"requiredArtifact\",\"status\"]}},\"required\":[\"catalogId\",\"documentId\",\"editionId\",\"id\",\"original\",\"page\",\"representation\"]}]}},\"pagination\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"hasMore\":{\"type\":\"boolean\"},\"limit\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":100},\"offset\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"total\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"count\",\"hasMore\",\"limit\",\"offset\",\"total\"]},\"representationCoverage\":{\"type\":\"object\",\"properties\":{\"available\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"failuresByReason\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"const\":\"retained_representation_not_found\"}},\"required\":[\"count\",\"reason\"]}},\"total\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"unavailable\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"available\",\"failuresByReason\",\"total\",\"unavailable\"]},\"status\":{\"type\":\"string\",\"const\":\"available\"}},\"required\":[\"catalog\",\"pages\",\"pagination\",\"representationCoverage\",\"status\"]},{\"type\":\"object\",\"properties\":{\"catalog\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"title\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"document\"},\"productStatus\":{\"type\":\"string\",\"const\":\"not_processed\"},\"title\":{\"type\":\"string\",\"minLength\":1},\"availability\":{\"type\":\"string\",\"const\":\"source_unavailable\"},\"document\":{\"type\":\"null\"},\"receipt\":{\"type\":\"object\",\"properties\":{\"extraction\":{\"type\":\"object\",\"properties\":{\"references\":{\"type\":\"number\",\"const\":0},\"status\":{\"type\":\"string\",\"const\":\"blocked_s",
73
- "ource_unavailable\"}},\"required\":[\"references\",\"status\"]},\"failures\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1},\"stage\":{\"type\":\"string\",\"enum\":[\"source\",\"render\",\"extraction\"]}},\"required\":[\"count\",\"reason\",\"stage\"]}},\"pages\":{\"type\":\"object\",\"properties\":{\"documentPositionBase\":{\"type\":\"number\",\"const\":1},\"pageCount\":{\"type\":\"null\"}},\"required\":[\"documentPositionBase\",\"pageCount\"]},\"render\":{\"type\":\"object\",\"properties\":{\"failedPages\":{\"minItems\":0,\"maxItems\":0,\"type\":\"array\",\"items\":{\"not\":{}}},\"renderedPages\":{\"type\":\"number\",\"const\":0},\"status\":{\"type\":\"string\",\"const\":\"blocked_source_unavailable\"}},\"required\":[\"failedPages\",\"renderedPages\",\"status\"]},\"source\":{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"const\":\"retained_source_not_found\"},\"status\":{\"type\":\"string\",\"const\":\"unavailable\"}},\"required\":[\"reason\",\"status\"]}},\"required\":[\"extraction\",\"failures\",\"pages\",\"render\",\"source\"]}},\"required\":[\"brand\",\"edition\",\"id\",\"kind\",\"productStatus\",\"title\",\"availability\",\"document\",\"receipt\"]},\"reason\":{\"type\":\"string\",\"const\":\"retained_source_not_found\"},\"status\":{\"type\":\"string\",\"const\":\"source_unavailable\"}},\"required\":[\"catalog\",\"reason\",\"status\"]}]},\"CatalogProductReferenceReadResult\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"catalog\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"title\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"document\"},\"productStatus\":{\"type\":\"string\",\"enum\":[\"partial\",\"not_processed\"]},\"title\":{\"type\":\"string\",\"minLength\":1},\"availability\":{\"type\":\"string\",\"const\":\"available\"},\"document\":{\"type\":\"object\",\"properties\":{\"contentScope\":{\"type\":\"string\",\"enum\":[\"full_document\",\"cover_only\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"application/pdf\"},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"contentScope\",\"id\",\"mediaType\",\"pageCount\"]},\"receipt\":{\"type\":\"object\",\"properties\":{\"extraction\":{\"type\":\"object\",\"properties\":{\"references\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"status\":{\"type\":\"string\",\"enum\":[\"partial\",\"not_processed\"]}},\"required\":[\"references\",\"status\"]},\"failures\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1},\"stage\":{\"type\":\"string\",\"enum\":[\"source\",\"render\",\"extraction\"]}},\"required\":[\"count\",\"reason\",\"stage\"]}},\"pages\":{\"type\":\"object\",\"properties\":{\"documentPositionBase\":{\"type\":\"number\",\"const\":1},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"documentPositionBase\",\"pageCount\"]},\"render\":{\"type\":\"object\",\"properties\":{\"failedPages\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\",\"reason\"]}},\"renderedPages\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"status\":{\"type\":\"string\",\"enum\":[\"complete\",\"partial\",\"not_recorded\"]}},\"required\":[\"failedPages\",\"renderedPages\",\"status\"]},\"source\":{\"type\":\"object\",\"properties\":{\"checksum\":{\"type\":\"object\",\"properties\":{\"algorithm\":{\"type\":\"string\",\"const\":\"sha256\"},\"value\":{\"type\":\"string\",\"pattern\":\"^[a-f0-9]{64}$\"}},\"required\":[\"algorithm\",\"value\"]},\"retainedUrl\":{\"type\":\"string\",\"format\":\"uri\"},\"sourceBasis\":{\"type\":\"string\",\"const\":\"brand_supplied\"},\"status\":{\"type\":\"string\",\"const\":\"retained\"}},\"required\":[\"checksum\",\"retainedUrl\",\"sourceBasis\",\"status\"]}},\"required\":[\"extraction\",\"failures\",\"pages\",\"rend",
74
- "er\",\"source\"]}},\"required\":[\"brand\",\"edition\",\"id\",\"kind\",\"productStatus\",\"title\",\"availability\",\"document\",\"receipt\"]},\"coverage\":{\"type\":\"object\",\"properties\":{\"documentPages\":{\"type\":\"object\",\"properties\":{\"total\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"withVerifiedReferences\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"total\",\"withVerifiedReferences\"]},\"pagesWithReferences\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"precision\":{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"const\":\"labelled_denominator_not_recorded\"},\"status\":{\"type\":\"string\",\"const\":\"not_measured\"}},\"required\":[\"reason\",\"status\"]},\"productCoverage\":{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"const\":\"source_product_denominator_not_recorded\"},\"status\":{\"type\":\"string\",\"const\":\"not_measured\"}},\"required\":[\"reason\",\"status\"]},\"references\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"unmatched\":{\"type\":\"object\",\"properties\":{\"reasons\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"const\":\"unmatched_source_products_not_recorded\"}},\"status\":{\"type\":\"string\",\"const\":\"not_measured\"}},\"required\":[\"reasons\",\"status\"]}},\"required\":[\"documentPages\",\"pagesWithReferences\",\"precision\",\"productCoverage\",\"references\",\"unmatched\"]},\"references\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"anchor\":{\"type\":\"object\",\"properties\":{\"coordinateSpace\":{\"type\":\"string\",\"const\":\"normalized_0_1000\"},\"height\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"width\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"x\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"y\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"printed_code\"}},\"required\":[\"coordinateSpace\",\"height\",\"width\",\"x\",\"y\",\"kind\"]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"catalogue\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"title\"]},\"document\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"application/pdf\"}},\"required\":[\"id\",\"mediaType\"]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\"]},\"isPrimary\":{\"type\":\"boolean\"},\"page\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"printedPageLabel\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\"]},\"productRegion\":{\"type\":\"object\",\"properties\":{\"coordinateSpace\":{\"type\":\"string\",\"const\":\"normalized_0_1000\"},\"height\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"width\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"x\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"y\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"kind\":{\"type\":\"string\",\"const\":\"product_region\"},\"review\":{\"type\":\"object\",\"properties\":{\"approvedBy\":{\"type\":\"string\",\"minLength\":1},\"confidence\":{\"type\":\"object\",\"properties\":{\"evidenceBasis\":{\"type\":\"string\",\"enum\":[\"human_visual_review\",\"model_assisted_visual_review\"]},\"level\":{\"type\":\"string\",\"const\":\"reviewed\"}},\"required\":[\"evidenceBasis\",\"level\"]},\"method\":{\"type\":\"string\",\"enum\":[\"human\",\"model_assisted\"]},\"model\":{\"type\":\"string\",\"minLength\":1},\"reviewedAt\":{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"}},\"required\":[\"approvedBy\",\"confidence\",\"method\",\"reviewedAt\"]}},\"required\":[\"coordinateSpace\",\"height\",\"width",
75
- "\",\"x\",\"y\",\"kind\",\"review\"]},\"source\":{\"type\":\"object\",\"properties\":{\"brandItemCode\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"brandItemCode\"]},\"status\":{\"type\":\"string\",\"const\":\"verified\"},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"anchor\",\"brand\",\"catalogue\",\"document\",\"edition\",\"isPrimary\",\"page\",\"source\",\"status\",\"variantId\"]}},\"source\":{\"type\":\"string\",\"const\":\"verified-source-material-registry\"},\"status\":{\"type\":\"string\",\"const\":\"available\"}},\"required\":[\"catalog\",\"coverage\",\"references\",\"source\",\"status\"]},{\"type\":\"object\",\"properties\":{\"catalog\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"title\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"document\"},\"productStatus\":{\"type\":\"string\",\"const\":\"not_processed\"},\"title\":{\"type\":\"string\",\"minLength\":1},\"availability\":{\"type\":\"string\",\"const\":\"source_unavailable\"},\"document\":{\"type\":\"null\"},\"receipt\":{\"type\":\"object\",\"properties\":{\"extraction\":{\"type\":\"object\",\"properties\":{\"references\":{\"type\":\"number\",\"const\":0},\"status\":{\"type\":\"string\",\"const\":\"blocked_source_unavailable\"}},\"required\":[\"references\",\"status\"]},\"failures\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1},\"stage\":{\"type\":\"string\",\"enum\":[\"source\",\"render\",\"extraction\"]}},\"required\":[\"count\",\"reason\",\"stage\"]}},\"pages\":{\"type\":\"object\",\"properties\":{\"documentPositionBase\":{\"type\":\"number\",\"const\":1},\"pageCount\":{\"type\":\"null\"}},\"required\":[\"documentPositionBase\",\"pageCount\"]},\"render\":{\"type\":\"object\",\"properties\":{\"failedPages\":{\"minItems\":0,\"maxItems\":0,\"type\":\"array\",\"items\":{\"not\":{}}},\"renderedPages\":{\"type\":\"number\",\"const\":0},\"status\":{\"type\":\"string\",\"const\":\"blocked_source_unavailable\"}},\"required\":[\"failedPages\",\"renderedPages\",\"status\"]},\"source\":{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"const\":\"retained_source_not_found\"},\"status\":{\"type\":\"string\",\"const\":\"unavailable\"}},\"required\":[\"reason\",\"status\"]}},\"required\":[\"extraction\",\"failures\",\"pages\",\"render\",\"source\"]}},\"required\":[\"brand\",\"edition\",\"id\",\"kind\",\"productStatus\",\"title\",\"availability\",\"document\",\"receipt\"]},\"reason\":{\"type\":\"string\",\"const\":\"retained_source_not_found\"},\"status\":{\"type\":\"string\",\"const\":\"source_unavailable\"}},\"required\":[\"catalog\",\"reason\",\"status\"]}]},\"CatalogueChannelCollectionsResponse\":{\"type\":\"object\",\"properties\":{\"channel\":{\"type\":\"object\",\"properties\":{\"basis\":{\"type\":\"string\",\"const\":\"governed_variant_membership\"},\"token\":{\"type\":\"string\",\"const\":\"catalogue\"}},\"required\":[\"basis\",\"token\"]},\"collections\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"homepageUrl\":{\"type\":[\"string\",\"null\"]},\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"productCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"sampleProducts\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"assetId\":{\"type\":\"string\"},\"imageUrl\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"productName\":{\"type\":\"string\"},\"sourceImageUrl\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"assetId\",\"imageUrl\",\"productId\",\"productName\",\"sourceImageUrl\",\"variantId\",\"variantName\"]}},\"slug\":{\"type\":\"string\"},\"variantCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"homepageUrl\",\"id\",\"name\",\"productCount\",\"sampleProducts\",\"slug\",\"variantCount\"]}},\"counts\":{\"type\":\"object\",\"properties\":{\"basis\":{\"type\":\"string\",\"const\":\"exact_current_channel_membership\"}},\"required\":[\"basis\"]},\"pagination\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"hasMore\":{\"type\":\"boolean\"},\"limit\":{\"type\":\"integer\",\"minimum\":1,\"",
76
- "maximum\":250},\"offset\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"total\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"count\",\"hasMore\",\"limit\",\"offset\",\"total\"]}},\"required\":[\"channel\",\"collections\",\"counts\",\"pagination\"]},\"CatalogueDocumentAccessResult\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"access\":{\"type\":\"object\",\"properties\":{\"byteRanges\":{\"type\":\"string\",\"enum\":[\"supported\",\"unknown\"]},\"contentType\":{\"type\":\"string\",\"const\":\"application/pdf\"},\"documentId\":{\"type\":\"string\",\"minLength\":1},\"originalUrl\":{\"type\":\"string\",\"format\":\"uri\"},\"readerUrl\":{\"type\":\"string\",\"format\":\"uri\"}},\"required\":[\"byteRanges\",\"contentType\",\"documentId\",\"originalUrl\",\"readerUrl\"]},\"documentId\":{\"type\":\"string\",\"minLength\":1},\"status\":{\"type\":\"string\",\"const\":\"available\"}},\"required\":[\"access\",\"documentId\",\"status\"]},{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"status\":{\"type\":\"string\",\"const\":\"unresolved_document\"}},\"required\":[\"documentId\",\"status\"]},{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"status\":{\"type\":\"string\",\"const\":\"unavailable\"}},\"required\":[\"documentId\",\"status\"]},{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"status\":{\"type\":\"string\",\"const\":\"forbidden\"}},\"required\":[\"documentId\",\"status\"]},{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"status\":{\"type\":\"string\",\"const\":\"upstream_failure\"}},\"required\":[\"documentId\",\"status\"]}]},\"CataloguePageRepresentationReadResult\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"artifact\":{\"type\":\"object\",\"properties\":{\"bucket\":{\"type\":\"string\",\"const\":\"materialgraph\"},\"key\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"image/webp\"},\"url\":{\"type\":\"string\",\"format\":\"uri\"}},\"required\":[\"bucket\",\"key\",\"mediaType\",\"url\"]},\"page\":{\"type\":\"object\",\"properties\":{\"catalogId\":{\"type\":\"string\",\"minLength\":1},\"documentId\":{\"type\":\"string\",\"minLength\":1},\"editionId\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"original\":{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"documentId\",\"documentPage\"]},\"page\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"printedPageLabel\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\"]},\"representation\":{\"type\":\"object\",\"properties\":{\"artifact\":{\"type\":\"object\",\"properties\":{\"bucket\":{\"type\":\"string\",\"const\":\"materialgraph\"},\"key\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"image/webp\"},\"url\":{\"type\":\"string\",\"format\":\"uri\"}},\"required\":[\"bucket\",\"key\",\"mediaType\",\"url\"]},\"status\":{\"type\":\"string\",\"const\":\"available\"}},\"required\":[\"artifact\",\"status\"]}},\"required\":[\"catalogId\",\"documentId\",\"editionId\",\"id\",\"original\",\"page\",\"representation\"]},\"status\":{\"type\":\"string\",\"const\":\"available\"}},\"required\":[\"artifact\",\"page\",\"status\"]},{\"type\":\"object\",\"properties\":{\"page\":{\"type\":\"object\",\"properties\":{\"catalogId\":{\"type\":\"string\",\"minLength\":1},\"documentId\":{\"type\":\"string\",\"minLength\":1},\"editionId\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"original\":{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"documentId\",\"documentPage\"]},\"page\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"printedPageLabel\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\"]},\"representation\":{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"const\":\"retained_representation_not_found\"},\"requiredArtifact\":{\"type\":\"object\",\"properties\":{\"mediaType\":{\"type\":\"string\",\"const\":\"image/webp\"},\"version\":{\"type\":\"string\",\"const\":\"catalogue-page-webp-v1\"}},\"required\":[\"mediaType\",\"version\"]},\"status\":{\"type\":\"string\",\"const\":\"unavaila",
77
- "ble\"}},\"required\":[\"reason\",\"requiredArtifact\",\"status\"]}},\"required\":[\"catalogId\",\"documentId\",\"editionId\",\"id\",\"original\",\"page\",\"representation\"]},\"reason\":{\"type\":\"string\",\"const\":\"retained_representation_not_found\"},\"requiredArtifact\":{\"type\":\"object\",\"properties\":{\"mediaType\":{\"type\":\"string\",\"const\":\"image/webp\"},\"version\":{\"type\":\"string\",\"const\":\"catalogue-page-webp-v1\"}},\"required\":[\"mediaType\",\"version\"]},\"status\":{\"type\":\"string\",\"const\":\"unavailable\"}},\"required\":[\"page\",\"reason\",\"requiredArtifact\",\"status\"]},{\"type\":\"object\",\"properties\":{\"pageId\":{\"type\":\"string\",\"minLength\":1},\"status\":{\"type\":\"string\",\"const\":\"unresolved_page\"}},\"required\":[\"pageId\",\"status\"]}]},\"CatalogueReferenceBatchResponse\":{\"type\":\"object\",\"properties\":{\"coverage\":{\"type\":\"object\",\"properties\":{\"noVerifiedReference\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"requested\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"unavailable\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"unresolvedVariant\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"upstreamFailure\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"verified\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"noVerifiedReference\",\"requested\",\"unavailable\",\"unresolvedVariant\",\"upstreamFailure\",\"verified\"]},\"results\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"reference\":{\"type\":\"object\",\"properties\":{\"anchor\":{\"type\":\"object\",\"properties\":{\"coordinateSpace\":{\"type\":\"string\",\"const\":\"normalized_0_1000\"},\"height\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"width\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"x\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"y\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"printed_code\"}},\"required\":[\"coordinateSpace\",\"height\",\"width\",\"x\",\"y\",\"kind\"]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"catalogue\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"title\"]},\"document\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"application/pdf\"}},\"required\":[\"id\",\"mediaType\"]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\"]},\"isPrimary\":{\"type\":\"boolean\"},\"page\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"printedPageLabel\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\"]},\"productRegion\":{\"type\":\"object\",\"properties\":{\"coordinateSpace\":{\"type\":\"string\",\"const\":\"normalized_0_1000\"},\"height\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"width\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"x\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"y\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"kind\":{\"type\":\"string\",\"const\":\"product_region\"},\"review\":{\"type\":\"object\",\"properties\":{\"approvedBy\":{\"type\":\"string\",\"minLength\":1},\"confidence\":{\"type\":\"object\",\"properties\":{\"evidenceBasis\":{\"type\":\"string\",\"enum\":[\"human_visual_review\",\"model_assisted_visual_review\"]},\"level\":{\"type\":\"string\",\"const\":\"reviewed\"}},\"required\":[\"evidenceBasis\",\"level\"]},\"method\":{\"type\":\"string\",\"enum\":[\"human\",\"model_assisted\"]},\"model\":{\"type\":\"string\",\"minLength\":1},\"reviewedAt\":{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"}}",
78
- ",\"required\":[\"approvedBy\",\"confidence\",\"method\",\"reviewedAt\"]}},\"required\":[\"coordinateSpace\",\"height\",\"width\",\"x\",\"y\",\"kind\",\"review\"]},\"source\":{\"type\":\"object\",\"properties\":{\"brandItemCode\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"brandItemCode\"]},\"status\":{\"type\":\"string\",\"const\":\"verified\"},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"anchor\",\"brand\",\"catalogue\",\"document\",\"edition\",\"isPrimary\",\"page\",\"source\",\"status\",\"variantId\"]},\"status\":{\"type\":\"string\",\"const\":\"verified\"},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"reference\",\"status\",\"variantId\"]},{\"type\":\"object\",\"properties\":{\"publication\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"catalogue\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"title\"]},\"documentId\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\"]},\"referencedProductCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"brand\",\"catalogue\",\"documentId\",\"edition\"]},\"reason\":{\"type\":\"string\",\"enum\":[\"no_publication_on_record\",\"publication_source_unavailable\",\"publication_not_reviewed\",\"product_not_yet_referenced\"]},\"status\":{\"type\":\"string\",\"const\":\"no_verified_reference\"},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"reason\",\"status\",\"variantId\"]},{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"const\":\"unresolved_variant\"},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"status\",\"variantId\"]},{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"const\":\"unavailable\"},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"status\",\"variantId\"]},{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"const\":\"upstream_failure\"},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"status\",\"variantId\"]}]}}},\"required\":[\"coverage\",\"results\"]},\"CreatePublicRunResponse\":{\"type\":\"object\",\"properties\":{\"accepted\":{\"type\":\"boolean\"},\"replayed\":{\"type\":\"boolean\"},\"workflowRunId\":{\"type\":\"string\"},\"run\":{\"$ref\":\"#/$defs/PublicRun\"}},\"required\":[\"accepted\",\"replayed\",\"workflowRunId\",\"run\"]},\"DeclaredAssociations\":{\"type\":\"object\",\"properties\":{\"associations\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"colourwayCount\":{\"description\":\"The eligible variants of this association's product, the set `list_variants` pages, so a follow-up list returns this many. Absent when the product has no eligible variant.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"declared\":{\"type\":\"object\",\"properties\":{\"basis\":{\"type\":\"string\",\"const\":\"manufacturer_declared\",\"description\":\"The manufacturer enumerated this association in their own catalog data.\"},\"confidence\":{\"type\":\"number\",\"description\":\"The stored confidence for this edge. A FIXED convention value (0.9) for warehouse-declared associations, not a measurement — never present it as a per-edge score or use it to rank.\"},\"source\":{\"type\":\"string\",\"const\":\"warehouse\",\"description\":\"The provenance recorded on the edge: the manufacturer catalog warehouse feed.\"}},\"required\":[\"basis\",\"confidence\",\"source\"]},\"imageUrl\":{\"description\":\"Canonical thumbnail (same policy as siblings/pairings); null when there is none.\",\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"productTypeReceipt\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"proposedProductTypes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"confidence\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"displayName\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"isPrimary\":{\"type\":\"boolean\"},\"scope\":{\"type\":\"string\",\"enum\":[\"variant\",\"product\"]},\"sourceUrl\":{\"type\":[\"string\",\"null\"]}},\"required\":[",
79
- "\"confidence\",\"displayName\",\"id\",\"isPrimary\",\"scope\",\"sourceUrl\"]}},\"state\":{\"type\":\"string\",\"const\":\"accepted\"}},\"required\":[\"proposedProductTypes\",\"state\"]},{\"type\":\"object\",\"properties\":{\"proposedProductTypes\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"confidence\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"displayName\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"isPrimary\":{\"type\":\"boolean\"},\"scope\":{\"type\":\"string\",\"enum\":[\"variant\",\"product\"]},\"sourceUrl\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"confidence\",\"displayName\",\"id\",\"isPrimary\",\"scope\",\"sourceUrl\"]}},\"state\":{\"type\":\"string\",\"const\":\"proposed\"}},\"required\":[\"proposedProductTypes\",\"state\"]},{\"type\":\"object\",\"properties\":{\"proposedProductTypes\":{\"minItems\":0,\"maxItems\":0,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"confidence\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"displayName\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"isPrimary\":{\"type\":\"boolean\"},\"scope\":{\"type\":\"string\",\"enum\":[\"variant\",\"product\"]},\"sourceUrl\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"confidence\",\"displayName\",\"id\",\"isPrimary\",\"scope\",\"sourceUrl\"]}},\"state\":{\"type\":\"string\",\"const\":\"unknown\"}},\"required\":[\"proposedProductTypes\",\"state\"]}]},\"kindLabel\":{\"description\":\"The accepted display category (the variant's primary product type), for a card's kind pill. Null when none is accepted; never a proposal.\",\"type\":[\"string\",\"null\"]},\"priceTier\":{\"description\":\"The variant's accepted `price_tier` term (`$` to `$$$$$`). Absent means unknown, never cheap.\",\"type\":\"string\"},\"relation\":{\"type\":\"string\",\"const\":\"applicable_finish\"},\"role\":{\"type\":\"string\",\"enum\":[\"finish\",\"product\"]},\"sampleable\":{\"description\":\"Whether a physical sample is explicitly known to be orderable. Absent means unknown, never unavailable.\",\"type\":\"boolean\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"declared\",\"imageUrl\",\"product\",\"productTypeReceipt\",\"kindLabel\",\"relation\",\"role\",\"variantId\",\"variantName\"]}},\"kind\":{\"type\":\"string\",\"const\":\"declared_association\",\"description\":\"Constant discriminator. These are manufacturer-declared facts; `/pairings` items are inferred companionship. Never merge the two sets.\"},\"nextCursor\":{\"description\":\"Opaque continuation for the same subject, direction and corpus scope; absent on the last page.\",\"type\":\"string\"},\"returnedCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"How many associations this page carries.\"},\"subject\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"product\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"product\",\"variantId\",\"variantName\"]},\"totalAssociations\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"The TRUE number of declared associations for this subject and direction under the requested corpus scope, not the size of this page. Safe to render as \\\"Compatible Finishes (N)\\\"; `associations` is one page of that set, so walk `nextCursor` before making any claim about the whole set.\"}},\"required\":[\"associations\",\"kind\",\"returnedCount\",\"subject\",\"totalAssociations\"]},\"ExtractPaletteResponse\":{\"type\":\"object\",\"properties\":{\"palette\":{\"description\":\"The extracted palette, or null when extraction found no usable colour.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"colors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"proportion\":{\"type\":\"number\"}},\"required\":[\"hex\",\"name\",\"proportion\"]},\"description\":\"Named palette swatches, most dominant first.\"},\"dominant\":{\"description\":\"The dominant colour, or null when none could be derived.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"family\":{\"type\":\"string\",\"description\":\"Coarse hue family, e.g. 'green'.\"},\"hex\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"oklch\":{\"type\":\"string\",\"description\":\"OKLCH string, e.g. 'oklch(",
80
- "72% 0.040 145)'.\"}},\"required\":[\"family\",\"hex\",\"name\",\"oklch\"]},{\"type\":\"null\"}]},\"mood\":{\"type\":\"string\",\"description\":\"A one-word read of the palette, e.g. \\\"muted\\\", \\\"vibrant\\\", \\\"dark\\\".\"}},\"required\":[\"colors\",\"dominant\",\"mood\"]},{\"type\":\"null\"}]}},\"required\":[\"palette\"]},\"FindCompanionsResponse\":{\"type\":\"object\",\"properties\":{\"companions\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"colourFit\":{\"description\":\"Palette likeness to the seeds. Never reorders.\",\"type\":[\"number\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"lift\":{\"type\":\"number\",\"description\":\"Mean lift over the seeds it pairs with; above 1 is above average.\"},\"product\":{\"type\":\"string\"},\"reason\":{\"type\":\"string\",\"description\":\"Why it was suggested, in one line.\"},\"relation\":{\"type\":\"string\",\"enum\":[\"companion\",\"brand_sibling\",\"colourway\"],\"description\":\"companion is another brand; brand_sibling and colourway share the seed's.\"},\"seedMatchCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"How many seeds it was sampled with.\"},\"swatches\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"proportion\":{\"type\":\"number\"}},\"required\":[\"hex\",\"proportion\"]}},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"lift\",\"product\",\"reason\",\"relation\",\"seedMatchCount\",\"variantId\",\"variantName\"]}},\"excludedByCorpusScope\":{\"description\":\"Seed ids outside the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"seeds\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"resolvedFrom\":{\"type\":\"string\",\"description\":\"The id or name this seed came from.\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"product\",\"resolvedFrom\",\"variantId\",\"variantName\"]}},\"unresolved\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"References that matched no variant.\"}},\"required\":[\"companions\",\"seeds\",\"unresolved\"]},\"FindVariantsByColourResponse\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"gatedOut\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Colour-matched candidates dropped by list_variants' hard filters or eligibility.\"},\"matches\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"brandId\":{\"type\":\"string\"},\"category\":{\"type\":\"string\"},\"code\":{\"type\":[\"string\",\"null\"]},\"colours\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"distance\":{\"type\":\"number\",\"description\":\"OKLab distance to the matched swatch. Never a probability.\"},\"hex\":{\"type\":\"string\"},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Position in the request's `colours[]`.\"},\"proportion\":{\"type\":\"number\",\"description\":\"The matched swatch's share of its image, 0 to 1.\"},\"target\":{\"description\":\"Requested target share, palette only; null otherwise. Ranked by, not filtered.\",\"type\":[\"number\",\"null\"]}},\"required\":[\"distance\",\"hex\",\"index\",\"proportion\",\"target\"]}},\"coverage\":{\"type\":\"number\",\"description\":\"Share of the request's colours this variant matched, 0 to 1. Never a probability.\"},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":\"string\"}},\"required\":[\"brand\",\"brandId\",\"category\",\"code\",\"colours\",\"coverage\",\"imageUrl\",\"product\",\"productId\",\"variantId\",\"variantName\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"},\"poolTruncated\":{\"type\":\"boolean\",\"description\":\"True when matches exist past the checked pool: add productTypeIds or brands.\"}},\"required\":[\"endCursor\",\"hasNextPage\",\"poolTruncated\"]},\"resolvedColours\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"catalogueVariant\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"s",
81
- "tring\",\"null\"]},\"product\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"color\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},{\"type\":\"null\"}]},\"hex\":{\"type\":\"string\"},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"enum\":[\"point\",\"region\"],\"description\":\"region: a named meaning's own OKLCh bounds, kept — never collapsed to one hex.\"},\"share\":{\"description\":\"Renormalised share, image-extracted colours only; else null.\",\"type\":[\"number\",\"null\"]}},\"required\":[\"catalogueVariant\",\"hex\",\"index\",\"kind\",\"share\"]}},\"unresolvedColours\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"alternatives\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"hex\":{\"type\":\"string\"},\"libraryId\":{\"type\":\"string\"},\"libraryName\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"query\":{\"type\":\"string\"}},\"required\":[\"hex\",\"libraryId\",\"libraryName\",\"name\",\"query\"]}},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"input\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"alternatives\",\"index\",\"input\"]}},\"mode\":{\"type\":\"string\",\"const\":\"contains\"}},\"required\":[\"gatedOut\",\"matches\",\"pageInfo\",\"resolvedColours\",\"unresolvedColours\",\"mode\"]},{\"type\":\"object\",\"properties\":{\"gatedOut\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Colour-matched candidates dropped by list_variants' hard filters or eligibility.\"},\"matches\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"brandId\":{\"type\":\"string\"},\"category\":{\"type\":\"string\"},\"code\":{\"type\":[\"string\",\"null\"]},\"colours\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"distance\":{\"type\":\"number\",\"description\":\"OKLab distance to the matched swatch. Never a probability.\"},\"hex\":{\"type\":\"string\"},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Position in the request's `colours[]`.\"},\"proportion\":{\"type\":\"number\",\"description\":\"The matched swatch's share of its image, 0 to 1.\"},\"target\":{\"description\":\"Requested target share, palette only; null otherwise. Ranked by, not filtered.\",\"type\":[\"number\",\"null\"]}},\"required\":[\"distance\",\"hex\",\"index\",\"proportion\",\"target\"]}},\"coverage\":{\"type\":\"number\",\"description\":\"Share of the request's colours this variant matched, 0 to 1. Never a probability.\"},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":\"string\"}},\"required\":[\"brand\",\"brandId\",\"category\",\"code\",\"colours\",\"coverage\",\"imageUrl\",\"product\",\"productId\",\"variantId\",\"variantName\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"},\"poolTruncated\":{\"type\":\"boolean\",\"description\":\"True when matches exist past the checked pool: add productTypeIds or brands.\"}},\"required\":[\"endCursor\",\"hasNextPage\",\"poolTruncated\"]},\"resolvedColours\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"catalogueVariant\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"color\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},{\"type\":\"null\"}]},\"hex\":{\"type\":\"string\"},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"enum\":[\"point\",\"region\"],\"description\":\"region: a named meaning's own OKLCh bounds, kept — never collapsed to one hex.\"},\"share\":{\"description\":\"Renormalised share, image-extracted colours only; else null.\",\"type\":[\"number\",\"null\"]}},\"required\":[\"catalogueVariant\",\"hex\",\"index\",\"kind\",\"share\"]}},\"unresolvedColours\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"alternatives\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"hex\":{\"type\":\"string\"},\"librar",
82
- "yId\":{\"type\":\"string\"},\"libraryName\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"query\":{\"type\":\"string\"}},\"required\":[\"hex\",\"libraryId\",\"libraryName\",\"name\",\"query\"]}},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"input\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"alternatives\",\"index\",\"input\"]}},\"mode\":{\"type\":\"string\",\"const\":\"palette\"}},\"required\":[\"gatedOut\",\"matches\",\"pageInfo\",\"resolvedColours\",\"unresolvedColours\",\"mode\"]},{\"type\":\"object\",\"properties\":{\"corpusScope\":{\"description\":\"The corpus the ranked candidates were drawn from — present ONLY when the request narrowed it. ABSENT means the whole graph. The reference is resolved unscoped either way.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\",\"description\":\"What the scope admits, in one sentence, for a human reader.\"},\"scope\":{\"type\":\"string\",\"enum\":[\"all\",\"samplizeCatalogue\",\"materialBankOrderable\",\"materialBankNaOrderable\",\"materialBankNaAndCatalogue\",\"materialBankEuOrderable\",\"designShopOrderable\"],\"description\":\"Which corpus to answer from. samplizeCatalogue admits published US paint colours regardless of stock. ABSENT (or 'all') means the WHOLE GRAPH — every material MaterialGraph knows, orderable or not; absence is never a narrower default. Three transaction-oriented scopes gate on governed CHANNEL membership: 'materialBankNaOrderable' (Material Bank North America, ~277,000 materials), 'materialBankEuOrderable' (Material Bank Europe, ~65,000) and 'designShopOrderable' (DesignShop, ~34,000, with the products DesignShop hides from browse excluded). 'materialBankNaAndCatalogue' is the one-query union of Material Bank North America and the governed Catalogue editorial discovery corpus; that union does not by itself claim every member is transactable. 'materialBankOrderable' is NOT one of them: it selects materials carrying a Material Bank identity, which is a provenance signal rather than a channel one, and it admits 98.4% of the graph — use it to exclude crawl-sourced brands, not to mean orderable. A scope answers membership in its named governed corpus, never suitability: scope on channel, then refine on sector. Every scope is applied INSIDE the query: `limit` fills with eligible rows and `counts` describe the scoped corpus, which post-filtering a page cannot give you. An unknown value is a 400 naming it, never a silent fall back to the whole graph.\"}},\"required\":[\"description\",\"scope\"]},\"excludedByCorpusScope\":{\"description\":\"Real variant ids outside `corpusScope` or the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"reference\":{\"type\":\"object\",\"properties\":{\"candidates\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"brandSlug\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"brandSlug\",\"color\",\"imageUrl\",\"product\",\"productId\",\"variantId\",\"variantName\"]}},\"colour\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"name\":{\"type\":[\"string\",\"null\"]},\"ref\":{\"type\":\"string\"}},\"required\":[\"hex\",\"name\",\"ref\"]},{\"type\":\"null\"}]},\"input\":{\"type\":\"object\",\"properties\":{\"colour\":{\"type\":\"string\"},\"material\":{\"type\":\"string\"},\"oklab\":{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"}},\"required\":[\"L\",\"a\",\"b\"]},\"variantId\":{\"type\":\"string\"}}},\"resolution\":{\"type\":\"string\",\"enum\":[\"resolved\",\"ambiguous\"]},\"seed\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"brandSlug\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"brandSlug\",\"color\",\"imageUrl\",\"product\",\"productId\",\"variantId\",\"variantName\"]},{\"type\":\"null\"}]}},\"required\":[\"candidates\",\"colour\",\"input\",\"resolution\",\"seed\"]},\"unresolved\":{\"type\":\"array\",\"ite",
83
- "ms\":{\"type\":\"string\"}},\"matches\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"brandId\":{\"type\":\"string\"},\"code\":{\"type\":[\"string\",\"null\"]},\"colourSimilarity\":{\"type\":[\"number\",\"null\"]},\"distance\":{\"type\":[\"number\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"brandId\",\"code\",\"colourSimilarity\",\"distance\",\"imageUrl\",\"product\",\"productId\",\"variantId\",\"variantName\"]}},\"mode\":{\"type\":\"string\",\"const\":\"rerank\"},\"resolvedColours\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"catalogueVariant\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"color\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},{\"type\":\"null\"}]},\"hex\":{\"type\":\"string\"},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"enum\":[\"point\",\"region\"],\"description\":\"region: a named meaning's own OKLCh bounds, kept — never collapsed to one hex.\"},\"share\":{\"description\":\"Renormalised share, image-extracted colours only; else null.\",\"type\":[\"number\",\"null\"]}},\"required\":[\"catalogueVariant\",\"hex\",\"index\",\"kind\",\"share\"]}}},\"required\":[\"reference\",\"unresolved\",\"matches\",\"mode\",\"resolvedColours\"]}]},\"FindVariantsByVectorResponse\":{\"type\":\"object\",\"properties\":{\"excludedByCorpusScope\":{\"description\":\"Filtered variant ids outside the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"category\":{\"type\":\"string\"},\"code\":{\"type\":[\"string\",\"null\"]},\"image\":{\"type\":[\"string\",\"null\"]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"materialBankId\":{\"type\":[\"string\",\"null\"]},\"name\":{\"type\":\"string\"},\"notApplicable\":{\"type\":\"object\",\"properties\":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"description\":\"Requested blocks or attributes this product type does not carry.\"},\"preference\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"array\",\"items\":{\"type\":\"number\"}},\"score\":{\"type\":\"number\"}},\"required\":[\"matched\",\"score\"]},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}},\"url\":{\"type\":[\"string\",\"null\"]},\"variantCount\":{\"description\":\"Eligible variants of this product. Absent: none counted.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"variantId\":{\"type\":\"string\"},\"similarity\":{\"type\":\"number\",\"description\":\"Voyage cosine to the query. Ranks only; not a probability.\"}},\"required\":[\"category\",\"code\",\"brand\",\"materialBankId\",\"name\",\"product\",\"variantId\",\"similarity\"]}},\"mode\":{\"type\":\"string\",\"enum\":[\"text\",\"image\",\"text_and_image\"]},\"reference\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"url\",\"assetId\",\"variantId\",\"sourceId\"]}},\"required\":[\"id\",\"kind\"]},{\"type\":\"null\"}]},\"scan\":{\"type\":\"object\",\"properties\":{\"exhausted\":{\"type\":\"boolean\",\"description\":\"True when no further candidates match; false means more may exist.\"},\"read\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"rejected\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"route\":{\"type\":\"string\",\"enum\":[\"lane\",\"metadata\",\"allowlist\"]}},\"required\":[\"exhausted\",\"read\",\"rejected\",\"route\"]},\"timings\":{\"type\":\"object\",\"properties\":{\"embedMs\":{\"type\":\"number\"},\"filterMs\":{\"type\":\"number\"},\"referenceMs\":{\"type\":\"number\"},\"totalMs\":{\"type\":\"number\"},\"vectorMs\":{\"type\":\"number\"},\"verifyM",
84
- "s\":{\"type\":\"number\"}},\"required\":[\"embedMs\",\"filterMs\",\"referenceMs\",\"totalMs\",\"vectorMs\",\"verifyMs\"]},\"unresolvedVariantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unstated\":{\"description\":\"Filtered attributes no variant in scope states at all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"items\",\"mode\",\"reference\",\"scan\",\"timings\"]},\"GetCategoryResponse\":{\"type\":\"object\",\"properties\":{\"aliases\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ancestors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]}},\"children\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]}},\"description\":{\"type\":[\"string\",\"null\"]},\"formerNames\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"group\",\"product_type\"]},\"name\":{\"type\":\"string\"},\"productCategory\":{\"type\":\"object\",\"properties\":{\"concepts\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"label\":{\"type\":\"string\"},\"match\":{\"description\":\"How the concept relates to this product type; absent for groups.\",\"type\":\"string\",\"enum\":[\"exact\",\"close\",\"broad\",\"narrow\"]},\"termId\":{\"type\":\"string\"},\"uri\":{\"type\":\"string\"}},\"required\":[\"label\",\"termId\",\"uri\"]}},\"recordValue\":{\"description\":\"The product_category a record holds when the category fixes it.\",\"type\":[\"string\",\"null\"]},\"status\":{\"type\":\"string\",\"enum\":[\"mapped\",\"conditional\",\"unmapped\"],\"description\":\"mapped: fixed by category; conditional: per record; unmapped: none.\"}},\"required\":[\"concepts\",\"recordValue\",\"status\"]}},\"required\":[\"aliases\",\"ancestors\",\"children\",\"description\",\"formerNames\",\"id\",\"kind\",\"name\",\"productCategory\"]},\"GetVariantResponse\":{\"type\":\"object\",\"properties\":{\"category\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The primary product type.\"},\"code\":{\"description\":\"The brand's item code.\",\"type\":[\"string\",\"null\"]},\"image\":{\"description\":\"The primary product image, or null when there is none.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"alt\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}},\"required\":[\"alt\",\"url\"]},{\"type\":\"null\"}]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The brand. `id` is the slug get_brand takes.\"},\"name\":{\"type\":\"string\",\"description\":\"The variant's own name.\"},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"url\":{\"description\":\"The brand's page for it, or null when none is known.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"materialBankId\":{\"description\":\"The variant's Material Bank SKU. Absent: none recorded.\",\"type\":\"string\"},\"notApplicable\":{\"type\":\"object\",\"properties\":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"description\":\"Requested blocks or attributes this product type does not carry.\"},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}}},\"required\":[\"category\",\"code\",\"image\",\"brand\",\"name\",\"product\",\"url\",\"variantId\"]},\"ListAttributesResponse\":{\"type\":\"object\",\"properties\":{\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"blockIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"description\":{\"type\":\"string\"},\"dictionaryId\":{\"type\":[\"string\",\"null\"]},\"filterOps\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\",\"all\",\"exists\",\"missing\",\"eq\",\"gt\",\"gte\",\"lt\",\"lte\"]},\"description\":\"list_variants ops; empty when it cannot filter on it.\"},\"filterable\":{\"type\":\"boolean\"},\"id\":{\"type\":\"string\"},\"match\":{\"description\":\"Present only when the page answers a query.\",\"type\":\"object\",\"properties\":{\"distance\":{\"description\":\"Fuse distance, 0 best.\",\"type\":\"number\"},\"matchedText\":{\"type\":[\"string\",\"null\"]},\"method\":{\"t",
85
- "ype\":\"string\",\"enum\":[\"exact\",\"alias\",\"fuzzy\",\"vector\"]},\"similarity\":{\"description\":\"Cosine similarity, 1 best.\",\"type\":\"number\"},\"valueId\":{\"description\":\"The dictionary term matchedText named exactly or by alias; present only for a value-tier match.\",\"type\":\"string\"}},\"required\":[\"matchedText\",\"method\"]},\"name\":{\"type\":\"string\"},\"statedBy\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991,\"description\":\"Live variants stating this, in the categories or all; 0 means none.\"},\"unitId\":{\"type\":[\"string\",\"null\"]},\"valueKind\":{\"type\":\"string\"}},\"required\":[\"blockIds\",\"description\",\"dictionaryId\",\"filterOps\",\"filterable\",\"id\",\"name\",\"statedBy\",\"unitId\",\"valueKind\"]}},\"liveVariants\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991,\"description\":\"Live variants in the categories, or all without categoryIds.\"},\"outsideScope\":{\"description\":\"Page one only: matches outside blockIds ranking above the best item.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"blockIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"blockIds\",\"id\",\"name\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"}},\"required\":[\"endCursor\",\"hasNextPage\"]}},\"required\":[\"items\",\"liveVariants\",\"pageInfo\"]},\"ListCategoriesResponse\":{\"type\":\"object\",\"properties\":{\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hasChildren\":{\"type\":\"boolean\"},\"id\":{\"type\":\"string\"},\"match\":{\"description\":\"Present only when the page answers a query.\",\"type\":\"object\",\"properties\":{\"matchedText\":{\"type\":[\"string\",\"null\"]},\"method\":{\"type\":\"string\",\"enum\":[\"exact\",\"alias\",\"fuzzy\",\"vector\"]}},\"required\":[\"matchedText\",\"method\"]},\"name\":{\"type\":\"string\"},\"parentId\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"hasChildren\",\"id\",\"name\",\"parentId\"]}},\"notice\":{\"description\":\"Present only when the query is refused as a category.\",\"type\":\"string\"},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"nextCursor\":{\"type\":[\"string\",\"null\"]},\"returnedCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"totalMatches\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"nextCursor\",\"returnedCount\",\"totalMatches\"]}},\"required\":[\"items\",\"pageInfo\"]},\"ListEnumValuesResponse\":{\"type\":\"object\",\"properties\":{\"dictionaryId\":{\"type\":[\"string\",\"null\"]},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"definition\":{\"type\":[\"string\",\"null\"]},\"dictionaryId\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"match\":{\"type\":\"object\",\"properties\":{\"distance\":{\"type\":\"number\"},\"matchedText\":{\"type\":[\"string\",\"null\"]},\"method\":{\"type\":\"string\",\"enum\":[\"exact\",\"alias\",\"fuzzy\",\"vector\"]},\"resolvedFrom\":{\"type\":\"string\"},\"similarity\":{\"type\":\"number\"}},\"required\":[\"matchedText\",\"method\"]},\"valueId\":{\"type\":\"string\"}},\"required\":[\"attributeIds\",\"definition\",\"dictionaryId\",\"label\",\"valueId\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"}},\"required\":[\"endCursor\",\"hasNextPage\"]}},\"required\":[\"dictionaryId\",\"items\",\"pageInfo\"]},\"ListVariantFacetsResponse\":{\"type\":\"object\",\"properties\":{\"matchedVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"facets\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"missingVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"categorical\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"value\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"variantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991}},\"required\":[\"value\",\"label\",\"variantCount\"]}},\"hasMoreValues\":{\"type\":\"boolean\"}},\"required\":[\"attributeId\",\"name\",\"missingVariantCount\",\"kind\",\"values\",\"hasMoreValues\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"name\":{\"type\":\"str",
86
- "ing\"},\"missingVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"boolean\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"value\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"variantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991}},\"required\":[\"value\",\"label\",\"variantCount\"]}},\"hasMoreValues\":{\"type\":\"boolean\"}},\"required\":[\"attributeId\",\"name\",\"missingVariantCount\",\"kind\",\"values\",\"hasMoreValues\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"missingVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"numeric\"},\"min\":{\"type\":[\"number\",\"null\"]},\"max\":{\"type\":[\"number\",\"null\"]},\"unitId\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"attributeId\",\"name\",\"missingVariantCount\",\"kind\",\"min\",\"max\",\"unitId\"]}]}}},\"required\":[\"matchedVariantCount\",\"facets\"]},\"ListVariantsResponse\":{\"type\":\"object\",\"properties\":{\"excludedByCorpusScope\":{\"description\":\"Filtered variant ids outside the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"category\":{\"type\":\"string\"},\"code\":{\"type\":[\"string\",\"null\"]},\"image\":{\"type\":[\"string\",\"null\"]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"materialBankId\":{\"description\":\"The variant's Material Bank SKU. Absent: none recorded.\",\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"notApplicable\":{\"type\":\"object\",\"properties\":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"description\":\"Requested blocks or attributes this product type does not carry.\"},\"preference\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"array\",\"items\":{\"type\":\"number\"}},\"score\":{\"type\":\"number\"}},\"required\":[\"matched\",\"score\"]},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}},\"url\":{\"type\":[\"string\",\"null\"]},\"variantCount\":{\"description\":\"Eligible variants of this product. Absent: none counted.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"variantId\":{\"type\":\"string\"}},\"required\":[\"category\",\"code\",\"brand\",\"name\",\"product\",\"variantId\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"}},\"required\":[\"endCursor\",\"hasNextPage\"]},\"preferenceMatchesRemain\":{\"description\":\"False: nothing from this page on meets any optionalFilter.\",\"type\":\"boolean\"},\"unresolvedVariantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unstated\":{\"description\":\"Filtered attributes no variant in scope states at all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"words\":{\"description\":\"Each word asked for, and whether any variant in scope names it.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"boolean\"},\"word\":{\"type\":\"string\"}},\"required\":[\"matched\",\"word\"]}}},\"required\":[\"items\",\"pageInfo\"]},\"MaterialBlockProjection\":{\"type\":\"object\",\"properties\":{\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"canonicalBlockId\":{\"type\":\"string\"},\"canonicalBlockName\":{\"type\":\"string\"},\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"confidence\":{\"type\":\"number\"},\"displayValue\":{\"description\":\"The value dictionary's label for a single-term `value`. Absent when no label is on record; `value` stays the canonical token.\",\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"sourceBasis\":{\"type\":\"string\"},\"status\":{\"type\":\"string\",\"enum\":[\"verified\",\"partial\",\"missing\",\"not_applicable\"]},\"unit\":{\"type\":\"string\"},\"value\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"},{\"type\":\"array\",\"items\":{}},{\"type\":\"object\",\"pr",
87
- "opertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]}},\"required\":[\"attributeId\",\"label\",\"status\",\"value\"]}},\"missingAttributeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"status\":{\"type\":\"string\",\"enum\":[\"verified\",\"partial\",\"missing\",\"not_applicable\"]}},\"required\":[\"canonicalBlockId\",\"canonicalBlockName\",\"fields\",\"missingAttributeIds\",\"status\"]}},\"variantId\":{\"type\":\"string\"}},\"required\":[\"blocks\",\"variantId\"]},\"MaterialQueryPlanResponse\":{\"type\":\"object\",\"properties\":{\"cached\":{\"type\":\"boolean\",\"description\":\"True when the plan came from the plan cache.\"},\"correction\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"from\":{\"type\":\"string\",\"description\":\"The query as typed, normalised.\"},\"to\":{\"type\":\"string\",\"description\":\"The phrasing that was read: showing results for.\"},\"words\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"correction\":{\"type\":\"string\",\"minLength\":1},\"word\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"correction\",\"word\"]}}},\"required\":[\"from\",\"to\",\"words\"]},{\"type\":\"null\"}]},\"normalisedQuery\":{\"type\":\"string\"},\"plan\":{\"type\":\"object\",\"properties\":{\"brands\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"ids\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}},\"names\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}},\"phrase\":{\"type\":\"string\"}},\"required\":[\"ids\",\"names\",\"phrase\"]},{\"type\":\"null\"}]},\"category\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"label\":{\"type\":\"string\"},\"phrase\":{\"type\":\"string\"},\"productTypeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}}},\"required\":[\"label\",\"phrase\",\"productTypeIds\"]},{\"type\":\"null\"}]},\"colour\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"family12\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}},\"familyId\":{\"type\":\"string\",\"minLength\":1},\"hex\":{\"type\":\"string\",\"minLength\":1},\"oklab\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":3,\"maxItems\":3},\"phrase\":{\"type\":\"string\"}},\"required\":[\"family12\",\"familyId\",\"hex\",\"oklab\",\"phrase\"]},{\"type\":\"null\"}]},\"excludeBrands\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}},\"excludes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"minLength\":1},\"phrase\":{\"type\":\"string\"},\"term\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"attributeId\",\"phrase\",\"term\"]}},\"leftover\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Words left for the text query, in query order.\"},\"normalised\":{\"type\":\"string\"},\"softAlone\":{\"type\":\"boolean\",\"description\":\"True when nothing hard was read and no word was left, so the soft wants' words also go to text.\"},\"vendorColourNames\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"wants\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\",\"minLength\":1},\"fill\":{\"type\":\"number\",\"minimum\":0,\"description\":\"Share of the category's Variants that state this attribute.\"},\"phrase\":{\"type\":\"string\"},\"strength\":{\"type\":\"string\",\"enum\":[\"hard\",\"soft\"],\"description\":\"hard filters the page; soft only orders it, because too few Variants state the attribute.\"},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}}},\"required\":[\"attributeId\",\"fill\",\"phrase\",\"strength\",\"terms\"]}}},\"required\":[\"brands\",\"category\",\"colour\",\"excludeBrands\",\"excludes\",\"leftover\",\"normalised\",\"softAlone\",\"vendorColourNames\",\"wants\"]},\"rawQuery\":{\"type\":\"string\",\"minLength\":1},\"readingVersion\":{\"type\":\"string\",\"minLength\":1,\"description\":\"The dictionaries' version the plan was read against.\"},\"requests\":{\"minItems\":1,\"maxItems\":1,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"cursor\":{\"description\":\"Opaque pagination token from the previous page of the same text. Pass it verbatim, or omit it for the first page.\",\"type\":\"string\",\"minLength\":1},\"limit\":{\"description\":\"Results in one page, at most 24. The search's own page size when omitted.\",\"type\":\"integer\",\"minimum\":1,\"maximum\":24},\"text\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":500,\"description\":\"The ask to search, as the planner phrased it.\"},\"view\":{\"description\":\"\\\"card",
88
- "\\\" (default) for the lean projection, \\\"full\\\" for every result field.\",\"type\":\"string\",\"enum\":[\"card\",\"full\"]}},\"required\":[\"text\"]}},\"source\":{\"type\":\"string\",\"enum\":[\"dictionary\",\"jev\"],\"description\":\"Who read the plan: the dictionaries, or the background Jev reading.\"},\"version\":{\"type\":\"string\",\"const\":\"2\"}},\"required\":[\"cached\",\"correction\",\"normalisedQuery\",\"plan\",\"rawQuery\",\"readingVersion\",\"requests\",\"source\",\"version\"]},\"MaterialTile\":{\"type\":\"object\",\"properties\":{\"availability\":{\"type\":\"string\",\"enum\":[\"available\",\"discontinued\",\"superseded\",\"unknown\"],\"description\":\"Orderability: 'available' (listed in the catalog of record), 'discontinued' (withdrawn from that catalog — not a reviewed manufacturer-discontinuation claim), 'superseded' (a reviewed successor relationship exists and the material is no longer listed), 'unknown' (never checked).\"},\"brand\":{\"type\":\"string\"},\"category\":{\"type\":[\"string\",\"null\"]},\"colour\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":[\"number\",\"null\"]},\"dominantHex\":{\"type\":[\"string\",\"null\"]},\"hsl\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"h\":{\"type\":\"number\",\"minimum\":0,\"exclusiveMaximum\":360},\"l\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"s\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1}},\"required\":[\"h\",\"l\",\"s\"]},{\"type\":\"null\"}]},\"oklab\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"l\":{\"type\":\"number\"}},\"required\":[\"a\",\"b\",\"l\"]},{\"type\":\"null\"}]},\"sourceBasis\":{\"description\":\"Where `dominantHex` — and the `hsl` derived from it — came from: 'declared' is the brand's own published colour, 'derived' was read out of product imagery. It does NOT cover `oklab`, `chroma` or `vibrancy`: those are statistics of the IMAGE and stay measured whatever the hex says. Only the record read resolves this; a tile omits the key, and absent means unresolved, never 'declared'.\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]},\"vibrancy\":{\"type\":[\"number\",\"null\"]}},\"required\":[\"chroma\",\"dominantHex\",\"hsl\",\"oklab\",\"vibrancy\"]},\"colourName\":{\"description\":\"The accepted Colour Name attribute — the colourway's true name where variants.name collapsed to the product's; absent means the attribute is absent (MG-940).\",\"type\":\"string\"},\"imageSource\":{\"anyOf\":[{\"type\":\"string\",\"enum\":[\"r2\",\"origin\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"sampleable\":{\"description\":\"Whether a physical sample is explicitly known to be orderable. Absent means unknown, never unavailable.\",\"type\":\"boolean\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"availability\",\"brand\",\"category\",\"colour\",\"imageSource\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},\"PairingItem\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"inScope\":{\"type\":[\"boolean\",\"null\"]},\"brandSlug\":{\"type\":\"string\"},\"category\":{\"type\":[\"string\",\"null\"]},\"color\":{\"type\":[\"string\",\"null\"]},\"customerCount\":{\"type\":\"number\"},\"demand\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"momentum\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"percentChange\":{\"type\":[\"number\",\"null\"]},\"priorSpecCount\":{\"type\":\"number\"},\"state\":{\"type\":\"string\",\"enum\":[\"rising\",\"fading\",\"stable\",\"emerging\",\"insufficient_volume\"]},\"trailingSpecCount\":{\"type\":\"number\"}},\"required\":[\"percentChange\",\"priorSpecCount\",\"state\",\"trailingSpecCount\"]},{\"type\":\"null\"}]},\"projectCount\":{\"type\":\"number\"},\"specCount\":{\"type\":\"number\"}},\"required\":[\"momentum\",\"projectCount\",\"specCount\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"lift\":{\"type\":\"number\"},\"liftLabel\":{\"type\":\"string\"},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"projectCount\":{\"type\":\"number\"},\"relation\":{\"type\":\"string\",\"enum\":[\"companion\",\"brand_sibling\",\"colourway\"]},\"topProjectTypes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"projectCount\":{\"type\":\"number\"},\"projectType\":{\"type\":\"string\"}},\"required\":[\"projectCount\",\"projectType\"]}},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]},\"ranking\":{\"type\":\"object\",\"properties\":",
89
- "{\"anchorColourSimilarity\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"anchorColourSimilarityMeasurable\":{\"type\":\"boolean\"},\"basis\":{\"type\":\"string\",\"const\":\"dominant_colour_oklab\"},\"lightness\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"lightnessMeasurable\":{\"type\":\"boolean\"}},\"required\":[\"anchorColourSimilarity\",\"anchorColourSimilarityMeasurable\",\"basis\",\"lightness\",\"lightnessMeasurable\"]},\"source\":{\"type\":\"string\",\"const\":\"cospec\"}},\"required\":[\"brand\",\"brandSlug\",\"category\",\"color\",\"customerCount\",\"demand\",\"imageUrl\",\"lift\",\"liftLabel\",\"product\",\"productId\",\"projectCount\",\"topProjectTypes\",\"variantId\",\"variantName\",\"source\"]},{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"inScope\":{\"type\":[\"boolean\",\"null\"]},\"brandSlug\":{\"type\":\"string\"},\"category\":{\"type\":[\"string\",\"null\"]},\"color\":{\"type\":[\"string\",\"null\"]},\"customerCount\":{\"type\":\"number\"},\"demand\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"momentum\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"percentChange\":{\"type\":[\"number\",\"null\"]},\"priorSpecCount\":{\"type\":\"number\"},\"state\":{\"type\":\"string\",\"enum\":[\"rising\",\"fading\",\"stable\",\"emerging\",\"insufficient_volume\"]},\"trailingSpecCount\":{\"type\":\"number\"}},\"required\":[\"percentChange\",\"priorSpecCount\",\"state\",\"trailingSpecCount\"]},{\"type\":\"null\"}]},\"projectCount\":{\"type\":\"number\"},\"specCount\":{\"type\":\"number\"}},\"required\":[\"momentum\",\"projectCount\",\"specCount\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"lift\":{\"type\":\"number\"},\"liftLabel\":{\"type\":\"string\"},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"projectCount\":{\"type\":\"number\"},\"relation\":{\"type\":\"string\",\"enum\":[\"companion\",\"brand_sibling\",\"colourway\"]},\"topProjectTypes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"projectCount\":{\"type\":\"number\"},\"projectType\":{\"type\":\"string\"}},\"required\":[\"projectCount\",\"projectType\"]}},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]},\"ranking\":{\"type\":\"object\",\"properties\":{\"anchorColourSimilarity\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"anchorColourSimilarityMeasurable\":{\"type\":\"boolean\"},\"basis\":{\"type\":\"string\",\"const\":\"dominant_colour_oklab\"},\"lightness\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"lightnessMeasurable\":{\"type\":\"boolean\"}},\"required\":[\"anchorColourSimilarity\",\"anchorColourSimilarityMeasurable\",\"basis\",\"lightness\",\"lightnessMeasurable\"]},\"source\":{\"type\":\"string\",\"const\":\"considered\"}},\"required\":[\"brand\",\"brandSlug\",\"category\",\"color\",\"customerCount\",\"demand\",\"imageUrl\",\"lift\",\"liftLabel\",\"product\",\"productId\",\"projectCount\",\"topProjectTypes\",\"variantId\",\"variantName\",\"source\"]},{\"type\":\"object\",\"properties\":{\"availability\":{\"type\":\"string\",\"enum\":[\"available\",\"discontinued\",\"superseded\",\"unknown\"],\"description\":\"Orderability: 'available' (listed in the catalog of record), 'discontinued' (withdrawn from that catalog — not a reviewed manufacturer-discontinuation claim), 'superseded' (a reviewed successor relationship exists and the material is no longer listed), 'unknown' (never checked).\"},\"brand\":{\"type\":\"string\"},\"category\":{\"type\":[\"string\",\"null\"]},\"colour\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":[\"number\",\"null\"]},\"dominantHex\":{\"type\":[\"string\",\"null\"]},\"hsl\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"h\":{\"type\":\"number\",\"minimum\":0,\"exclusiveMaximum\":360},\"l\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"s\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1}},\"required\":[\"h\",\"l\",\"s\"]},{\"type\":\"null\"}]},\"oklab\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"l\":{\"type\":\"number\"}},\"required\":[\"a\",\"b\",\"l\"]},{\"type\":\"null\"}]},\"sourceBasis\":{\"description\":\"Where `dominantHex` — and the `hsl` derived from it — came from: 'declared' is the brand's own published colour, 'derived' was read out of product imagery. It does NOT cover `oklab`, `chroma` or `vibrancy`: those are statistics of the IMAGE and stay measured whatever the hex says. Only the record read resolves this; a tile omits the key, and absent",
90
- " means unresolved, never 'declared'.\",\"type\":\"string\",\"enum\":[\"catalog_feed\",\"declared\",\"derived\"]},\"vibrancy\":{\"type\":[\"number\",\"null\"]}},\"required\":[\"chroma\",\"dominantHex\",\"hsl\",\"oklab\",\"vibrancy\"]},\"colourName\":{\"description\":\"The accepted Colour Name attribute — the colourway's true name where variants.name collapsed to the product's; absent means the attribute is absent (MG-940).\",\"type\":\"string\"},\"imageSource\":{\"anyOf\":[{\"type\":\"string\",\"enum\":[\"r2\",\"origin\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"sampleable\":{\"description\":\"Whether a physical sample is explicitly known to be orderable. Absent means unknown, never unavailable.\",\"type\":\"boolean\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]},\"inScope\":{\"type\":[\"boolean\",\"null\"]},\"ranking\":{\"type\":\"object\",\"properties\":{\"anchorColourSimilarity\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"anchorColourSimilarityMeasurable\":{\"type\":\"boolean\"},\"basis\":{\"type\":\"string\",\"const\":\"dominant_colour_oklab\"},\"lightness\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"lightnessMeasurable\":{\"type\":\"boolean\"}},\"required\":[\"anchorColourSimilarity\",\"anchorColourSimilarityMeasurable\",\"basis\",\"lightness\",\"lightnessMeasurable\"]},\"score\":{\"type\":\"number\"},\"source\":{\"type\":\"string\",\"const\":\"colour\"}},\"required\":[\"availability\",\"brand\",\"category\",\"colour\",\"imageSource\",\"imageUrl\",\"product\",\"variantId\",\"variantName\",\"score\",\"source\"]}]},\"PairingOrdering\":{\"type\":\"object\",\"properties\":{\"anchorColourBasis\":{\"type\":\"string\",\"const\":\"one_minus_oklab_euclidean_distance\"},\"applied\":{\"type\":\"string\",\"enum\":[\"relevance\",\"lightness_asc\",\"lightness_desc\"]},\"colourSpace\":{\"type\":\"string\",\"const\":\"oklab\"},\"direction\":{\"type\":\"string\",\"enum\":[\"ascending\",\"descending\"]},\"lightnessRange\":{\"type\":\"object\",\"properties\":{\"max\":{\"type\":\"number\",\"const\":1},\"min\":{\"type\":\"number\",\"const\":0}},\"required\":[\"max\",\"min\"]},\"missingValues\":{\"type\":\"string\",\"const\":\"last\"},\"requested\":{\"type\":\"string\",\"enum\":[\"relevance\",\"lightness_asc\",\"lightness_desc\"]},\"tieBreak\":{\"type\":\"string\",\"const\":\"variantId_asc\"}},\"required\":[\"anchorColourBasis\",\"applied\",\"colourSpace\",\"direction\",\"lightnessRange\",\"missingValues\",\"requested\",\"tieBreak\"]},\"ProductDocumentPage\":{\"type\":\"object\",\"properties\":{\"coverage\":{\"type\":\"object\",\"properties\":{\"productUnion\":{\"type\":\"object\",\"properties\":{\"declaredCount\":{\"anyOf\":[{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},{\"type\":\"null\"}]},\"exact\":{\"type\":\"boolean\"},\"readableCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"state\":{\"type\":\"string\",\"enum\":[\"available\",\"none_declared\",\"not_ingested\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]}},\"required\":[\"declaredCount\",\"exact\",\"readableCount\",\"state\"]},\"requestedVariant\":{\"type\":\"object\",\"properties\":{\"declaredCount\":{\"anyOf\":[{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},{\"type\":\"null\"}]},\"exact\":{\"type\":\"boolean\"},\"readableCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"state\":{\"type\":\"string\",\"enum\":[\"available\",\"none_declared\",\"not_ingested\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]}},\"required\":[\"declaredCount\",\"exact\",\"readableCount\",\"state\"]},\"sources\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"declaredCount\":{\"anyOf\":[{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},{\"type\":\"null\"}]},\"exact\":{\"type\":\"boolean\"},\"readableCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"scope\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"product\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"id\",\"revision\"]},\"state\":{\"type\":\"string\",\"enum\":[\"avai",
91
- "lable\",\"none_declared\",\"not_ingested\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]}},\"required\":[\"declaredCount\",\"exact\",\"readableCount\",\"scope\",\"source\",\"state\"]}}},\"required\":[\"productUnion\",\"requestedVariant\",\"sources\"]},\"documents\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"appliesToRequestedVariant\":{\"type\":\"boolean\"},\"contentType\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"declarations\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"readable\":{\"type\":\"boolean\"},\"scope\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"product\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"id\",\"revision\"]},\"status\":{\"type\":\"string\",\"enum\":[\"downloaded\",\"linked_not_downloaded\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]}},\"required\":[\"readable\",\"scope\",\"source\",\"status\"]}},\"declaredScopes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"product\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]}},\"documentTypes\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"technical_data_sheet\",\"product_sheet\",\"technical_bulletin\",\"sustainability_report\",\"specification\",\"installation_guide\",\"care_maintenance_guide\",\"operation_manual\",\"warranty\",\"parts_list\",\"technical_drawing\",\"test_report\",\"certificate\",\"declaration_of_performance\",\"environmental_product_declaration\",\"health_product_declaration\",\"ingredient_disclosure\",\"safety_data_sheet\",\"brochure\",\"catalogue\",\"colour_finish_chart\",\"other\",\"unknown\"]}},\"fileExtension\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"id\":{\"type\":\"string\",\"minLength\":1},\"originalName\":{\"type\":\"string\",\"minLength\":1},\"scope\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"inherited\":{\"type\":\"boolean\"},\"kind\":{\"type\":\"string\",\"enum\":[\"product\",\"variant\"]}},\"required\":[\"id\",\"inherited\",\"kind\"]},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"id\",\"revision\"]},\"status\":{\"type\":\"string\",\"enum\":[\"downloaded\",\"linked_not_downloaded\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]},\"url\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"variantAttribution\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}}},\"required\":[\"appliesToRequestedVariant\",\"contentType\",\"declarations\",\"declaredScopes\",\"fileExtension\",\"id\",\"originalName\",\"scope\",\"source\",\"status\",\"url\",\"variantAttribution\"]}},\"nextCursor\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"totalDocuments\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"coverage\",\"documents\",\"nextCursor\",\"totalDocuments\",\"variantId\"]},\"PublicRun\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"workflowId\":{\"type\":\"string\",\"description\":\"The workflow this run belongs to, the same id its path names.\"},\"clientReference\":{\"type\":[\"string\",\"null\"]},\"status\":{\"type\":\"string\",\"enum\":[\"queued\",\"claimed\",\"running\",\"suspended\",\"succeeded\",\"failed\",\"canceled\"]},\"redactedInputJson\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},\"redactedOutputJson\":{\"anyOf\":[{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]},\"usageJson\":{\"anyOf\":[{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]},\"artifactRefs\":{\"anyOf\":[{\"type\":\"array\",\"items\":{\"type\":\"object",
92
- "\",\"properties\":{\"kind\":{\"type\":\"string\"},\"ref\":{\"type\":\"string\"}},\"required\":[\"kind\",\"ref\"]}},{\"type\":\"null\"}]},\"failureJson\":{\"anyOf\":[{\"$ref\":\"#/$defs/PublicRunFailure\"},{\"type\":\"null\"}]},\"suspensionPayload\":{\"description\":\"The current typed question payload while `status` is `suspended`; null otherwise. The same exact payload is retained on the `suspended` ledger event.\",\"anyOf\":[{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]},\"suspensionStepId\":{\"description\":\"The step awaiting input while `status` is `suspended` — pass it back as `stepId` when resuming, so a stale client cannot resume a step the run has already moved past. Read `suspensionPayload` for the current typed question. The same exact payload is retained on the `suspended` ledger event for event-stream consumers.\",\"type\":[\"string\",\"null\"]},\"eventCursor\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"attempts\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"startedAt\":{\"anyOf\":[{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},{\"type\":\"null\"}]},\"cancellationRequestedAt\":{\"anyOf\":[{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},{\"type\":\"null\"}]},\"completedAt\":{\"anyOf\":[{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},{\"type\":\"null\"}]},\"createdAt\":{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},\"updatedAt\":{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"}},\"required\":[\"id\",\"workflowId\",\"clientReference\",\"status\",\"redactedInputJson\",\"redactedOutputJson\",\"usageJson\",\"artifactRefs\",\"failureJson\",\"suspensionPayload\",\"suspensionStepId\",\"eventCursor\",\"attempts\",\"startedAt\",\"cancellationRequestedAt\",\"completedAt\",\"createdAt\",\"updatedAt\"]},\"PublicRunFailure\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"},\"retryable\":{\"type\":\"boolean\"},\"detail\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}}},\"required\":[\"code\",\"message\",\"retryable\"]},\"PublicRunResponse\":{\"type\":\"object\",\"properties\":{\"run\":{\"$ref\":\"#/$defs/PublicRun\"}},\"required\":[\"run\"]},\"ResolveColourResponse\":{\"type\":\"object\",\"properties\":{\"alternatives\":{\"description\":\"Explicit manufacturer choices when a paint name is ambiguous; never selected automatically.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"hex\":{\"type\":\"string\"},\"libraryId\":{\"type\":\"string\"},\"libraryName\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"query\":{\"type\":\"string\"}},\"required\":[\"hex\",\"libraryId\",\"libraryName\",\"name\",\"query\"]}},\"genericResolution\":{\"description\":\"Generic colour meaning only; paint identity is reported by match.\",\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"confidence\":{\"type\":\"number\",\"minimum\":0,\"max",
93
- "imum\":1},\"input\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"const\":\"resolved\"},\"others\":{\"maxItems\":4,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"band\":{\"type\":\"string\",\"enum\":[\"inside\",\"near\",\"far\"]},\"family\":{\"type\":\"string\",\"enum\":[\"white\",\"cream\",\"gray\",\"black\",\"beige\",\"taupe\",\"brown\",\"red\",\"orange\",\"yellow\",\"green\",\"teal\",\"blue\",\"purple\",\"pink\"]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"band\",\"family\",\"hex\",\"id\",\"name\",\"range\"]}},\"principal\":{\"type\":\"object\",\"properties\":{\"band\":{\"type\":\"string\",\"enum\":[\"inside\",\"near\",\"far\"]},\"family\":{\"type\":\"string\",\"enum\":[\"white\",\"cream\",\"gray\",\"black\",\"beige\",\"taupe\",\"brown\",\"red\",\"orange\",\"yellow\",\"green\",\"teal\",\"blue\",\"purple\",\"pink\"]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"band\",\"family\",\"hex\",\"id\",\"name\",\"range\"]},\"source\":{\"type\":\"string\",\"enum\":[\"name\",\"family\",\"composed\",\"hex\",\"reference\",\"semantic\"]}},\"required\":[\"confidence\",\"input\",\"kind\",\"others\",\"principal\",\"source\"]},{\"type\":\"object\",\"properties\":{\"input\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"const\":\"unresolved\"},\"reason\":{\"type\":\"string\",\"enum\":[\"unknown-term\",\"ambiguous-modifier\",\"contradictory-modifiers\",\"unsupported-base\",\"empty-range\",\"unrepresentable-color\"]},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"input\",\"kind\",\"reason\",\"terms\"]}]},\"match\":{\"description\":\"The resolved colour, or null when nothing resolved.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"description\":\"The resolved `#rrggbb` hex.\"},\"name\":{\"type\":\"string\",\"description\":\"The resolved display name (echoes the query when unnamed).\"},\"code\":{\"description\":\"The code the library gives the colour (e.g. \\\"OC-17\\\", \\\"7016\\\"). Present only on a library hit.\",\"type\":\"string\"},\"libraryId\":{\"description\":\"The ColorScope library the colour resolved in (e.g. \\\"benjamin-moore\\\", \\\"ral\\\"). A library is not necessarily a brand: read `libraryType`. Absent for a hex, and for a colour word or semantic match that resolved without a library.\",\"type\":\"string\"},\"libraryType\":{\"description\":\"The type ColorScope declares for `libraryId`: `brand` is a paint brand's paint, `reference` a colour standard (RAL, Pantone, HKS), `core` ColorScope's descriptive vocabulary. Present exactly when `libraryId` is. Only a `brand` hit is looked up in the catalogue.\",\"type\":\"string\",\"enum\":[\"brand\",\"consumer\",\"core\",\"reference\"]},\"matchTarget\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"hasSelection\":{\"type\":\"boolean\",\"const\":false},\"type\":{\"type\":\"string\",\"const\":\"none\"}},\"required\":[\"hasSelection\",\"type\"]},{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"hasSelection\":{\"type\":\"boolean\",\"const\":true},\"label\":{\"type\":",
94
- "\"string\"},\"previewColors\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"type\":{\"type\":\"string\",\"const\":\"oklab\"}},\"required\":[\"L\",\"a\",\"b\",\"hasSelection\",\"label\",\"previewColors\",\"type\"]},{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"hasSelection\":{\"type\":\"boolean\",\"const\":true},\"label\":{\"type\":\"string\"},\"previewColors\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"range\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"representative\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"}},\"required\":[\"hex\"]},\"type\":{\"type\":\"string\",\"const\":\"range\"}},\"required\":[\"L\",\"a\",\"b\",\"hasSelection\",\"label\",\"previewColors\",\"range\",\"representative\",\"type\"]}]},\"variant\":{\"description\":\"Whether the named paint is a variant in the catalogue. Only a colour that resolved in a `brand` library is looked up. The lookup is exact (brand paint names and codes), global, and independent of `corpusScope`, which only sets each variant's `inScope`.\",\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"slug\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"slug\"],\"description\":\"The variant's brand exactly as stored, suspect or not.\"},\"inScope\":{\"description\":\"Whether this variant is in the requested `corpusScope`. Null when no `corpusScope` was passed. The lookup itself is never narrowed by scope.\",\"type\":[\"boolean\",\"null\"]},\"parentageSuspect\":{\"type\":\"boolean\",\"description\":\"True when the stored brand is Samplize, a sampling channel, and the listing is not Samplize's own merchandise: the colour is another brand's, so do not report `brand` as who made it. The variant is still returned and still the right one for the name.\"},\"variantId\":{\"type\":\"string\",\"description\":\"The variant id. Opaque; never parse it.\"},\"status\":{\"type\":\"string\",\"const\":\"matched\",\"description\":\"The name is one brand's paint and one variant carries it.\"}},\"required\":[\"brand\",\"inScope\",\"parentageSuspect\",\"variantId\",\"status\"]},{\"type\":\"object\",\"properties\":{\"candidates\":{\"minItems\":2,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"slug\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"slug\"],\"description\":\"The variant's brand exactly as stored, suspect or not.\"},\"inScope\":{\"description\":\"Whether this variant is in the requested `corpusScope`. Null when no `corpusScope` was passed. The lookup itself is never narrowed by scope.\",\"type\":[\"boolean\",\"null\"]},\"parentageSuspect\":{\"type\":\"boolean\",\"description\":\"True when the stored brand is Samplize, a sampling channel, and the listing is not Samplize's own merchandise: the colour is another brand's, so do not report `brand` as who made it. The variant is still returned and still the right one for the name.\"},\"variantId\":{\"type\":\"string\",\"description\":\"The variant id. Opaque; never parse it.\"}},\"required\":[\"brand\",\"inScope\",\"parentageSuspect\",\"variantId\"]},\"description\":\"Every variant that carries the paint, catalogue order.\"},\"status\":{\"type\":\"string\",\"const\":\"ambiguous\",\"description\":\"The name is one brand's paint and more than one variant carries it, typically once per product line. Never picked between.\"}},\"required\":[\"candidates\",\"status\"]},{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"const\":\"not-in-catalogue\",\"description\":\"The name is one brand's paint and no variant in the catalogue carries it. A looked-up absence, distinct fro",
95
- "m `not-looked-up`.\"}},\"required\":[\"status\"]},{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"enum\":[\"reference-colour\",\"descriptive-colour\",\"no-paint-identity\",\"generic-colour\",\"several-paints\"],\"description\":\"`reference-colour`: the name resolved to a colour standard (RAL, Pantone, HKS), which no brand's variant carries. `descriptive-colour`: the name resolved to a descriptive colour (\\\"sage\\\", \\\"warm terracotta\\\"), not a paint. `no-paint-identity`: the name is not exactly any brand's paint name or code, or it is a hex. `generic-colour`: the name is a colour word brands also use as a paint name; qualify it with a brand. `several-paints`: the name is more than one brand's paint; qualify it with a brand.\"},\"status\":{\"type\":\"string\",\"const\":\"not-looked-up\",\"description\":\"The catalogue was not searched; there was no one brand's paint to find.\"}},\"required\":[\"reason\",\"status\"]}]}},\"required\":[\"hex\",\"name\",\"matchTarget\",\"variant\"]},{\"type\":\"null\"}]},\"rangeSamples\":{\"description\":\"The range drawn as a lightness ramp at the resolved colour's own hue and chroma, dark to light. Illustrative members of the range, never additional target colours.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"genericResolution\",\"match\"]},\"ResolveVariantResponse\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"outcome\":{\"type\":\"string\",\"const\":\"identified\"},\"subject\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"code\":{\"type\":\"string\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"kind\",\"name\"]}},\"required\":[\"evidence\",\"outcome\",\"subject\"]},{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"outcome\":{\"type\":\"string\",\"const\":\"placed\"},\"subject\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"code\":{\"type\":\"string\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"brand\"},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"kind\",\"name\"]}},\"required\":[\"evidence\",\"outcome\",\"subject\"]},{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"candidates\":{\"minItems\":1,\"maxItems\":20,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"",
96
- "brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"code\":{\"type\":\"string\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"enum\":[\"variant\",\"brand\"]},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"kind\",\"name\"]}},\"outcome\":{\"type\":\"string\",\"const\":\"ambiguous\"},\"truncated\":{\"type\":\"boolean\"}},\"required\":[\"evidence\",\"candidates\",\"outcome\",\"truncated\"]},{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"outcome\":{\"type\":\"string\",\"const\":\"unresolved\"},\"reason\":{\"type\":\"string\",\"enum\":[\"no-stored-url\",\"no-code-match\"]}},\"required\":[\"evidence\",\"outcome\",\"reason\"]}]},\"SamplizeCataloguePage\":{\"type\":\"object\",\"properties\":{\"complete\":{\"type\":\"boolean\"},\"corpusScope\":{\"type\":\"string\",\"const\":\"samplizeCatalogue\"},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"slug\":{\"type\":\"string\"}},\"required\":[\"name\",\"slug\"]},\"code\":{\"type\":\"string\"},\"collectionMemberships\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"handle\":{\"type\":\"string\"},\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceCollectionId\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}},\"required\":[\"handle\",\"observedAt\",\"publisher\",\"source\",\"sourceCollectionId\",\"url\"]}},\"colourAnalysis\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},\"demand\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceUrl\":{\"type\":\"string\"},\"field\":{\"type\":\"string\",\"const\":\"recently_ordered_count\"},\"grain\":{\"type\":\"string\",\"const\":\"shopify_variant\"},\"recentlyOrderedCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"sourceVariantId\":{\"type\":\"string\"},\"window\":{\"type\":\"null\"}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"grain\",\"recentlyOrderedCount\",\"sourceVariantId\",\"window\"]},{\"type\":\"null\"}]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"hexObservations\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"differsFromSelected\":{\"type\":\"boolean\"},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\"},\"source\":{\"type\":\"string\"},\"sourceBasis\":{\"type\":\"string\"},\"sourceUrl\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"differsFromSelected\",\"hex\",\"observedAt\",\"publisher\",\"source\",\"sourceBasis\",\"sourceUrl\"]}},\"hexSource\":{\"type\":\"object\",\"properties\":{\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"snowflake_product_tags\"},\"url\":{\"type\":\"string\"}},\"required\":[\"publisher\",\"source\",\"url\"]},\"lrv\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":100},{\"type\":\"null\"}]},\"lrvObservations\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceUrl\":{\"type\":\"string\"},\"field\":{\"type\":\"string\"},\"value\":{\"type\":\"number\",\"minimum\":0,\"maximum\":100}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"value\"]}},\"lrvSource\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_pr",
97
- "oducts\"},\"sourceUrl\":{\"type\":\"string\"},\"field\":{\"type\":\"string\"},\"value\":{\"type\":\"number\",\"minimum\":0,\"maximum\":100}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"value\"]},{\"type\":\"null\"}]},\"name\":{\"type\":\"string\"},\"oklab\":{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"}},\"required\":[\"L\",\"a\",\"b\"]},\"productId\":{\"type\":\"string\"},\"publishedHexes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"differsFromSelected\":{\"type\":\"boolean\"},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\"},\"source\":{\"type\":\"string\"},\"sourceBasis\":{\"type\":\"string\"},\"sourceUrl\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"differsFromSelected\",\"hex\",\"observedAt\",\"publisher\",\"source\",\"sourceBasis\",\"sourceUrl\"]}},\"sizeVariants\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"demand\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceUrl\":{\"type\":\"string\"},\"field\":{\"type\":\"string\",\"const\":\"recently_ordered_count\"},\"grain\":{\"type\":\"string\",\"const\":\"shopify_variant\"},\"recentlyOrderedCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"sourceVariantId\":{\"type\":\"string\"},\"window\":{\"type\":\"null\"}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"grain\",\"recentlyOrderedCount\",\"sourceVariantId\",\"window\"]},{\"type\":\"null\"}]},\"inventoryAvailable\":{\"type\":\"boolean\"},\"price\":{\"type\":[\"number\",\"null\"]},\"sku\":{\"type\":[\"string\",\"null\"]},\"sourceVariantId\":{\"type\":\"string\"},\"title\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"demand\",\"inventoryAvailable\",\"price\",\"sku\",\"sourceVariantId\",\"title\"]}},\"sourceProductId\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"}},\"required\":[\"brand\",\"code\",\"collectionMemberships\",\"colourAnalysis\",\"demand\",\"hex\",\"hexObservations\",\"hexSource\",\"lrv\",\"lrvObservations\",\"lrvSource\",\"name\",\"oklab\",\"productId\",\"publishedHexes\",\"sizeVariants\",\"sourceProductId\",\"url\",\"variantId\"]}},\"nextCursor\":{\"type\":[\"string\",\"null\"]},\"schemaVersion\":{\"type\":\"number\",\"const\":2},\"source\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},\"sourceVersion\":{\"type\":\"string\"},\"total\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991}},\"required\":[\"complete\",\"corpusScope\",\"items\",\"nextCursor\",\"schemaVersion\",\"source\",\"sourceVersion\",\"total\"]},\"SamplizeCatalogueSearchResponse\":{\"type\":\"object\",\"properties\":{\"basis\":{\"type\":\"string\",\"enum\":[\"published-colour-similarity\",\"description-retrieval\",\"image-colour-distribution\",\"named-colour-similarity\"]},\"countBasis\":{\"type\":\"string\",\"enum\":[\"complete-catalogue\",\"retrieved-pool\"]},\"counts\":{\"type\":\"object\",\"properties\":{\"family\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"lightness\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"intensity\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"brand\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}}},\"required\":[\"family\",\"lightness\",\"intensity\",\"brand\"]},\"dictionaryVersion\":{\"type\":\"string\"},\"eligibleCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"embeddingVersion\":{\"type\":\"string\"},\"groups\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"proportion\":{\"type\":\"number\"},\"quota\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"ids\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"shortfall\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991}},\"required\":[\"hex\",\"proportion\",\"quota\",\"ids\",\"shortfall\"]}},\"ids\":{\"maxItems\":100,\"type\":\"array\",\"items\":{\"type\":\"string\"",
98
- "}},\"limited\":{\"type\":\"boolean\"},\"rankingVersion\":{\"type\":\"string\"},\"sourceVersion\":{\"type\":\"string\"},\"target\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"confidence\":{\"type\":\"number\"},\"hex\":{\"type\":\"string\"},\"libraryId\":{\"type\":\"string\"},\"matchTarget\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"hasSelection\":{\"type\":\"boolean\",\"const\":false},\"type\":{\"type\":\"string\",\"const\":\"none\"}},\"required\":[\"hasSelection\",\"type\"]},{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"hasSelection\":{\"type\":\"boolean\",\"const\":true},\"label\":{\"type\":\"string\"},\"previewColors\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"type\":{\"type\":\"string\",\"const\":\"oklab\"}},\"required\":[\"L\",\"a\",\"b\",\"hasSelection\",\"label\",\"previewColors\",\"type\"]},{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"hasSelection\":{\"type\":\"boolean\",\"const\":true},\"label\":{\"type\":\"string\"},\"previewColors\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"range\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"representative\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"}},\"required\":[\"hex\"]},\"type\":{\"type\":\"string\",\"const\":\"range\"}},\"required\":[\"L\",\"a\",\"b\",\"hasSelection\",\"label\",\"previewColors\",\"range\",\"representative\",\"type\"]}]},\"name\":{\"type\":\"string\"},\"ref\":{\"type\":\"string\"},\"resolution\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"confidence\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"input\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"const\":\"resolved\"},\"others\":{\"maxItems\":4,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"band\":{\"type\":\"string\",\"enum\":[\"inside\",\"near\",\"far\"]},\"family\":{\"type\":\"string\",\"enum\":[\"white\",\"cream\",\"gray\",\"black\",\"beige\",\"taupe\",\"brown\",\"red\",\"orange\",\"yellow\",\"green\",\"teal\",\"blue\",\"purple\",\"pink\"]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"band\",\"family\",\"hex\",\"id\",\"name\",\"range\"]}},\"principal\":{\"type\":\"object\",\"properties\":{\"band\":{\"type\":\"string\",\"enum\":[\"inside\",\"near\",\"far\"]},\"family\":{\"type\":\"string\",\"enum\":[\"white\",\"cream\",\"gray\",\"black\",\"beige\",\"taupe\",\"brown\",\"red\",\"orange\",\"yellow\",\"green\",\"teal\",\"blue\",\"purple\",\"pink\"]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minI",
99
- "tems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"band\",\"family\",\"hex\",\"id\",\"name\",\"range\"]},\"source\":{\"type\":\"string\",\"enum\":[\"name\",\"family\",\"composed\",\"hex\",\"reference\",\"semantic\"]}},\"required\":[\"confidence\",\"input\",\"kind\",\"others\",\"principal\",\"source\"]},{\"type\":\"object\",\"properties\":{\"input\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"const\":\"unresolved\"},\"reason\":{\"type\":\"string\",\"enum\":[\"unknown-term\",\"ambiguous-modifier\",\"contradictory-modifiers\",\"unsupported-base\",\"empty-range\",\"unrepresentable-color\"]},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"input\",\"kind\",\"reason\",\"terms\"]}]},\"source\":{\"type\":\"string\",\"enum\":[\"hex\",\"lexical-exact\"]}},\"required\":[\"hex\",\"ref\",\"source\"]}},\"required\":[\"basis\",\"countBasis\",\"counts\",\"ids\",\"limited\",\"sourceVersion\"]},\"SamplizeColorVecCache\":{\"type\":\"object\",\"properties\":{\"dictionaryVersion\":{\"type\":\"string\"},\"embeddingVersion\":{\"type\":\"string\",\"const\":\"oklch-anchor-quantiles-v12\"},\"generatedAt\":{\"type\":\"string\"},\"paints\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"family\":{\"type\":\"string\"},\"hex\":{\"type\":\"string\"},\"intensity\":{\"type\":\"string\"},\"lightness\":{\"type\":\"string\"},\"oklab\":{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"}},\"required\":[\"L\",\"a\",\"b\"]},\"variantId\":{\"type\":\"string\"},\"vector\":{\"type\":\"string\",\"description\":\"128 IEEE754 float32 values, little endian, base64 encoded. Decode through the SDK index.\"}},\"required\":[\"brand\",\"family\",\"hex\",\"intensity\",\"lightness\",\"oklab\",\"variantId\",\"vector\"]}},\"rankingVersion\":{\"type\":\"string\",\"const\":\"solid-colorvec-cosine-v2\"},\"sourceVersion\":{\"type\":\"string\"}},\"required\":[\"dictionaryVersion\",\"embeddingVersion\",\"generatedAt\",\"paints\",\"rankingVersion\",\"sourceVersion\"]},\"SchemaValueDictionariesResponse\":{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"valueDictionaries\"},\"schemaVersion\":{\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"taxonomy\"},\"system\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"kind\",\"system\"]},{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"colorscope\"},\"system\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"kind\",\"system\"]},{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"materialgraph\"},\"system\":{\"type\":\"string\",\"const\":\"@materialgraph/schema\"}},\"required\":[\"kind\",\"system\"]},{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"external-standard\"},\"system\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"kind\",\"system\"]}]},\"description\":{\"type\":\"string\"},\"id\":{\"type\":\"string\",\"minLength\":1,\"pattern\":\"^[a-z][a-z0-9_]*$\"},\"name\":{\"type\":\"string\"},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\"},\"aliases\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"broaderTermId\":{\"type\":\"string\",\"minLength\":1},\"definition\":{\"type\":\"string\",\"minLength\":1},\"externalMappings\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"mappingType\":{\"type\":\"string\",\"enum\":[\"direct\",\"transform\",\"derived\",\"classification\",\"semantic\"]},\"matchStrength\":{\"type\":\"string\",\"enum\":[\"exact\",\"close\",\"broad\",\"narrow\",\"related\"]},\"notes\":{\"type\":\"string\"},\"target\":{\"type\":\"string\",\"enum\":[\"schema_org\",\"ifc_pset\",\"bsdd\",\"iso_23387\",\"eclass\",\"gs1_gdm\",\"gdsn\",\"etim\",\"uniclass\"]},\"targetPath\":{\"type\":\"string\"}},\"required\":[\"mappingType\",\"target\",\"targetPath\"]}},\"metadata\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":[\"string\",\"number\",\"boolean\",\"null\"]}},\"lifecycle\":{\"type\":\"object\",\"properties\":{\"deprecatedIn\":{\"type\":\"string\"},\"introducedIn\":{\"type\":\"string\"},\"status\":{\"type\":\"string\",\"enum\":[\"draft\",\"active\",\"deprecated\"]},\"supersededBy\":{\"type\":\"string\"}},\"required\":[\"introducedIn\",\"status\"]},\"semanticId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"lifecycle\",\"semanticId\"]}},\"lifecycle\":{\"type\":\"object\",\"properti",
100
- "es\":{\"deprecatedIn\":{\"type\":\"string\"},\"introducedIn\":{\"type\":\"string\"},\"status\":{\"type\":\"string\",\"enum\":[\"draft\",\"active\",\"deprecated\"]},\"supersededBy\":{\"type\":\"string\"}},\"required\":[\"introducedIn\",\"status\"]},\"semanticId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"description\",\"id\",\"name\",\"terms\",\"lifecycle\",\"semanticId\"]}},\"totalCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"kind\",\"schemaVersion\",\"items\",\"totalCount\"]},\"SearchByPaletteResponse\":{\"type\":\"object\",\"properties\":{\"categoryGate\":{\"description\":\"The category gate the page ran under: the caller's `category`, or the surface-material default (`defaulted: true`). ABSENT only on responses stored before the one search.\",\"type\":\"object\",\"properties\":{\"defaulted\":{\"description\":\"Present when the caller named no category: a colour page then holds surface materials only (the `materials` product-type groups, listed in `requested`), so lights, taps and furniture do not answer a colour question. Send `?category=` to search other groups.\",\"type\":\"boolean\",\"const\":true},\"requested\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Category names or keys the caller asked the hard gate to keep.\"},\"requiresAcceptedPrimaryProductType\":{\"type\":\"boolean\",\"const\":true,\"description\":\"The gate admits a variant only through an accepted primary product type.\"},\"unclassifiedVariantsExcluded\":{\"type\":\"boolean\",\"const\":true,\"description\":\"Variants without an accepted primary product type were ineligible, not proven to belong outside the requested category.\"}},\"required\":[\"requested\",\"requiresAcceptedPrimaryProductType\",\"unclassifiedVariantsExcluded\"]},\"corpusScope\":{\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\",\"description\":\"What the scope admits, in one sentence, for a human reader.\"},\"scope\":{\"type\":\"string\",\"enum\":[\"all\",\"samplizeCatalogue\",\"materialBankOrderable\",\"materialBankNaOrderable\",\"materialBankNaAndCatalogue\",\"materialBankEuOrderable\",\"designShopOrderable\"],\"description\":\"Which corpus to answer from. samplizeCatalogue admits published US paint colours regardless of stock. ABSENT (or 'all') means the WHOLE GRAPH — every material MaterialGraph knows, orderable or not; absence is never a narrower default. Three transaction-oriented scopes gate on governed CHANNEL membership: 'materialBankNaOrderable' (Material Bank North America, ~277,000 materials), 'materialBankEuOrderable' (Material Bank Europe, ~65,000) and 'designShopOrderable' (DesignShop, ~34,000, with the products DesignShop hides from browse excluded). 'materialBankNaAndCatalogue' is the one-query union of Material Bank North America and the governed Catalogue editorial discovery corpus; that union does not by itself claim every member is transactable. 'materialBankOrderable' is NOT one of them: it selects materials carrying a Material Bank identity, which is a provenance signal rather than a channel one, and it admits 98.4% of the graph — use it to exclude crawl-sourced brands, not to mean orderable. A scope answers membership in its named governed corpus, never suitability: scope on channel, then refine on sector. Every scope is applied INSIDE the query: `limit` fills with eligible rows and `counts` describe the scoped corpus, which post-filtering a page cannot give you. An unknown value is a 400 naming it, never a silent fall back to the whole graph.\"}},\"required\":[\"description\",\"scope\"],\"description\":\"The corpus this page AND its `counts` were drawn from. Present only when a narrowing scope applied — absence means the whole graph. Read it alongside `counts`: a short page under a scope is a small SCOPED corpus, not a truncated one.\"},\"count\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"hueGate\":{\"description\":\"The thresholds behind each receipt's `hueCompatible`. ABSENT only on responses stored before MG-2295.\",\"type\":\"object\",\"properties\":{\"achromaticQueryChroma\":{\"type\":\"number\",\"description\":\"Below this query chroma the colour is treated as achromatic and any hue is admitted.\"},\"minChromaRatio\":{\"type\":\"",
101
- "number\",\"description\":\"A swatch must carry at least this share of the query colour's chroma.\"},\"minHueCosine\":{\"type\":\"number\",\"description\":\"Floor on the cosine agreement between the two hue vectors.\"}},\"required\":[\"achromaticQueryChroma\",\"minChromaRatio\",\"minHueCosine\"]},\"matches\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"brandSlug\":{\"type\":[\"string\",\"null\"]},\"category\":{\"description\":\"The catalog GROUP this material belongs to — Flooring, Textile Materials, Coatings — or null when it has no accepted primary product type. A palette query is cross-category BY INTENT (a scheme, not one aisle), so the category is what says whether a result answers the question at all: 30 of 40 results for one real palette were Coatings while every one of the 14 groups held something closer. Null means UNKNOWN, not uncategorised, and it is not rare — group by it, but keep null as its own bucket rather than dropping it.\",\"type\":[\"string\",\"null\"]},\"color\":{\"type\":[\"string\",\"null\"]},\"imageSha256\":{\"description\":\"SHA-256 of the displayed image `imageUrl` points at, as a hex digest. ABSENT means no hash is on record, never that there is no image.\",\"type\":\"string\"},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"palette\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"name\":{\"description\":\"colorscope's name for the swatch.\",\"type\":[\"string\",\"null\"]},\"proportion\":{\"type\":\"number\",\"description\":\"Share of the image this swatch occupies.\"}},\"required\":[\"hex\",\"name\",\"proportion\"]},\"description\":\"The candidate's FULL extracted palette — every stored swatch, uncapped and in stored order, the same list the material's own record reports. This is the whole evidence set scored against; the per-colour `matched` swatch is one entry drawn from it. A ONE-swatch palette means the candidate's image is genuinely monochrome, NOT that the list was trimmed — and it is the common case here, because a page ordered by nearest swatch favours flat images, whose one swatch can land arbitrarily close to any colour.\"},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":[\"string\",\"null\"]},\"retired\":{\"type\":\"boolean\",\"description\":\"MB has retired or hidden this SKU.\"},\"score\":{\"type\":\"number\",\"description\":\"Closeness in [0,1] of the material's own colour on the search index to the searched colour, the page's order. It falls from 1 to 0 across a fixed OKLab span; not a confidence or a percentage.\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]},\"colours\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"colourScore\":{\"type\":\"number\",\"description\":\"Closeness in [0,1] of the matched swatch to the queried colour, from plain OKLab distance with lightness counted in full: 1 is the same colour, 0 is 0.3 or more apart. Not a confidence or a percentage.\"},\"matched\":{\"description\":\"The ONE swatch of the candidate's `palette` that produced this score — evidence for THIS queried colour, not the candidate's colours as a whole (that is `palette`). Null when no swatch produced a score.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"name\":{\"description\":\"colorscope's name for the swatch.\",\"type\":[\"string\",\"null\"]},\"proportion\":{\"type\":\"number\",\"description\":\"Share of the image this swatch occupies.\"}},\"required\":[\"hex\",\"name\",\"proportion\"]},{\"type\":\"null\"}]},\"proportionScore\":{\"type\":\"number\",\"description\":\"Proportion agreement in [0,1]. Always 1 on the one search: no proportion is applied.\"},\"hueCompatible\":{\"description\":\"Whether `matched` has a hue compatible with the queried colour, by colorscope's `isHueCompatible` at the response's `hueGate` thresholds. A flag, never a gate: an incompatible swatch still scores and still ranks. ABSENT when there is no `matched` swatch.\",\"type\":\"boolean\"},\"queryHex\":{\"type\":\"string\",\"description\":\"The queried colour, normalised to `#rrggbb`.\"},\"score\":{\"type\":\"number\",\"description\":\"The receipt's score: `colourScore` × `proportionScore`, so `colourScore` on the one search.\"}},\"required\":[\"colourScore\",\"matched\",\"proportionScore\",\"queryHex\",\"score\"]",
102
- "},\"description\":\"One receipt per queried colour, in query order.\"}},\"required\":[\"brand\",\"brandSlug\",\"category\",\"color\",\"imageUrl\",\"palette\",\"product\",\"productId\",\"retired\",\"score\",\"variantId\",\"variantName\",\"colours\"]},\"description\":\"Matches, best score first.\"},\"query\":{\"type\":\"object\",\"properties\":{\"colours\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"proportion\":{\"type\":\"number\"},\"weight\":{\"type\":\"number\"}},\"required\":[\"hex\"]}},\"droppedColours\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"proportion\":{\"type\":\"number\"},\"weight\":{\"type\":\"number\"}},\"required\":[\"hex\"]},\"description\":\"Colours not searched: every colour after the first, since a palette is ordered by its first colour alone, and any colour whose stated share is below 5%. These colours were not retrieved or scored.\"},\"logic\":{\"type\":\"string\",\"enum\":[\"all\",\"any\"]},\"outcome\":{\"type\":\"string\",\"enum\":[\"matches\",\"no_effective_colours\"],\"description\":\"`no_effective_colours` means every colour was omitted for a stated share below 5%, so no search ran.\"}},\"required\":[\"colours\",\"droppedColours\",\"logic\",\"outcome\"],\"description\":\"Echo of the resolved query — every colour normalised to `#rrggbb`.\"}},\"required\":[\"count\",\"matches\",\"query\"]},\"SearchResponse\":{\"type\":\"object\",\"properties\":{\"data\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"results\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"resultId\":{\"type\":\"string\",\"description\":\"This exact hit's attribution key — `<responseId>:<rank>`, where rank is 1-based within THIS response. Unique across pages, because each page is its own response with its own id. Store it verbatim next to the outcome; it is opaque, and `attribution.responseId` is the field to group by.\"},\"variantId\":{\"type\":\"string\"},\"brand\":{\"type\":\"string\"},\"product\":{\"type\":\"string\"},\"brandSlug\":{\"type\":[\"string\",\"null\"]},\"productId\":{\"type\":[\"string\",\"null\"]},\"materialBankId\":{\"description\":\"The variant's Material Bank SKU — the ONE EXTERNAL identifier on a result, in contrast to the OPAQUE `variantId`: it is the id you are expected to match against Material Bank's own catalogue (carts, ordering and analytics all key on it), so a result list can be joined without a second lookup. Populated by the search and by Match alike. ABSENT means no MB identity is known for the variant, never that the SKU cannot be ordered; presence is the orderability tell, absence is silence.\",\"type\":\"string\"},\"manufacturerCode\":{\"description\":\"The governed manufacturer/source-native item code from `variants.code` (for example \\\"GADLC02\\\"). Populated when the full-result retrieval source carries that canonical field; Match always hydrates it from the variant row. ABSENT means unknown or an older external serving projection, never an invented code. Independent of materialBankId.\",\"type\":\"string\"},\"projectSaveCapability\":{\"description\":\"Explicit source-governed permission to save this exact source-coded variant to a Project. ABSENT means unknown/not allowed; it is never inferred from the brand or name.\",\"type\":\"string\",\"const\":\"allowed\"},\"sampleable\":{\"description\":\"Whether a physical sample is explicitly known to be orderable. Absent means unknown, never unavailable.\",\"type\":\"boolean\"},\"sourceStatus\":{\"description\":\"The governed data status supporting Project capture. ABSENT means unknown. Provisional data remains source-backed but is not a verified catalogue claim.\",\"type\":\"string\",\"const\":\"provisional\"},\"productType\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"variantName\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"imageSha256\":{\"description\":\"SHA-256 of the displayed image `imageUrl` points at, as a hex digest. Lets a caller key a cache or dedupe on the asset rather than its URL. ABSENT means no hash is on record, never that there is no image.\",\"type\":\"string\"},\"hasImage\":{\"type\":\"boolean\"},\"variantCount\":{\"description\":\"How many eligible variants the row's product has, the same set `list_variants` pages, so a follow-up list of the product returns this many:",
103
- " the card's \\\"12 colourways\\\". ABSENT means the product is unknown or has no eligible variant.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"palette\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"description\":\"`#rrggbb` of the swatch, as extracted from the product image.\"},\"name\":{\"description\":\"Stored human colour name for the swatch, when one was extracted.\",\"type\":[\"string\",\"null\"]},\"proportion\":{\"type\":\"number\",\"description\":\"The swatch's share of the analysed image, in [0,1].\"}},\"required\":[\"hex\",\"proportion\"]},\"description\":\"The material's main-image palette — the FULL stored palette, uncapped and in stored order. Colours are EXTRACTED FROM PRODUCT IMAGERY (visual likeness, never a declared colour specification). A one-swatch palette means the extractor found one colour — solid-colour materials are genuinely monochrome — never that the list was trimmed. This array is always present: EMPTY means nothing is on record (unknown), not 'this material has no colours'.\"},\"colourMeta\":{\"type\":\"object\",\"properties\":{\"dominantFamily\":{\"type\":\"string\"},\"dominantHex\":{\"type\":\"string\"},\"mood\":{\"type\":\"string\"}}},\"colourChip\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"description\":\"`#rrggbb` to fill the chip with. EXTRACTED FROM the product image (a visual likeness), never a manufacturer-declared colour specification — surfaces must not present it as one.\"}},\"required\":[\"hex\"],\"description\":\"Present when this material's product imagery carries nothing beyond one colour, so a surface should render that colour rather than the photograph. Set for COATINGS (paints, primers, stains, floor coatings) whose stored palette quantises to a single swatch — a paint's photo is a flat fill, and the colour we hold structured beats a JPEG of it. ABSENT means the question was not established (unknown product type, unextracted or multi-swatch palette) and the image should be rendered; it NEVER asserts 'this is not a coating'.\"},\"attributes\":{\"description\":\"Resolved attribute values for the ids sent in `returnAttributes`, keyed by attribute id. ABSENT entirely when `returnAttributes` was not sent. A key present with `null` means this variant carries no accepted value for that attribute — absent is not empty and neither is null: the three states are distinct on purpose. Values resolve with the normal variant-over-product precedence.\",\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"array\",\"items\":{\"type\":\"string\"}},{\"type\":\"null\"}]}},\"score\":{\"type\":\"number\",\"description\":\"The selected mode's weighted primary score on the [0, maxScore] scale.\"},\"retired\":{\"description\":\"MB lists the SKU as not visible/retired; demoted in ranking. Omitted when false.\",\"type\":\"boolean\"}},\"required\":[\"variantId\",\"brand\",\"product\",\"brandSlug\",\"productId\",\"color\",\"variantName\",\"imageUrl\",\"hasImage\",\"palette\",\"score\"]}},\"view\":{\"default\":\"full\",\"description\":\"Projection echo — always 'full' on this envelope variant.\",\"type\":\"string\",\"const\":\"full\"},\"correctedQuery\":{\"description\":\"Present when a word no material carries was corrected before the search ran: `from` is the query as typed (normalised), `to` the phrasing the page shows results for.\",\"type\":\"object\",\"properties\":{\"from\":{\"type\":\"string\"},\"to\":{\"type\":\"string\"}},\"required\":[\"from\",\"to\"]},\"attribution\":{\"type\":\"object\",\"properties\":{\"basis\":{\"type\":\"string\",\"enum\":[\"image\",\"colour\",\"lexical\",\"agent\",\"attribute\",\"match\"],\"description\":\"The ranking basis. On /api/v1/search this equals the envelope's `mode`. The historical match basis remains readable for stored outcomes.\"},\"issuedAt\":{\"type\":\"string\",\"description\":\"ISO-8601 timestamp of when this response was assembled, so a stored outcome carries its own age without a second lookup.\"},\"responseId\":{\"type\":\"string\",\"description\":\"This response's stable id — the same value as the `X-Request-Id` header. Store it next to the outcome (an order, a save, a click) to join that outcome back to the ranking that produced it. Opaque: round-trip it ver",
104
- "batim, never parse it.\"}},\"required\":[\"basis\",\"issuedAt\",\"responseId\"],\"description\":\"Result attribution receipt. Present on every successful ranked response. Nothing on our side retains it — what you store IS the record.\"},\"suggestions\":{\"default\":[],\"description\":\"Always empty: the one search offers no refinements. Read nothing from it.\",\"maxItems\":0,\"type\":\"array\",\"items\":{\"not\":{}}},\"mode\":{\"type\":\"string\",\"enum\":[\"image\",\"colour\",\"lexical\",\"agent\",\"attribute\"],\"description\":\"What ordered the page: 'image' (a look-alike: image similarity to the seed), 'colour' (the words or the caller named a colour: colour distance inside that colour's family), 'lexical' (the query's words, ranked by text rank on the index), 'attribute' (no words left to rank on: the category and filters define the page), or 'agent' (the search agent chose these variants and their order; scores are rank-based, 1 for the first result falling linearly, and `maxScore` is 1).\"},\"maxScore\":{\"type\":\"number\"},\"note\":{\"type\":\"string\"},\"cursor\":{\"type\":\"string\"},\"timings\":{\"description\":\"Wall-clock milliseconds per step of the search, keyed by step id. The key set is open and depends on the path a query took, so read it by iterating rather than by naming a key. Present only when `explain` is set: diagnostic, not part of the ranking contract.\",\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"number\"}},\"explain\":{\"description\":\"Present only under `explain`: the receipt of the plan the search ran on. Diagnostic, like `timings`.\",\"type\":\"object\",\"properties\":{\"plan\":{\"type\":\"object\",\"properties\":{\"cached\":{\"type\":\"boolean\"},\"plan\":{\"type\":\"object\",\"properties\":{\"brands\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"ids\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"names\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"phrase\":{\"type\":\"string\"}},\"required\":[\"ids\",\"names\",\"phrase\"]},{\"type\":\"null\"}]},\"category\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"label\":{\"type\":\"string\"},\"phrase\":{\"type\":\"string\"},\"productTypeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"label\",\"phrase\",\"productTypeIds\"]},{\"type\":\"null\"}]},\"colour\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"family12\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"familyId\":{\"type\":\"string\"},\"hex\":{\"type\":\"string\"},\"oklab\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":3,\"maxItems\":3},\"phrase\":{\"type\":\"string\"},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"family12\",\"familyId\",\"hex\",\"oklab\",\"phrase\"]},{\"type\":\"null\"}]},\"corpusScope\":{\"type\":\"string\",\"enum\":[\"samplizeCatalogue\",\"materialBankOrderable\",\"materialBankNaOrderable\",\"materialBankNaAndCatalogue\",\"materialBankEuOrderable\",\"designShopOrderable\"]},\"excludeBrands\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"excludes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"phrase\":{\"type\":\"string\"},\"term\":{\"type\":\"string\"}},\"required\":[\"attributeId\",\"phrase\",\"term\"]}},\"leftover\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalised\":{\"type\":\"string\"},\"softAlone\":{\"type\":\"boolean\"},\"vendorColourNames\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"wants\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"fill\":{\"type\":\"number\"},\"phrase\":{\"type\":\"string\"},\"presence\":{\"type\":\"boolean\",\"const\":true},\"strength\":{\"type\":\"string\",\"enum\":[\"hard\",\"soft\"]},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"attributeId\",\"fill\",\"phrase\",\"strength\",\"terms\"]}}},\"required\":[\"brands\",\"category\",\"colour\",\"excludeBrands\",\"excludes\",\"leftover\",\"normalised\",\"softAlone\",\"vend",
105
- "orColourNames\",\"wants\"],\"description\":\"The plan the search ran on: the category, brands, wanted and excluded attribute terms (each hard or soft, with its fill), the colour, the words left for text, and the caller's corpus scope when one was sent.\"},\"signature\":{\"type\":\"string\"},\"source\":{\"type\":\"string\",\"enum\":[\"dictionary\",\"jev\"]},\"version\":{\"type\":\"string\"}},\"required\":[\"cached\",\"plan\",\"signature\",\"source\",\"version\"]}},\"required\":[\"plan\"]},\"query\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},\"seed\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}}},\"required\":[\"results\",\"view\",\"suggestions\",\"mode\",\"maxScore\",\"query\"]},{\"type\":\"object\",\"properties\":{\"results\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributes\":{\"description\":\"Resolved attribute values for the ids sent in `returnAttributes`, keyed by attribute id. ABSENT entirely when `returnAttributes` was not sent. A key present with `null` means this variant carries no accepted value for that attribute — absent is not empty and neither is null: the three states are distinct on purpose. Values resolve with the normal variant-over-product precedence.\",\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"array\",\"items\":{\"type\":\"string\"}},{\"type\":\"null\"}]}},\"brand\":{\"type\":\"string\"},\"brandSlug\":{\"type\":[\"string\",\"null\"]},\"imageSha256\":{\"description\":\"SHA-256 of the displayed image `imageUrl` points at, as a hex digest. Lets a caller key a cache or dedupe on the asset rather than its URL. ABSENT means no hash is on record, never that there is no image.\",\"type\":\"string\"},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"manufacturerCode\":{\"description\":\"The governed manufacturer/source-native item code from `variants.code` (for example \\\"K-7265-BV\\\") — the same key and the same value the full item publishes. It is what separates two cards a reader cannot otherwise tell apart: brand, product name and variant name are shared by 280,334 of 371,515 cardable variants, because `name` is the PRODUCT name and a paint product is a whole collection. ABSENT means no code is recorded for the variant, never an invented one.\",\"type\":\"string\"},\"name\":{\"type\":\"string\",\"description\":\"Product name (the full item's `product`).\"},\"productId\":{\"type\":[\"string\",\"null\"]},\"projectSaveCapability\":{\"type\":\"string\",\"const\":\"allowed\"},\"resultId\":{\"type\":\"string\",\"description\":\"This exact hit's attribution key — `<responseId>:<rank>`, where rank is 1-based within THIS response. Unique across pages, because each page is its own response with its own id. Store it verbatim next to the outcome; it is opaque, and `attribution.responseId` is the field to group by.\"},\"sampleable\":{\"description\":\"Whether a physical sample is explicitly known to be orderable. Absent means unknown, never unavailable.\",\"type\":\"boolean\"},\"score\":{\"type\":\"number\"},\"sourceStatus\":{\"type\":\"string\",\"const\":\"provisional\"},\"variantCount\":{\"description\":\"How many eligible variants the row's product has, the same set `list_variants` pages, so a follow-up list of the product returns this many: the card's \\\"12 colourways\\\". ABSENT means the product is unknown or has no eligible variant.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"brandSlug\",\"imageUrl\",\"name\",\"productId\",\"score\",\"variantId\",\"variantName\"]}},\"view\":{\"type\":\"string\",\"const\":\"card\",\"description\":\"Projection echo — always 'card' on this envelope variant.\"},\"correctedQuery\":{\"description\":\"Present when a word no material carries was corrected before the search ran: `from` is the query as typed (normalised), `to` the phrasing the page shows results for.\",\"type\":\"object\",\"properties\":{\"from\":{\"type\":\"string\"},\"to\":{\"type\":\"string\"}},\"required\":[\"from\",\"to\"]},\"attribution\":{\"type\":\"object\",\"properties\":{\"basis\":{\"type\":\"string\",\"enum\":[\"image\",\"colour\",\"lexical\",\"agent\",\"attribute\",\"match\"],\"description\":\"The ranking basis. On /api/v1/search this e",
106
- "quals the envelope's `mode`. The historical match basis remains readable for stored outcomes.\"},\"issuedAt\":{\"type\":\"string\",\"description\":\"ISO-8601 timestamp of when this response was assembled, so a stored outcome carries its own age without a second lookup.\"},\"responseId\":{\"type\":\"string\",\"description\":\"This response's stable id — the same value as the `X-Request-Id` header. Store it next to the outcome (an order, a save, a click) to join that outcome back to the ranking that produced it. Opaque: round-trip it verbatim, never parse it.\"}},\"required\":[\"basis\",\"issuedAt\",\"responseId\"],\"description\":\"Result attribution receipt. Present on every successful ranked response. Nothing on our side retains it — what you store IS the record.\"},\"suggestions\":{\"default\":[],\"description\":\"Always empty: the one search offers no refinements. Read nothing from it.\",\"maxItems\":0,\"type\":\"array\",\"items\":{\"not\":{}}},\"mode\":{\"type\":\"string\",\"enum\":[\"image\",\"colour\",\"lexical\",\"agent\",\"attribute\"],\"description\":\"What ordered the page: 'image' (a look-alike: image similarity to the seed), 'colour' (the words or the caller named a colour: colour distance inside that colour's family), 'lexical' (the query's words, ranked by text rank on the index), 'attribute' (no words left to rank on: the category and filters define the page), or 'agent' (the search agent chose these variants and their order; scores are rank-based, 1 for the first result falling linearly, and `maxScore` is 1).\"},\"maxScore\":{\"type\":\"number\"},\"note\":{\"type\":\"string\"},\"cursor\":{\"type\":\"string\"},\"timings\":{\"description\":\"Wall-clock milliseconds per step of the search, keyed by step id. The key set is open and depends on the path a query took, so read it by iterating rather than by naming a key. Present only when `explain` is set: diagnostic, not part of the ranking contract.\",\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"number\"}},\"explain\":{\"description\":\"Present only under `explain`: the receipt of the plan the search ran on. Diagnostic, like `timings`.\",\"type\":\"object\",\"properties\":{\"plan\":{\"type\":\"object\",\"properties\":{\"cached\":{\"type\":\"boolean\"},\"plan\":{\"type\":\"object\",\"properties\":{\"brands\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"ids\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"names\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"phrase\":{\"type\":\"string\"}},\"required\":[\"ids\",\"names\",\"phrase\"]},{\"type\":\"null\"}]},\"category\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"label\":{\"type\":\"string\"},\"phrase\":{\"type\":\"string\"},\"productTypeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"label\",\"phrase\",\"productTypeIds\"]},{\"type\":\"null\"}]},\"colour\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"family12\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"familyId\":{\"type\":\"string\"},\"hex\":{\"type\":\"string\"},\"oklab\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":3,\"maxItems\":3},\"phrase\":{\"type\":\"string\"},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"family12\",\"familyId\",\"hex\",\"oklab\",\"phrase\"]},{\"type\":\"null\"}]},\"corpusScope\":{\"type\":\"string\",\"enum\":[\"samplizeCatalogue\",\"materialBankOrderable\",\"materialBankNaOrderable\",\"materialBankNaAndCatalogue\",\"materialBankEuOrderable\",\"designShopOrderable\"]},\"excludeBrands\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"excludes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"phrase\":{\"type\":\"string\"},\"term\":{\"type\":\"string\"}},\"required\":[\"attributeId\",\"phrase\",\"term\"]}},\"leftover\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalised\":{\"type\":\"string\"},\"softAlone\":{\"type\":\"boolean\"},\"vendorCol",
107
- "ourNames\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"wants\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"fill\":{\"type\":\"number\"},\"phrase\":{\"type\":\"string\"},\"presence\":{\"type\":\"boolean\",\"const\":true},\"strength\":{\"type\":\"string\",\"enum\":[\"hard\",\"soft\"]},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"attributeId\",\"fill\",\"phrase\",\"strength\",\"terms\"]}}},\"required\":[\"brands\",\"category\",\"colour\",\"excludeBrands\",\"excludes\",\"leftover\",\"normalised\",\"softAlone\",\"vendorColourNames\",\"wants\"],\"description\":\"The plan the search ran on: the category, brands, wanted and excluded attribute terms (each hard or soft, with its fill), the colour, the words left for text, and the caller's corpus scope when one was sent.\"},\"signature\":{\"type\":\"string\"},\"source\":{\"type\":\"string\",\"enum\":[\"dictionary\",\"jev\"]},\"version\":{\"type\":\"string\"}},\"required\":[\"cached\",\"plan\",\"signature\",\"source\",\"version\"]}},\"required\":[\"plan\"]},\"query\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},\"seed\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}}},\"required\":[\"results\",\"view\",\"suggestions\",\"mode\",\"maxScore\",\"query\"]}]},\"links\":{\"type\":\"object\",\"properties\":{}},\"meta\":{\"type\":\"object\",\"properties\":{\"operationId\":{\"type\":\"string\",\"enum\":[\"search_materials_post\",\"search_materials_get\"]},\"requestId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"operationId\",\"requestId\"]},\"warnings\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}}},\"required\":[\"data\",\"links\",\"meta\",\"warnings\"]},\"SearchVariantsResponse\":{\"type\":\"object\",\"properties\":{\"excludedByCorpusScope\":{\"description\":\"Filtered variant ids outside the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"category\":{\"type\":\"string\"},\"code\":{\"type\":[\"string\",\"null\"]},\"image\":{\"type\":[\"string\",\"null\"]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"materialBankId\":{\"description\":\"The variant's Material Bank SKU. Absent: none recorded.\",\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"notApplicable\":{\"type\":\"object\",\"properties\":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"description\":\"Requested blocks or attributes this product type does not carry.\"},\"preference\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"array\",\"items\":{\"type\":\"number\"}},\"score\":{\"type\":\"number\"}},\"required\":[\"matched\",\"score\"]},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}},\"url\":{\"type\":[\"string\",\"null\"]},\"variantCount\":{\"description\":\"Eligible variants of this product. Absent: none counted.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"variantId\":{\"type\":\"string\"}},\"required\":[\"category\",\"code\",\"brand\",\"name\",\"product\",\"variantId\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"}},\"required\":[\"endCursor\",\"hasNextPage\"]},\"preferenceMatchesRemain\":{\"description\":\"False: nothing from this page on meets any optionalFilter.\",\"type\":\"boolean\"},\"unresolvedVariantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unstated\":{\"description\":\"Filtered attributes no variant in scope states at all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"words\":{\"description\":\"Each word asked for, and whether any variant in scope names it.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"boolean\"},\"word\":{\"type\":\"string\"}},\"required\":[\"matched\",\"word\"]}},\"choices\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"alternatives\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"group\":{\"type\":\"string\"},\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\"},\"label\":{\"type\"",
108
- ":\"string\"}},\"required\":[\"group\",\"id\",\"kind\",\"label\"]}},\"basis\":{\"type\":\"string\"},\"handle\":{\"type\":\"string\"},\"reason\":{\"type\":\"string\"},\"selected\":{\"type\":\"object\",\"properties\":{\"group\":{\"type\":\"string\"},\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"}},\"required\":[\"group\",\"id\",\"kind\",\"label\"]},\"text\":{\"type\":\"string\"}},\"required\":[\"alternatives\",\"basis\",\"handle\",\"reason\",\"selected\",\"text\"]}},\"colours\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"pattern\":\"^#[\\\\da-f]{6}$\",\"description\":\"The colour's own point in the region; it orders matches.\"},\"intent\":{\"type\":\"string\",\"enum\":[\"required\",\"preferred\"]},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\"]},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"hex\",\"op\",\"range\"]},\"description\":\"The colour regions that ran.\"},\"corrections\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"correction\":{\"type\":\"string\"},\"word\":{\"type\":\"string\"}},\"required\":[\"correction\",\"word\"]}},\"filters\":{\"type\":\"object\",\"properties\":{\"anyField\":{\"description\":\"One of values under any of fields (term attributes).\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\"]},\"orText\":{\"type\":\"string\"},\"unstated\":{\"type\":\"string\",\"const\":\"pass\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"fields\",\"op\",\"values\"]}},\"numbers\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"eq\",\"gt\",\"gte\",\"lt\",\"lte\"]},\"value\":{\"type\":\"number\"}},\"required\":[\"field\",\"op\",\"value\"]}},\"presence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"exists\",\"missing\"]}},\"required\":[\"field\",\"op\"]}},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"all\",\"not_in\"]},\"orText\":{\"type\":\"string\"},\"unstated\":{\"type\":\"string\",\"const\":\"pass\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"field\",\"op\",\"values\"]}}},\"description\":\"The filters that ran, the scope among them.\"},\"name\":{\"type\":\"string\",\"description\":\"The paint name looked up.\"},\"oneRowPer\":{\"type\":\"string\",\"enum\":[\"product\",\"variant\"],\"description\":\"A row per product, or per variant for a paint or colour.\"},\"optionalFilters\":{\"type\":\"object\",\"properties\":{\"anyField\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\"]},\"orText\":{\"type\":\"string\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"weight\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":10}},\"required\":[\"fields\",\"op\",\"values\",\"weight\"]}},\"numbers\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"eq\",\"gt\",\"gte\",\"lt\",\"lte\"]},\"value\":{\"type\":\"number\"},\"weight\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":10}},\"required\":[\"field\",\"op\",\"value\",\"weight\"]}},\"presence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"exists\",\"missing\"]},\"weight\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":10}},\"required\":[\"field\",\"op\",\"weight\"]}},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"all\",\"not_in\"]},\"orText\":{\"type\":\"string\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"weight\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":10}},\"required\":[\"field\",\"op\",\"values\",\"weight\"]}}},\"description\":\"The preferences that ran.\"},\"outcome\":{\"type\":\"string\",\"",
109
- "enum\":[\"page\",\"no_match\",\"nothing_understood\",\"out_of_scope\"],\"description\":\"How the search ended.\"},\"scope\":{\"type\":\"object\",\"properties\":{\"anyField\":{\"description\":\"One of values under any of fields (term attributes).\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\"]},\"orText\":{\"type\":\"string\"},\"unstated\":{\"type\":\"string\",\"const\":\"pass\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"fields\",\"op\",\"values\"]}},\"numbers\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"eq\",\"gt\",\"gte\",\"lt\",\"lte\"]},\"value\":{\"type\":\"number\"}},\"required\":[\"field\",\"op\",\"value\"]}},\"presence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"exists\",\"missing\"]}},\"required\":[\"field\",\"op\"]}},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"all\",\"not_in\"]},\"orText\":{\"type\":\"string\"},\"unstated\":{\"type\":\"string\",\"const\":\"pass\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"field\",\"op\",\"values\"]}}},\"description\":\"The fixed scope, repeated in filters.\"},\"understood\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"applied\":{\"type\":\"string\",\"enum\":[\"filter\",\"preference\",\"not_applied\"],\"description\":\"filter narrows; preference only ranks; not_applied did neither.\"},\"id\":{\"type\":\"string\",\"description\":\"The parser's condition id.\"},\"kind\":{\"type\":\"string\",\"enum\":[\"category\",\"brand\",\"term\",\"number\",\"colour\",\"paint\"]},\"label\":{\"type\":\"string\",\"description\":\"What the words were read as.\"},\"note\":{\"type\":\"string\"},\"text\":{\"type\":\"string\",\"description\":\"The query words it came from.\"}},\"required\":[\"applied\",\"id\",\"kind\",\"label\",\"text\"]}},\"unresolved\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"items\",\"pageInfo\",\"oneRowPer\",\"outcome\",\"understood\"]},\"SourceMaterialBatchReceipt\":{\"type\":\"object\",\"properties\":{\"batchId\":{\"type\":\"string\",\"description\":\"The stored batch id (`smb_…`).\"},\"sources\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"sourceId\":{\"type\":\"string\",\"description\":\"The stored file id (`smf_…`).\"},\"role\":{\"type\":\"string\",\"enum\":[\"brief\",\"reference_image\",\"document\",\"document_image\",\"inspiration_image\",\"unclassified\"],\"description\":\"The pipeline-assigned role. `unclassified` is a legitimate terminal value when the file could not be placed; clients should tolerate new values.\"},\"filename\":{\"type\":\"string\"},\"mediaType\":{\"type\":\"string\"},\"sha256\":{\"type\":\"string\",\"description\":\"Lowercase hex SHA-256 of the stored bytes.\"},\"bytes\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"pages\":{\"description\":\"PDF page count; null for images.\",\"anyOf\":[{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},{\"type\":\"null\"}]}},\"required\":[\"sourceId\",\"role\",\"filename\",\"mediaType\",\"sha256\",\"bytes\",\"pages\"]}}},\"required\":[\"batchId\",\"sources\"]},\"VariantAssetPage\":{\"type\":\"object\",\"properties\":{\"documentCoverage\":{\"description\":\"Brand document list state. Absent when documents are filtered out.\",\"type\":\"string\",\"enum\":[\"available\",\"none_declared\",\"not_ingested\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"appliesTo\":{\"description\":\"Only 'product': a product-wide document. Absent: this variant's own.\",\"type\":\"string\",\"const\":\"product\"},\"assetId\":{\"type\":\"string\",\"minLength\":1},\"availability\":{\"type\":\"string\",\"enum\":[\"available\",\"unknown\",\"unavailable\"],\"description\":\"available: MaterialGraph serves url. unknown: brand's link, unchecked.\"},\"byteSize\":{\"description\":\"Not on images; absent when unknown.\",\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"documentTypes\":{\"description\":\"Documents only; absent when unknown.\",\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"technical_data_sheet\",\"product_sheet\",\"technical_bulletin\",\"sustainability_report\",\"specification\",\"installatio",
110
- "n_guide\",\"care_maintenance_guide\",\"operation_manual\",\"warranty\",\"parts_list\",\"technical_drawing\",\"test_report\",\"certificate\",\"declaration_of_performance\",\"environmental_product_declaration\",\"health_product_declaration\",\"ingredient_disclosure\",\"safety_data_sheet\",\"brochure\",\"catalogue\",\"colour_finish_chart\",\"other\",\"unknown\"]}},\"height\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"imageRole\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"string\",\"enum\":[\"product\",\"swatch\",\"detail\",\"scene\",\"technical\",\"colour_chart\",\"sample_collection\",\"other\",\"unknown\"]},\"kind\":{\"type\":\"string\",\"enum\":[\"image\",\"document\",\"cad\",\"bim\",\"model_3d\",\"texture\",\"archive\",\"other\",\"unknown\"]},\"name\":{\"description\":\"Not on images; absent when unknown.\",\"type\":\"string\"},\"presentation\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"string\",\"enum\":[\"edge_to_edge\",\"packshot\",\"cutout_margin\",\"montage\",\"unknown\"]},\"url\":{\"description\":\"Absent when availability is unavailable.\",\"type\":\"string\"},\"width\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"assetId\",\"availability\",\"kind\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"nextCursor\":{\"type\":[\"string\",\"null\"]},\"returnedCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"totalMatches\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"nextCursor\",\"returnedCount\",\"totalMatches\"]},\"primaryAssetId\":{\"description\":\"The variant's primary image. Absent when it has none.\",\"type\":\"string\",\"minLength\":1}},\"required\":[\"items\",\"pageInfo\"]},\"WhoamiResponse\":{\"type\":\"object\",\"properties\":{\"principal\":{\"type\":\"string\",\"description\":\"The resolved principal for the credential (e.g. `apikey:read`).\"},\"scopes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"The scopes granted to this credential (e.g. `mg:read`).\"}},\"required\":[\"principal\",\"scopes\"]},\"__schema0\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"},{\"type\":\"null\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/__schema0\"}},{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}]}},\"operations\":{\"samplize_colorvec_cache\":{\"$ref\":\"#/$defs/SamplizeColorVecCache\"},\"samplize_catalogue_search\":{\"$ref\":\"#/$defs/SamplizeCatalogueSearchResponse\"},\"list_catalog_documents\":{\"$ref\":\"#/$defs/CatalogDocumentList\"},\"list_catalog_pages\":{\"$ref\":\"#/$defs/CatalogPageListResult\"},\"get_catalog_page_representation\":{\"$ref\":\"#/$defs/CataloguePageRepresentationReadResult\"},\"list_catalog_product_references\":{\"$ref\":\"#/$defs/CatalogProductReferenceReadResult\"},\"search_materials_post\":{\"$ref\":\"#/$defs/SearchResponse\"},\"plan_material_query\":{\"$ref\":\"#/$defs/MaterialQueryPlanResponse\"},\"samplize_catalogue_products\":{\"$ref\":\"#/$defs/SamplizeCataloguePage\"},\"search_materials_get\":{\"$ref\":\"#/$defs/SearchResponse\"},\"search_by_colour\":{\"$ref\":\"#/$defs/ByColourResponse\"},\"get_catalogue_references_batch\":{\"$ref\":\"#/$defs/CatalogueReferenceBatchResponse\"},\"list_catalogue_channel_collections\":{\"$ref\":\"#/$defs/CatalogueChannelCollectionsResponse\"},\"get_catalogue_document_access\":{\"$ref\":\"#/$defs/CatalogueDocumentAccessResult\"},\"list_material_blocks\":{\"$ref\":\"#/$defs/MaterialBlockProjection\"},\"list_variant_assets\":{\"$ref\":\"#/$defs/VariantAssetPage\"},\"list_material_documents\":{\"$ref\":\"#/$defs/ProductDocumentPage\"},\"list_schema_value_dictionaries\":{\"$ref\":\"#/$defs/SchemaValueDictionariesResponse\"},\"get_material_pairings\":{\"type\":\"object\",\"properties\":{\"seed\":{\"$ref\":\"#/$defs/MaterialTile\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/PairingItem\"}},\"cospecCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"How many items came from real order evidence (the cospec arm).\"},\"skippedCandidates\":{\"description\":\"Candidates dropped at hydration for violating the material contract; present only when > 0. A malformed row costs itself, never the rail (MG-985).\",\"type\":\"integer\",\"minimum\":-",
111
- "9007199254740991,\"maximum\":9007199254740991},\"ordering\":{\"description\":\"Graph-owned ranking contract; present only when `order` was requested.\",\"$ref\":\"#/$defs/PairingOrdering\"},\"nextCursor\":{\"description\":\"Opaque continuation when another ordered page exists.\",\"type\":\"string\"}},\"required\":[\"seed\",\"items\",\"cospecCount\"]},\"list_associated_finishes\":{\"$ref\":\"#/$defs/DeclaredAssociations\"},\"list_associated_products\":{\"$ref\":\"#/$defs/DeclaredAssociations\"},\"get_applicability\":{\"$ref\":\"#/$defs/ApplicabilityCollection\"},\"list_variants\":{\"$ref\":\"#/$defs/ListVariantsResponse\"},\"list_variant_facets\":{\"$ref\":\"#/$defs/ListVariantFacetsResponse\"},\"search_variants\":{\"$ref\":\"#/$defs/SearchVariantsResponse\"},\"find_variants_by_colour\":{\"$ref\":\"#/$defs/FindVariantsByColourResponse\"},\"find_variants_by_vector\":{\"$ref\":\"#/$defs/FindVariantsByVectorResponse\"},\"find_companions\":{\"$ref\":\"#/$defs/FindCompanionsResponse\"},\"resolve_variant\":{\"$ref\":\"#/$defs/ResolveVariantResponse\"},\"get_variant\":{\"$ref\":\"#/$defs/GetVariantResponse\"},\"resolve_colour_name\":{\"$ref\":\"#/$defs/ResolveColourResponse\"},\"catalog_list_attributes\":{\"$ref\":\"#/$defs/ListAttributesResponse\"},\"catalog_list_enum_values\":{\"$ref\":\"#/$defs/ListEnumValuesResponse\"},\"list_categories\":{\"$ref\":\"#/$defs/ListCategoriesResponse\"},\"get_category\":{\"$ref\":\"#/$defs/GetCategoryResponse\"},\"whoami\":{\"$ref\":\"#/$defs/WhoamiResponse\"},\"search_by_palette\":{\"$ref\":\"#/$defs/SearchByPaletteResponse\"},\"extract_image_palette\":{\"$ref\":\"#/$defs/ExtractPaletteResponse\"},\"list_brands\":{\"$ref\":\"#/$defs/BrandCatalogListPage\"},\"upload_source_material\":{\"$ref\":\"#/$defs/SourceMaterialBatchReceipt\"},\"create_public_run\":{\"$ref\":\"#/$defs/CreatePublicRunResponse\"},\"get_public_run\":{\"$ref\":\"#/$defs/PublicRunResponse\"},\"get_verdict_citation\":{\"type\":\"object\",\"properties\":{\"citationId\":{\"type\":\"string\",\"minLength\":1},\"source\":{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"enum\":[\"source_record\",\"source_material\",\"source_fact\",\"url\",\"asset\",\"download\",\"manual_note\",\"agent_output\"]},\"locator\":{\"type\":\"object\",\"properties\":{\"imageBox\":{\"type\":\"object\",\"properties\":{\"height\":{\"type\":\"number\",\"exclusiveMinimum\":0},\"width\":{\"type\":\"number\",\"exclusiveMinimum\":0},\"x\":{\"type\":\"number\"},\"y\":{\"type\":\"number\"}},\"required\":[\"height\",\"width\",\"x\",\"y\"]},\"page\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"selector\":{\"type\":\"string\",\"minLength\":1},\"xPath\":{\"type\":\"string\",\"minLength\":1}}},\"publicPath\":{\"type\":\"string\",\"format\":\"starts_with\",\"pattern\":\"^\\\\/api\\\\/assets\\\\/.*\"},\"ref\":{\"type\":\"string\",\"minLength\":1},\"sourceAssetId\":{\"type\":\"string\",\"minLength\":1},\"sourceDownloadId\":{\"type\":\"string\",\"minLength\":1},\"sourceFactId\":{\"type\":\"string\",\"minLength\":1},\"sourceId\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1},\"url\":{\"type\":\"string\",\"format\":\"uri\"}},\"required\":[\"kind\",\"ref\"]},\"sourceType\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"citationId\",\"source\",\"sourceType\"]}}}",
46
+ "{\"definitions\":{\"ApplicabilityCollection\":{\"type\":\"object\",\"properties\":{\"direction\":{\"type\":\"string\",\"enum\":[\"forward\",\"reverse\"]},\"kind\":{\"type\":\"string\",\"const\":\"manufacturer_declared_applicability\"},\"requestedSubject\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"product\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]},\"sources\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"coverage\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"countKind\":{\"type\":\"string\",\"enum\":[\"exact\",\"partial\"]},\"declaredCount\":{\"anyOf\":[{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},{\"type\":\"null\"}]},\"sourceAuthority\":{\"type\":\"string\",\"minLength\":1},\"sourceLocator\":{\"type\":\"string\",\"minLength\":1},\"sourceRevision\":{\"type\":\"string\",\"minLength\":1},\"state\":{\"type\":\"string\",\"enum\":[\"available\",\"partial\",\"none_declared\",\"not_ingested\",\"source_not_applicable\",\"unavailable\"]}},\"required\":[\"countKind\",\"declaredCount\",\"sourceAuthority\",\"sourceLocator\",\"sourceRevision\",\"state\"]},{\"type\":\"null\"}]},\"factRevisions\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}},\"facts\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"declaringBrandId\":{\"type\":\"string\",\"minLength\":1},\"evidenceScope\":{\"type\":\"string\",\"const\":\"manufacturer_declared\"},\"finish\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]},\"id\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":21},\"lifecycle\":{\"type\":\"string\",\"enum\":[\"active\",\"tombstoned\"]},\"relation\":{\"type\":\"string\",\"const\":\"applicable_finish\"},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"locator\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"locator\",\"revision\"]},\"subject\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"product\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]}},\"required\":[\"declaringBrandId\",\"evidenceScope\",\"finish\",\"id\",\"lifecycle\",\"relation\",\"source\",\"subject\"]}},\"scope\":{\"type\":\"object\",\"properties\":{\"sourceAuthority\":{\"type\":\"string\",\"minLength\":1},\"sourceLocator\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"sourceAuthority\",\"sourceLocator\"]},\"unresolved\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"declaringBrandId\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"finishKind\":{\"type\":\"string\",\"enum\":[\"variant\",\"unknown\"]},\"finishLocator\":{\"type\":\"string\",\"minLength\":1},\"reason\":{\"type\":\"string\",\"enum\":[\"subject_unresolved\",\"finish_unresolved\",\"both_unresolved\",\"unsupported_subject_kind\"]},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"locator\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"locator\",\"revision\"]},\"subjectKind\":{\"type\":\"string\",\"enum\":[\"product\",\"variant\",\"unknown\"]},\"subjectLocator\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"declaringBrandId\",\"finishKind\",\"finishLocator\",\"reason\",\"source\",\"subjectKind\",\"subjectLocator\"]}}},\"required\":[\"coverage\",\"factRevisions\",\"facts\",\"scope\",\"unresolved\"]}}},\"required\":[\"direction\",\"kind\",\"requestedSubject\",\"sources\"]},\"CatalogDocumentList\":{\"type\":\"object\",\"properties\":{\"catalogs\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"title\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"document\"}",
47
+ ",\"productStatus\":{\"type\":\"string\",\"enum\":[\"partial\",\"not_processed\"]},\"title\":{\"type\":\"string\",\"minLength\":1},\"availability\":{\"type\":\"string\",\"const\":\"available\"},\"document\":{\"type\":\"object\",\"properties\":{\"contentScope\":{\"type\":\"string\",\"enum\":[\"full_document\",\"cover_only\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"application/pdf\"},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"contentScope\",\"id\",\"mediaType\",\"pageCount\"]},\"receipt\":{\"type\":\"object\",\"properties\":{\"extraction\":{\"type\":\"object\",\"properties\":{\"references\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"status\":{\"type\":\"string\",\"enum\":[\"partial\",\"not_processed\"]}},\"required\":[\"references\",\"status\"]},\"failures\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1},\"stage\":{\"type\":\"string\",\"enum\":[\"source\",\"render\",\"extraction\"]}},\"required\":[\"count\",\"reason\",\"stage\"]}},\"pages\":{\"type\":\"object\",\"properties\":{\"documentPositionBase\":{\"type\":\"number\",\"const\":1},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"documentPositionBase\",\"pageCount\"]},\"render\":{\"type\":\"object\",\"properties\":{\"failedPages\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\",\"reason\"]}},\"renderedPages\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"status\":{\"type\":\"string\",\"enum\":[\"complete\",\"partial\",\"not_recorded\"]}},\"required\":[\"failedPages\",\"renderedPages\",\"status\"]},\"source\":{\"type\":\"object\",\"properties\":{\"checksum\":{\"type\":\"object\",\"properties\":{\"algorithm\":{\"type\":\"string\",\"const\":\"sha256\"},\"value\":{\"type\":\"string\",\"pattern\":\"^[a-f0-9]{64}$\"}},\"required\":[\"algorithm\",\"value\"]},\"retainedUrl\":{\"type\":\"string\",\"format\":\"uri\"},\"valueOrigin\":{\"type\":\"string\",\"const\":\"brand_supplied\"},\"status\":{\"type\":\"string\",\"const\":\"retained\"}},\"required\":[\"checksum\",\"retainedUrl\",\"valueOrigin\",\"status\"]}},\"required\":[\"extraction\",\"failures\",\"pages\",\"render\",\"source\"]}},\"required\":[\"brand\",\"edition\",\"id\",\"kind\",\"productStatus\",\"title\",\"availability\",\"document\",\"receipt\"]},{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"title\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"document\"},\"productStatus\":{\"type\":\"string\",\"const\":\"not_processed\"},\"title\":{\"type\":\"string\",\"minLength\":1},\"availability\":{\"type\":\"string\",\"const\":\"source_unavailable\"},\"document\":{\"type\":\"null\"},\"receipt\":{\"type\":\"object\",\"properties\":{\"extraction\":{\"type\":\"object\",\"properties\":{\"references\":{\"type\":\"number\",\"const\":0},\"status\":{\"type\":\"string\",\"const\":\"blocked_source_unavailable\"}},\"required\":[\"references\",\"status\"]},\"failures\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1},\"stage\":{\"type\":\"string\",\"enum\":[\"source\",\"render\",\"extraction\"]}},\"required\":[\"count\",\"reason\",\"stage\"]}},\"pages\":{\"type\":\"object\",\"properties\":{\"documentPositionBase\":{\"type\":\"number\",\"const\":1},\"pageCount\":{\"type\":\"null\"}},\"required\":[\"documentPositionBase\",\"pageCount\"]},\"render\":{\"type\":\"object\",\"properties\":{\"failedPages\":{\"minItems\":0,\"maxItems\":0,\"type\":\"array\",\"items\":{\"not\":{}}},\"renderedPages\":{\"type\":\"number\",\"const\":0},\"status\":{\"type\":\"string\",\"const\":\"blocked_source_unavailable\"}},\"required\":[\"failedPages\",\"renderedPages\",\"status\"]},\"source\":{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"const\":\"retained_source_not_found\"},\"status\":{\"type\":\"string\",\"const\":\"unavai",
48
+ "lable\"}},\"required\":[\"reason\",\"status\"]}},\"required\":[\"extraction\",\"failures\",\"pages\",\"render\",\"source\"]}},\"required\":[\"brand\",\"edition\",\"id\",\"kind\",\"productStatus\",\"title\",\"availability\",\"document\",\"receipt\"]}]}},\"source\":{\"type\":\"string\",\"const\":\"verified-source-material-registry\"}},\"required\":[\"catalogs\",\"source\"]},\"CatalogPageListResult\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"catalog\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"title\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"document\"},\"productStatus\":{\"type\":\"string\",\"enum\":[\"partial\",\"not_processed\"]},\"title\":{\"type\":\"string\",\"minLength\":1},\"availability\":{\"type\":\"string\",\"const\":\"available\"},\"document\":{\"type\":\"object\",\"properties\":{\"contentScope\":{\"type\":\"string\",\"enum\":[\"full_document\",\"cover_only\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"application/pdf\"},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"contentScope\",\"id\",\"mediaType\",\"pageCount\"]},\"receipt\":{\"type\":\"object\",\"properties\":{\"extraction\":{\"type\":\"object\",\"properties\":{\"references\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"status\":{\"type\":\"string\",\"enum\":[\"partial\",\"not_processed\"]}},\"required\":[\"references\",\"status\"]},\"failures\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1},\"stage\":{\"type\":\"string\",\"enum\":[\"source\",\"render\",\"extraction\"]}},\"required\":[\"count\",\"reason\",\"stage\"]}},\"pages\":{\"type\":\"object\",\"properties\":{\"documentPositionBase\":{\"type\":\"number\",\"const\":1},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"documentPositionBase\",\"pageCount\"]},\"render\":{\"type\":\"object\",\"properties\":{\"failedPages\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\",\"reason\"]}},\"renderedPages\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"status\":{\"type\":\"string\",\"enum\":[\"complete\",\"partial\",\"not_recorded\"]}},\"required\":[\"failedPages\",\"renderedPages\",\"status\"]},\"source\":{\"type\":\"object\",\"properties\":{\"checksum\":{\"type\":\"object\",\"properties\":{\"algorithm\":{\"type\":\"string\",\"const\":\"sha256\"},\"value\":{\"type\":\"string\",\"pattern\":\"^[a-f0-9]{64}$\"}},\"required\":[\"algorithm\",\"value\"]},\"retainedUrl\":{\"type\":\"string\",\"format\":\"uri\"},\"valueOrigin\":{\"type\":\"string\",\"const\":\"brand_supplied\"},\"status\":{\"type\":\"string\",\"const\":\"retained\"}},\"required\":[\"checksum\",\"retainedUrl\",\"valueOrigin\",\"status\"]}},\"required\":[\"extraction\",\"failures\",\"pages\",\"render\",\"source\"]}},\"required\":[\"brand\",\"edition\",\"id\",\"kind\",\"productStatus\",\"title\",\"availability\",\"document\",\"receipt\"]},\"pages\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"catalogId\":{\"type\":\"string\",\"minLength\":1},\"documentId\":{\"type\":\"string\",\"minLength\":1},\"editionId\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"original\":{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"documentId\",\"documentPage\"]},\"page\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"printedPageLabel\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\"]},\"representation\":{\"type\":\"object\",\"properties\":{\"artifact\":{\"type\":\"object\",\"properties\":{\"bucket\":{\"type\":\"string\",\"const\":\"materialgraph\"},\"key\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"image/webp\"},\"url\":{\"ty",
49
+ "pe\":\"string\",\"format\":\"uri\"}},\"required\":[\"bucket\",\"key\",\"mediaType\",\"url\"]},\"status\":{\"type\":\"string\",\"const\":\"available\"}},\"required\":[\"artifact\",\"status\"]}},\"required\":[\"catalogId\",\"documentId\",\"editionId\",\"id\",\"original\",\"page\",\"representation\"]},{\"type\":\"object\",\"properties\":{\"catalogId\":{\"type\":\"string\",\"minLength\":1},\"documentId\":{\"type\":\"string\",\"minLength\":1},\"editionId\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"original\":{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"documentId\",\"documentPage\"]},\"page\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"printedPageLabel\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\"]},\"representation\":{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"const\":\"retained_representation_not_found\"},\"requiredArtifact\":{\"type\":\"object\",\"properties\":{\"mediaType\":{\"type\":\"string\",\"const\":\"image/webp\"},\"version\":{\"type\":\"string\",\"const\":\"catalogue-page-webp-v1\"}},\"required\":[\"mediaType\",\"version\"]},\"status\":{\"type\":\"string\",\"const\":\"unavailable\"}},\"required\":[\"reason\",\"requiredArtifact\",\"status\"]}},\"required\":[\"catalogId\",\"documentId\",\"editionId\",\"id\",\"original\",\"page\",\"representation\"]}]}},\"pagination\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"hasMore\":{\"type\":\"boolean\"},\"limit\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":100},\"offset\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"total\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"count\",\"hasMore\",\"limit\",\"offset\",\"total\"]},\"representationCoverage\":{\"type\":\"object\",\"properties\":{\"available\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"failuresByReason\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"const\":\"retained_representation_not_found\"}},\"required\":[\"count\",\"reason\"]}},\"total\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"unavailable\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"available\",\"failuresByReason\",\"total\",\"unavailable\"]},\"status\":{\"type\":\"string\",\"const\":\"available\"}},\"required\":[\"catalog\",\"pages\",\"pagination\",\"representationCoverage\",\"status\"]},{\"type\":\"object\",\"properties\":{\"catalog\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"title\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"document\"},\"productStatus\":{\"type\":\"string\",\"const\":\"not_processed\"},\"title\":{\"type\":\"string\",\"minLength\":1},\"availability\":{\"type\":\"string\",\"const\":\"source_unavailable\"},\"document\":{\"type\":\"null\"},\"receipt\":{\"type\":\"object\",\"properties\":{\"extraction\":{\"type\":\"object\",\"properties\":{\"references\":{\"type\":\"number\",\"const\":0},\"status\":{\"type\":\"string\",\"const\":\"blocked_source_unavailable\"}},\"required\":[\"references\",\"status\"]},\"failures\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1},\"stage\":{\"type\":\"string\",\"enum\":[\"source\",\"render\",\"extraction\"]}},\"required\":[\"count\",\"reason\",\"stage\"]}},\"pages\":{\"type\":\"object\",\"properties\":{\"documentPositionBase\":{\"type\":\"number\",\"const\":1},\"pageCount\":{\"type\":\"null\"}},\"required\":[\"documentPositionBase\",\"pageCount\"]},\"render\":{\"type\":\"object\",\"properties\":{\"failedPages\":{\"minItems\":0,\"maxItems\":0,\"type\":\"array\",\"items\":{\"not\":{}}},\"renderedPages\":{\"type\":\"number\",\"const\":0},\"status\":{\"type\":\"string\",\"const\":\"blocked_source_unavailable\"}},\"required\":[\"fa",
50
+ "iledPages\",\"renderedPages\",\"status\"]},\"source\":{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"const\":\"retained_source_not_found\"},\"status\":{\"type\":\"string\",\"const\":\"unavailable\"}},\"required\":[\"reason\",\"status\"]}},\"required\":[\"extraction\",\"failures\",\"pages\",\"render\",\"source\"]}},\"required\":[\"brand\",\"edition\",\"id\",\"kind\",\"productStatus\",\"title\",\"availability\",\"document\",\"receipt\"]},\"reason\":{\"type\":\"string\",\"const\":\"retained_source_not_found\"},\"status\":{\"type\":\"string\",\"const\":\"source_unavailable\"}},\"required\":[\"catalog\",\"reason\",\"status\"]}]},\"CatalogProductReferenceReadResult\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"catalog\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"title\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"document\"},\"productStatus\":{\"type\":\"string\",\"enum\":[\"partial\",\"not_processed\"]},\"title\":{\"type\":\"string\",\"minLength\":1},\"availability\":{\"type\":\"string\",\"const\":\"available\"},\"document\":{\"type\":\"object\",\"properties\":{\"contentScope\":{\"type\":\"string\",\"enum\":[\"full_document\",\"cover_only\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"application/pdf\"},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"contentScope\",\"id\",\"mediaType\",\"pageCount\"]},\"receipt\":{\"type\":\"object\",\"properties\":{\"extraction\":{\"type\":\"object\",\"properties\":{\"references\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"status\":{\"type\":\"string\",\"enum\":[\"partial\",\"not_processed\"]}},\"required\":[\"references\",\"status\"]},\"failures\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1},\"stage\":{\"type\":\"string\",\"enum\":[\"source\",\"render\",\"extraction\"]}},\"required\":[\"count\",\"reason\",\"stage\"]}},\"pages\":{\"type\":\"object\",\"properties\":{\"documentPositionBase\":{\"type\":\"number\",\"const\":1},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"documentPositionBase\",\"pageCount\"]},\"render\":{\"type\":\"object\",\"properties\":{\"failedPages\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\",\"reason\"]}},\"renderedPages\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"status\":{\"type\":\"string\",\"enum\":[\"complete\",\"partial\",\"not_recorded\"]}},\"required\":[\"failedPages\",\"renderedPages\",\"status\"]},\"source\":{\"type\":\"object\",\"properties\":{\"checksum\":{\"type\":\"object\",\"properties\":{\"algorithm\":{\"type\":\"string\",\"const\":\"sha256\"},\"value\":{\"type\":\"string\",\"pattern\":\"^[a-f0-9]{64}$\"}},\"required\":[\"algorithm\",\"value\"]},\"retainedUrl\":{\"type\":\"string\",\"format\":\"uri\"},\"valueOrigin\":{\"type\":\"string\",\"const\":\"brand_supplied\"},\"status\":{\"type\":\"string\",\"const\":\"retained\"}},\"required\":[\"checksum\",\"retainedUrl\",\"valueOrigin\",\"status\"]}},\"required\":[\"extraction\",\"failures\",\"pages\",\"render\",\"source\"]}},\"required\":[\"brand\",\"edition\",\"id\",\"kind\",\"productStatus\",\"title\",\"availability\",\"document\",\"receipt\"]},\"coverage\":{\"type\":\"object\",\"properties\":{\"documentPages\":{\"type\":\"object\",\"properties\":{\"total\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"withVerifiedReferences\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"total\",\"withVerifiedReferences\"]},\"pagesWithReferences\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"precision\":{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"const\":\"labelled_denominator_not_recorded\"},\"status\":{\"type\":\"string\",\"const\":\"not_measured\"}},\"required\":[\"reason\",\"status\"]},\"productCoverage\":{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",",
51
+ "\"const\":\"source_product_denominator_not_recorded\"},\"status\":{\"type\":\"string\",\"const\":\"not_measured\"}},\"required\":[\"reason\",\"status\"]},\"references\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"unmatched\":{\"type\":\"object\",\"properties\":{\"reasons\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"const\":\"unmatched_source_products_not_recorded\"}},\"status\":{\"type\":\"string\",\"const\":\"not_measured\"}},\"required\":[\"reasons\",\"status\"]}},\"required\":[\"documentPages\",\"pagesWithReferences\",\"precision\",\"productCoverage\",\"references\",\"unmatched\"]},\"references\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"anchor\":{\"type\":\"object\",\"properties\":{\"coordinateSpace\":{\"type\":\"string\",\"const\":\"normalized_0_1000\"},\"height\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"width\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"x\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"y\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"printed_code\"}},\"required\":[\"coordinateSpace\",\"height\",\"width\",\"x\",\"y\",\"kind\"]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"catalogue\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"title\"]},\"document\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"application/pdf\"}},\"required\":[\"id\",\"mediaType\"]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\"]},\"isPrimary\":{\"type\":\"boolean\"},\"page\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"printedPageLabel\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\"]},\"productRegion\":{\"type\":\"object\",\"properties\":{\"coordinateSpace\":{\"type\":\"string\",\"const\":\"normalized_0_1000\"},\"height\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"width\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"x\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"y\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"kind\":{\"type\":\"string\",\"const\":\"product_region\"},\"review\":{\"type\":\"object\",\"properties\":{\"approvedBy\":{\"type\":\"string\",\"minLength\":1},\"confidence\":{\"type\":\"object\",\"properties\":{\"evidenceBasis\":{\"type\":\"string\",\"enum\":[\"human_visual_review\",\"model_assisted_visual_review\"]},\"level\":{\"type\":\"string\",\"const\":\"reviewed\"}},\"required\":[\"evidenceBasis\",\"level\"]},\"method\":{\"type\":\"string\",\"enum\":[\"human\",\"model_assisted\"]},\"model\":{\"type\":\"string\",\"minLength\":1},\"reviewedAt\":{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"}},\"required\":[\"approvedBy\",\"confidence\",\"method\",\"reviewedAt\"]}},\"required\":[\"coordinateSpace\",\"height\",\"width\",\"x\",\"y\",\"kind\",\"review\"]},\"source\":{\"type\":\"object\",\"properties\":{\"brandItemCode\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"brandItemCode\"]},\"status\":{\"type\":\"string\",\"const\":\"verified\"},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"anchor\",\"brand\",\"catalogue\",\"document\",\"edition\",\"isPrimary\",\"page\",\"source\",\"status\",\"variantId\"]}},\"source\":{\"type\":\"string\",\"const\":\"verified-source-material-registry\"},\"status\":{\"type\":\"string\",\"const\":\"available\"}},\"required\":[\"catalog\",\"coverage\",\"references\",\"source\",\"status\"]},{\"type\":\"object\",\"properties\":{\"catalog\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"edition\":{\"type",
52
+ "\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"title\"]},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"document\"},\"productStatus\":{\"type\":\"string\",\"const\":\"not_processed\"},\"title\":{\"type\":\"string\",\"minLength\":1},\"availability\":{\"type\":\"string\",\"const\":\"source_unavailable\"},\"document\":{\"type\":\"null\"},\"receipt\":{\"type\":\"object\",\"properties\":{\"extraction\":{\"type\":\"object\",\"properties\":{\"references\":{\"type\":\"number\",\"const\":0},\"status\":{\"type\":\"string\",\"const\":\"blocked_source_unavailable\"}},\"required\":[\"references\",\"status\"]},\"failures\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"reason\":{\"type\":\"string\",\"minLength\":1},\"stage\":{\"type\":\"string\",\"enum\":[\"source\",\"render\",\"extraction\"]}},\"required\":[\"count\",\"reason\",\"stage\"]}},\"pages\":{\"type\":\"object\",\"properties\":{\"documentPositionBase\":{\"type\":\"number\",\"const\":1},\"pageCount\":{\"type\":\"null\"}},\"required\":[\"documentPositionBase\",\"pageCount\"]},\"render\":{\"type\":\"object\",\"properties\":{\"failedPages\":{\"minItems\":0,\"maxItems\":0,\"type\":\"array\",\"items\":{\"not\":{}}},\"renderedPages\":{\"type\":\"number\",\"const\":0},\"status\":{\"type\":\"string\",\"const\":\"blocked_source_unavailable\"}},\"required\":[\"failedPages\",\"renderedPages\",\"status\"]},\"source\":{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"const\":\"retained_source_not_found\"},\"status\":{\"type\":\"string\",\"const\":\"unavailable\"}},\"required\":[\"reason\",\"status\"]}},\"required\":[\"extraction\",\"failures\",\"pages\",\"render\",\"source\"]}},\"required\":[\"brand\",\"edition\",\"id\",\"kind\",\"productStatus\",\"title\",\"availability\",\"document\",\"receipt\"]},\"reason\":{\"type\":\"string\",\"const\":\"retained_source_not_found\"},\"status\":{\"type\":\"string\",\"const\":\"source_unavailable\"}},\"required\":[\"catalog\",\"reason\",\"status\"]}]},\"CatalogueChannelCollectionsResponse\":{\"type\":\"object\",\"properties\":{\"channel\":{\"type\":\"object\",\"properties\":{\"basis\":{\"type\":\"string\",\"const\":\"governed_variant_membership\"},\"token\":{\"type\":\"string\",\"const\":\"catalogue\"}},\"required\":[\"basis\",\"token\"]},\"collections\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"homepageUrl\":{\"type\":[\"string\",\"null\"]},\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"productCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"sampleProducts\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"assetId\":{\"type\":\"string\"},\"imageUrl\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"productName\":{\"type\":\"string\"},\"sourceImageUrl\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"assetId\",\"imageUrl\",\"productId\",\"productName\",\"sourceImageUrl\",\"variantId\",\"variantName\"]}},\"slug\":{\"type\":\"string\"},\"variantCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"homepageUrl\",\"id\",\"name\",\"productCount\",\"sampleProducts\",\"slug\",\"variantCount\"]}},\"counts\":{\"type\":\"object\",\"properties\":{\"basis\":{\"type\":\"string\",\"const\":\"exact_current_channel_membership\"}},\"required\":[\"basis\"]},\"pagination\":{\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"hasMore\":{\"type\":\"boolean\"},\"limit\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":250},\"offset\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"total\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"count\",\"hasMore\",\"limit\",\"offset\",\"total\"]}},\"required\":[\"channel\",\"collections\",\"counts\",\"pagination\"]},\"CatalogueDocumentAccessResult\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"access\":{\"type\":\"object\",\"properties\":{\"byteRanges\":{\"type\":\"string\",\"enum\":[\"supported\",\"unknown\"]},\"contentType\":{\"type\":\"string\",\"const\":\"application/pdf\"},\"documentId\":{\"type\":\"string\",\"minLength\":1},\"originalUrl\":{\"type\":\"string\",\"format\":\"uri\"},\"readerUrl\":{\"type\":\"string\",\"format\":\"uri\"}},\"required\":[\"byteRanges\",\"contentType\",\"documentId\",\"originalUrl\",\"readerUrl\"]},\"documentId\":{\"type\":\"string\",\"min",
53
+ "Length\":1},\"status\":{\"type\":\"string\",\"const\":\"available\"}},\"required\":[\"access\",\"documentId\",\"status\"]},{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"status\":{\"type\":\"string\",\"const\":\"unresolved_document\"}},\"required\":[\"documentId\",\"status\"]},{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"status\":{\"type\":\"string\",\"const\":\"unavailable\"}},\"required\":[\"documentId\",\"status\"]},{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"status\":{\"type\":\"string\",\"const\":\"forbidden\"}},\"required\":[\"documentId\",\"status\"]},{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"status\":{\"type\":\"string\",\"const\":\"upstream_failure\"}},\"required\":[\"documentId\",\"status\"]}]},\"CataloguePageRepresentationReadResult\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"artifact\":{\"type\":\"object\",\"properties\":{\"bucket\":{\"type\":\"string\",\"const\":\"materialgraph\"},\"key\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"image/webp\"},\"url\":{\"type\":\"string\",\"format\":\"uri\"}},\"required\":[\"bucket\",\"key\",\"mediaType\",\"url\"]},\"page\":{\"type\":\"object\",\"properties\":{\"catalogId\":{\"type\":\"string\",\"minLength\":1},\"documentId\":{\"type\":\"string\",\"minLength\":1},\"editionId\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"original\":{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"documentId\",\"documentPage\"]},\"page\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"printedPageLabel\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\"]},\"representation\":{\"type\":\"object\",\"properties\":{\"artifact\":{\"type\":\"object\",\"properties\":{\"bucket\":{\"type\":\"string\",\"const\":\"materialgraph\"},\"key\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"image/webp\"},\"url\":{\"type\":\"string\",\"format\":\"uri\"}},\"required\":[\"bucket\",\"key\",\"mediaType\",\"url\"]},\"status\":{\"type\":\"string\",\"const\":\"available\"}},\"required\":[\"artifact\",\"status\"]}},\"required\":[\"catalogId\",\"documentId\",\"editionId\",\"id\",\"original\",\"page\",\"representation\"]},\"status\":{\"type\":\"string\",\"const\":\"available\"}},\"required\":[\"artifact\",\"page\",\"status\"]},{\"type\":\"object\",\"properties\":{\"page\":{\"type\":\"object\",\"properties\":{\"catalogId\":{\"type\":\"string\",\"minLength\":1},\"documentId\":{\"type\":\"string\",\"minLength\":1},\"editionId\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"original\":{\"type\":\"object\",\"properties\":{\"documentId\":{\"type\":\"string\",\"minLength\":1},\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"documentId\",\"documentPage\"]},\"page\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"printedPageLabel\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\"]},\"representation\":{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"const\":\"retained_representation_not_found\"},\"requiredArtifact\":{\"type\":\"object\",\"properties\":{\"mediaType\":{\"type\":\"string\",\"const\":\"image/webp\"},\"version\":{\"type\":\"string\",\"const\":\"catalogue-page-webp-v1\"}},\"required\":[\"mediaType\",\"version\"]},\"status\":{\"type\":\"string\",\"const\":\"unavailable\"}},\"required\":[\"reason\",\"requiredArtifact\",\"status\"]}},\"required\":[\"catalogId\",\"documentId\",\"editionId\",\"id\",\"original\",\"page\",\"representation\"]},\"reason\":{\"type\":\"string\",\"const\":\"retained_representation_not_found\"},\"requiredArtifact\":{\"type\":\"object\",\"properties\":{\"mediaType\":{\"type\":\"string\",\"const\":\"image/webp\"},\"version\":{\"type\":\"string\",\"const\":\"catalogue-page-webp-v1\"}},\"required\":[\"mediaType\",\"version\"]},\"status\":{\"type\":\"string\",\"const\":\"unavailable\"}},\"required\":[\"page\",\"reason\",\"requiredArtifact\",\"status\"]},{\"type\":\"object\",\"properties\":{\"pageId\":{\"type\":\"string\",\"minLength\":1},\"status\":{\"type\":\"string\",\"const\":\"unresolved_page\"}},\"required\":[\"pageId\",\"status\"]}]},\"CatalogueReferenceBatchResponse\":{\"type\":\"object\",\"properties\":{\"coverage\":{\"t",
54
+ "ype\":\"object\",\"properties\":{\"noVerifiedReference\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"requested\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"unavailable\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"unresolvedVariant\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"upstreamFailure\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"verified\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"noVerifiedReference\",\"requested\",\"unavailable\",\"unresolvedVariant\",\"upstreamFailure\",\"verified\"]},\"results\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"reference\":{\"type\":\"object\",\"properties\":{\"anchor\":{\"type\":\"object\",\"properties\":{\"coordinateSpace\":{\"type\":\"string\",\"const\":\"normalized_0_1000\"},\"height\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"width\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"x\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"y\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"printed_code\"}},\"required\":[\"coordinateSpace\",\"height\",\"width\",\"x\",\"y\",\"kind\"]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"catalogue\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"title\"]},\"document\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"mediaType\":{\"type\":\"string\",\"const\":\"application/pdf\"}},\"required\":[\"id\",\"mediaType\"]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\"]},\"isPrimary\":{\"type\":\"boolean\"},\"page\":{\"type\":\"object\",\"properties\":{\"documentPage\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"pageCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"printedPageLabel\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"documentPage\"]},\"productRegion\":{\"type\":\"object\",\"properties\":{\"coordinateSpace\":{\"type\":\"string\",\"const\":\"normalized_0_1000\"},\"height\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"width\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":1000},\"x\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"y\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":999},\"kind\":{\"type\":\"string\",\"const\":\"product_region\"},\"review\":{\"type\":\"object\",\"properties\":{\"approvedBy\":{\"type\":\"string\",\"minLength\":1},\"confidence\":{\"type\":\"object\",\"properties\":{\"evidenceBasis\":{\"type\":\"string\",\"enum\":[\"human_visual_review\",\"model_assisted_visual_review\"]},\"level\":{\"type\":\"string\",\"const\":\"reviewed\"}},\"required\":[\"evidenceBasis\",\"level\"]},\"method\":{\"type\":\"string\",\"enum\":[\"human\",\"model_assisted\"]},\"model\":{\"type\":\"string\",\"minLength\":1},\"reviewedAt\":{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"}},\"required\":[\"approvedBy\",\"confidence\",\"method\",\"reviewedAt\"]}},\"required\":[\"coordinateSpace\",\"height\",\"width\",\"x\",\"y\",\"kind\",\"review\"]},\"source\":{\"type\":\"object\",\"properties\":{\"brandItemCode\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"brandItemCode\"]},\"status\":{\"type\":\"string\",\"const\":\"verified\"},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"anchor\",\"brand\",\"catalogue\",\"document\",\"edition\",\"isPrimary\",\"page\",\"source\",\"status\",\"variantId\"]},\"status\":{\"type\":\"string\",\"const\":\"verified\"},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"reference\",\"status\",\"variantId\"]},{\"type\":\"object\",\"properties\":{\"publication\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"s",
55
+ "tring\",\"minLength\":1}},\"required\":[\"id\",\"name\"]},\"catalogue\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"title\"]},\"documentId\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"edition\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\"]},\"referencedProductCount\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"brand\",\"catalogue\",\"documentId\",\"edition\"]},\"reason\":{\"type\":\"string\",\"enum\":[\"no_publication_on_record\",\"publication_source_unavailable\",\"publication_not_reviewed\",\"product_not_yet_referenced\"]},\"status\":{\"type\":\"string\",\"const\":\"no_verified_reference\"},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"reason\",\"status\",\"variantId\"]},{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"const\":\"unresolved_variant\"},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"status\",\"variantId\"]},{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"const\":\"unavailable\"},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"status\",\"variantId\"]},{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"const\":\"upstream_failure\"},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"status\",\"variantId\"]}]}}},\"required\":[\"coverage\",\"results\"]},\"CategoryColorProfilesResponse\":{\"type\":\"object\",\"properties\":{\"basis\":{\"type\":\"object\",\"properties\":{\"refreshedAt\":{\"description\":\"When the view was last refreshed (ISO 8601), or null if it has not been refreshed since refresh-time tracking was added.\",\"type\":[\"string\",\"null\"]},\"variantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Total variants materialized in `mv_category_color_profiles` across ALL categories — the size of the snapshot these profiles are computed from, not the size of the corpus.\"}},\"required\":[\"refreshedAt\",\"variantCount\"],\"description\":\"The snapshot these profiles were read from, so a caller can see it is query interpretation a partial or stale view.\"},\"profiles\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"avgChroma\":{\"type\":\"number\",\"description\":\"Variant-weighted mean OKLab chroma across the category.\"},\"avgLightness\":{\"type\":\"number\",\"description\":\"Variant-weighted mean OKLab lightness across the category.\"},\"categoryKey\":{\"type\":\"string\",\"description\":\"The selected category's taxonomy key — a product type id, a group id under groupBy=group, or the sorted keys joined with \\\"+\\\" under groupBy=merged.\"},\"colors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"description\":\"The bucket's average OKLab rendered as an sRGB hex.\"},\"oklab\":{\"type\":\"object\",\"properties\":{\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"l\":{\"type\":\"number\"}},\"required\":[\"a\",\"b\",\"l\"],\"description\":\"The bucket's average OKLab coordinates.\"},\"proportion\":{\"type\":\"number\",\"description\":\"This bucket's share of the selection's total colored variants (0–1).\"},\"variantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Variants in this color bucket across the selected categories.\"}},\"required\":[\"hex\",\"oklab\",\"proportion\",\"variantCount\"]},\"description\":\"The category's representative colors, in the order the chosen `select` mode produced.\"},\"level\":{\"type\":\"string\",\"enum\":[\"group\",\"type\",\"merged\"],\"description\":\"Which taxonomy tier `categoryKey` names, or `merged` when it is a composite over a caller-defined key set.\"},\"members\":{\"description\":\"Under groupBy=merged, the caller's keys in composite-key order, so `categoryKey` never has to be split. Absent for single-category profiles.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"name\":{\"type\":\"string\",\"description\":\"Display name of the category, from the taxonomy.\"},\"path\":{\"type\":\"string\",\"description\":\"Display-name path, \\\" / \\\" separated, e.g. \\\"Tile Surfaces / Ceramic and Porcelain Tile\\\". A merged profile joins its members' paths with \\\" + \\\".",
56
+ "\"},\"variantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Total colored variants behind this category in the materialized view.\"}},\"required\":[\"avgChroma\",\"avgLightness\",\"categoryKey\",\"colors\",\"level\",\"name\",\"path\",\"variantCount\"]},\"description\":\"One profile per requested category, in request order — or, under groupBy=merged, a single composite profile.\"}},\"required\":[\"basis\",\"profiles\"]},\"CreatePublicRunResponse\":{\"type\":\"object\",\"properties\":{\"accepted\":{\"type\":\"boolean\"},\"replayed\":{\"type\":\"boolean\"},\"workflowRunId\":{\"type\":\"string\"},\"run\":{\"$ref\":\"#/$defs/PublicRun\"}},\"required\":[\"accepted\",\"replayed\",\"workflowRunId\",\"run\"]},\"DeclaredAssociations\":{\"type\":\"object\",\"properties\":{\"associations\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"colorwayCount\":{\"description\":\"The eligible variants of this association's product, the set `list_variants` pages, so a follow-up list returns this many. Absent when the product has no eligible variant.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"declared\":{\"type\":\"object\",\"properties\":{\"basis\":{\"type\":\"string\",\"const\":\"manufacturer_declared\",\"description\":\"The manufacturer enumerated this association in their own catalog data.\"},\"confidence\":{\"type\":\"number\",\"description\":\"The stored confidence for this edge. A FIXED convention value (0.9) for warehouse-declared associations, not a measurement — never present it as a per-edge score or use it to rank.\"},\"source\":{\"type\":\"string\",\"const\":\"warehouse\",\"description\":\"The provenance recorded on the edge: the manufacturer catalog warehouse feed.\"}},\"required\":[\"basis\",\"confidence\",\"source\"]},\"imageUrl\":{\"description\":\"Canonical thumbnail (same policy as siblings/pairings); null when there is none.\",\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"productTypeReceipt\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"proposedProductTypes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"confidence\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"displayName\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"isPrimary\":{\"type\":\"boolean\"},\"scope\":{\"type\":\"string\",\"enum\":[\"variant\",\"product\"]},\"sourceUrl\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"confidence\",\"displayName\",\"id\",\"isPrimary\",\"scope\",\"sourceUrl\"]}},\"state\":{\"type\":\"string\",\"const\":\"accepted\"}},\"required\":[\"proposedProductTypes\",\"state\"]},{\"type\":\"object\",\"properties\":{\"proposedProductTypes\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"confidence\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"displayName\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"isPrimary\":{\"type\":\"boolean\"},\"scope\":{\"type\":\"string\",\"enum\":[\"variant\",\"product\"]},\"sourceUrl\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"confidence\",\"displayName\",\"id\",\"isPrimary\",\"scope\",\"sourceUrl\"]}},\"state\":{\"type\":\"string\",\"const\":\"proposed\"}},\"required\":[\"proposedProductTypes\",\"state\"]},{\"type\":\"object\",\"properties\":{\"proposedProductTypes\":{\"minItems\":0,\"maxItems\":0,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"confidence\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"displayName\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"isPrimary\":{\"type\":\"boolean\"},\"scope\":{\"type\":\"string\",\"enum\":[\"variant\",\"product\"]},\"sourceUrl\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"confidence\",\"displayName\",\"id\",\"isPrimary\",\"scope\",\"sourceUrl\"]}},\"state\":{\"type\":\"string\",\"const\":\"unknown\"}},\"required\":[\"proposedProductTypes\",\"state\"]}]},\"kindLabel\":{\"description\":\"The accepted display category (the variant's primary product type), for a card's kind pill. Null when none is accepted; never a proposal.\",\"type\":[\"string\",\"null\"]},\"priceTier\":{\"description\":\"The variant's accepted `price_tier` term (`$` to `$$$$$`). Absent means unknown, never cheap.\",\"type\":\"string\"},\"relation\":{\"type\":\"string\",\"const\":\"applicable_finish\"},\"role\":{\"type\":\"string\",\"enum\":[\"fi",
57
+ "nish\",\"product\"]},\"sampleable\":{\"description\":\"Whether a physical sample is explicitly known to be orderable. Absent means unknown, never unavailable.\",\"type\":\"boolean\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"declared\",\"imageUrl\",\"product\",\"productTypeReceipt\",\"kindLabel\",\"relation\",\"role\",\"variantId\",\"variantName\"]}},\"kind\":{\"type\":\"string\",\"const\":\"declared_association\",\"description\":\"Constant discriminator. These are manufacturer-declared facts; `/pairings` items are inferred companionship. Never merge the two sets.\"},\"nextCursor\":{\"description\":\"Opaque continuation for the same subject, direction and corpus scope; absent on the last page.\",\"type\":\"string\"},\"returnedCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"How many associations this page carries.\"},\"subject\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"product\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"product\",\"variantId\",\"variantName\"]},\"totalAssociations\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"The TRUE number of declared associations for this subject and direction under the requested corpus scope, not the size of this page. Safe to render as \\\"Compatible Finishes (N)\\\"; `associations` is one page of that set, so walk `nextCursor` before making any claim about the whole set.\"}},\"required\":[\"associations\",\"kind\",\"returnedCount\",\"subject\",\"totalAssociations\"]},\"ExtractPaletteResponse\":{\"type\":\"object\",\"properties\":{\"palette\":{\"description\":\"The extracted palette, or null when extraction found no usable color.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"colors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"proportion\":{\"type\":\"number\"}},\"required\":[\"hex\",\"name\",\"proportion\"]},\"description\":\"Named palette swatches, most dominant first.\"},\"dominant\":{\"description\":\"The dominant color, or null when none could be derived.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"family\":{\"type\":\"string\",\"description\":\"Coarse hue family, e.g. 'green'.\"},\"hex\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"oklch\":{\"type\":\"string\",\"description\":\"OKLCH string, e.g. 'oklch(72% 0.040 145)'.\"}},\"required\":[\"family\",\"hex\",\"name\",\"oklch\"]},{\"type\":\"null\"}]},\"mood\":{\"type\":\"string\",\"description\":\"A one-word read of the palette, e.g. \\\"muted\\\", \\\"vibrant\\\", \\\"dark\\\".\"}},\"required\":[\"colors\",\"dominant\",\"mood\"]},{\"type\":\"null\"}]}},\"required\":[\"palette\"]},\"FindCompanionsResponse\":{\"type\":\"object\",\"properties\":{\"companions\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"colorFit\":{\"description\":\"Palette likeness to the seeds. Never reorders.\",\"type\":[\"number\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"lift\":{\"type\":\"number\",\"description\":\"Mean lift over the seeds it pairs with; above 1 is above average.\"},\"product\":{\"type\":\"string\"},\"reason\":{\"type\":\"string\",\"description\":\"Why it was suggested, in one line.\"},\"relation\":{\"type\":\"string\",\"enum\":[\"companion\",\"brand_sibling\",\"colorway\"],\"description\":\"companion is another brand; brand_sibling and colorway share the seed's.\"},\"seedMatchCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"How many seeds it was sampled with.\"},\"swatches\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"proportion\":{\"type\":\"number\"}},\"required\":[\"hex\",\"proportion\"]}},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"lift\",\"product\",\"reason\",\"relation\",\"seedMatchCount\",\"variantId\",\"variantName\"]}},\"excludedBySearchCatalogueSubset\":{\"description\":\"Seed ids outside the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"seeds\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"resolvedFrom\":{\"type\":\"string\",\"description\":\"The id or",
58
+ " name this seed came from.\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"product\",\"resolvedFrom\",\"variantId\",\"variantName\"]}},\"unresolved\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"References that matched no variant.\"}},\"required\":[\"companions\",\"seeds\",\"unresolved\"]},\"FindVariantsByColorResponse\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"gatedOut\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Color-matched candidates dropped by list_variants' hard filters or eligibility.\"},\"matches\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"brandId\":{\"type\":\"string\"},\"category\":{\"type\":[\"string\",\"null\"]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"All original source category IDs in source order; empty when unknown.\"},\"code\":{\"type\":[\"string\",\"null\"]},\"colors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"distance\":{\"type\":\"number\",\"description\":\"OKLab distance to the matched swatch. Never a probability.\"},\"hex\":{\"type\":\"string\"},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Position in the request's `colors[]`.\"},\"proportion\":{\"type\":\"number\",\"description\":\"The matched swatch's share of its image, 0 to 1.\"},\"target\":{\"description\":\"Requested target share, palette only; null otherwise. Ranked by, not filtered.\",\"type\":[\"number\",\"null\"]}},\"required\":[\"distance\",\"hex\",\"index\",\"proportion\",\"target\"]}},\"coverage\":{\"type\":\"number\",\"description\":\"Share of the request's colors this variant matched, 0 to 1. Never a probability.\"},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"productTypeId\":{\"description\":\"Accepted primary specification type ID, independent of source categories; null when unknown.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":\"string\"}},\"required\":[\"brand\",\"brandId\",\"category\",\"categories\",\"code\",\"colors\",\"coverage\",\"imageUrl\",\"product\",\"productId\",\"productTypeId\",\"variantId\",\"variantName\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"},\"poolTruncated\":{\"type\":\"boolean\",\"description\":\"True when matches exist past the checked pool: add productTypeIds or brands.\"}},\"required\":[\"endCursor\",\"hasNextPage\",\"poolTruncated\"]},\"resolvedColors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"catalogueVariant\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"color\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},{\"type\":\"null\"}]},\"hex\":{\"type\":\"string\"},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"enum\":[\"point\",\"region\"],\"description\":\"region: a named meaning's own OKLCh bounds, kept — never collapsed to one hex.\"},\"share\":{\"description\":\"Renormalised share, image-extracted colors only; else null.\",\"type\":[\"number\",\"null\"]}},\"required\":[\"catalogueVariant\",\"hex\",\"index\",\"kind\",\"share\"]}},\"unresolvedColors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"alternatives\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"hex\":{\"type\":\"string\"},\"libraryId\":{\"type\":\"string\"},\"libraryName\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"query\":{\"type\":\"string\"}},\"required\":[\"hex\",\"libraryId\",\"libraryName\",\"name\",\"query\"]}},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"input\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"alternatives\",\"index\",\"input\"]}},\"mode\":{\"type\":\"string\",\"const\":\"contains\"}},\"required\":[\"gatedOut\",\"matches\",\"pageInfo\",\"resolvedColors\",\"unresolvedColors\",\"mode\"]},{\"type\":\"object\",\"properties\":{\"gatedOut\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"",
59
+ "Color-matched candidates dropped by list_variants' hard filters or eligibility.\"},\"matches\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"brandId\":{\"type\":\"string\"},\"category\":{\"type\":[\"string\",\"null\"]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"All original source category IDs in source order; empty when unknown.\"},\"code\":{\"type\":[\"string\",\"null\"]},\"colors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"distance\":{\"type\":\"number\",\"description\":\"OKLab distance to the matched swatch. Never a probability.\"},\"hex\":{\"type\":\"string\"},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Position in the request's `colors[]`.\"},\"proportion\":{\"type\":\"number\",\"description\":\"The matched swatch's share of its image, 0 to 1.\"},\"target\":{\"description\":\"Requested target share, palette only; null otherwise. Ranked by, not filtered.\",\"type\":[\"number\",\"null\"]}},\"required\":[\"distance\",\"hex\",\"index\",\"proportion\",\"target\"]}},\"coverage\":{\"type\":\"number\",\"description\":\"Share of the request's colors this variant matched, 0 to 1. Never a probability.\"},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"productTypeId\":{\"description\":\"Accepted primary specification type ID, independent of source categories; null when unknown.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":\"string\"}},\"required\":[\"brand\",\"brandId\",\"category\",\"categories\",\"code\",\"colors\",\"coverage\",\"imageUrl\",\"product\",\"productId\",\"productTypeId\",\"variantId\",\"variantName\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"},\"poolTruncated\":{\"type\":\"boolean\",\"description\":\"True when matches exist past the checked pool: add productTypeIds or brands.\"}},\"required\":[\"endCursor\",\"hasNextPage\",\"poolTruncated\"]},\"resolvedColors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"catalogueVariant\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"color\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},{\"type\":\"null\"}]},\"hex\":{\"type\":\"string\"},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"enum\":[\"point\",\"region\"],\"description\":\"region: a named meaning's own OKLCh bounds, kept — never collapsed to one hex.\"},\"share\":{\"description\":\"Renormalised share, image-extracted colors only; else null.\",\"type\":[\"number\",\"null\"]}},\"required\":[\"catalogueVariant\",\"hex\",\"index\",\"kind\",\"share\"]}},\"unresolvedColors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"alternatives\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"hex\":{\"type\":\"string\"},\"libraryId\":{\"type\":\"string\"},\"libraryName\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"query\":{\"type\":\"string\"}},\"required\":[\"hex\",\"libraryId\",\"libraryName\",\"name\",\"query\"]}},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"input\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"alternatives\",\"index\",\"input\"]}},\"mode\":{\"type\":\"string\",\"const\":\"palette\"}},\"required\":[\"gatedOut\",\"matches\",\"pageInfo\",\"resolvedColors\",\"unresolvedColors\",\"mode\"]},{\"type\":\"object\",\"properties\":{\"searchCatalogueSubset\":{\"description\":\"The corpus the ranked candidates were drawn from — present ONLY when the request narrowed it. ABSENT means the whole graph. The reference is resolved unscoped either way.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\",\"description\":\"What the scope admits, in one sentence, for a human reader.\"},\"scope\":{\"type\":\"string\",\"enum\":[\"all\",\"samplizeCatalogue\",\"materialBankOrderable\",\"materialBankNaOrderable\",\"materialBankNaAndCatalogue\",\"materialBankEuOrderable\",\"designShopOrderable\"],\"description\":\"Which corpus to answer from. samplizeCatalogue admits published US",
60
+ " paint colors regardless of stock. ABSENT (or 'all') means the WHOLE GRAPH — every material MaterialGraph knows, orderable or not; absence is never a narrower default. Three transaction-oriented scopes gate on governed CHANNEL membership: 'materialBankNaOrderable' (Material Bank North America, ~277,000 materials), 'materialBankEuOrderable' (Material Bank Europe, ~65,000) and 'designShopOrderable' (DesignShop, ~34,000, with the products DesignShop hides from browse excluded). 'materialBankNaAndCatalogue' is the one-query union of Material Bank North America and the governed Catalogue editorial discovery corpus; that union does not by itself claim every member is transactable. 'materialBankOrderable' is NOT one of them: it selects materials carrying a Material Bank identity, which is a provenance signal rather than a channel one, and it admits 98.4% of the graph — use it to exclude crawl-sourced brands, not to mean orderable. A scope answers membership in its named governed corpus, never suitability: scope on channel, then refine on sector. Every scope is applied INSIDE the query: `limit` fills with eligible rows and `counts` describe the scoped corpus, which post-filtering a page cannot give you. An unknown value is a 400 naming it, never a silent fall back to the whole graph.\"}},\"required\":[\"description\",\"scope\"]},\"excludedBySearchCatalogueSubset\":{\"description\":\"Real variant ids outside `searchCatalogueSubset` or the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"reference\":{\"type\":\"object\",\"properties\":{\"candidates\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"brandSlug\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"brandSlug\",\"color\",\"imageUrl\",\"product\",\"productId\",\"variantId\",\"variantName\"]}},\"color\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"name\":{\"type\":[\"string\",\"null\"]},\"ref\":{\"type\":\"string\"}},\"required\":[\"hex\",\"name\",\"ref\"]},{\"type\":\"null\"}]},\"input\":{\"type\":\"object\",\"properties\":{\"color\":{\"type\":\"string\"},\"material\":{\"type\":\"string\"},\"oklab\":{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"}},\"required\":[\"L\",\"a\",\"b\"]},\"variantId\":{\"type\":\"string\"}}},\"resolution\":{\"type\":\"string\",\"enum\":[\"resolved\",\"ambiguous\"]},\"seed\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"brandSlug\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"brandSlug\",\"color\",\"imageUrl\",\"product\",\"productId\",\"variantId\",\"variantName\"]},{\"type\":\"null\"}]}},\"required\":[\"candidates\",\"color\",\"input\",\"resolution\",\"seed\"]},\"unresolved\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"matches\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"brandId\":{\"type\":\"string\"},\"code\":{\"type\":[\"string\",\"null\"]},\"colorSimilarity\":{\"type\":[\"number\",\"null\"]},\"distance\":{\"type\":[\"number\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"brandId\",\"code\",\"colorSimilarity\",\"distance\",\"imageUrl\",\"product\",\"productId\",\"variantId\",\"variantName\"]}},\"mode\":{\"type\":\"string\",\"const\":\"rerank\"},\"resolvedColors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"catalogueVariant\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"color\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},{\"type\":\"null\"}]},\"hex\":{\"type\":\"string\"},\"index\":{\"type\":\"integer\",\"minimum\":-9007199",
61
+ "254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"enum\":[\"point\",\"region\"],\"description\":\"region: a named meaning's own OKLCh bounds, kept — never collapsed to one hex.\"},\"share\":{\"description\":\"Renormalised share, image-extracted colors only; else null.\",\"type\":[\"number\",\"null\"]}},\"required\":[\"catalogueVariant\",\"hex\",\"index\",\"kind\",\"share\"]}}},\"required\":[\"reference\",\"unresolved\",\"matches\",\"mode\",\"resolvedColors\"]}]},\"FindVariantsByVectorResponse\":{\"type\":\"object\",\"properties\":{\"excludedBySearchCatalogueSubset\":{\"description\":\"Filtered variant ids outside the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"category\":{\"description\":\"The first original source category, or null when unknown.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"description\":\"All original source categories in source order.\"},\"productType\":{\"description\":\"The accepted primary specification type, or null for a color sample or unresolved subject.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"sampleSubject\":{\"type\":\"string\",\"enum\":[\"material\",\"paint_color_sample\",\"unknown\",\"conflict\"]},\"colorOptionValueId\":{\"type\":[\"string\",\"null\"]},\"code\":{\"description\":\"The brand's item code.\",\"type\":[\"string\",\"null\"]},\"image\":{\"description\":\"The primary product image, or null when there is none.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"alt\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}},\"required\":[\"alt\",\"url\"]},{\"type\":\"null\"}]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The brand. `id` is the slug get_brand takes.\"},\"name\":{\"type\":\"string\",\"description\":\"The variant's own name.\"},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"url\":{\"description\":\"The brand's page for it, or null when none is known.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"materialBankId\":{\"type\":[\"string\",\"null\"]},\"notApplicable\":{\"type\":\"object\",\"properties\":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"description\":\"Requested blocks or attributes this product type does not carry.\"},\"preference\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"array\",\"items\":{\"type\":\"number\"}},\"score\":{\"type\":\"number\"}},\"required\":[\"matched\",\"score\"]},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}},\"variantCount\":{\"description\":\"Eligible variants of this product. Absent: none counted.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"similarity\":{\"type\":\"number\",\"description\":\"Voyage cosine to the query. Ranks only; not a probability.\"}},\"required\":[\"category\",\"categories\",\"productType\",\"sampleSubject\",\"colorOptionValueId\",\"code\",\"brand\",\"name\",\"product\",\"variantId\",\"materialBankId\",\"similarity\"]}},\"mode\":{\"type\":\"string\",\"enum\":[\"text\",\"image\",\"text_and_image\"]},\"reference\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"url\",\"assetId\",\"variantId\",\"sourceId\"]}},\"required\":[\"id\",\"kind\"]},{\"type\":\"null\"}]},\"scan\":{\"type\":\"object\",\"properties\":{\"exhausted\":{\"type\":\"boolean\",\"description\":\"True when no further candidates match; false means more may exist.\"},\"read\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"rejected\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"route\":{\"type\":\"string\",\"enum\":[\"lane\",\"metadata\",\"allowlist\"]}},\"required\":[\"exhausted\",\"read\",\"rejected\",\"route\"]},\"timings\":{\"type\":\"object\",\"prope",
62
+ "rties\":{\"embedMs\":{\"type\":\"number\"},\"filterMs\":{\"type\":\"number\"},\"referenceMs\":{\"type\":\"number\"},\"totalMs\":{\"type\":\"number\"},\"vectorMs\":{\"type\":\"number\"},\"verifyMs\":{\"type\":\"number\"}},\"required\":[\"embedMs\",\"filterMs\",\"referenceMs\",\"totalMs\",\"vectorMs\",\"verifyMs\"]},\"unresolvedVariantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unstated\":{\"description\":\"Filtered attributes no variant in scope states at all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"items\",\"mode\",\"reference\",\"scan\",\"timings\"]},\"GetCategoryResponse\":{\"type\":\"object\",\"properties\":{\"aliases\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ancestors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]}},\"children\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]}},\"description\":{\"type\":[\"string\",\"null\"]},\"formerNames\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"const\":\"category\"},\"name\":{\"type\":\"string\"},\"path\":{\"type\":\"string\"},\"depth\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"aliases\",\"ancestors\",\"children\",\"description\",\"formerNames\",\"id\",\"kind\",\"name\",\"path\",\"depth\"]},\"GetVariantResponse\":{\"type\":\"object\",\"properties\":{\"category\":{\"description\":\"The first original source category, or null when unknown.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"description\":\"All original source categories in source order.\"},\"productType\":{\"description\":\"The accepted primary specification type, or null for a color sample or unresolved subject.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"sampleSubject\":{\"type\":\"string\",\"enum\":[\"material\",\"paint_color_sample\",\"unknown\",\"conflict\"]},\"colorOptionValueId\":{\"type\":[\"string\",\"null\"]},\"code\":{\"description\":\"The brand's item code.\",\"type\":[\"string\",\"null\"]},\"image\":{\"description\":\"The primary product image, or null when there is none.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"alt\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}},\"required\":[\"alt\",\"url\"]},{\"type\":\"null\"}]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The brand. `id` is the slug get_brand takes.\"},\"name\":{\"type\":\"string\",\"description\":\"The variant's own name.\"},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"url\":{\"description\":\"The brand's page for it, or null when none is known.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"materialBankId\":{\"description\":\"The variant's Material Bank SKU. Absent: none recorded.\",\"type\":\"string\"},\"notApplicable\":{\"type\":\"object\",\"properties\":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"description\":\"Requested blocks or attributes this product type does not carry.\"},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}}},\"required\":[\"category\",\"categories\",\"productType\",\"sampleSubject\",\"colorOptionValueId\",\"code\",\"image\",\"brand\",\"name\",\"product\",\"url\",\"variantId\"]},\"ListAttributesResponse\":{\"type\":\"object\",\"properties\":{\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"blockIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"description\":{\"type\":\"string\"},\"dictionaryId\":{\"type\":[\"string\",\"null\"]},\"filterOps\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\",\"all\",\"exists\",\"missing\",\"eq\",\"gt\",\"gte\",\"lt\",\"lte\"]},\"description\":\"list_variants ops; empty when it cannot filter on it.\"},\"filterable",
63
+ "\":{\"type\":\"boolean\"},\"id\":{\"type\":\"string\"},\"match\":{\"description\":\"Present only when the page answers a query.\",\"type\":\"object\",\"properties\":{\"distance\":{\"description\":\"Fuse distance, 0 best.\",\"type\":\"number\"},\"matchedText\":{\"type\":[\"string\",\"null\"]},\"method\":{\"type\":\"string\",\"enum\":[\"exact\",\"alias\",\"fuzzy\",\"vector\"]},\"similarity\":{\"description\":\"Cosine similarity, 1 best.\",\"type\":\"number\"},\"valueId\":{\"description\":\"The dictionary term matchedText named exactly or by alias; present only for a value-tier match.\",\"type\":\"string\"}},\"required\":[\"matchedText\",\"method\"]},\"name\":{\"type\":\"string\"},\"statedBy\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991,\"description\":\"Live variants stating this, in the categories or all; 0 means none.\"},\"unitId\":{\"type\":[\"string\",\"null\"]},\"valueKind\":{\"type\":\"string\"}},\"required\":[\"blockIds\",\"description\",\"dictionaryId\",\"filterOps\",\"filterable\",\"id\",\"name\",\"statedBy\",\"unitId\",\"valueKind\"]}},\"liveVariants\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991,\"description\":\"Live variants in the categories, or all without categoryIds.\"},\"outsideScope\":{\"description\":\"Page one only: matches outside blockIds ranking above the best item.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"blockIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"blockIds\",\"id\",\"name\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"}},\"required\":[\"endCursor\",\"hasNextPage\"]}},\"required\":[\"items\",\"liveVariants\",\"pageInfo\"]},\"ListBrandsPage\":{\"type\":\"object\",\"properties\":{\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brandId\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"website\":{\"description\":\"The brand's homepage, when on record.\",\"type\":[\"string\",\"null\"]}},\"required\":[\"brandId\",\"name\",\"website\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"}},\"required\":[\"endCursor\",\"hasNextPage\"]}},\"required\":[\"items\",\"pageInfo\"]},\"ListCategoriesResponse\":{\"type\":\"object\",\"properties\":{\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hasChildren\":{\"type\":\"boolean\"},\"id\":{\"type\":\"string\"},\"match\":{\"description\":\"Present only when the page answers a query.\",\"type\":\"object\",\"properties\":{\"matchedText\":{\"type\":[\"string\",\"null\"]},\"method\":{\"type\":\"string\",\"enum\":[\"exact\",\"alias\",\"fuzzy\"]}},\"required\":[\"matchedText\",\"method\"]},\"name\":{\"type\":\"string\"},\"parentId\":{\"type\":[\"string\",\"null\"]},\"path\":{\"type\":\"string\"},\"depth\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"hasChildren\",\"id\",\"name\",\"parentId\",\"path\",\"depth\"]}},\"notice\":{\"description\":\"Present only when the query is refused as a category.\",\"type\":\"string\"},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"nextCursor\":{\"type\":[\"string\",\"null\"]},\"returnedCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"totalMatches\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"nextCursor\",\"returnedCount\",\"totalMatches\"]}},\"required\":[\"items\",\"pageInfo\"]},\"ListEnumValuesResponse\":{\"type\":\"object\",\"properties\":{\"dictionaryId\":{\"type\":[\"string\",\"null\"]},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"definition\":{\"type\":[\"string\",\"null\"]},\"dictionaryId\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"match\":{\"type\":\"object\",\"properties\":{\"distance\":{\"type\":\"number\"},\"matchedText\":{\"type\":[\"string\",\"null\"]},\"method\":{\"type\":\"string\",\"enum\":[\"exact\",\"alias\",\"fuzzy\",\"vector\"]},\"resolvedFrom\":{\"type\":\"string\"},\"similarity\":{\"type\":\"number\"}},\"required\":[\"matchedText\",\"method\"]},\"valueId\":{\"type\":\"string\"}},\"required\":[\"attributeIds\",\"definition\",\"dictionaryId\",\"label\",\"valueId\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"}},\"required\":[\"endCursor\",\"hasNextPage\"]}},\"required\":[\"dictionaryId\",\"items\",\"pageInfo\"]},\"ListVariantFacetsResponse\":{\"type\":\"object\",\"properties",
64
+ "\":{\"matchedVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"facets\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"missingVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"categorical\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"value\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"variantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991}},\"required\":[\"value\",\"label\",\"variantCount\"]}},\"hasMoreValues\":{\"type\":\"boolean\"}},\"required\":[\"attributeId\",\"name\",\"missingVariantCount\",\"kind\",\"values\",\"hasMoreValues\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"missingVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"boolean\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"value\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"variantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991}},\"required\":[\"value\",\"label\",\"variantCount\"]}},\"hasMoreValues\":{\"type\":\"boolean\"}},\"required\":[\"attributeId\",\"name\",\"missingVariantCount\",\"kind\",\"values\",\"hasMoreValues\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"missingVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"numeric\"},\"min\":{\"type\":[\"number\",\"null\"]},\"max\":{\"type\":[\"number\",\"null\"]},\"unitId\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"attributeId\",\"name\",\"missingVariantCount\",\"kind\",\"min\",\"max\",\"unitId\"]}]}}},\"required\":[\"matchedVariantCount\",\"facets\"]},\"ListVariantsResponse\":{\"type\":\"object\",\"properties\":{\"excludedBySearchCatalogueSubset\":{\"description\":\"Filtered variant ids outside the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"category\":{\"description\":\"The first original source category, or null when unknown.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"description\":\"All original source categories in source order.\"},\"productType\":{\"description\":\"The accepted primary specification type, or null for a color sample or unresolved subject.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"sampleSubject\":{\"type\":\"string\",\"enum\":[\"material\",\"paint_color_sample\",\"unknown\",\"conflict\"]},\"colorOptionValueId\":{\"type\":[\"string\",\"null\"]},\"code\":{\"description\":\"The brand's item code.\",\"type\":[\"string\",\"null\"]},\"image\":{\"description\":\"The primary product image, or null when there is none.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"alt\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}},\"required\":[\"alt\",\"url\"]},{\"type\":\"null\"}]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The brand. `id` is the slug get_brand takes.\"},\"name\":{\"type\":\"string\",\"description\":\"The variant's own name.\"},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"url\":{\"description\":\"The brand's page for it, or null when none is known.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"materialBankId\":{\"description\":\"The variant's Material Bank SKU. Absent: none recorded.\",\"type\":\"string\"},\"notApplicable\":{\"type\":\"object\",\"properties\":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"description\":\"Requested blocks or attributes this product type does not carry.\"},\"preference\":{\"type\":\"object\",\"properties\":{\"matched\"",
65
+ ":{\"type\":\"array\",\"items\":{\"type\":\"number\"}},\"score\":{\"type\":\"number\"}},\"required\":[\"matched\",\"score\"]},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}},\"variantCount\":{\"description\":\"Eligible variants of this product. Absent: none counted.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"category\",\"categories\",\"productType\",\"sampleSubject\",\"colorOptionValueId\",\"code\",\"brand\",\"name\",\"product\",\"variantId\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"}},\"required\":[\"endCursor\",\"hasNextPage\"]},\"preferenceMatchesRemain\":{\"description\":\"False: nothing from this page on meets any optionalFilter.\",\"type\":\"boolean\"},\"unavailableVariantIds\":{\"description\":\"Filtered ids in the catalogue this list can't show, e.g. retired.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unresolvedVariantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unstated\":{\"description\":\"Filtered attributes no variant in scope states at all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"words\":{\"description\":\"Each word asked for, and whether any variant in scope names it.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"boolean\"},\"word\":{\"type\":\"string\"}},\"required\":[\"matched\",\"word\"]}}},\"required\":[\"items\",\"pageInfo\"]},\"MaterialBlockProjection\":{\"type\":\"object\",\"properties\":{\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"canonicalBlockId\":{\"type\":\"string\"},\"canonicalBlockName\":{\"type\":\"string\"},\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"confidence\":{\"type\":\"number\"},\"displayValue\":{\"description\":\"The value dictionary's label for a single-term `value`. Absent when no label is on record; `value` stays the canonical token.\",\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"valueOrigin\":{\"type\":\"string\"},\"status\":{\"type\":\"string\",\"enum\":[\"complete\",\"partial\",\"missing\",\"not_applicable\"]},\"unit\":{\"type\":\"string\"},\"value\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"},{\"type\":\"array\",\"items\":{}},{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]}},\"required\":[\"attributeId\",\"label\",\"status\",\"value\"]}},\"missingAttributeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"status\":{\"type\":\"string\",\"enum\":[\"complete\",\"partial\",\"missing\",\"not_applicable\"]}},\"required\":[\"canonicalBlockId\",\"canonicalBlockName\",\"fields\",\"missingAttributeIds\",\"status\"]}},\"variantId\":{\"type\":\"string\"}},\"required\":[\"blocks\",\"variantId\"]},\"MaterialTile\":{\"type\":\"object\",\"properties\":{\"availability\":{\"type\":\"string\",\"enum\":[\"available\",\"discontinued\",\"superseded\",\"unknown\"],\"description\":\"Orderability: 'available' (listed in the catalog of record), 'discontinued' (withdrawn from that catalog — not a reviewed manufacturer-discontinuation claim), 'superseded' (a reviewed successor relationship exists and the material is no longer listed), 'unknown' (never checked).\"},\"brand\":{\"type\":\"string\"},\"category\":{\"description\":\"The first original source category name, or null when unknown.\",\"type\":[\"string\",\"null\"]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"All accepted source category ids in original source order; empty when unknown.\"},\"color\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":[\"number\",\"null\"]},\"dominantHex\":{\"type\":[\"string\",\"null\"]},\"hsl\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"h\":{\"type\":\"number\",\"minimum\":0,\"exclusiveMaximum\":360},\"l\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"s\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1}},\"required\":[\"h\",\"l\",\"s\"]},{\"type\":\"null\"}]},\"oklab\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"l\":{\"type\":\"number\"}},\"required\":[\"a\",\"b\",\"l\"]},{\"type\":\"null\"}]},\"valueOrigin\":{\"description\":\"Where `dominantHex` — and the `hsl` derived from it — came from: 'declared' is the brand's own published color, 'derived' wa",
66
+ "s read out of product imagery. It does NOT cover `oklab`, `chroma` or `vibrancy`: those are statistics of the IMAGE and stay measured whatever the hex says. Only the record read resolves this; a tile omits the key, and absent means unresolved, never 'declared'.\",\"type\":\"string\",\"enum\":[\"pim\",\"brand_declared\",\"computed\"]},\"vibrancy\":{\"type\":[\"number\",\"null\"]}},\"required\":[\"chroma\",\"dominantHex\",\"hsl\",\"oklab\",\"vibrancy\"]},\"colorName\":{\"description\":\"The accepted Color Name attribute — the colorway's true name where variants.name collapsed to the product's; absent means the attribute is absent (MG-940).\",\"type\":\"string\"},\"imageSource\":{\"anyOf\":[{\"type\":\"string\",\"enum\":[\"r2\",\"origin\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"sampleable\":{\"description\":\"Whether a physical sample is explicitly known to be orderable. Absent means unknown, never unavailable.\",\"type\":\"boolean\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"availability\",\"brand\",\"category\",\"categories\",\"color\",\"imageSource\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},\"PairingItem\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"inScope\":{\"type\":[\"boolean\",\"null\"]},\"brandSlug\":{\"type\":\"string\"},\"category\":{\"type\":[\"string\",\"null\"]},\"color\":{\"type\":[\"string\",\"null\"]},\"customerCount\":{\"type\":\"number\"},\"demand\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"momentum\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"percentChange\":{\"type\":[\"number\",\"null\"]},\"priorSpecCount\":{\"type\":\"number\"},\"state\":{\"type\":\"string\",\"enum\":[\"rising\",\"fading\",\"stable\",\"emerging\",\"insufficient_volume\"]},\"trailingSpecCount\":{\"type\":\"number\"}},\"required\":[\"percentChange\",\"priorSpecCount\",\"state\",\"trailingSpecCount\"]},{\"type\":\"null\"}]},\"projectCount\":{\"type\":\"number\"},\"specCount\":{\"type\":\"number\"}},\"required\":[\"momentum\",\"projectCount\",\"specCount\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"lift\":{\"type\":\"number\"},\"liftLabel\":{\"type\":\"string\"},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"projectCount\":{\"type\":\"number\"},\"relation\":{\"type\":\"string\",\"enum\":[\"companion\",\"brand_sibling\",\"colorway\"]},\"topProjectTypes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"projectCount\":{\"type\":\"number\"},\"projectType\":{\"type\":\"string\"}},\"required\":[\"projectCount\",\"projectType\"]}},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]},\"ranking\":{\"type\":\"object\",\"properties\":{\"anchorColorSimilarity\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"anchorColorSimilarityMeasurable\":{\"type\":\"boolean\"},\"basis\":{\"type\":\"string\",\"const\":\"dominant_color_oklab\"},\"lightness\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"lightnessMeasurable\":{\"type\":\"boolean\"}},\"required\":[\"anchorColorSimilarity\",\"anchorColorSimilarityMeasurable\",\"basis\",\"lightness\",\"lightnessMeasurable\"]},\"source\":{\"type\":\"string\",\"const\":\"cospec\"}},\"required\":[\"brand\",\"brandSlug\",\"category\",\"color\",\"customerCount\",\"demand\",\"imageUrl\",\"lift\",\"liftLabel\",\"product\",\"productId\",\"projectCount\",\"topProjectTypes\",\"variantId\",\"variantName\",\"source\"]},{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"inScope\":{\"type\":[\"boolean\",\"null\"]},\"brandSlug\":{\"type\":\"string\"},\"category\":{\"type\":[\"string\",\"null\"]},\"color\":{\"type\":[\"string\",\"null\"]},\"customerCount\":{\"type\":\"number\"},\"demand\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"momentum\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"percentChange\":{\"type\":[\"number\",\"null\"]},\"priorSpecCount\":{\"type\":\"number\"},\"state\":{\"type\":\"string\",\"enum\":[\"rising\",\"fading\",\"stable\",\"emerging\",\"insufficient_volume\"]},\"trailingSpecCount\":{\"type\":\"number\"}},\"required\":[\"percentChange\",\"priorSpecCount\",\"state\",\"trailingSpecCount\"]},{\"type\":\"null\"}]},\"projectCount\":{\"type\":\"number\"},\"specCount\":{\"type\":\"number\"}},\"required\":[\"momentum\",\"projectCount\",\"specCount\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"lift\":{\"type\":\"number\"},\"liftLabel\":{\"type\":\"string\"},\"product\":{\"type\":\"string\"},\"productId\":{\"type\"",
67
+ ":\"string\"},\"projectCount\":{\"type\":\"number\"},\"relation\":{\"type\":\"string\",\"enum\":[\"companion\",\"brand_sibling\",\"colorway\"]},\"topProjectTypes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"projectCount\":{\"type\":\"number\"},\"projectType\":{\"type\":\"string\"}},\"required\":[\"projectCount\",\"projectType\"]}},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]},\"ranking\":{\"type\":\"object\",\"properties\":{\"anchorColorSimilarity\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"anchorColorSimilarityMeasurable\":{\"type\":\"boolean\"},\"basis\":{\"type\":\"string\",\"const\":\"dominant_color_oklab\"},\"lightness\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"lightnessMeasurable\":{\"type\":\"boolean\"}},\"required\":[\"anchorColorSimilarity\",\"anchorColorSimilarityMeasurable\",\"basis\",\"lightness\",\"lightnessMeasurable\"]},\"source\":{\"type\":\"string\",\"const\":\"considered\"}},\"required\":[\"brand\",\"brandSlug\",\"category\",\"color\",\"customerCount\",\"demand\",\"imageUrl\",\"lift\",\"liftLabel\",\"product\",\"productId\",\"projectCount\",\"topProjectTypes\",\"variantId\",\"variantName\",\"source\"]},{\"type\":\"object\",\"properties\":{\"availability\":{\"type\":\"string\",\"enum\":[\"available\",\"discontinued\",\"superseded\",\"unknown\"],\"description\":\"Orderability: 'available' (listed in the catalog of record), 'discontinued' (withdrawn from that catalog — not a reviewed manufacturer-discontinuation claim), 'superseded' (a reviewed successor relationship exists and the material is no longer listed), 'unknown' (never checked).\"},\"brand\":{\"type\":\"string\"},\"category\":{\"description\":\"The first original source category name, or null when unknown.\",\"type\":[\"string\",\"null\"]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"All accepted source category ids in original source order; empty when unknown.\"},\"color\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":[\"number\",\"null\"]},\"dominantHex\":{\"type\":[\"string\",\"null\"]},\"hsl\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"h\":{\"type\":\"number\",\"minimum\":0,\"exclusiveMaximum\":360},\"l\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"s\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1}},\"required\":[\"h\",\"l\",\"s\"]},{\"type\":\"null\"}]},\"oklab\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"l\":{\"type\":\"number\"}},\"required\":[\"a\",\"b\",\"l\"]},{\"type\":\"null\"}]},\"valueOrigin\":{\"description\":\"Where `dominantHex` — and the `hsl` derived from it — came from: 'declared' is the brand's own published color, 'derived' was read out of product imagery. It does NOT cover `oklab`, `chroma` or `vibrancy`: those are statistics of the IMAGE and stay measured whatever the hex says. Only the record read resolves this; a tile omits the key, and absent means unresolved, never 'declared'.\",\"type\":\"string\",\"enum\":[\"pim\",\"brand_declared\",\"computed\"]},\"vibrancy\":{\"type\":[\"number\",\"null\"]}},\"required\":[\"chroma\",\"dominantHex\",\"hsl\",\"oklab\",\"vibrancy\"]},\"colorName\":{\"description\":\"The accepted Color Name attribute — the colorway's true name where variants.name collapsed to the product's; absent means the attribute is absent (MG-940).\",\"type\":\"string\"},\"imageSource\":{\"anyOf\":[{\"type\":\"string\",\"enum\":[\"r2\",\"origin\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"sampleable\":{\"description\":\"Whether a physical sample is explicitly known to be orderable. Absent means unknown, never unavailable.\",\"type\":\"boolean\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]},\"inScope\":{\"type\":[\"boolean\",\"null\"]},\"ranking\":{\"type\":\"object\",\"properties\":{\"anchorColorSimilarity\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"anchorColorSimilarityMeasurable\":{\"type\":\"boolean\"},\"basis\":{\"type\":\"string\",\"const\":\"dominant_color_oklab\"},\"lightness\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"lightnessMeasurable\":{\"type\":\"boolean\"}},\"required\":[\"anchorColorSimilarity\",\"anchorColorSimilarityMeasurable\",\"basis\",\"lightness\",\"lightnessMeasurable\"]},\"score\":{\"type\":\"number\"},\"source\":{\"type\":\"string\",\"const\":\"color\"}},\"required\":[\"avail",
68
+ "ability\",\"brand\",\"category\",\"categories\",\"color\",\"imageSource\",\"imageUrl\",\"product\",\"variantId\",\"variantName\",\"score\",\"source\"]}]},\"PairingOrdering\":{\"type\":\"object\",\"properties\":{\"anchorColorBasis\":{\"type\":\"string\",\"const\":\"one_minus_oklab_euclidean_distance\"},\"applied\":{\"type\":\"string\",\"enum\":[\"relevance\",\"lightness_asc\",\"lightness_desc\"]},\"colorSpace\":{\"type\":\"string\",\"const\":\"oklab\"},\"direction\":{\"type\":\"string\",\"enum\":[\"ascending\",\"descending\"]},\"lightnessRange\":{\"type\":\"object\",\"properties\":{\"max\":{\"type\":\"number\",\"const\":1},\"min\":{\"type\":\"number\",\"const\":0}},\"required\":[\"max\",\"min\"]},\"missingValues\":{\"type\":\"string\",\"const\":\"last\"},\"requested\":{\"type\":\"string\",\"enum\":[\"relevance\",\"lightness_asc\",\"lightness_desc\"]},\"tieBreak\":{\"type\":\"string\",\"const\":\"variantId_asc\"}},\"required\":[\"anchorColorBasis\",\"applied\",\"colorSpace\",\"direction\",\"lightnessRange\",\"missingValues\",\"requested\",\"tieBreak\"]},\"ProductDocumentPage\":{\"type\":\"object\",\"properties\":{\"coverage\":{\"type\":\"object\",\"properties\":{\"productUnion\":{\"type\":\"object\",\"properties\":{\"declaredCount\":{\"anyOf\":[{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},{\"type\":\"null\"}]},\"exact\":{\"type\":\"boolean\"},\"readableCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"state\":{\"type\":\"string\",\"enum\":[\"available\",\"none_declared\",\"not_ingested\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]}},\"required\":[\"declaredCount\",\"exact\",\"readableCount\",\"state\"]},\"requestedVariant\":{\"type\":\"object\",\"properties\":{\"declaredCount\":{\"anyOf\":[{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},{\"type\":\"null\"}]},\"exact\":{\"type\":\"boolean\"},\"readableCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"state\":{\"type\":\"string\",\"enum\":[\"available\",\"none_declared\",\"not_ingested\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]}},\"required\":[\"declaredCount\",\"exact\",\"readableCount\",\"state\"]},\"sources\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"declaredCount\":{\"anyOf\":[{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},{\"type\":\"null\"}]},\"exact\":{\"type\":\"boolean\"},\"readableCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"scope\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"product\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"id\",\"revision\"]},\"state\":{\"type\":\"string\",\"enum\":[\"available\",\"none_declared\",\"not_ingested\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]}},\"required\":[\"declaredCount\",\"exact\",\"readableCount\",\"scope\",\"source\",\"state\"]}}},\"required\":[\"productUnion\",\"requestedVariant\",\"sources\"]},\"documents\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"appliesToRequestedVariant\":{\"type\":\"boolean\"},\"contentType\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"declarations\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"readable\":{\"type\":\"boolean\"},\"scope\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"product\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"id\",\"revision\"]},\"status\":{\"type\":\"string\",\"enum\":[\"downloaded\",\"linked_not_downloaded\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]}},\"required\":[\"readable\",\"scope\",\"source\",\"status\"]}},\"declaredScopes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"produc",
69
+ "t\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]}},\"documentTypes\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"technical_data_sheet\",\"product_sheet\",\"technical_bulletin\",\"sustainability_report\",\"specification\",\"installation_guide\",\"care_maintenance_guide\",\"operation_manual\",\"warranty\",\"parts_list\",\"technical_drawing\",\"test_report\",\"certificate\",\"declaration_of_performance\",\"environmental_product_declaration\",\"health_product_declaration\",\"ingredient_disclosure\",\"safety_data_sheet\",\"brochure\",\"catalogue\",\"color_finish_chart\",\"other\",\"unknown\"]}},\"fileExtension\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"id\":{\"type\":\"string\",\"minLength\":1},\"originalName\":{\"type\":\"string\",\"minLength\":1},\"scope\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"inherited\":{\"type\":\"boolean\"},\"kind\":{\"type\":\"string\",\"enum\":[\"product\",\"variant\"]}},\"required\":[\"id\",\"inherited\",\"kind\"]},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"id\",\"revision\"]},\"status\":{\"type\":\"string\",\"enum\":[\"downloaded\",\"linked_not_downloaded\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]},\"url\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"variantAttribution\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}}},\"required\":[\"appliesToRequestedVariant\",\"contentType\",\"declarations\",\"declaredScopes\",\"fileExtension\",\"id\",\"originalName\",\"scope\",\"source\",\"status\",\"url\",\"variantAttribution\"]}},\"nextCursor\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"totalDocuments\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"coverage\",\"documents\",\"nextCursor\",\"totalDocuments\",\"variantId\"]},\"PublicRun\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"workflowId\":{\"type\":\"string\",\"description\":\"The workflow this run belongs to, the same id its path names.\"},\"clientReference\":{\"type\":[\"string\",\"null\"]},\"status\":{\"type\":\"string\",\"enum\":[\"queued\",\"claimed\",\"running\",\"suspended\",\"succeeded\",\"failed\",\"canceled\"]},\"redactedInputJson\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},\"redactedOutputJson\":{\"anyOf\":[{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]},\"usageJson\":{\"anyOf\":[{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]},\"artifactRefs\":{\"anyOf\":[{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\"},\"ref\":{\"type\":\"string\"}},\"required\":[\"kind\",\"ref\"]}},{\"type\":\"null\"}]},\"failureJson\":{\"anyOf\":[{\"$ref\":\"#/$defs/PublicRunFailure\"},{\"type\":\"null\"}]},\"suspensionPayload\":{\"description\":\"The current typed question payload while `status` is `suspended`; null otherwise. The same exact payload is retained on the `suspended` ledger event.\",\"anyOf\":[{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]},\"suspensionStepId\":{\"description\":\"The step awaiting input while `status` is `suspended` — pass it back as `stepId` when resuming, so a stale client cannot resume a step the run has already moved past. Read `suspensionPayload` for the current typed question. The same exact payload is retained on the `suspended` ledger event for event-stream consumers.\",\"type\":[\"string\",\"null\"]},\"eventCursor\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"attempts\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"startedAt\":{\"anyOf\":[{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},{\"type\":\"null\"}]},\"cancellationReques",
70
+ "tedAt\":{\"anyOf\":[{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},{\"type\":\"null\"}]},\"completedAt\":{\"anyOf\":[{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},{\"type\":\"null\"}]},\"createdAt\":{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},\"updatedAt\":{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"}},\"required\":[\"id\",\"workflowId\",\"clientReference\",\"status\",\"redactedInputJson\",\"redactedOutputJson\",\"usageJson\",\"artifactRefs\",\"failureJson\",\"suspensionPayload\",\"suspensionStepId\",\"eventCursor\",\"attempts\",\"startedAt\",\"cancellationRequestedAt\",\"completedAt\",\"createdAt\",\"updatedAt\"]},\"PublicRunFailure\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"},\"retryable\":{\"type\":\"boolean\"},\"detail\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}}},\"required\":[\"code\",\"message\",\"retryable\"]},\"PublicRunResponse\":{\"type\":\"object\",\"properties\":{\"run\":{\"$ref\":\"#/$defs/PublicRun\"}},\"required\":[\"run\"]},\"ResolveColorResponse\":{\"type\":\"object\",\"properties\":{\"alternatives\":{\"description\":\"Explicit manufacturer choices when a paint name is ambiguous; never selected automatically.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"hex\":{\"type\":\"string\"},\"libraryId\":{\"type\":\"string\"},\"libraryName\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"query\":{\"type\":\"string\"}},\"required\":[\"hex\",\"libraryId\",\"libraryName\",\"name\",\"query\"]}},\"genericResolution\":{\"description\":\"Generic color meaning only; paint identity is reported by match.\",\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"confidence\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"input\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"const\":\"resolved\"},\"others\":{\"maxItems\":4,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"band\":{\"type\":\"string\",\"enum\":[\"inside\",\"near\",\"far\"]},\"family\":{\"type\":\"string\",\"enum\":[\"white\",\"cream\",\"gray\",\"black\",\"beige\",\"taupe\",\"brown\",\"red\",\"orange\",\"yellow\",\"green\",\"teal\",\"blue\",\"purple\",\"pink\"]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"band\",\"family\",\"hex\",\"id\",\"name\",\"range\"]}},\"principal\":{\"type\":\"object\",\"properties\":{\"band\":{\"type\":\"string\",\"enum\":[\"inside\",\"near\",\"far\"]},\"family\":{\"type\":\"string\",\"enum\":[\"white\",\"cream\",\"gray\",\"black\",\"beige\",\"taupe\",\"brown\",\"red\",\"orange\",\"yellow\",\"green\",\"teal\",\"blue\",\"purple\",\"pink\"]}",
71
+ ",\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"band\",\"family\",\"hex\",\"id\",\"name\",\"range\"]},\"source\":{\"type\":\"string\",\"enum\":[\"name\",\"family\",\"composed\",\"hex\",\"reference\",\"semantic\"]}},\"required\":[\"confidence\",\"input\",\"kind\",\"others\",\"principal\",\"source\"]},{\"type\":\"object\",\"properties\":{\"input\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"const\":\"unresolved\"},\"reason\":{\"type\":\"string\",\"enum\":[\"unknown-term\",\"ambiguous-modifier\",\"contradictory-modifiers\",\"unsupported-base\",\"empty-range\",\"unrepresentable-color\"]},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"input\",\"kind\",\"reason\",\"terms\"]}]},\"match\":{\"description\":\"The resolved color, or null when nothing resolved.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"description\":\"The resolved `#rrggbb` hex.\"},\"name\":{\"type\":\"string\",\"description\":\"The resolved display name (echoes the query when unnamed).\"},\"code\":{\"description\":\"The code the library gives the color (e.g. \\\"OC-17\\\", \\\"7016\\\"). Present only on a library hit.\",\"type\":\"string\"},\"libraryId\":{\"description\":\"The ColorScope library the color resolved in (e.g. \\\"benjamin-moore\\\", \\\"ral\\\"). A library is not necessarily a brand: read `libraryType`. Absent for a hex, and for a color word or semantic match that resolved without a library.\",\"type\":\"string\"},\"libraryType\":{\"description\":\"The type ColorScope declares for `libraryId`: `brand` is a paint brand's paint, `reference` a color standard (RAL, Pantone, HKS), `core` ColorScope's descriptive vocabulary. Present exactly when `libraryId` is. Only a `brand` hit is looked up in the catalogue.\",\"type\":\"string\",\"enum\":[\"brand\",\"consumer\",\"core\",\"reference\"]},\"matchTarget\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"hasSelection\":{\"type\":\"boolean\",\"const\":false},\"type\":{\"type\":\"string\",\"const\":\"none\"}},\"required\":[\"hasSelection\",\"type\"]},{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"hasSelection\":{\"type\":\"boolean\",\"const\":true},\"label\":{\"type\":\"string\"},\"previewColors\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"type\":{\"type\":\"string\",\"const\":\"oklab\"}},\"required\":[\"L\",\"a\",\"b\",\"hasSelection\",\"label\",\"previewColors\",\"type\"]},{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"hasSelection\":{\"type\":\"boolean\",\"const\":true},\"label\":{\"type\":\"string\"},\"previewColors\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"range\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"representative\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"}},\"required\":[\"hex\"]},\"type\":{\"type\":\"string\",\"const\":\"range\"}},\"required\":[\"L\",\"a\",\"b\",\"hasSelection\",\"label\",\"previewColors\",\"range\",\"representative\",\"type\"]}]},\"variant\":{\"description\":\"Whether the named paint is a variant in the catalogue. Only a color that resolved ",
72
+ "in a `brand` library is looked up. The lookup is exact (brand paint names and codes), global, and independent of `searchCatalogueSubset`, which only sets each variant's `inScope`.\",\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"slug\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"slug\"],\"description\":\"The variant's brand exactly as stored, suspect or not.\"},\"inScope\":{\"description\":\"Whether this variant is in the requested `searchCatalogueSubset`. Null when no `searchCatalogueSubset` was passed. The lookup itself is never narrowed by scope.\",\"type\":[\"boolean\",\"null\"]},\"parentageSuspect\":{\"type\":\"boolean\",\"description\":\"True when the stored brand is Samplize, a sampling channel, and the listing is not Samplize's own merchandise: the color is another brand's, so do not report `brand` as who made it. The variant is still returned and still the right one for the name.\"},\"variantId\":{\"type\":\"string\",\"description\":\"The variant id. Opaque; never parse it.\"},\"status\":{\"type\":\"string\",\"const\":\"matched\",\"description\":\"The name is one brand's paint and one variant carries it.\"}},\"required\":[\"brand\",\"inScope\",\"parentageSuspect\",\"variantId\",\"status\"]},{\"type\":\"object\",\"properties\":{\"candidates\":{\"minItems\":2,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"slug\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"slug\"],\"description\":\"The variant's brand exactly as stored, suspect or not.\"},\"inScope\":{\"description\":\"Whether this variant is in the requested `searchCatalogueSubset`. Null when no `searchCatalogueSubset` was passed. The lookup itself is never narrowed by scope.\",\"type\":[\"boolean\",\"null\"]},\"parentageSuspect\":{\"type\":\"boolean\",\"description\":\"True when the stored brand is Samplize, a sampling channel, and the listing is not Samplize's own merchandise: the color is another brand's, so do not report `brand` as who made it. The variant is still returned and still the right one for the name.\"},\"variantId\":{\"type\":\"string\",\"description\":\"The variant id. Opaque; never parse it.\"}},\"required\":[\"brand\",\"inScope\",\"parentageSuspect\",\"variantId\"]},\"description\":\"Every variant that carries the paint, catalogue order.\"},\"status\":{\"type\":\"string\",\"const\":\"ambiguous\",\"description\":\"The name is one brand's paint and more than one variant carries it, typically once per product line. Never picked between.\"}},\"required\":[\"candidates\",\"status\"]},{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"const\":\"not-in-catalogue\",\"description\":\"The name is one brand's paint and no variant in the catalogue carries it. A looked-up absence, distinct from `not-looked-up`.\"}},\"required\":[\"status\"]},{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"enum\":[\"reference-color\",\"descriptive-color\",\"no-paint-identity\",\"generic-color\",\"several-paints\"],\"description\":\"`reference-color`: the name resolved to a color standard (RAL, Pantone, HKS), which no brand's variant carries. `descriptive-color`: the name resolved to a descriptive color (\\\"sage\\\", \\\"warm terracotta\\\"), not a paint. `no-paint-identity`: the name is not exactly any brand's paint name or code, or it is a hex. `generic-color`: the name is a color word brands also use as a paint name; qualify it with a brand. `several-paints`: the name is more than one brand's paint; qualify it with a brand.\"},\"status\":{\"type\":\"string\",\"const\":\"not-looked-up\",\"description\":\"The catalogue was not searched; there was no one brand's paint to find.\"}},\"required\":[\"reason\",\"status\"]}]}},\"required\":[\"hex\",\"name\",\"matchTarget\",\"variant\"]},{\"type\":\"null\"}]},\"rangeSamples\":{\"description\":\"The range drawn as a lightness ramp at the resolved color's own hue and chroma, dark to light. Illustrative members of the range, never additional target colors.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"genericResolution\",\"match\"]},\"ResolveVariantResponse\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array",
73
+ "\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"outcome\":{\"type\":\"string\",\"const\":\"identified\"},\"subject\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"code\":{\"type\":\"string\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"kind\",\"name\"]}},\"required\":[\"evidence\",\"outcome\",\"subject\"]},{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"outcome\":{\"type\":\"string\",\"const\":\"placed\"},\"subject\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"code\":{\"type\":\"string\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"brand\"},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"kind\",\"name\"]}},\"required\":[\"evidence\",\"outcome\",\"subject\"]},{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"candidates\":{\"minItems\":1,\"maxItems\":20,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"code\":{\"type\":\"string\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"enum\":[\"variant\",\"brand\"]},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"kind\",\"name\"]}},\"outcome\":{\"type\":\"string\",\"const\":\"ambiguous\"},\"truncated\":{\"type\":\"boolean\"}},\"required\":[\"evidence\",\"candidates\",\"outcome\",\"truncated\"]},{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"outcome\":{\"type\":\"string\",\"const\":\"unresolved\"},\"reason\":{\"type\":\"string\",\"enum\":[\"no-stored-url\",\"no-code-match\"]}},\"required\":[\"evidence\",\"outcome\",\"reason\"]}]},\"SamplizeCataloguePage\":{\"type\":\"object\",\"properties\":{\"complete\":{\"type\":\"boolean\"},\"searchCatalogueSubset\":{\"type\":\"string\",\"cons",
74
+ "t\":\"samplizeCatalogue\"},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"slug\":{\"type\":\"string\"}},\"required\":[\"name\",\"slug\"]},\"code\":{\"type\":\"string\"},\"collectionMemberships\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"handle\":{\"type\":\"string\"},\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceCollectionId\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}},\"required\":[\"handle\",\"observedAt\",\"publisher\",\"source\",\"sourceCollectionId\",\"url\"]}},\"colorAnalysis\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},\"demand\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceUrl\":{\"type\":\"string\"},\"field\":{\"type\":\"string\",\"const\":\"recently_ordered_count\"},\"defaultAttributeLevel\":{\"type\":\"string\",\"const\":\"shopify_variant\"},\"recentlyOrderedCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"sourceVariantId\":{\"type\":\"string\"},\"window\":{\"type\":\"null\"}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"defaultAttributeLevel\",\"recentlyOrderedCount\",\"sourceVariantId\",\"window\"]},{\"type\":\"null\"}]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"hexObservations\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"differsFromSelected\":{\"type\":\"boolean\"},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\"},\"source\":{\"type\":\"string\"},\"valueOrigin\":{\"type\":\"string\"},\"sourceUrl\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"differsFromSelected\",\"hex\",\"observedAt\",\"publisher\",\"source\",\"valueOrigin\",\"sourceUrl\"]}},\"hexSource\":{\"type\":\"object\",\"properties\":{\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"snowflake_product_tags\"},\"url\":{\"type\":\"string\"}},\"required\":[\"publisher\",\"source\",\"url\"]},\"lrv\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":100},{\"type\":\"null\"}]},\"lrvObservations\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceUrl\":{\"type\":\"string\"},\"field\":{\"type\":\"string\"},\"value\":{\"type\":\"number\",\"minimum\":0,\"maximum\":100}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"value\"]}},\"lrvSource\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceUrl\":{\"type\":\"string\"},\"field\":{\"type\":\"string\"},\"value\":{\"type\":\"number\",\"minimum\":0,\"maximum\":100}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"value\"]},{\"type\":\"null\"}]},\"name\":{\"type\":\"string\"},\"oklab\":{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"}},\"required\":[\"L\",\"a\",\"b\"]},\"productId\":{\"type\":\"string\"},\"publishedHexes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"differsFromSelected\":{\"type\":\"boolean\"},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\"},\"source\":{\"type\":\"string\"},\"valueOrigin\":{\"type\":\"string\"},\"sourceUrl\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"differsFromSelected\",\"hex\",\"observedAt\",\"publisher\",\"source\",\"valueOrigin\",\"sourceUrl\"]}},\"sizeVariants\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"demand\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceUrl\":{\"type\":\"string\"},\"field\":{\"type\":\"string\",\"const\":\"recently_ordered_count\"},\"defaultAttributeLevel\":{\"type\":\"string\",\"const\":\"shopify_variant\"},\"recentlyOrderedCount\":{\"type\":\"integer\",\"minimum\":0,",
75
+ "\"maximum\":9007199254740991},\"sourceVariantId\":{\"type\":\"string\"},\"window\":{\"type\":\"null\"}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"defaultAttributeLevel\",\"recentlyOrderedCount\",\"sourceVariantId\",\"window\"]},{\"type\":\"null\"}]},\"inventoryAvailable\":{\"type\":\"boolean\"},\"price\":{\"type\":[\"number\",\"null\"]},\"sku\":{\"type\":[\"string\",\"null\"]},\"sourceVariantId\":{\"type\":\"string\"},\"title\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"demand\",\"inventoryAvailable\",\"price\",\"sku\",\"sourceVariantId\",\"title\"]}},\"sourceProductId\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"}},\"required\":[\"brand\",\"code\",\"collectionMemberships\",\"colorAnalysis\",\"demand\",\"hex\",\"hexObservations\",\"hexSource\",\"lrv\",\"lrvObservations\",\"lrvSource\",\"name\",\"oklab\",\"productId\",\"publishedHexes\",\"sizeVariants\",\"sourceProductId\",\"url\",\"variantId\"]}},\"nextCursor\":{\"type\":[\"string\",\"null\"]},\"schemaVersion\":{\"type\":\"number\",\"const\":2},\"source\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},\"sourceVersion\":{\"type\":\"string\"},\"total\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991}},\"required\":[\"complete\",\"searchCatalogueSubset\",\"items\",\"nextCursor\",\"schemaVersion\",\"source\",\"sourceVersion\",\"total\"]},\"SchemaValueDictionariesResponse\":{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"valueDictionaries\"},\"schemaVersion\":{\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"taxonomy\"},\"system\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"kind\",\"system\"]},{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"colorscope\"},\"system\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"kind\",\"system\"]},{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"materialgraph\"},\"system\":{\"type\":\"string\",\"const\":\"@materialgraph/schema\"}},\"required\":[\"kind\",\"system\"]},{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"external-standard\"},\"system\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"kind\",\"system\"]}]},\"description\":{\"type\":\"string\"},\"id\":{\"type\":\"string\",\"minLength\":1,\"pattern\":\"^[a-z][a-z0-9_]*$\"},\"name\":{\"type\":\"string\"},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\"},\"aliases\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"broaderTermId\":{\"type\":\"string\",\"minLength\":1},\"definition\":{\"type\":\"string\",\"minLength\":1},\"externalMappings\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"mappingType\":{\"type\":\"string\",\"enum\":[\"direct\",\"transform\",\"derived\",\"classification\",\"semantic\"]},\"matchStrength\":{\"type\":\"string\",\"enum\":[\"exact\",\"close\",\"broad\",\"narrow\",\"related\"]},\"notes\":{\"type\":\"string\"},\"target\":{\"type\":\"string\",\"enum\":[\"schema_org\",\"ifc_pset\",\"bsdd\",\"iso_23387\",\"eclass\",\"gs1_gdm\",\"gdsn\",\"etim\",\"uniclass\"]},\"targetPath\":{\"type\":\"string\"}},\"required\":[\"mappingType\",\"target\",\"targetPath\"]}},\"metadata\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":[\"string\",\"number\",\"boolean\",\"null\"]}},\"lifecycle\":{\"type\":\"object\",\"properties\":{\"deprecatedIn\":{\"type\":\"string\"},\"introducedIn\":{\"type\":\"string\"},\"status\":{\"type\":\"string\",\"enum\":[\"draft\",\"active\",\"deprecated\"]},\"supersededBy\":{\"type\":\"string\"}},\"required\":[\"introducedIn\",\"status\"]},\"semanticId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"lifecycle\",\"semanticId\"]}},\"lifecycle\":{\"type\":\"object\",\"properties\":{\"deprecatedIn\":{\"type\":\"string\"},\"introducedIn\":{\"type\":\"string\"},\"status\":{\"type\":\"string\",\"enum\":[\"draft\",\"active\",\"deprecated\"]},\"supersededBy\":{\"type\":\"string\"}},\"required\":[\"introducedIn\",\"status\"]},\"semanticId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"description\",\"id\",\"name\",\"terms\",\"lifecycle\",\"semanticId\"]}},\"totalCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"kind\",\"schemaVersion\",\"items\",\"totalCount\"]},\"SearchVariantsResponse\":{\"type\":\"object\",\"properties\":{\"excludedBySearchCatalogueSub",
76
+ "set\":{\"description\":\"Filtered variant ids outside the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"category\":{\"description\":\"The first original source category, or null when unknown.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"description\":\"All original source categories in source order.\"},\"productType\":{\"description\":\"The accepted primary specification type, or null for a color sample or unresolved subject.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"sampleSubject\":{\"type\":\"string\",\"enum\":[\"material\",\"paint_color_sample\",\"unknown\",\"conflict\"]},\"colorOptionValueId\":{\"type\":[\"string\",\"null\"]},\"code\":{\"description\":\"The brand's item code.\",\"type\":[\"string\",\"null\"]},\"image\":{\"description\":\"The primary product image, or null when there is none.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"alt\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}},\"required\":[\"alt\",\"url\"]},{\"type\":\"null\"}]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The brand. `id` is the slug get_brand takes.\"},\"name\":{\"type\":\"string\",\"description\":\"The variant's own name.\"},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"url\":{\"description\":\"The brand's page for it, or null when none is known.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"materialBankId\":{\"description\":\"The variant's Material Bank SKU. Absent: none recorded.\",\"type\":\"string\"},\"notApplicable\":{\"type\":\"object\",\"properties\":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"description\":\"Requested blocks or attributes this product type does not carry.\"},\"preference\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"array\",\"items\":{\"type\":\"number\"}},\"score\":{\"type\":\"number\"}},\"required\":[\"matched\",\"score\"]},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}},\"variantCount\":{\"description\":\"Eligible variants of this product. Absent: none counted.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"category\",\"categories\",\"productType\",\"sampleSubject\",\"colorOptionValueId\",\"code\",\"brand\",\"name\",\"product\",\"variantId\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"}},\"required\":[\"endCursor\",\"hasNextPage\"]},\"preferenceMatchesRemain\":{\"description\":\"False: nothing from this page on meets any optionalFilter.\",\"type\":\"boolean\"},\"unavailableVariantIds\":{\"description\":\"Filtered ids in the catalogue this list can't show, e.g. retired.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unresolvedVariantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unstated\":{\"description\":\"Filtered attributes no variant in scope states at all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"words\":{\"description\":\"Each word asked for, and whether any variant in scope names it.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"boolean\"},\"word\":{\"type\":\"string\"}},\"required\":[\"matched\",\"word\"]}},\"choices\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"alternatives\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"group\":{\"type\":\"string\"},\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"}},\"required\":[\"group\",\"id\",\"kind\",\"label\"]}},\"basis\":{\"type\":\"string\"},\"handle\":{\"type\":\"string\"},\"reason\":{\"type\":\"string\"},\"selected\":{\"type\":\"object\",\"properties\":{\"group\":{\"type\":\"string\"},\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\"},\"label\":",
77
+ "{\"type\":\"string\"}},\"required\":[\"group\",\"id\",\"kind\",\"label\"]},\"text\":{\"type\":\"string\"}},\"required\":[\"alternatives\",\"basis\",\"handle\",\"reason\",\"selected\",\"text\"]}},\"colors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"pattern\":\"^#[\\\\da-f]{6}$\",\"description\":\"The color's own point in the region; it orders matches.\"},\"intent\":{\"type\":\"string\",\"enum\":[\"required\",\"preferred\"]},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\"]},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"hex\",\"op\",\"range\"]},\"description\":\"The color regions that ran.\"},\"corrections\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"correction\":{\"type\":\"string\"},\"word\":{\"type\":\"string\"}},\"required\":[\"correction\",\"word\"]}},\"filters\":{\"type\":\"object\",\"properties\":{\"anyField\":{\"description\":\"One of values in any of fields (term attributes).\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\"]},\"orText\":{\"type\":\"string\"},\"unstated\":{\"type\":\"string\",\"const\":\"pass\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"fields\",\"op\",\"values\"]}},\"numbers\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"eq\",\"gt\",\"gte\",\"lt\",\"lte\"]},\"value\":{\"type\":\"number\"}},\"required\":[\"field\",\"op\",\"value\"]}},\"presence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"exists\",\"missing\"]}},\"required\":[\"field\",\"op\"]}},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"all\",\"not_in\"]},\"orText\":{\"type\":\"string\"},\"unstated\":{\"type\":\"string\",\"const\":\"pass\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"field\",\"op\",\"values\"]}}},\"description\":\"The filters that ran, the scope among them.\"},\"name\":{\"type\":\"string\",\"description\":\"The paint name looked up.\"},\"oneRowPer\":{\"type\":\"string\",\"enum\":[\"product\",\"variant\"],\"description\":\"A row per product, or per variant for a paint or color.\"},\"optionalFilters\":{\"type\":\"object\",\"properties\":{\"anyField\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\"]},\"orText\":{\"type\":\"string\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"weight\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":10}},\"required\":[\"fields\",\"op\",\"values\",\"weight\"]}},\"numbers\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"eq\",\"gt\",\"gte\",\"lt\",\"lte\"]},\"value\":{\"type\":\"number\"},\"weight\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":10}},\"required\":[\"field\",\"op\",\"value\",\"weight\"]}},\"presence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"exists\",\"missing\"]},\"weight\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":10}},\"required\":[\"field\",\"op\",\"weight\"]}},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"all\",\"not_in\"]},\"orText\":{\"type\":\"string\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"weight\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":10}},\"required\":[\"field\",\"op\",\"values\",\"weight\"]}}},\"description\":\"The preferences that ran.\"},\"outcome\":{\"type\":\"string\",\"enum\":[\"page\",\"no_match\",\"nothing_understood\",\"out_of_scope\",\"brand_not_in_catalogue\"],\"description\":\"How the search ended.\"},\"scope\":{\"type\":\"object\",\"properties\":{\"anyField\":{\"description\":\"One of values in any of fields (term attributes).\",\"type\":\"array\",\"items\":",
78
+ "{\"type\":\"object\",\"properties\":{\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\"]},\"orText\":{\"type\":\"string\"},\"unstated\":{\"type\":\"string\",\"const\":\"pass\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"fields\",\"op\",\"values\"]}},\"numbers\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"eq\",\"gt\",\"gte\",\"lt\",\"lte\"]},\"value\":{\"type\":\"number\"}},\"required\":[\"field\",\"op\",\"value\"]}},\"presence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"exists\",\"missing\"]}},\"required\":[\"field\",\"op\"]}},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"all\",\"not_in\"]},\"orText\":{\"type\":\"string\"},\"unstated\":{\"type\":\"string\",\"const\":\"pass\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"field\",\"op\",\"values\"]}}},\"description\":\"The fixed scope, repeated in filters.\"},\"understood\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"applied\":{\"type\":\"string\",\"enum\":[\"filter\",\"preference\",\"not_applied\"],\"description\":\"filter narrows; preference only ranks; not_applied did neither.\"},\"id\":{\"type\":\"string\",\"description\":\"The parser's condition id.\"},\"kind\":{\"type\":\"string\",\"enum\":[\"category\",\"brand\",\"term\",\"number\",\"color\",\"paint\"]},\"label\":{\"type\":\"string\",\"description\":\"What the words were read as.\"},\"note\":{\"type\":\"string\"},\"text\":{\"type\":\"string\",\"description\":\"The query words it came from.\"}},\"required\":[\"applied\",\"id\",\"kind\",\"label\",\"text\"]}},\"unresolved\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"items\",\"pageInfo\",\"oneRowPer\",\"outcome\",\"understood\"]},\"SourceMaterialBatchReceipt\":{\"type\":\"object\",\"properties\":{\"batchId\":{\"type\":\"string\",\"description\":\"The stored batch id (`smb_…`).\"},\"sources\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"sourceId\":{\"type\":\"string\",\"description\":\"The stored file id (`smf_…`).\"},\"role\":{\"type\":\"string\",\"enum\":[\"brief\",\"reference_image\",\"document\",\"document_image\",\"inspiration_image\",\"unclassified\"],\"description\":\"The pipeline-assigned role. `unclassified` is a legitimate terminal value when the file could not be placed; clients should tolerate new values.\"},\"filename\":{\"type\":\"string\"},\"mediaType\":{\"type\":\"string\"},\"sha256\":{\"type\":\"string\",\"description\":\"Lowercase hex SHA-256 of the stored bytes.\"},\"bytes\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"pages\":{\"description\":\"PDF page count; null for images.\",\"anyOf\":[{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},{\"type\":\"null\"}]}},\"required\":[\"sourceId\",\"role\",\"filename\",\"mediaType\",\"sha256\",\"bytes\",\"pages\"]}}},\"required\":[\"batchId\",\"sources\"]},\"VariantAssetPage\":{\"type\":\"object\",\"properties\":{\"documentCoverage\":{\"description\":\"Brand document list state. Absent when documents are filtered out.\",\"type\":\"string\",\"enum\":[\"available\",\"none_declared\",\"not_ingested\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"appliesTo\":{\"description\":\"Only 'product': a product-wide document. Absent: this variant's own.\",\"type\":\"string\",\"const\":\"product\"},\"assetId\":{\"type\":\"string\",\"minLength\":1},\"availability\":{\"type\":\"string\",\"enum\":[\"available\",\"unknown\",\"unavailable\"],\"description\":\"available: MaterialGraph serves url. unknown: brand's link, unchecked.\"},\"byteSize\":{\"description\":\"Not on images; absent when unknown.\",\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"documentTypes\":{\"description\":\"Documents only; absent when unknown.\",\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"technical_data_sheet\",\"product_sheet\",\"technical_bulletin\",\"sustainability_report\",\"specification\",\"installation_guide\",\"care_maintenance_guide\",\"operation_manual\",\"warranty\",\"parts_list\",\"technical_drawing\",\"test_report\",\"certificate\",\"declaration_of_performance\",\"environmental_product_declaration\",\"health_product_declaration\",\"ingredient_disclosure\",\"s",
79
+ "afety_data_sheet\",\"brochure\",\"catalogue\",\"color_finish_chart\",\"other\",\"unknown\"]}},\"height\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"imageRole\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"string\",\"enum\":[\"product\",\"swatch\",\"detail\",\"scene\",\"technical\",\"color_chart\",\"sample_collection\",\"other\",\"unknown\"]},\"kind\":{\"type\":\"string\",\"enum\":[\"image\",\"document\",\"cad\",\"bim\",\"model_3d\",\"texture\",\"archive\",\"other\",\"unknown\"]},\"name\":{\"description\":\"Not on images; absent when unknown.\",\"type\":\"string\"},\"presentation\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"string\",\"enum\":[\"edge_to_edge\",\"packshot\",\"cutout_margin\",\"montage\",\"unknown\"]},\"url\":{\"description\":\"Absent when availability is unavailable.\",\"type\":\"string\"},\"width\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"assetId\",\"availability\",\"kind\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"nextCursor\":{\"type\":[\"string\",\"null\"]},\"returnedCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"totalMatches\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"nextCursor\",\"returnedCount\",\"totalMatches\"]},\"primaryAssetId\":{\"description\":\"The variant's primary image. Absent when it has none.\",\"type\":\"string\",\"minLength\":1}},\"required\":[\"items\",\"pageInfo\"]},\"WhoamiResponse\":{\"type\":\"object\",\"properties\":{\"principal\":{\"type\":\"string\",\"description\":\"The resolved principal for the credential (e.g. `apikey:read`).\"},\"scopes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"The scopes granted to this credential (e.g. `mg:read`).\"}},\"required\":[\"principal\",\"scopes\"]},\"__schema0\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"},{\"type\":\"null\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/__schema0\"}},{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}]}},\"operations\":{\"list_catalog_documents\":{\"$ref\":\"#/$defs/CatalogDocumentList\"},\"list_catalog_pages\":{\"$ref\":\"#/$defs/CatalogPageListResult\"},\"get_catalog_page_representation\":{\"$ref\":\"#/$defs/CataloguePageRepresentationReadResult\"},\"list_catalog_product_references\":{\"$ref\":\"#/$defs/CatalogProductReferenceReadResult\"},\"samplize_catalogue_products\":{\"$ref\":\"#/$defs/SamplizeCataloguePage\"},\"get_catalogue_references_batch\":{\"$ref\":\"#/$defs/CatalogueReferenceBatchResponse\"},\"list_catalogue_channel_collections\":{\"$ref\":\"#/$defs/CatalogueChannelCollectionsResponse\"},\"get_catalogue_document_access\":{\"$ref\":\"#/$defs/CatalogueDocumentAccessResult\"},\"list_material_blocks\":{\"$ref\":\"#/$defs/MaterialBlockProjection\"},\"list_variant_assets\":{\"$ref\":\"#/$defs/VariantAssetPage\"},\"list_material_documents\":{\"$ref\":\"#/$defs/ProductDocumentPage\"},\"list_schema_value_dictionaries\":{\"$ref\":\"#/$defs/SchemaValueDictionariesResponse\"},\"get_material_pairings\":{\"type\":\"object\",\"properties\":{\"seed\":{\"$ref\":\"#/$defs/MaterialTile\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/PairingItem\"}},\"cospecCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"How many items came from real order evidence (the cospec arm).\"},\"skippedCandidates\":{\"description\":\"Candidates dropped at hydration for violating the material contract; present only when > 0. A malformed row costs itself, never the rail (MG-985).\",\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"ordering\":{\"description\":\"Graph-owned ranking contract; present only when `order` was requested.\",\"$ref\":\"#/$defs/PairingOrdering\"},\"nextCursor\":{\"description\":\"Opaque continuation when another ordered page exists.\",\"type\":\"string\"}},\"required\":[\"seed\",\"items\",\"cospecCount\"]},\"list_associated_finishes\":{\"$ref\":\"#/$defs/DeclaredAssociations\"},\"list_associated_products\":{\"$ref\":\"#/$defs/DeclaredAssociations\"},\"get_applicability\":{\"$ref\":\"#/$defs/ApplicabilityCollection\"},\"list_variants\":{\"$ref\":\"#/$defs/ListVariantsResponse\"},\"list_variant_facets\":{\"$ref\":\"#/$defs/ListVariantFace",
80
+ "tsResponse\"},\"search_variants\":{\"$ref\":\"#/$defs/SearchVariantsResponse\"},\"find_variants_by_color\":{\"$ref\":\"#/$defs/FindVariantsByColorResponse\"},\"find_variants_by_vector\":{\"$ref\":\"#/$defs/FindVariantsByVectorResponse\"},\"find_companions\":{\"$ref\":\"#/$defs/FindCompanionsResponse\"},\"resolve_variant\":{\"$ref\":\"#/$defs/ResolveVariantResponse\"},\"get_variant\":{\"$ref\":\"#/$defs/GetVariantResponse\"},\"resolve_color_name\":{\"$ref\":\"#/$defs/ResolveColorResponse\"},\"catalog_list_attributes\":{\"$ref\":\"#/$defs/ListAttributesResponse\"},\"catalog_list_enum_values\":{\"$ref\":\"#/$defs/ListEnumValuesResponse\"},\"list_categories\":{\"$ref\":\"#/$defs/ListCategoriesResponse\"},\"get_category\":{\"$ref\":\"#/$defs/GetCategoryResponse\"},\"whoami\":{\"$ref\":\"#/$defs/WhoamiResponse\"},\"get_category_color_profiles\":{\"$ref\":\"#/$defs/CategoryColorProfilesResponse\"},\"extract_image_palette\":{\"$ref\":\"#/$defs/ExtractPaletteResponse\"},\"list_brands\":{\"$ref\":\"#/$defs/ListBrandsPage\"},\"upload_source_material\":{\"$ref\":\"#/$defs/SourceMaterialBatchReceipt\"},\"create_public_run\":{\"$ref\":\"#/$defs/CreatePublicRunResponse\"},\"get_public_run\":{\"$ref\":\"#/$defs/PublicRunResponse\"},\"get_verdict_citation\":{\"type\":\"object\",\"properties\":{\"citationId\":{\"type\":\"string\",\"minLength\":1},\"source\":{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"enum\":[\"source_record\",\"source_material\",\"source_statement\",\"url\",\"asset\",\"download\",\"manual_note\",\"agent_output\"]},\"locator\":{\"type\":\"object\",\"properties\":{\"imageBox\":{\"type\":\"object\",\"properties\":{\"height\":{\"type\":\"number\",\"exclusiveMinimum\":0},\"width\":{\"type\":\"number\",\"exclusiveMinimum\":0},\"x\":{\"type\":\"number\"},\"y\":{\"type\":\"number\"}},\"required\":[\"height\",\"width\",\"x\",\"y\"]},\"page\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"selector\":{\"type\":\"string\",\"minLength\":1},\"xPath\":{\"type\":\"string\",\"minLength\":1}}},\"publicPath\":{\"type\":\"string\",\"format\":\"starts_with\",\"pattern\":\"^\\\\/api\\\\/assets\\\\/.*\"},\"ref\":{\"type\":\"string\",\"minLength\":1},\"sourceAssetId\":{\"type\":\"string\",\"minLength\":1},\"sourceDownloadId\":{\"type\":\"string\",\"minLength\":1},\"sourceStatementId\":{\"type\":\"string\",\"minLength\":1},\"sourceId\":{\"type\":\"string\",\"minLength\":1},\"title\":{\"type\":\"string\",\"minLength\":1},\"url\":{\"type\":\"string\",\"format\":\"uri\"}},\"required\":[\"kind\",\"ref\"]},\"sourceType\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"citationId\",\"source\",\"sourceType\"]}}}",
112
81
  ].join("");