@instruments/materialgraph 3.3.0 → 3.4.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.
package/client.d.ts CHANGED
@@ -117,13 +117,13 @@ export declare class MaterialGraphClient {
117
117
  resolveVariant(input: ResolveVariantInput, signal?: AbortSignal): Promise<ResolveVariantOutput>;
118
118
  /**
119
119
  * How much each of 1 to 48 variants is sampled by Material Bank members
120
- * (POST `/api/v1/demand`): `samplePercentile` within its category, with a
120
+ * (POST `/api/v1/demand`): `samplePercentile` within its product type, with a
121
121
  * `trend` and the `change` of this year against the year before. Results
122
122
  * keep request order. No count is returned.
123
123
  */
124
124
  getVariantDemand(input: GetVariantDemandInput, signal?: AbortSignal): Promise<GetVariantDemandOutput>;
125
125
  /**
126
- * The variants of one category sampled at least 15% more this year than
126
+ * The variants of one product type sampled at least 15% more this year than
127
127
  * the year before (GET `/api/v1/demand/rising`), largest `change` first.
128
128
  * No count is returned.
129
129
  */
package/client.js CHANGED
@@ -155,7 +155,7 @@ export class MaterialGraphClient {
155
155
  }
156
156
  /**
157
157
  * How much each of 1 to 48 variants is sampled by Material Bank members
158
- * (POST `/api/v1/demand`): `samplePercentile` within its category, with a
158
+ * (POST `/api/v1/demand`): `samplePercentile` within its product type, with a
159
159
  * `trend` and the `change` of this year against the year before. Results
160
160
  * keep request order. No count is returned.
161
161
  */
@@ -166,14 +166,14 @@ export class MaterialGraphClient {
166
166
  });
167
167
  }
168
168
  /**
169
- * The variants of one category sampled at least 15% more this year than
169
+ * The variants of one product type sampled at least 15% more this year than
170
170
  * the year before (GET `/api/v1/demand/rising`), largest `change` first.
171
171
  * No count is returned.
172
172
  */
173
173
  async listRisingVariants(input, signal) {
174
174
  return await this.#get("list_rising_variants", {
175
- category: input.category,
176
175
  limit: input.limit === undefined ? undefined : String(input.limit),
176
+ productType: input.productType,
177
177
  projectType: input.projectType,
178
178
  }, signal);
179
179
  }
@@ -10,16 +10,20 @@ import type { OpenEnum } from "./types.js";
10
10
  export interface GetVariantDemandInput {
11
11
  /** 1 to 48 variant ids. */
12
12
  variantIds: string[];
13
- /** One Material Bank project type; omit for every project type together. */
13
+ /**
14
+ * One Material Bank project type, spelled as Material Bank spells it, such
15
+ * as "Hospitality: Hotel"; omit for every project type together. One the
16
+ * published build did not measure is a 400 that lists the ones it did.
17
+ */
14
18
  projectType?: string;
15
19
  }
16
20
  export type DemandTrend = OpenEnum<"rising" | "steady" | "falling">;
17
21
  export type VariantDemand = {
18
22
  state: "measured";
19
23
  variantId: string;
20
- /** The category the percentile is ranked within. */
21
- category: string;
22
- /** Share of the category's variants sampled as much or less, 1 to 100. */
24
+ /** The id of the product type the percentile is ranked within. */
25
+ productType: string;
26
+ /** Share of the product type's variants sampled as much or less, 1 to 100. */
23
27
  samplePercentile: number;
24
28
  /** Null when the year before cannot be shown. */
25
29
  trend: DemandTrend | null;
@@ -43,16 +47,16 @@ export interface GetVariantDemandOutput {
43
47
  results: VariantDemand[];
44
48
  }
45
49
  export interface ListRisingVariantsInput {
46
- /** A MaterialGraph category id, such as `wallcovering`. */
47
- category: string;
50
+ /** A MaterialGraph product type id, such as `wallcovering`. An unknown id is a 400. */
51
+ productType: string;
48
52
  /** Variants to return, at most 100. Default 20. */
49
53
  limit?: number;
50
- /** One Material Bank project type; omit for every project type together. */
54
+ /** One Material Bank project type, as in `GetVariantDemandInput`. */
51
55
  projectType?: string;
52
56
  }
53
57
  export interface RisingVariant {
54
58
  variantId: string;
55
- /** Share of the category's variants sampled as much or less, 1 to 100. */
59
+ /** Share of the product type's variants sampled as much or less, 1 to 100. */
56
60
  samplePercentile: number;
57
61
  trend: DemandTrend | null;
58
62
  /** This year against the year before; 0.4 is 40% more. */
@@ -62,7 +66,7 @@ export interface ListRisingVariantsOutput {
62
66
  /** Last day of the measured year, as an ISO date. */
63
67
  asOf: string;
64
68
  basis: "measured";
65
- category: string;
69
+ productType: string;
66
70
  /** Largest change first. */
67
71
  results: RisingVariant[];
68
72
  source: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instruments/materialgraph",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -59,19 +59,19 @@ export const RESPONSE_SCHEMA_CATALOG_JSON = [
59
59
  "ing\"}},\"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\"]},\"ListSampledTogetherPairsResponse\":{\"type\":\"object\",\"properties\":{\"window\":{\"type\":\"string\",\"const\":\"trailing_36mo\"},\"signal\":{\"type\":\"string\",\"const\":\"sampled\"},\"windowStart\":{\"type\":[\"string\",\"null\"]},\"windowEnd\":{\"type\":[\"string\",\"null\"]},\"pairs\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"a\":{\"type\":\"string\"},\"b\":{\"type\":\"string\"},\"projects\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"customers\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"lift\":{\"type\":\"number\"},\"lastSampledTogetherAt\":{\"type\":[\"string\",\"null\"]},\"packShare\":{\"type\":[\"number\",\"null\"]}},\"required\":[\"a\",\"b\",\"projects\",\"customers\",\"lift\",\"lastSampledTogetherAt\",\"packShare\"]}},\"nextCursor\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"window\",\"signal\",\"windowStart\",\"windowEnd\",\"pairs\",\"nextCursor\"]},\"ListVariantFacetsResponse\":{\"type\":\"object\",\"properties\":{\"facets\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"missingVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"name\":{\"type\":\"string\"},\"hasMoreValues\":{\"type\":\"boolean\"},\"kind\":{\"type\":\"string\",\"const\":\"categorical\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"label\":{\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"variantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991}},\"required\":[\"label\",\"value\",\"variantCount\"]}}},\"required\":[\"attributeId\",\"missingVariantCount\",\"name\",\"hasMoreValues\",\"kind\",\"values\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"missingVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"name\":{\"type\":\"string\"},\"hasMoreValues\":{\"type\":\"boolean\"},\"kind\":{\"type\":\"string\",\"const\":\"boolean\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"label\":{\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"variantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991}},\"required\":[\"label\",\"value\",\"variantCount\"]}}},\"required\":[\"attributeId\",\"missingVariantCount\",\"name\",\"hasMoreValues\",\"kind\",\"values\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"missingVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"name\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"const\":\"numeric\"},\"max\":{\"type\":[\"number\",\"null\"]},\"min\":{\"type\":[\"number\",\"null\"]},\"unitId\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"attributeId\",\"missingVariantCount\",\"name\",\"kind\",\"max\",\"min\",\"unitId\"]}]}},\"matchedVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991}},\"required\":[\"facets\",\"matchedVariantCount\"]},\"ListVariantsResponse\":{\"type\":\"object\",\"properties\":{\"excludedBySearchCatalogSubset\":{\"description\":\"Filtered variant ids outside the materials catalog.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The brand. `id` is the slug get_brand takes.\"},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"description\":\"All original source categories in source order.\"},\"category\":{\"descriptio",
60
60
  "n\":\"The first original source category, or null when unknown.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"code\":{\"description\":\"The brand's item code.\",\"type\":[\"string\",\"null\"]},\"colorOptionValueId\":{\"type\":[\"string\",\"null\"]},\"hasDeclaredColor\":{\"type\":\"boolean\",\"description\":\"True for a paint color card, paint line, primer or coating: the card is the brand's declared hex, never a photo.\"},\"hex\":{\"description\":\"The settled card color hex, or null when unknown. Paint cards show this color and never a photo.\",\"type\":[\"string\",\"null\"]},\"image\":{\"description\":\"The settled material card image. Always null for paint color samples and paint/coating product types.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"alt\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}},\"required\":[\"alt\",\"url\"]},{\"type\":\"null\"}]},\"name\":{\"type\":\"string\",\"description\":\"The unambiguous variant name, including its source label when needed.\"},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"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\"]},\"url\":{\"description\":\"The brand's page for it, or null when none is known.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"variantLabel\":{\"description\":\"The source variant label, trimmed; null when unknown or for a paint color sample, whose own name identifies its color. Separate from surface finish, color family and derived color names.\",\"type\":[\"string\",\"null\"]},\"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.\"},\"observations\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}},\"description\":\"Selected observations by channel (no_channel: none named), each the latest. Absent: none observed.\"},\"preference\":{\"type\":\"object\",\"properties\":{\"looks\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"by\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"named\",\"stated\",\"described\",\"related\"]}},\"index\":{\"type\":\"number\"},\"words\":{\"type\":\"string\"}},\"required\":[\"by\",\"index\"]}},\"matched\":{\"type\":\"array\",\"items\":{\"type\":\"number\"}},\"photo\":{\"type\":\"boolean\",\"const\":true},\"score\":{\"type\":\"number\"}},\"required\":[\"matched\",\"score\"]},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema1\"}}},\"variantCount\":{\"description\":\"Eligible variants of this product. Absent: none counted.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"brand\",\"categories\",\"category\",\"code\",\"colorOptionValueId\",\"hasDeclaredColor\",\"name\",\"product\",\"productType\",\"sampleSubject\",\"variantId\",\"variantLabel\"]}},\"nameWords\":{\"description\":\"Empty name lookup: each word, and whether a name in scope starts it. Unmatched words were left out unless all or none matched.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"boolean\"},\"word\":{\"type\":\"string\"}},\"required\":[\"matched\",\"word\"]}},\"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 catalog t",
61
61
  "his list can't show, e.g. retired.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unresolvedVariantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unstated\":{\"description\":\"Filter fields 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 in words, as the product page shows it: a term by its label, a measurement with its unit, a composition by its ingredients and shares. Absent when the field holds nothing; `value` stays the canonical form.\",\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"status\":{\"type\":\"string\",\"enum\":[\"complete\",\"partial\",\"missing\",\"not_applicable\"]},\"unit\":{\"type\":\"string\"},\"value\":{\"$ref\":\"#/$defs/__schema2\"},\"valueSource\":{\"type\":\"string\"}},\"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\"},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"All accepted source category ids in original source order; empty when unknown.\"},\"category\":{\"description\":\"The first original source category name, or null when unknown.\",\"type\":[\"string\",\"null\"]},\"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\"}]},\"valueSource\":{\"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\":[\"material_bank\",\"brand\",\"measured\",\"manual\",\"inferred\"]},\"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\",\"",
62
- "null\"]}},\"required\":[\"availability\",\"brand\",\"categories\",\"category\",\"color\",\"imageSource\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},\"NearestPaintsOutput\":{\"type\":\"object\",\"properties\":{\"results\":{\"maxItems\":12,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"paints\":{\"maxItems\":24,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"closeness\":{\"type\":\"string\",\"enum\":[\"very-near\",\"very-close\",\"close\",\"related\"]},\"code\":{\"type\":[\"string\",\"null\"]},\"deltaE\":{\"type\":\"number\",\"minimum\":0},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"image\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"url\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"}},\"required\":[\"url\",\"alt\"]},{\"type\":\"null\"}]},\"lrv\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":100},{\"type\":\"null\"}]},\"name\":{\"type\":\"string\"},\"productType\":{\"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\"]},\"variantId\":{\"type\":\"string\"}},\"required\":[\"brand\",\"closeness\",\"code\",\"deltaE\",\"hex\",\"image\",\"lrv\",\"name\",\"productType\",\"sampleSubject\",\"variantId\"]}}},\"required\":[\"hex\",\"paints\"]}}},\"required\":[\"results\"]},\"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\":{\"change\":{\"description\":\"This year's sampling against the year before, as a fraction: 0.4 is 40% more. Null when the year before cannot be shown.\",\"type\":[\"number\",\"null\"]},\"samplePercentile\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":100,\"description\":\"The share of its category's measured variants sampled as much or less, from 1 to 100.\"},\"trend\":{\"description\":\"Null when the year before cannot be shown.\",\"anyOf\":[{\"type\":\"string\",\"enum\":[\"rising\",\"steady\",\"falling\"]},{\"type\":\"null\"}]}},\"required\":[\"change\",\"samplePercentile\",\"trend\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"hex\":{\"type\":[\"string\",\"null\"]},\"lift\":{\"type\":\"number\"},\"liftLabel\":{\"type\":\"string\"},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"projectCount\":{\"type\":\"number\"},\"relation\":{\"type\":\"string\",\"enum\":[\"other_brand\",\"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\":{\"change\":{\"description\":\"This year's sampling against the year before, as a fraction: 0.4 is 40% more. Null when the year before cannot be shown.\",\"type\":[\"number\",\"null\"]},\"samplePercentile\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":100,\"descr",
63
- "iption\":\"The share of its category's measured variants sampled as much or less, from 1 to 100.\"},\"trend\":{\"description\":\"Null when the year before cannot be shown.\",\"anyOf\":[{\"type\":\"string\",\"enum\":[\"rising\",\"steady\",\"falling\"]},{\"type\":\"null\"}]}},\"required\":[\"change\",\"samplePercentile\",\"trend\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"hex\":{\"type\":[\"string\",\"null\"]},\"lift\":{\"type\":\"number\"},\"liftLabel\":{\"type\":\"string\"},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"projectCount\":{\"type\":\"number\"},\"relation\":{\"type\":\"string\",\"enum\":[\"other_brand\",\"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\"},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"All accepted source category ids in original source order; empty when unknown.\"},\"category\":{\"description\":\"The first original source category name, or null when unknown.\",\"type\":[\"string\",\"null\"]},\"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\"}]},\"valueSource\":{\"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\":[\"material_bank\",\"brand\",\"measured\",\"manual\",\"inferred\"]},\"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\":{\"anchorColorSimila",
64
- "rity\":{\"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\":[\"availability\",\"brand\",\"categories\",\"category\",\"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\":{\"aut",
65
- "hority\":{\"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\",\"catalog\",\"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\"]},\"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",
66
- "},{\"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\"]},\"reference\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\",\"minLength\":1},\"code\":{\"type\":\"string\",\"minLength\":1},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"libraryId\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"brand\",\"hex\",\"id\",\"libraryId\",\"name\"]},\"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\":{\"code\":{\"description\":\"The code the library gives the color (e.g. \\\"OC-17\\\", \\\"7016\\\"). Present only on a library hit.\",\"type\":\"string\"},\"hex\":{\"type\":\"string\",\"description\":\"The resolved `#rrggbb` hex.\"},\"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 catalog.\",\"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},{\"ty",
67
- "pe\":\"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\",\"description\":\"The resolved display name (echoes the query when unnamed).\"},\"variant\":{\"description\":\"Whether the named paint is a variant in the catalog. Only a color that resolved in a `brand` library is looked up. The lookup is exact (brand paint names and codes), global, and independent of `searchCatalogSubset`, 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 `searchCatalogSubset`. Null when no `searchCatalogSubset` was passed. The lookup itself is never narrowed by scope.\",\"type\":[\"boolean\",\"null\"]},\"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\",\"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 `searchCatalogSubset`. Null when no `searchCatalogSubset` was passed. The lookup itself is never narrowed by scope.\",\"type\":[\"boolean\",\"null\"]},\"variantId\":{\"type\":\"string\",\"description\":\"The variant id. Opaque; never parse it.\"}},\"required\":[\"brand\",\"inScope\",\"variantId\"]},\"description\":\"Every variant that carries the paint, catalog 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-catalog\",\"description\":\"The name is one brand's paint and no variant in the catalog 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 catalog was not searched; there was no one brand's paint to find.\"}},\"required\":[\"reason\",\"status\"]}]}},\"required\":[\"hex\",\"matchTarget\",\"name\",\"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\",\"m",
68
- "atch\"]},\"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\",\"material-bank-id\",\"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\",\"material-bank-id\",\"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\",\"material-bank-id\",\"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\",\"material-bank-id\",\"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-c",
69
- "ode-match\",\"no-material-bank-id-match\"]}},\"required\":[\"evidence\",\"outcome\",\"reason\"]}]},\"RisingVariantsResponse\":{\"type\":\"object\",\"properties\":{\"asOf\":{\"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])))$\",\"description\":\"Last day of the measured year.\"},\"basis\":{\"type\":\"string\",\"const\":\"measured\"},\"category\":{\"type\":\"string\"},\"results\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"change\":{\"description\":\"This year's sampling against the year before, as a fraction: 0.4 is 40% more. Null when the year before cannot be shown.\",\"type\":[\"number\",\"null\"]},\"samplePercentile\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":100,\"description\":\"The share of its category's measured variants sampled as much or less, from 1 to 100.\"},\"trend\":{\"description\":\"Null when the year before cannot be shown.\",\"anyOf\":[{\"type\":\"string\",\"enum\":[\"rising\",\"steady\",\"falling\"]},{\"type\":\"null\"}]},\"variantId\":{\"type\":\"string\"}},\"required\":[\"change\",\"samplePercentile\",\"trend\",\"variantId\"]},\"description\":\"The category's rising variants, largest change first. Each `trend` is `rising`.\"},\"source\":{\"type\":\"string\",\"const\":\"Material Bank sample orders\"}},\"required\":[\"asOf\",\"basis\",\"category\",\"results\",\"source\"]},\"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\":{\"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\"]}},\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\"},\"metadata\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":[\"string\",\"number\",\"boolean\",\"null\"]}},\"relatedTermIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}},\"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\"]}}",
70
- ",\"totalCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"kind\",\"schemaVersion\",\"items\",\"totalCount\"]},\"SearchVariantsResponse\":{\"type\":\"object\",\"properties\":{\"excludedBySearchCatalogSubset\":{\"description\":\"Filtered variant ids outside the materials catalog.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The brand. `id` is the slug get_brand takes.\"},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"description\":\"All original source categories in source order.\"},\"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\"}]},\"code\":{\"description\":\"The brand's item code.\",\"type\":[\"string\",\"null\"]},\"colorOptionValueId\":{\"type\":[\"string\",\"null\"]},\"hasDeclaredColor\":{\"type\":\"boolean\",\"description\":\"True for a paint color card, paint line, primer or coating: the card is the brand's declared hex, never a photo.\"},\"hex\":{\"description\":\"The settled card color hex, or null when unknown. Paint cards show this color and never a photo.\",\"type\":[\"string\",\"null\"]},\"image\":{\"description\":\"The settled material card image. Always null for paint color samples and paint/coating product types.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"alt\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}},\"required\":[\"alt\",\"url\"]},{\"type\":\"null\"}]},\"name\":{\"type\":\"string\",\"description\":\"The unambiguous variant name, including its source label when needed.\"},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"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\"]},\"url\":{\"description\":\"The brand's page for it, or null when none is known.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"variantLabel\":{\"description\":\"The source variant label, trimmed; null when unknown or for a paint color sample, whose own name identifies its color. Separate from surface finish, color family and derived color names.\",\"type\":[\"string\",\"null\"]},\"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.\"},\"observations\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}},\"description\":\"Selected observations by channel (no_channel: none named), each the latest. Absent: none observed.\"},\"preference\":{\"type\":\"object\",\"properties\":{\"looks\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"by\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"named\",\"stated\",\"described\",\"related\"]}},\"index\":{\"type\":\"number\"},\"words\":{\"type\":\"string\"}},\"required\":[\"by\",\"index\"]}},\"matched\":{\"type\":\"array\",\"items\":{\"type\":\"number\"}},\"photo\":{\"type\":\"boolean\",\"const\":true},\"score\":{\"type\":\"number\"}},\"required\":[\"matched\",\"score\"]},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema1\"}}},\"variantCount\":{\"description\":\"Eligible variants of this product. Absent: none counted.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\"",
71
- ":[\"brand\",\"categories\",\"category\",\"code\",\"colorOptionValueId\",\"hasDeclaredColor\",\"name\",\"product\",\"productType\",\"sampleSubject\",\"variantId\",\"variantLabel\"]}},\"nameWords\":{\"description\":\"Empty name lookup: each word, and whether a name in scope starts it. Unmatched words were left out unless all or none matched.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"boolean\"},\"word\":{\"type\":\"string\"}},\"required\":[\"matched\",\"word\"]}},\"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 catalog this list can't show, e.g. retired.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unresolvedVariantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unstated\":{\"description\":\"Filter fields 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\"},\"variants\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991,\"description\":\"Variants in search scope that hold this reading.\"}},\"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\"},\"variants\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991,\"description\":\"Variants in search scope that hold this reading.\"}},\"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\":{\"by\":{\"type\":\"string\",\"enum\":[\"spelling\",\"meaning\"],\"description\":\"spelling: a typo away from the name; meaning: nearest in meaning.\"},\"correction\":{\"type\":\"string\"},\"word\":{\"type\":\"string\"}},\"required\":[\"by\",\"correction\",\"word\"]},\"description\":\"Words read as another name, and why.\"},\"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\",\"prope",
72
- "rties\":{\"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\",\"paint_variant_or_product\"],\"description\":\"A row per product, per variant, or per exact paint variant followed by other products.\"},\"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\",\"partial_match\",\"no_match\",\"nothing_understood\",\"out_of_scope\",\"brand_not_in_catalog\"],\"description\":\"How the search ended.\"},\"scope\":{\"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 fixed scope, repeated in filters.\"},\"suggestions\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"leaveOut\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"note\":{\"type\":\"string\"},\"variants\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991,\"description\":\"Variants the search returns with this change.\"}},\"required\":[\"note\",\"variants\"]},\"description\":\"On an empty page, or a partial match where no variant meets every condition: changes to the next call that return variants in full, most first.\"},\"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 c",
73
- "ondition id.\"},\"kind\":{\"type\":\"string\",\"enum\":[\"category\",\"brand\",\"term\",\"number\",\"color\",\"paint\",\"name\",\"scope\"]},\"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\",\"safety_data_sheet\",\"brochure\",\"catalog\",\"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\"]},\"mmPerPx\":{\"description\":\"Millimeters per pixel of this file. Images only; absent when unknown.\",\"type\":\"number\",\"exclusiveMinimum\":0},\"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\"]},\"shows\":{\"description\":\"What the photo shows of the material: sample, crop, laid_field, room or detail. Images only; absent when unknown.\",\"type\":\"string\",\"enum\":[\"sample\",\"crop\",\"laid_field\",\"room\",\"detail\"]},\"surfaceMm\":{\"description\":\"The surface in frame in millimeters: width and height times mmPerPx. Images only; absent when unknown.\",\"type\":\"object\",\"properties\":{\"width_mm\":{\"type\":\"number\",\"exclusiveMinim",
74
- "um\":0},\"height_mm\":{\"type\":\"number\",\"exclusiveMinimum\":0}},\"required\":[\"width_mm\",\"height_mm\"]},\"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\"]},\"VariantDemandResponse\":{\"type\":\"object\",\"properties\":{\"asOf\":{\"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])))$\",\"description\":\"Last day of the measured year.\"},\"basis\":{\"type\":\"string\",\"const\":\"measured\"},\"results\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"change\":{\"description\":\"This year's sampling against the year before, as a fraction: 0.4 is 40% more. Null when the year before cannot be shown.\",\"type\":[\"number\",\"null\"]},\"samplePercentile\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":100,\"description\":\"The share of its category's measured variants sampled as much or less, from 1 to 100.\"},\"trend\":{\"description\":\"Null when the year before cannot be shown.\",\"anyOf\":[{\"type\":\"string\",\"enum\":[\"rising\",\"steady\",\"falling\"]},{\"type\":\"null\"}]},\"category\":{\"type\":\"string\",\"description\":\"The MaterialGraph category the percentile ranks within.\"},\"state\":{\"type\":\"string\",\"const\":\"measured\"},\"variantId\":{\"type\":\"string\"}},\"required\":[\"change\",\"samplePercentile\",\"trend\",\"category\",\"state\",\"variantId\"]},{\"type\":\"object\",\"properties\":{\"state\":{\"type\":\"string\",\"const\":\"not_shown\",\"description\":\"Too few members sampled it to show, or nobody did.\"},\"variantId\":{\"type\":\"string\"}},\"required\":[\"state\",\"variantId\"]},{\"type\":\"object\",\"properties\":{\"state\":{\"type\":\"string\",\"const\":\"unknown_variant\"},\"variantId\":{\"type\":\"string\"}},\"required\":[\"state\",\"variantId\"]}]}},\"source\":{\"type\":\"string\",\"const\":\"Material Bank sample orders\"}},\"required\":[\"asOf\",\"basis\",\"results\",\"source\"]},\"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\"}}]},\"__schema1\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"},{\"type\":\"null\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/__schema1\"}},{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema1\"}}]},\"__schema2\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"},{\"type\":\"null\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/__schema2\"}},{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema2\"}}]}},\"operations\":{\"get_discovery_reference\":{\"type\":\"object\",\"properties\":{\"admittedBrandIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"valueKind\":{\"type\":\"string\"},\"dictionaryId\":{\"type\":[\"string\",\"null\"]},\"unit\":{\"type\":[\"string\",\"null\"]},\"isArray\":{\"type\":\"boolean\"},\"filterable\":{\"type\":\"boolean\"}},\"required\":[\"id\",\"name\",\"valueKind\",\"dictionaryId\",\"unit\",\"isArray\",\"filterable\"]}},",
75
- "\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"path\":{\"type\":\"string\"},\"ancestorIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"inCatalog\":{\"type\":\"boolean\"}},\"required\":[\"id\",\"name\",\"path\",\"ancestorIds\",\"inCatalog\"]}},\"productTypes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"description\"]}}},\"required\":[\"admittedBrandIds\",\"attributes\",\"categories\",\"productTypes\"]},\"interpret_discovery_terms\":{\"type\":\"object\",\"properties\":{\"categories\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"categoryIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"words\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"categoryIds\",\"words\"]},{\"type\":\"null\"}]},\"colorWordHexes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"categories\",\"colorWordHexes\"]},\"find_colorless_variants\":{\"type\":\"object\",\"properties\":{\"variantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"variantIds\"]},\"list_variant_siblings\":{\"anyOf\":[{\"type\":\"array\",\"items\":{\"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\"},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"All accepted source category ids in original source order; empty when unknown.\"},\"category\":{\"description\":\"The first original source category name, or null when unknown.\",\"type\":[\"string\",\"null\"]},\"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\"}]},\"valueSource\":{\"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\":[\"material_bank\",\"brand\",\"measured\",\"manual\",\"inferred\"]},\"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\"]},\"distinction\":{\"description\":\"This sibling's value of `distinguishedBy`, e.g. `3.5 in` or `SA35WUnfinished`.\",\"type\":\"string\",\"minLength\":1},\"distinguishedBy\":{\"description\":\"Which attribute separates this sibling from variants sharing its name and Color Name: `size` (declared size option) or `code` (product code).\",\"type\":\"string\",\"enum\":[\"size\",\"code\"]}},\"required\":[\"availability\",\"brand\",\"categories\",\"category\",\"color\",\"imageSource\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]}},{\"type\":\"null\"}]},\"find_nearest_paints\":{\"$ref\":\"#/$defs/NearestPa",
76
- "intsOutput\"},\"get_catalog_generation\":{\"type\":\"object\",\"properties\":{\"generation\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"generation\"]},\"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/ListVariantFacetsResponse\"},\"search_variants\":{\"$ref\":\"#/$defs/SearchVariantsResponse\"},\"find_variants_by_color\":{\"$ref\":\"#/$defs/FindVariantsByColorResponse\"},\"find_variants_by_vector\":{\"$ref\":\"#/$defs/FindVariantsByVectorResponse\"},\"find_sampled_together\":{\"$ref\":\"#/$defs/FindSampledTogetherResponse\"},\"list_sampled_together_pairs\":{\"$ref\":\"#/$defs/ListSampledTogetherPairsResponse\"},\"get_variant_demand\":{\"$ref\":\"#/$defs/VariantDemandResponse\"},\"list_rising_variants\":{\"$ref\":\"#/$defs/RisingVariantsResponse\"},\"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_baselines\":{\"$ref\":\"#/$defs/ListBaselinesResponse\"},\"check_baselines\":{\"$ref\":\"#/$defs/CheckBaselinesResponse\"},\"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\"}}}",
62
+ "null\"]}},\"required\":[\"availability\",\"brand\",\"categories\",\"category\",\"color\",\"imageSource\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},\"NearestPaintsOutput\":{\"type\":\"object\",\"properties\":{\"results\":{\"maxItems\":12,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"paints\":{\"maxItems\":24,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"closeness\":{\"type\":\"string\",\"enum\":[\"very-near\",\"very-close\",\"close\",\"related\"]},\"code\":{\"type\":[\"string\",\"null\"]},\"deltaE\":{\"type\":\"number\",\"minimum\":0},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"image\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"url\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"}},\"required\":[\"url\",\"alt\"]},{\"type\":\"null\"}]},\"lrv\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":100},{\"type\":\"null\"}]},\"name\":{\"type\":\"string\"},\"productType\":{\"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\"]},\"variantId\":{\"type\":\"string\"}},\"required\":[\"brand\",\"closeness\",\"code\",\"deltaE\",\"hex\",\"image\",\"lrv\",\"name\",\"productType\",\"sampleSubject\",\"variantId\"]}}},\"required\":[\"hex\",\"paints\"]}}},\"required\":[\"results\"]},\"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\":{\"change\":{\"description\":\"This year's sampling against the year before, as a fraction: 0.4 is 40% more. Null when the year before cannot be shown.\",\"type\":[\"number\",\"null\"]},\"samplePercentile\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":100,\"description\":\"The share of its product type's measured variants sampled as much or less, from 1 to 100.\"},\"trend\":{\"description\":\"Null when the year before cannot be shown.\",\"anyOf\":[{\"type\":\"string\",\"enum\":[\"rising\",\"steady\",\"falling\"]},{\"type\":\"null\"}]}},\"required\":[\"change\",\"samplePercentile\",\"trend\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"hex\":{\"type\":[\"string\",\"null\"]},\"lift\":{\"type\":\"number\"},\"liftLabel\":{\"type\":\"string\"},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"projectCount\":{\"type\":\"number\"},\"relation\":{\"type\":\"string\",\"enum\":[\"other_brand\",\"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\":{\"change\":{\"description\":\"This year's sampling against the year before, as a fraction: 0.4 is 40% more. Null when the year before cannot be shown.\",\"type\":[\"number\",\"null\"]},\"samplePercentile\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":100,\"d",
63
+ "escription\":\"The share of its product type's measured variants sampled as much or less, from 1 to 100.\"},\"trend\":{\"description\":\"Null when the year before cannot be shown.\",\"anyOf\":[{\"type\":\"string\",\"enum\":[\"rising\",\"steady\",\"falling\"]},{\"type\":\"null\"}]}},\"required\":[\"change\",\"samplePercentile\",\"trend\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"hex\":{\"type\":[\"string\",\"null\"]},\"lift\":{\"type\":\"number\"},\"liftLabel\":{\"type\":\"string\"},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"projectCount\":{\"type\":\"number\"},\"relation\":{\"type\":\"string\",\"enum\":[\"other_brand\",\"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\"},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"All accepted source category ids in original source order; empty when unknown.\"},\"category\":{\"description\":\"The first original source category name, or null when unknown.\",\"type\":[\"string\",\"null\"]},\"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\"}]},\"valueSource\":{\"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\":[\"material_bank\",\"brand\",\"measured\",\"manual\",\"inferred\"]},\"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\":{\"anchorCol",
64
+ "orSimilarity\":{\"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\":[\"availability\",\"brand\",\"categories\",\"category\",\"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\",\"propertie",
65
+ "s\":{\"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\",\"catalog\",\"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\"]},\"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,\"ma",
66
+ "ximum\":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\"]},\"reference\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\",\"minLength\":1},\"code\":{\"type\":\"string\",\"minLength\":1},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"libraryId\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"brand\",\"hex\",\"id\",\"libraryId\",\"name\"]},\"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\":{\"code\":{\"description\":\"The code the library gives the color (e.g. \\\"OC-17\\\", \\\"7016\\\"). Present only on a library hit.\",\"type\":\"string\"},\"hex\":{\"type\":\"string\",\"description\":\"The resolved `#rrggbb` hex.\"},\"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 catalog.\",\"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\":3",
67
+ "60},{\"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\",\"description\":\"The resolved display name (echoes the query when unnamed).\"},\"variant\":{\"description\":\"Whether the named paint is a variant in the catalog. Only a color that resolved in a `brand` library is looked up. The lookup is exact (brand paint names and codes), global, and independent of `searchCatalogSubset`, 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 `searchCatalogSubset`. Null when no `searchCatalogSubset` was passed. The lookup itself is never narrowed by scope.\",\"type\":[\"boolean\",\"null\"]},\"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\",\"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 `searchCatalogSubset`. Null when no `searchCatalogSubset` was passed. The lookup itself is never narrowed by scope.\",\"type\":[\"boolean\",\"null\"]},\"variantId\":{\"type\":\"string\",\"description\":\"The variant id. Opaque; never parse it.\"}},\"required\":[\"brand\",\"inScope\",\"variantId\"]},\"description\":\"Every variant that carries the paint, catalog 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-catalog\",\"description\":\"The name is one brand's paint and no variant in the catalog 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 catalog was not searched; there was no one brand's paint to find.\"}},\"required\":[\"reason\",\"status\"]}]}},\"required\":[\"hex\",\"matchTarget\",\"name\",\"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\":[\"genericResolu",
68
+ "tion\",\"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\",\"material-bank-id\",\"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\",\"material-bank-id\",\"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\",\"material-bank-id\",\"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\",\"material-bank-id\",\"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-ur",
69
+ "l\",\"no-code-match\",\"no-material-bank-id-match\"]}},\"required\":[\"evidence\",\"outcome\",\"reason\"]}]},\"RisingVariantsResponse\":{\"type\":\"object\",\"properties\":{\"asOf\":{\"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])))$\",\"description\":\"Last day of the measured year.\"},\"basis\":{\"type\":\"string\",\"const\":\"measured\"},\"productType\":{\"type\":\"string\"},\"results\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"change\":{\"description\":\"This year's sampling against the year before, as a fraction: 0.4 is 40% more. Null when the year before cannot be shown.\",\"type\":[\"number\",\"null\"]},\"samplePercentile\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":100,\"description\":\"The share of its product type's measured variants sampled as much or less, from 1 to 100.\"},\"trend\":{\"description\":\"Null when the year before cannot be shown.\",\"anyOf\":[{\"type\":\"string\",\"enum\":[\"rising\",\"steady\",\"falling\"]},{\"type\":\"null\"}]},\"variantId\":{\"type\":\"string\"}},\"required\":[\"change\",\"samplePercentile\",\"trend\",\"variantId\"]},\"description\":\"The product type's rising variants, largest change first. Each `trend` is `rising`.\"},\"source\":{\"type\":\"string\",\"const\":\"Material Bank sample orders\"}},\"required\":[\"asOf\",\"basis\",\"productType\",\"results\",\"source\"]},\"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\":{\"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\"]}},\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\"},\"metadata\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":[\"string\",\"number\",\"boolean\",\"null\"]}},\"relatedTermIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}},\"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\",\"life",
70
+ "cycle\",\"semanticId\"]}},\"totalCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"kind\",\"schemaVersion\",\"items\",\"totalCount\"]},\"SearchVariantsResponse\":{\"type\":\"object\",\"properties\":{\"excludedBySearchCatalogSubset\":{\"description\":\"Filtered variant ids outside the materials catalog.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The brand. `id` is the slug get_brand takes.\"},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"description\":\"All original source categories in source order.\"},\"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\"}]},\"code\":{\"description\":\"The brand's item code.\",\"type\":[\"string\",\"null\"]},\"colorOptionValueId\":{\"type\":[\"string\",\"null\"]},\"hasDeclaredColor\":{\"type\":\"boolean\",\"description\":\"True for a paint color card, paint line, primer or coating: the card is the brand's declared hex, never a photo.\"},\"hex\":{\"description\":\"The settled card color hex, or null when unknown. Paint cards show this color and never a photo.\",\"type\":[\"string\",\"null\"]},\"image\":{\"description\":\"The settled material card image. Always null for paint color samples and paint/coating product types.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"alt\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}},\"required\":[\"alt\",\"url\"]},{\"type\":\"null\"}]},\"name\":{\"type\":\"string\",\"description\":\"The unambiguous variant name, including its source label when needed.\"},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"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\"]},\"url\":{\"description\":\"The brand's page for it, or null when none is known.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"variantLabel\":{\"description\":\"The source variant label, trimmed; null when unknown or for a paint color sample, whose own name identifies its color. Separate from surface finish, color family and derived color names.\",\"type\":[\"string\",\"null\"]},\"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.\"},\"observations\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}},\"description\":\"Selected observations by channel (no_channel: none named), each the latest. Absent: none observed.\"},\"preference\":{\"type\":\"object\",\"properties\":{\"looks\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"by\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"named\",\"stated\",\"described\",\"related\"]}},\"index\":{\"type\":\"number\"},\"words\":{\"type\":\"string\"}},\"required\":[\"by\",\"index\"]}},\"matched\":{\"type\":\"array\",\"items\":{\"type\":\"number\"}},\"photo\":{\"type\":\"boolean\",\"const\":true},\"score\":{\"type\":\"number\"}},\"required\":[\"matched\",\"score\"]},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema1\"}}},\"variantCount\":{\"description\":\"Eligible variants of this product. Absent: none counted.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199",
71
+ "254740991}},\"required\":[\"brand\",\"categories\",\"category\",\"code\",\"colorOptionValueId\",\"hasDeclaredColor\",\"name\",\"product\",\"productType\",\"sampleSubject\",\"variantId\",\"variantLabel\"]}},\"nameWords\":{\"description\":\"Empty name lookup: each word, and whether a name in scope starts it. Unmatched words were left out unless all or none matched.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"boolean\"},\"word\":{\"type\":\"string\"}},\"required\":[\"matched\",\"word\"]}},\"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 catalog this list can't show, e.g. retired.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unresolvedVariantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unstated\":{\"description\":\"Filter fields 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\"},\"variants\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991,\"description\":\"Variants in search scope that hold this reading.\"}},\"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\"},\"variants\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991,\"description\":\"Variants in search scope that hold this reading.\"}},\"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\":{\"by\":{\"type\":\"string\",\"enum\":[\"spelling\",\"meaning\"],\"description\":\"spelling: a typo away from the name; meaning: nearest in meaning.\"},\"correction\":{\"type\":\"string\"},\"word\":{\"type\":\"string\"}},\"required\":[\"by\",\"correction\",\"word\"]},\"description\":\"Words read as another name, and why.\"},\"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\":{",
72
+ "\"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\",\"paint_variant_or_product\"],\"description\":\"A row per product, per variant, or per exact paint variant followed by other products.\"},\"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\",\"partial_match\",\"no_match\",\"nothing_understood\",\"out_of_scope\",\"brand_not_in_catalog\"],\"description\":\"How the search ended.\"},\"scope\":{\"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 fixed scope, repeated in filters.\"},\"suggestions\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"leaveOut\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"note\":{\"type\":\"string\"},\"variants\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991,\"description\":\"Variants the search returns with this change.\"}},\"required\":[\"note\",\"variants\"]},\"description\":\"On an empty page, or a partial match where no variant meets every condition: changes to the next call that return variants in full, most first.\"},\"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\",\"descri",
73
+ "ption\":\"The parser's condition id.\"},\"kind\":{\"type\":\"string\",\"enum\":[\"category\",\"brand\",\"term\",\"number\",\"color\",\"paint\",\"name\",\"scope\"]},\"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\",\"safety_data_sheet\",\"brochure\",\"catalog\",\"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\"]},\"mmPerPx\":{\"description\":\"Millimeters per pixel of this file. Images only; absent when unknown.\",\"type\":\"number\",\"exclusiveMinimum\":0},\"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\"]},\"shows\":{\"description\":\"What the photo shows of the material: sample, crop, laid_field, room or detail. Images only; absent when unknown.\",\"type\":\"string\",\"enum\":[\"sample\",\"crop\",\"laid_field\",\"room\",\"detail\"]},\"surfaceMm\":{\"description\":\"The surface in frame in millimeters: width and height times mmPerPx. Images only; absent when unknown.\",\"type\":\"object\",\"properties\":{\"width_mm\":{\"type\":\"n",
74
+ "umber\",\"exclusiveMinimum\":0},\"height_mm\":{\"type\":\"number\",\"exclusiveMinimum\":0}},\"required\":[\"width_mm\",\"height_mm\"]},\"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\"]},\"VariantDemandResponse\":{\"type\":\"object\",\"properties\":{\"asOf\":{\"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])))$\",\"description\":\"Last day of the measured year.\"},\"basis\":{\"type\":\"string\",\"const\":\"measured\"},\"results\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"change\":{\"description\":\"This year's sampling against the year before, as a fraction: 0.4 is 40% more. Null when the year before cannot be shown.\",\"type\":[\"number\",\"null\"]},\"samplePercentile\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":100,\"description\":\"The share of its product type's measured variants sampled as much or less, from 1 to 100.\"},\"trend\":{\"description\":\"Null when the year before cannot be shown.\",\"anyOf\":[{\"type\":\"string\",\"enum\":[\"rising\",\"steady\",\"falling\"]},{\"type\":\"null\"}]},\"productType\":{\"type\":\"string\",\"description\":\"The id of the MaterialGraph product type the percentile ranks within.\"},\"state\":{\"type\":\"string\",\"const\":\"measured\"},\"variantId\":{\"type\":\"string\"}},\"required\":[\"change\",\"samplePercentile\",\"trend\",\"productType\",\"state\",\"variantId\"]},{\"type\":\"object\",\"properties\":{\"state\":{\"type\":\"string\",\"const\":\"not_shown\",\"description\":\"Too few members sampled it to show, or nobody did.\"},\"variantId\":{\"type\":\"string\"}},\"required\":[\"state\",\"variantId\"]},{\"type\":\"object\",\"properties\":{\"state\":{\"type\":\"string\",\"const\":\"unknown_variant\"},\"variantId\":{\"type\":\"string\"}},\"required\":[\"state\",\"variantId\"]}]}},\"source\":{\"type\":\"string\",\"const\":\"Material Bank sample orders\"}},\"required\":[\"asOf\",\"basis\",\"results\",\"source\"]},\"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\"}}]},\"__schema1\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"},{\"type\":\"null\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/__schema1\"}},{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema1\"}}]},\"__schema2\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"},{\"type\":\"null\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/__schema2\"}},{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema2\"}}]}},\"operations\":{\"get_discovery_reference\":{\"type\":\"object\",\"properties\":{\"admittedBrandIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"valueKind\":{\"type\":\"string\"},\"dictionaryId\":{\"type\":[\"string\",\"null\"]},\"unit\":{\"type\":[\"string\",\"null\"]},\"isArray\":{\"type\":\"boolean\"},\"filterable\":{\"type\":\"boolean\"}},\"required\":[\"id\",\"name\",\"valueKind\",\"d",
75
+ "ictionaryId\",\"unit\",\"isArray\",\"filterable\"]}},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"path\":{\"type\":\"string\"},\"ancestorIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"inCatalog\":{\"type\":\"boolean\"}},\"required\":[\"id\",\"name\",\"path\",\"ancestorIds\",\"inCatalog\"]}},\"productTypes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"description\"]}}},\"required\":[\"admittedBrandIds\",\"attributes\",\"categories\",\"productTypes\"]},\"interpret_discovery_terms\":{\"type\":\"object\",\"properties\":{\"categories\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"categoryIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"words\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"categoryIds\",\"words\"]},{\"type\":\"null\"}]},\"colorWordHexes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"categories\",\"colorWordHexes\"]},\"find_colorless_variants\":{\"type\":\"object\",\"properties\":{\"variantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"variantIds\"]},\"list_variant_siblings\":{\"anyOf\":[{\"type\":\"array\",\"items\":{\"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\"},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"All accepted source category ids in original source order; empty when unknown.\"},\"category\":{\"description\":\"The first original source category name, or null when unknown.\",\"type\":[\"string\",\"null\"]},\"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\"}]},\"valueSource\":{\"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\":[\"material_bank\",\"brand\",\"measured\",\"manual\",\"inferred\"]},\"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\"]},\"distinction\":{\"description\":\"This sibling's value of `distinguishedBy`, e.g. `3.5 in` or `SA35WUnfinished`.\",\"type\":\"string\",\"minLength\":1},\"distinguishedBy\":{\"description\":\"Which attribute separates this sibling from variants sharing its name and Color Name: `size` (declared size option) or `code` (product code).\",\"type\":\"string\",\"enum\":[\"size\",\"code\"]}},\"required\":[\"availability\",\"brand\",\"categories\",\"category\",\"color\",\"imageSource\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]}},{\"type\":\"null\"}]},\"f",
76
+ "ind_nearest_paints\":{\"$ref\":\"#/$defs/NearestPaintsOutput\"},\"get_catalog_generation\":{\"type\":\"object\",\"properties\":{\"generation\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"generation\"]},\"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/ListVariantFacetsResponse\"},\"search_variants\":{\"$ref\":\"#/$defs/SearchVariantsResponse\"},\"find_variants_by_color\":{\"$ref\":\"#/$defs/FindVariantsByColorResponse\"},\"find_variants_by_vector\":{\"$ref\":\"#/$defs/FindVariantsByVectorResponse\"},\"find_sampled_together\":{\"$ref\":\"#/$defs/FindSampledTogetherResponse\"},\"list_sampled_together_pairs\":{\"$ref\":\"#/$defs/ListSampledTogetherPairsResponse\"},\"get_variant_demand\":{\"$ref\":\"#/$defs/VariantDemandResponse\"},\"list_rising_variants\":{\"$ref\":\"#/$defs/RisingVariantsResponse\"},\"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_baselines\":{\"$ref\":\"#/$defs/ListBaselinesResponse\"},\"check_baselines\":{\"$ref\":\"#/$defs/CheckBaselinesResponse\"},\"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\"}}}",
77
77
  ].join("");