@instruments/materialgraph 0.45.0 → 0.46.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.
@@ -12,4 +12,11 @@ export type MaterialGraphClientOptions = {
12
12
  baseUrl?: string;
13
13
  /** Inject a custom `fetch` (tests, proxies). Defaults to the global `fetch`. */
14
14
  fetch?: typeof fetch;
15
+ /**
16
+ * Deadline in milliseconds for each request, composed with any signal the
17
+ * caller passes. An expired deadline throws a `MaterialGraphError` of kind
18
+ * `timeout`. It does not apply to run-event streams, which stay open until
19
+ * they end or the caller aborts. Absent means no deadline.
20
+ */
21
+ timeoutMs?: number;
15
22
  };
package/client.js CHANGED
@@ -97,6 +97,9 @@ export class MaterialGraphClient extends CatalogueClient {
97
97
  apiKey: options.apiKey,
98
98
  baseUrl: options.baseUrl ?? DEFAULT_BASE_URL,
99
99
  fetch: options.fetch ?? globalThis.fetch,
100
+ ...(options.timeoutMs === undefined
101
+ ? {}
102
+ : { timeoutMs: options.timeoutMs }),
100
103
  });
101
104
  super(transport);
102
105
  this.#transport = transport;
package/errors.d.ts CHANGED
@@ -26,6 +26,8 @@ export type ProblemDetail = {
26
26
  };
27
27
  /** Normalized residual `{ error }` body. Unknown response fields are discarded. */
28
28
  export type SimpleErrorBody = {
29
+ /** The vector and variant routes' machine-readable code, when the body is `{ code, message }`. */
30
+ code?: string;
29
31
  error: string;
30
32
  issues?: SanitizedIssue[];
31
33
  };
package/errors.js CHANGED
@@ -157,10 +157,23 @@ const normalizeProblem = (body, secrets) => {
157
157
  };
158
158
  };
159
159
  const normalizeSimple = (body, secrets) => {
160
- if (!isRecord(body) || typeof body.error !== "string") {
160
+ if (!isRecord(body)) {
161
161
  return undefined;
162
162
  }
163
163
  const issues = sanitizeIssues(body.issues, secrets);
164
+ // `{ code, message }` is the vector routes' error body; keep its code.
165
+ if (typeof body.error !== "string" &&
166
+ typeof body.code === "string" &&
167
+ typeof body.message === "string") {
168
+ return {
169
+ code: safeString(body.code, secrets),
170
+ error: safeString(body.message, secrets),
171
+ ...(issues === undefined ? {} : { issues }),
172
+ };
173
+ }
174
+ if (typeof body.error !== "string") {
175
+ return undefined;
176
+ }
164
177
  return {
165
178
  error: safeString(body.error, secrets),
166
179
  ...(issues === undefined ? {} : { issues }),
@@ -211,7 +224,12 @@ export class MaterialGraphError extends Error {
211
224
  });
212
225
  }
213
226
  static fromTransport(input) {
214
- if (input.callerSignal?.aborted === true) {
227
+ // A deadline (`AbortSignal.timeout`, or the client's `timeoutMs`) aborts
228
+ // the signal with a TimeoutError reason: that is a timeout, not a
229
+ // cancellation by the caller.
230
+ const reason = input.callerSignal?.reason;
231
+ const reasonName = reason instanceof Error ? reason.name : "";
232
+ if (input.callerSignal?.aborted === true && reasonName !== "TimeoutError") {
215
233
  return new MaterialGraphError("MaterialGraph request aborted by caller", {
216
234
  ...requestMetadata(input),
217
235
  kind: "aborted",
@@ -219,7 +237,7 @@ export class MaterialGraphError extends Error {
219
237
  });
220
238
  }
221
239
  const name = input.cause instanceof Error ? input.cause.name : "";
222
- if (name === "TimeoutError") {
240
+ if (name === "TimeoutError" || reasonName === "TimeoutError") {
223
241
  return new MaterialGraphError("MaterialGraph request timed out", {
224
242
  ...requestMetadata(input),
225
243
  kind: "timeout",
@@ -8,13 +8,13 @@ import type { PaintCatalogVariant } from "./find-variants-by-color-types.js";
8
8
  * are copied here and `contract-parity.test.ts` keeps them honest.
9
9
  */
10
10
  import type { ImageReferenceInput } from "./image-reference-types.js";
11
- import type { FilterGroups, ListVariantsItem } from "./list-variants-types.js";
11
+ import type { FilterGroups, VariantCard } from "./list-variants-types.js";
12
12
  import type { SearchCatalogueSubset } from "./search-catalogue-subset-types.js";
13
13
  export declare const FIND_VARIANTS_BY_VECTOR_MODES: readonly ["text", "image", "text_and_image"];
14
14
  export type FindVariantsByVectorMode = (typeof FIND_VARIANTS_BY_VECTOR_MODES)[number];
15
15
  export type FindVariantsByVectorQuery = {
16
- /** Exactly one reference. Only for image modes. */
17
- image?: ImageReferenceInput;
16
+ /** One to six image references, each with exactly one field. Several are combined into one query, and every seed image's variant is left out. Only for image modes. Each image that has to be embedded spends one of the embed requests. */
17
+ images?: ImageReferenceInput[];
18
18
  mode: FindVariantsByVectorMode;
19
19
  /** Description, mood words included. Only for text modes. */
20
20
  text?: string;
@@ -31,7 +31,7 @@ export type FindVariantsByVectorInput = {
31
31
  /** Only this corpus scope. Absent or all: every variant. */
32
32
  searchCatalogueSubset?: SearchCatalogueSubset;
33
33
  };
34
- export type FindVariantsByVectorItem = Omit<ListVariantsItem, "materialBankId"> & {
34
+ export type FindVariantsByVectorItem = Omit<VariantCard, "materialBankId"> & {
35
35
  /** The variant's Material Bank SKU; null means none is recorded. Always present here, unlike `list_variants`' optional field. */
36
36
  materialBankId: string | null;
37
37
  /** Voyage cosine to the query. Ranks only; not a probability. */
@@ -40,7 +40,7 @@ export type FindVariantsByVectorItem = Omit<ListVariantsItem, "materialBankId">
40
40
  export type FindVariantsByVectorReference = {
41
41
  id: string;
42
42
  kind: "url" | "assetId" | "variantId" | "sourceId";
43
- } | null;
43
+ };
44
44
  export type FindVariantsByVectorScan = {
45
45
  /** True when no further candidates match; false means more may exist. */
46
46
  exhausted: boolean;
@@ -61,7 +61,8 @@ export type FindVariantsByVectorOutput = {
61
61
  excludedBySearchCatalogueSubset?: string[];
62
62
  items: FindVariantsByVectorItem[];
63
63
  mode: FindVariantsByVectorMode;
64
- reference: FindVariantsByVectorReference;
64
+ /** The image references the query used, in order. Empty in text mode. */
65
+ references: FindVariantsByVectorReference[];
65
66
  /** The exact brand paint named by the text query, when held in the catalogue. */
66
67
  namedPaint?: PaintCatalogVariant;
67
68
  scan: FindVariantsByVectorScan;
@@ -35,6 +35,8 @@ export type HttpTransportOptions = {
35
35
  apiKey: string;
36
36
  baseUrl: string;
37
37
  fetch: typeof fetch;
38
+ /** Deadline in milliseconds for each JSON or upload request. Not applied to streams. */
39
+ timeoutMs?: number;
38
40
  };
39
41
  export declare class HttpTransport {
40
42
  #private;
package/http-transport.js CHANGED
@@ -32,11 +32,23 @@ export class HttpTransport {
32
32
  baseUrl;
33
33
  apiKey;
34
34
  fetch;
35
+ #timeoutMs;
35
36
  #lastRateLimit = null;
36
37
  constructor(options) {
37
38
  this.apiKey = options.apiKey;
38
39
  this.baseUrl = options.baseUrl.replace(/\/+$/u, "");
39
40
  this.fetch = options.fetch;
41
+ this.#timeoutMs = options.timeoutMs;
42
+ }
43
+ /** The caller's signal and the client deadline, whichever fires first. */
44
+ #withDeadline(signal) {
45
+ if (this.#timeoutMs === undefined) {
46
+ return signal;
47
+ }
48
+ const deadline = AbortSignal.timeout(this.#timeoutMs);
49
+ return signal === undefined
50
+ ? deadline
51
+ : AbortSignal.any([signal, deadline]);
40
52
  }
41
53
  get lastRateLimit() {
42
54
  return this.#lastRateLimit;
@@ -83,19 +95,21 @@ export class HttpTransport {
83
95
  origin: requestUrl.origin,
84
96
  path: requestUrl.pathname,
85
97
  };
98
+ // The deadline covers the whole request, body read included.
99
+ const signal = this.#withDeadline(input.signal);
86
100
  let response;
87
101
  try {
88
102
  response = await this.fetch(input.url, {
89
103
  body: input.body,
90
104
  headers: input.headers,
91
105
  method: input.method,
92
- signal: input.signal,
106
+ signal,
93
107
  });
94
108
  }
95
109
  catch (cause) {
96
110
  throw MaterialGraphError.fromTransport({
97
111
  ...metadata,
98
- callerSignal: input.signal,
112
+ callerSignal: signal,
99
113
  cause,
100
114
  });
101
115
  }
@@ -108,7 +122,7 @@ export class HttpTransport {
108
122
  catch (cause) {
109
123
  throw MaterialGraphError.fromTransport({
110
124
  ...metadata,
111
- callerSignal: input.signal,
125
+ callerSignal: signal,
112
126
  cause,
113
127
  });
114
128
  }
package/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { MaterialGraphClient, DEFAULT_BASE_URL } from "./client.js";
2
2
  export type { MaterialGraphClientOptions } from "./client.js";
3
- export type { FilterOp, FilterTermCondition, FilterNumericCondition, FilterPresenceCondition, FilterAnyFieldCondition, FilterCondition, FilterGroups, OptionalFilterGroups, OrderByEntry, ListVariantsInclude, ListVariantsCollapse, ColorRegion, ColorRangeCondition, ListVariantsInput, ListVariantsPreference, ListVariantsSpecifications, ListVariantsNotApplicable, SampleSubject, ListVariantsItem, ListVariantsOutput, } from "./list-variants-types.js";
3
+ export type { FilterOp, FilterTermCondition, FilterNumericCondition, FilterPresenceCondition, FilterAnyFieldCondition, FilterCondition, FilterGroups, OptionalFilterGroups, OrderByEntry, ListVariantsInclude, ListVariantsCollapse, ColorRegion, ColorRangeCondition, ListVariantsInput, ListVariantsPreference, ListVariantsSpecifications, ListVariantsNotApplicable, SampleSubject, ListVariantsItem, ListVariantsOutput, VariantCard, } from "./list-variants-types.js";
4
4
  export type { ListVariantFacetsInput, VariantFacetValue, CategoricalVariantFacet, BooleanVariantFacet, NumericVariantFacet, VariantFacet, ListVariantFacetsOutput, } from "./list-variant-facets-types.js";
5
5
  export type { SearchVariantsSelection, SearchVariantsInput, SearchVariantsUnderstood, SearchVariantsReading, SearchVariantsChoice, SearchVariantsOutput, } from "./search-variants-types.js";
6
6
  export type { ListEnumValuesOptions, EnumValueMatch, EnumValueItem, ListEnumValuesResult, } from "./list-enum-values-types.js";
@@ -222,6 +222,15 @@ export type ListVariantsItem = {
222
222
  variantCount?: number;
223
223
  variantId: string;
224
224
  };
225
+ /**
226
+ * The variant card both `listVariants` rows and `findVariantsByVector` rows
227
+ * satisfy. The only difference between the two is the Material Bank SKU:
228
+ * absent in a list row when none is recorded, `null` in a vector row.
229
+ */
230
+ export type VariantCard = Omit<ListVariantsItem, "materialBankId"> & {
231
+ /** The variant's Material Bank SKU. Absent or null means none is recorded. */
232
+ materialBankId?: string | null;
233
+ };
225
234
  export type ListVariantsOutput = {
226
235
  /** Explicit `{field: "variant", op: "in"}` ids that name a real variant outside the materials catalogue. Present only when at least one did. */
227
236
  excludedBySearchCatalogueSubset?: string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instruments/materialgraph",
3
- "version": "0.45.0",
3
+ "version": "0.46.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -21,7 +21,7 @@
21
21
  }
22
22
  },
23
23
  "dependencies": {
24
- "@materialinstruments/colorscope": "10.2.1"
24
+ "@materialinstruments/colorscope": "10.6.1"
25
25
  },
26
26
  "license": "Proprietary",
27
27
  "engines": {
@@ -60,24 +60,24 @@ export const RESPONSE_SCHEMA_CATALOGUE_JSON = [
60
60
  "\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"All original source category IDs in source order; empty when unknown.\"},\"code\":{\"type\":[\"string\",\"null\"]},\"colors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"distance\":{\"type\":\"number\",\"description\":\"CIEDE2000 difference to the assigned swatch. Never a probability.\"},\"hex\":{\"type\":\"string\"},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"Position in the request's `colors[]`.\"},\"proportion\":{\"type\":\"number\",\"description\":\"The matched swatch's share of its image, 0 to 1.\"},\"target\":{\"description\":\"Requested share, palette only; null otherwise.\",\"type\":[\"number\",\"null\"]}},\"required\":[\"distance\",\"hex\",\"index\",\"proportion\",\"target\"]}},\"coverage\":{\"type\":\"number\",\"description\":\"Share of the request's colors matched to a distinct swatch, 0 to 1. Never a probability.\"},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"hex\":{\"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.\"},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"productType\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"productTypeId\":{\"description\":\"Accepted primary specification type ID, independent of source categories; null when unknown.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":\"string\"}},\"required\":[\"brand\",\"brandId\",\"category\",\"categories\",\"code\",\"colors\",\"coverage\",\"imageUrl\",\"hasDeclaredColor\",\"product\",\"productId\",\"productType\",\"productTypeId\",\"variantId\",\"variantName\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"},\"poolTruncated\":{\"type\":\"boolean\",\"description\":\"True when matches exist past the checked pool: add productTypeIds or brands.\"}},\"required\":[\"endCursor\",\"hasNextPage\",\"poolTruncated\"]},\"resolvedColors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"catalogueVariant\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"hex\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"color\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},{\"type\":\"null\"}]},\"hex\":{\"type\":\"string\"},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"enum\":[\"point\",\"region\"],\"description\":\"region: a named meaning's own OKLCh bounds, kept — never collapsed to one hex.\"},\"share\":{\"description\":\"Image-extracted or stored target-variant swatch share; else null.\",\"type\":[\"number\",\"null\"]}},\"required\":[\"catalogueVariant\",\"hex\",\"index\",\"kind\",\"share\"]}},\"unresolvedColors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"alternatives\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"hex\":{\"type\":\"string\"},\"libraryId\":{\"type\":\"string\"},\"libraryName\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"query\":{\"type\":\"string\"}},\"required\":[\"hex\",\"libraryId\",\"libraryName\",\"name\",\"query\"]}},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"input\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"alternatives\",\"index\",\"input\"]}},\"mode\":{\"type\":\"string\",\"const\":\"palette\"}},\"required\":[\"gatedOut\",\"matches\",\"pageInfo\",\"resolvedColors\",\"unresolvedColors\",\"mode\"]},{\"type\":\"object\",\"properties\":{\"searchCatalogueSubset\":{\"description\":\"The corpus the ranked candidates were drawn from — present ONLY when the request narrowed it. ABSENT means the whole graph. The reference is resolved unscoped either way.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\",\"description\":\"What the scope admits, in one sentence, for a human reader.\"},\"scope\":{\"type\":\"string\",\"enum\":[\"all\",\"samplizeCatalogue\",\"materialBankOrderable\",\"materialBankNaOrderable\",\"material",
61
61
  "BankNaAndCatalogue\",\"materialBankEuOrderable\",\"designShopOrderable\"],\"description\":\"Which corpus to answer from. samplizeCatalogue admits published US paint colors regardless of stock. ABSENT (or 'all') means the WHOLE GRAPH — every material MaterialGraph knows, orderable or not; absence is never a narrower default. Three transaction-oriented scopes gate on governed CHANNEL membership: 'materialBankNaOrderable' (Material Bank North America), 'materialBankEuOrderable' (Material Bank Europe) and 'designShopOrderable' (DesignShop, with the products DesignShop hides from browse excluded). 'materialBankNaAndCatalogue' is the one-query union of Material Bank North America and the governed Catalogue editorial discovery corpus; that union does not by itself claim every member is transactable. 'materialBankOrderable' is NOT one of them: it selects materials carrying a Material Bank identity, which is a provenance signal rather than a channel one, and it admits almost the whole graph — use it to exclude crawl-sourced brands, not to mean orderable. A scope answers membership in its named governed corpus, never suitability: scope on channel, then refine on sector. Every scope is applied INSIDE the query: `limit` fills with eligible rows and `counts` describe the scoped corpus, which post-filtering a page cannot give you. An unknown value is a 400 naming it, never a silent fall back to the whole graph.\"}},\"required\":[\"description\",\"scope\"]},\"excludedBySearchCatalogueSubset\":{\"description\":\"Real variant ids outside `searchCatalogueSubset` or the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"reference\":{\"type\":\"object\",\"properties\":{\"candidates\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"brandSlug\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"hex\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"brandSlug\",\"color\",\"imageUrl\",\"product\",\"productId\",\"variantId\",\"variantName\"]}},\"color\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"name\":{\"type\":[\"string\",\"null\"]},\"ref\":{\"type\":\"string\"}},\"required\":[\"hex\",\"name\",\"ref\"]},{\"type\":\"null\"}]},\"input\":{\"type\":\"object\",\"properties\":{\"color\":{\"type\":\"string\"},\"material\":{\"type\":\"string\"},\"oklab\":{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"}},\"required\":[\"L\",\"a\",\"b\"]},\"variantId\":{\"type\":\"string\"}}},\"resolution\":{\"type\":\"string\",\"enum\":[\"resolved\",\"ambiguous\"]},\"seed\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"brandSlug\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"hex\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"brandSlug\",\"color\",\"imageUrl\",\"product\",\"productId\",\"variantId\",\"variantName\"]},{\"type\":\"null\"}]}},\"required\":[\"candidates\",\"color\",\"input\",\"resolution\",\"seed\"]},\"unresolved\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"matches\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"brandId\":{\"type\":\"string\"},\"code\":{\"type\":[\"string\",\"null\"]},\"distance\":{\"description\":\"CIEDE2000 difference to the assigned swatch; 0 is identical, null without a palette.\",\"type\":[\"number\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"hex\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"productId\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"brandId\",\"code\",\"distance\",\"imageUrl\",\"product\",\"productId\",\"variantId\",\"variantName\"]}},\"mode\":{\"type\":\"string\",\"const\":\"rerank\"},\"resolvedColors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"catalogueVariant\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"hex\":{\"ty",
62
62
  "pe\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"color\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},{\"type\":\"null\"}]},\"hex\":{\"type\":\"string\"},\"index\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"enum\":[\"point\",\"region\"],\"description\":\"region: a named meaning's own OKLCh bounds, kept — never collapsed to one hex.\"},\"share\":{\"description\":\"Image-extracted or stored target-variant swatch share; else null.\",\"type\":[\"number\",\"null\"]}},\"required\":[\"catalogueVariant\",\"hex\",\"index\",\"kind\",\"share\"]}}},\"required\":[\"reference\",\"unresolved\",\"matches\",\"mode\",\"resolvedColors\"]}]},\"FindVariantsByVectorResponse\":{\"type\":\"object\",\"properties\":{\"excludedBySearchCatalogueSubset\":{\"description\":\"Filtered variant ids outside the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"category\":{\"description\":\"The first original source category, or null when unknown.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"description\":\"All original source categories in source order.\"},\"productType\":{\"description\":\"The accepted primary specification type, or null for a color sample or unresolved subject.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"sampleSubject\":{\"type\":\"string\",\"enum\":[\"material\",\"paint_color_sample\",\"unknown\",\"conflict\"]},\"colorOptionValueId\":{\"type\":[\"string\",\"null\"]},\"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.\"},\"code\":{\"description\":\"The brand's item code.\",\"type\":[\"string\",\"null\"]},\"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\"}]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The brand. `id` is the slug get_brand takes.\"},\"name\":{\"type\":\"string\",\"description\":\"The variant's own name.\"},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"url\":{\"description\":\"The brand's page for it, or null when none is known.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"materialBankId\":{\"type\":[\"string\",\"null\"]},\"notApplicable\":{\"type\":\"object\",\"properties\":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"description\":\"Requested blocks or attributes this product type does not carry.\"},\"preference\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"array\",\"items\":{\"type\":\"number\"}},\"score\":{\"type\":\"number\"}},\"required\":[\"matched\",\"score\"]},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}},\"variantCount\":{\"description\":\"Eligible variants of this product. Absent: none counted.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"similarity\":{\"type\":\"number\",\"description\":\"Voyage cosine to the query. Ranks only; not a probability.\"}},\"required\":[\"category\",\"categories\",\"productType\",\"sampleSubject\",\"colorOptionValueId\",\"hasDeclaredColor\",\"code\",\"brand\",\"name\",\"product\",\"variantId\",\"materialBankId\",\"similarity\"]}},\"mode\":{\"type\":\"string\",\"enum\":[\"text\",\"image\",\"text_and_i",
63
- "mage\"]},\"namedPaint\":{\"description\":\"The paint query.text names exactly, by a brand's paint name or code, when the catalogue holds it; the items are what looks like the words. Absent otherwise.\",\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"hex\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"color\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},\"reference\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"url\",\"assetId\",\"variantId\",\"sourceId\"]}},\"required\":[\"id\",\"kind\"]},{\"type\":\"null\"}]},\"scan\":{\"type\":\"object\",\"properties\":{\"exhausted\":{\"type\":\"boolean\",\"description\":\"True when no further candidates match; false means more may exist.\"},\"read\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"rejected\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"route\":{\"type\":\"string\",\"enum\":[\"lane\",\"metadata\",\"allowlist\"]}},\"required\":[\"exhausted\",\"read\",\"rejected\",\"route\"]},\"timings\":{\"type\":\"object\",\"properties\":{\"embedMs\":{\"type\":\"number\"},\"filterMs\":{\"type\":\"number\"},\"referenceMs\":{\"type\":\"number\"},\"totalMs\":{\"type\":\"number\"},\"vectorMs\":{\"type\":\"number\"},\"verifyMs\":{\"type\":\"number\"}},\"required\":[\"embedMs\",\"filterMs\",\"referenceMs\",\"totalMs\",\"vectorMs\",\"verifyMs\"]},\"unresolvedVariantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unstated\":{\"description\":\"Filtered attributes no variant in scope states at all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"items\",\"mode\",\"reference\",\"scan\",\"timings\"]},\"GetCategoryResponse\":{\"type\":\"object\",\"properties\":{\"aliases\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ancestors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]}},\"children\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]}},\"description\":{\"type\":[\"string\",\"null\"]},\"formerNames\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"const\":\"category\"},\"name\":{\"type\":\"string\"},\"path\":{\"type\":\"string\"},\"depth\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"aliases\",\"ancestors\",\"children\",\"description\",\"formerNames\",\"id\",\"kind\",\"name\",\"path\",\"depth\"]},\"GetVariantResponse\":{\"type\":\"object\",\"properties\":{\"category\":{\"description\":\"The first original source category, or null when unknown.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"description\":\"All original source categories in source order.\"},\"productType\":{\"description\":\"The accepted primary specification type, or null for a color sample or unresolved subject.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"sampleSubject\":{\"type\":\"string\",\"enum\":[\"material\",\"paint_color_sample\",\"unknown\",\"conflict\"]},\"colorOptionValueId\":{\"type\":[\"string\",\"null\"]},\"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.\"},\"code\":{\"description\":\"The brand's item code.\",\"type\":[\"string\",\"null\"]},\"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\"}]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"",
64
- "string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The brand. `id` is the slug get_brand takes.\"},\"name\":{\"type\":\"string\",\"description\":\"The variant's own name.\"},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"url\":{\"description\":\"The brand's page for it, or null when none is known.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"eligible\":{\"type\":\"boolean\",\"description\":\"Whether lists may include this variant. Reads by id include ineligible variants.\"},\"channels\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"palette\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"share\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"dominant\":{\"type\":\"boolean\"},\"method\":{\"type\":\"string\",\"enum\":[\"stated\",\"isolated\",\"crop\"]}},\"required\":[\"hex\",\"share\",\"dominant\",\"method\"]},\"description\":\"The stored material palette, including how each band was obtained.\"},\"attributes\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"properties\":{\"value\":{},\"valueSource\":{\"anyOf\":[{\"type\":\"string\",\"enum\":[\"material_bank\",\"brand\",\"measured\",\"samplize\"]},{\"type\":\"null\"}]},\"wording\":{\"type\":[\"string\",\"null\"]},\"level\":{\"type\":\"string\",\"enum\":[\"variant\",\"product\",\"brand\"]}},\"required\":[\"value\",\"valueSource\",\"wording\",\"level\"]},\"description\":\"Selected settled attributes with their Value Source and exact source wording.\"},\"materialBankId\":{\"description\":\"The variant's Material Bank SKU. Absent: none recorded.\",\"type\":\"string\"},\"notApplicable\":{\"type\":\"object\",\"properties\":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"description\":\"Requested blocks or attributes this product type does not carry.\"},\"specifications\":{\"allOf\":[{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}},{\"type\":\"object\",\"properties\":{\"color\":{\"type\":\"object\",\"properties\":{\"color_palette\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"share\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"dominant\":{\"type\":\"boolean\"}},\"required\":[\"hex\",\"share\",\"dominant\"]},\"description\":\"Stored image swatches, largest share first. Paints use their declared color as one band with share 1, even when image swatches exist. Hexes use uppercase #RRGGBB. Absent means unknown.\"},\"light_reflectance_value\":{\"$ref\":\"#/$defs/__schema0\"}},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}}}]}},\"required\":[\"category\",\"categories\",\"productType\",\"sampleSubject\",\"colorOptionValueId\",\"hasDeclaredColor\",\"code\",\"image\",\"brand\",\"name\",\"product\",\"url\",\"variantId\",\"eligible\",\"channels\",\"palette\",\"attributes\"]},\"ListAttributesResponse\":{\"type\":\"object\",\"properties\":{\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"blockIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"description\":{\"type\":\"string\"},\"dictionaryId\":{\"type\":[\"string\",\"null\"]},\"filterOps\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\",\"all\",\"exists\",\"missing\",\"eq\",\"gt\",\"gte\",\"lt\",\"lte\"]},\"description\":\"list_variants ops; empty when it cannot filter on it.\"},\"filterable\":{\"type\":\"boolean\"},\"id\":{\"type\":\"string\"},\"match\":{\"description\":\"Present only when the page answers a query.\",\"type\":\"object\",\"properties\":{\"distance\":{\"description\":\"Fuse distance, 0 best.\",\"type\":\"number\"},\"matchedText\":{\"type\":[\"string\",\"null\"]},\"method\":{\"type\":\"string\",\"enum\":[\"exact\",\"alias\",\"fuzzy\",\"vector\"]},\"similarity\":{\"description\":\"Cosine similarity, 1 best.\",\"type\":\"number\"},\"valueId\":{\"description\":\"The dictionary term matchedText named exactly or by alias; present only for a value-tier match.\",\"type\":\"string\"}},\"required\":[\"matchedText\",\"method\"]},\"name\":{\"type\":\"string\"},\"statedBy\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991,\"description\":\"Live variants stating this, in the categories or all; 0 means none.\"},\"unitId\":{\"type\":[\"string\",\"null\"]},\"valueKind\":{\"type\":\"stri",
65
- "ng\"}},\"required\":[\"blockIds\",\"description\",\"dictionaryId\",\"filterOps\",\"filterable\",\"id\",\"name\",\"statedBy\",\"unitId\",\"valueKind\"]}},\"liveVariants\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991,\"description\":\"Live variants in the categories, or all without categoryIds.\"},\"outsideScope\":{\"description\":\"Page one only: matches outside blockIds ranking above the best item.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"blockIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"blockIds\",\"id\",\"name\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"}},\"required\":[\"endCursor\",\"hasNextPage\"]}},\"required\":[\"items\",\"liveVariants\",\"pageInfo\"]},\"ListBrandsPage\":{\"type\":\"object\",\"properties\":{\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brandId\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"website\":{\"description\":\"The brand's homepage, when on record.\",\"type\":[\"string\",\"null\"]}},\"required\":[\"brandId\",\"name\",\"website\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"}},\"required\":[\"endCursor\",\"hasNextPage\"]}},\"required\":[\"items\",\"pageInfo\"]},\"ListCategoriesResponse\":{\"type\":\"object\",\"properties\":{\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hasChildren\":{\"type\":\"boolean\"},\"id\":{\"type\":\"string\"},\"match\":{\"description\":\"Present only when the page answers a query.\",\"type\":\"object\",\"properties\":{\"matchedText\":{\"type\":[\"string\",\"null\"]},\"method\":{\"type\":\"string\",\"enum\":[\"exact\",\"alias\",\"fuzzy\"]}},\"required\":[\"matchedText\",\"method\"]},\"name\":{\"type\":\"string\"},\"parentId\":{\"type\":[\"string\",\"null\"]},\"path\":{\"type\":\"string\"},\"depth\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"hasChildren\",\"id\",\"name\",\"parentId\",\"path\",\"depth\"]}},\"notice\":{\"description\":\"Present only when the query is refused as a category.\",\"type\":\"string\"},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"nextCursor\":{\"type\":[\"string\",\"null\"]},\"returnedCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"totalMatches\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"nextCursor\",\"returnedCount\",\"totalMatches\"]}},\"required\":[\"items\",\"pageInfo\"]},\"ListEnumValuesResponse\":{\"type\":\"object\",\"properties\":{\"dictionaryId\":{\"type\":[\"string\",\"null\"]},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"definition\":{\"type\":[\"string\",\"null\"]},\"dictionaryId\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"match\":{\"type\":\"object\",\"properties\":{\"distance\":{\"type\":\"number\"},\"matchedText\":{\"type\":[\"string\",\"null\"]},\"method\":{\"type\":\"string\",\"enum\":[\"exact\",\"alias\",\"fuzzy\",\"vector\"]},\"resolvedFrom\":{\"type\":\"string\"},\"similarity\":{\"type\":\"number\"}},\"required\":[\"matchedText\",\"method\"]},\"valueId\":{\"type\":\"string\"}},\"required\":[\"attributeIds\",\"definition\",\"dictionaryId\",\"label\",\"valueId\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"}},\"required\":[\"endCursor\",\"hasNextPage\"]}},\"required\":[\"dictionaryId\",\"items\",\"pageInfo\"]},\"ListVariantFacetsResponse\":{\"type\":\"object\",\"properties\":{\"matchedVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"facets\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"missingVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"categorical\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"value\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"variantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991}},\"required\":[\"value\",\"label\",\"variantCount\"]}},\"hasMoreValues\":{\"type\":\"boolean\"}},\"required\":[\"attributeId\",\"name\",\"missingVariantCount\",\"kind\",\"values\",\"hasMoreValues\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{",
66
- "\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"missingVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"boolean\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"value\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"variantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991}},\"required\":[\"value\",\"label\",\"variantCount\"]}},\"hasMoreValues\":{\"type\":\"boolean\"}},\"required\":[\"attributeId\",\"name\",\"missingVariantCount\",\"kind\",\"values\",\"hasMoreValues\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"missingVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"numeric\"},\"min\":{\"type\":[\"number\",\"null\"]},\"max\":{\"type\":[\"number\",\"null\"]},\"unitId\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"attributeId\",\"name\",\"missingVariantCount\",\"kind\",\"min\",\"max\",\"unitId\"]}]}}},\"required\":[\"matchedVariantCount\",\"facets\"]},\"ListVariantsResponse\":{\"type\":\"object\",\"properties\":{\"excludedBySearchCatalogueSubset\":{\"description\":\"Filtered variant ids outside the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"category\":{\"description\":\"The first original source category, or null when unknown.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"description\":\"All original source categories in source order.\"},\"productType\":{\"description\":\"The accepted primary specification type, or null for a color sample or unresolved subject.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"sampleSubject\":{\"type\":\"string\",\"enum\":[\"material\",\"paint_color_sample\",\"unknown\",\"conflict\"]},\"colorOptionValueId\":{\"type\":[\"string\",\"null\"]},\"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.\"},\"code\":{\"description\":\"The brand's item code.\",\"type\":[\"string\",\"null\"]},\"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\"}]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The brand. `id` is the slug get_brand takes.\"},\"name\":{\"type\":\"string\",\"description\":\"The variant's own name.\"},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"url\":{\"description\":\"The brand's page for it, or null when none is known.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"materialBankId\":{\"description\":\"The variant's Material Bank SKU. Absent: none recorded.\",\"type\":\"string\"},\"notApplicable\":{\"type\":\"object\",\"properties\":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"description\":\"Requested blocks or attributes this product type does not carry.\"},\"preference\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"array\",\"items\":{\"type\":\"number\"}},\"score\":{\"type\":\"number\"}},\"required\":[\"matched\",\"score\"]},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}},\"variantCount\":{\"description\":\"Eligible variants of this product. Absent: none counted.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991",
67
- "}},\"required\":[\"category\",\"categories\",\"productType\",\"sampleSubject\",\"colorOptionValueId\",\"hasDeclaredColor\",\"code\",\"brand\",\"name\",\"product\",\"variantId\"]}},\"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 catalogue this list can't show, e.g. retired.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unresolvedVariantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unstated\":{\"description\":\"Filtered attributes no variant in scope states at all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"words\":{\"description\":\"Each word asked for, and whether any variant in scope names it.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"boolean\"},\"word\":{\"type\":\"string\"}},\"required\":[\"matched\",\"word\"]}}},\"required\":[\"items\",\"pageInfo\"]},\"MaterialBlockProjection\":{\"type\":\"object\",\"properties\":{\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"canonicalBlockId\":{\"type\":\"string\"},\"canonicalBlockName\":{\"type\":\"string\"},\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"confidence\":{\"type\":\"number\"},\"displayValue\":{\"description\":\"The value dictionary's label for a single-term `value`. Absent when no label is on record; `value` stays the canonical token.\",\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"valueSource\":{\"type\":\"string\"},\"status\":{\"type\":\"string\",\"enum\":[\"complete\",\"partial\",\"missing\",\"not_applicable\"]},\"unit\":{\"type\":\"string\"},\"value\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"},{\"type\":\"array\",\"items\":{}},{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]}},\"required\":[\"attributeId\",\"label\",\"status\",\"value\"]}},\"missingAttributeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"status\":{\"type\":\"string\",\"enum\":[\"complete\",\"partial\",\"missing\",\"not_applicable\"]}},\"required\":[\"canonicalBlockId\",\"canonicalBlockName\",\"fields\",\"missingAttributeIds\",\"status\"]}},\"variantId\":{\"type\":\"string\"}},\"required\":[\"blocks\",\"variantId\"]},\"MaterialTile\":{\"type\":\"object\",\"properties\":{\"availability\":{\"type\":\"string\",\"enum\":[\"available\",\"discontinued\",\"superseded\",\"unknown\"],\"description\":\"Orderability: 'available' (listed in the catalog of record), 'discontinued' (withdrawn from that catalog — not a reviewed manufacturer-discontinuation claim), 'superseded' (a reviewed successor relationship exists and the material is no longer listed), 'unknown' (never checked).\"},\"brand\":{\"type\":\"string\"},\"category\":{\"description\":\"The first original source category name, or null when unknown.\",\"type\":[\"string\",\"null\"]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"All accepted source category ids in original source order; empty when unknown.\"},\"color\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":[\"number\",\"null\"]},\"dominantHex\":{\"type\":[\"string\",\"null\"]},\"hsl\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"h\":{\"type\":\"number\",\"minimum\":0,\"exclusiveMaximum\":360},\"l\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"s\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1}},\"required\":[\"h\",\"l\",\"s\"]},{\"type\":\"null\"}]},\"oklab\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"l\":{\"type\":\"number\"}},\"required\":[\"a\",\"b\",\"l\"]},{\"type\":\"null\"}]},\"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 wh",
68
- "atever 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\",\"samplize\"]},\"vibrancy\":{\"type\":[\"number\",\"null\"]}},\"required\":[\"chroma\",\"dominantHex\",\"hsl\",\"oklab\",\"vibrancy\"]},\"colorName\":{\"description\":\"The accepted Color Name attribute — the colorway's true name where variants.name collapsed to the product's; absent means the attribute is absent (MG-940).\",\"type\":\"string\"},\"imageSource\":{\"anyOf\":[{\"type\":\"string\",\"enum\":[\"r2\",\"origin\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"sampleable\":{\"description\":\"Whether a physical sample is explicitly known to be orderable. Absent means unknown, never unavailable.\",\"type\":\"boolean\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"availability\",\"brand\",\"category\",\"categories\",\"color\",\"imageSource\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},\"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\":{\"variantId\":{\"type\":\"string\"},\"sampleSubject\":{\"type\":\"string\",\"enum\":[\"material\",\"paint_color_sample\",\"unknown\",\"conflict\"]},\"productType\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"name\":{\"type\":\"string\"},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"code\":{\"type\":[\"string\",\"null\"]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"lrv\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":100},{\"type\":\"null\"}]},\"image\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"url\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"}},\"required\":[\"url\",\"alt\"]},{\"type\":\"null\"}]},\"deltaE\":{\"type\":\"number\",\"minimum\":0},\"closeness\":{\"type\":\"string\",\"enum\":[\"very-near\",\"very-close\",\"close\",\"related\"]}},\"required\":[\"variantId\",\"sampleSubject\",\"productType\",\"name\",\"brand\",\"code\",\"hex\",\"lrv\",\"image\",\"deltaE\",\"closeness\"]}}},\"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\":{\"momentum\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"percentChange\":{\"type\":[\"number\",\"null\"]},\"priorSpecCount\":{\"type\":\"number\"},\"state\":{\"type\":\"string\",\"enum\":[\"rising\",\"fading\",\"stable\",\"emerging\",\"insufficient_volume\"]},\"trailingSpecCount\":{\"type\":\"number\"}},\"required\":[\"percentChange\",\"priorSpecCount\",\"state\",\"trailingSpecCount\"]},{\"type\":\"null\"}]},\"projectCount\":{\"type\":\"number\"},\"specCount\":{\"type\":\"number\"}},\"required\":[\"momentum\",\"projectCount\",\"specCount\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"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\",\"lig",
69
- "htness\",\"lightnessMeasurable\"]},\"source\":{\"type\":\"string\",\"const\":\"cospec\"}},\"required\":[\"brand\",\"brandSlug\",\"category\",\"color\",\"customerCount\",\"demand\",\"imageUrl\",\"lift\",\"liftLabel\",\"product\",\"productId\",\"projectCount\",\"topProjectTypes\",\"variantId\",\"variantName\",\"source\"]},{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"inScope\":{\"type\":[\"boolean\",\"null\"]},\"brandSlug\":{\"type\":\"string\"},\"category\":{\"type\":[\"string\",\"null\"]},\"color\":{\"type\":[\"string\",\"null\"]},\"customerCount\":{\"type\":\"number\"},\"demand\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"momentum\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"percentChange\":{\"type\":[\"number\",\"null\"]},\"priorSpecCount\":{\"type\":\"number\"},\"state\":{\"type\":\"string\",\"enum\":[\"rising\",\"fading\",\"stable\",\"emerging\",\"insufficient_volume\"]},\"trailingSpecCount\":{\"type\":\"number\"}},\"required\":[\"percentChange\",\"priorSpecCount\",\"state\",\"trailingSpecCount\"]},{\"type\":\"null\"}]},\"projectCount\":{\"type\":\"number\"},\"specCount\":{\"type\":\"number\"}},\"required\":[\"momentum\",\"projectCount\",\"specCount\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"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\"},\"category\":{\"description\":\"The first original source category name, or null when unknown.\",\"type\":[\"string\",\"null\"]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"All accepted source category ids in original source order; empty when unknown.\"},\"color\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":[\"number\",\"null\"]},\"dominantHex\":{\"type\":[\"string\",\"null\"]},\"hsl\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"h\":{\"type\":\"number\",\"minimum\":0,\"exclusiveMaximum\":360},\"l\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"s\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1}},\"required\":[\"h\",\"l\",\"s\"]},{\"type\":\"null\"}]},\"oklab\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"l\":{\"type\":\"number\"}},\"required\":[\"a\",\"b\",\"l\"]},{\"type\":\"null\"}]},\"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\",\"samplize\"]},\"vibrancy\":{\"type\":[\"number\",\"null\"]}},\"required\"",
70
- ":[\"chroma\",\"dominantHex\",\"hsl\",\"oklab\",\"vibrancy\"]},\"colorName\":{\"description\":\"The accepted Color Name attribute — the colorway's true name where variants.name collapsed to the product's; absent means the attribute is absent (MG-940).\",\"type\":\"string\"},\"imageSource\":{\"anyOf\":[{\"type\":\"string\",\"enum\":[\"r2\",\"origin\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"sampleable\":{\"description\":\"Whether a physical sample is explicitly known to be orderable. Absent means unknown, never unavailable.\",\"type\":\"boolean\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]},\"inScope\":{\"type\":[\"boolean\",\"null\"]},\"ranking\":{\"type\":\"object\",\"properties\":{\"anchorColorSimilarity\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"anchorColorSimilarityMeasurable\":{\"type\":\"boolean\"},\"basis\":{\"type\":\"string\",\"const\":\"dominant_color_oklab\"},\"lightness\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"lightnessMeasurable\":{\"type\":\"boolean\"}},\"required\":[\"anchorColorSimilarity\",\"anchorColorSimilarityMeasurable\",\"basis\",\"lightness\",\"lightnessMeasurable\"]},\"score\":{\"type\":\"number\"},\"source\":{\"type\":\"string\",\"const\":\"color\"}},\"required\":[\"availability\",\"brand\",\"category\",\"categories\",\"color\",\"imageSource\",\"imageUrl\",\"product\",\"variantId\",\"variantName\",\"score\",\"source\"]}]},\"PairingOrdering\":{\"type\":\"object\",\"properties\":{\"anchorColorBasis\":{\"type\":\"string\",\"const\":\"one_minus_oklab_euclidean_distance\"},\"applied\":{\"type\":\"string\",\"enum\":[\"relevance\",\"lightness_asc\",\"lightness_desc\"]},\"colorSpace\":{\"type\":\"string\",\"const\":\"oklab\"},\"direction\":{\"type\":\"string\",\"enum\":[\"ascending\",\"descending\"]},\"lightnessRange\":{\"type\":\"object\",\"properties\":{\"max\":{\"type\":\"number\",\"const\":1},\"min\":{\"type\":\"number\",\"const\":0}},\"required\":[\"max\",\"min\"]},\"missingValues\":{\"type\":\"string\",\"const\":\"last\"},\"requested\":{\"type\":\"string\",\"enum\":[\"relevance\",\"lightness_asc\",\"lightness_desc\"]},\"tieBreak\":{\"type\":\"string\",\"const\":\"variantId_asc\"}},\"required\":[\"anchorColorBasis\",\"applied\",\"colorSpace\",\"direction\",\"lightnessRange\",\"missingValues\",\"requested\",\"tieBreak\"]},\"ProductDocumentPage\":{\"type\":\"object\",\"properties\":{\"coverage\":{\"type\":\"object\",\"properties\":{\"productUnion\":{\"type\":\"object\",\"properties\":{\"declaredCount\":{\"anyOf\":[{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},{\"type\":\"null\"}]},\"exact\":{\"type\":\"boolean\"},\"readableCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"state\":{\"type\":\"string\",\"enum\":[\"available\",\"none_declared\",\"not_ingested\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]}},\"required\":[\"declaredCount\",\"exact\",\"readableCount\",\"state\"]},\"requestedVariant\":{\"type\":\"object\",\"properties\":{\"declaredCount\":{\"anyOf\":[{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},{\"type\":\"null\"}]},\"exact\":{\"type\":\"boolean\"},\"readableCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"state\":{\"type\":\"string\",\"enum\":[\"available\",\"none_declared\",\"not_ingested\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]}},\"required\":[\"declaredCount\",\"exact\",\"readableCount\",\"state\"]},\"sources\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"declaredCount\":{\"anyOf\":[{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},{\"type\":\"null\"}]},\"exact\":{\"type\":\"boolean\"},\"readableCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"scope\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"product\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"id\",\"revision\"]},\"state\":{\"type\":\"string\",\"enum\":[\"available\",\"none_declared\",\"not_ingested\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]}},\"required\":[\"declaredCount\",\"exact\",\"readableCount\",\"scope\",",
71
- "\"source\",\"state\"]}}},\"required\":[\"productUnion\",\"requestedVariant\",\"sources\"]},\"documents\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"appliesToRequestedVariant\":{\"type\":\"boolean\"},\"contentType\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"declarations\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"readable\":{\"type\":\"boolean\"},\"scope\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"product\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"id\",\"revision\"]},\"status\":{\"type\":\"string\",\"enum\":[\"downloaded\",\"linked_not_downloaded\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]}},\"required\":[\"readable\",\"scope\",\"source\",\"status\"]}},\"declaredScopes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"product\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]}},\"documentTypes\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"technical_data_sheet\",\"product_sheet\",\"technical_bulletin\",\"sustainability_report\",\"specification\",\"installation_guide\",\"care_maintenance_guide\",\"operation_manual\",\"warranty\",\"parts_list\",\"technical_drawing\",\"test_report\",\"certificate\",\"declaration_of_performance\",\"environmental_product_declaration\",\"health_product_declaration\",\"ingredient_disclosure\",\"safety_data_sheet\",\"brochure\",\"catalogue\",\"color_finish_chart\",\"other\",\"unknown\"]}},\"fileExtension\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"id\":{\"type\":\"string\",\"minLength\":1},\"originalName\":{\"type\":\"string\",\"minLength\":1},\"scope\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"inherited\":{\"type\":\"boolean\"},\"kind\":{\"type\":\"string\",\"enum\":[\"product\",\"variant\"]}},\"required\":[\"id\",\"inherited\",\"kind\"]},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"id\",\"revision\"]},\"status\":{\"type\":\"string\",\"enum\":[\"downloaded\",\"linked_not_downloaded\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]},\"url\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"variantAttribution\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}}},\"required\":[\"appliesToRequestedVariant\",\"contentType\",\"declarations\",\"declaredScopes\",\"fileExtension\",\"id\",\"originalName\",\"scope\",\"source\",\"status\",\"url\",\"variantAttribution\"]}},\"nextCursor\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"totalDocuments\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"coverage\",\"documents\",\"nextCursor\",\"totalDocuments\",\"variantId\"]},\"PublicRun\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"workflowId\":{\"type\":\"string\",\"description\":\"The workflow this run belongs to, the same id its path names.\"},\"clientReference\":{\"type\":[\"string\",\"null\"]},\"status\":{\"type\":\"string\",\"enum\":[\"queued\",\"claimed\",\"running\",\"suspended\",\"succeeded\",\"failed\",\"canceled\"]},\"redactedInputJson\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},\"redactedOutputJson\":{\"anyOf\":[{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]},\"usageJson\":{\"anyOf\":[{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]},\"artifactRefs\":{\"anyOf\":[{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\"},\"ref\":{\"type\":\"string\"}},\"required\":[\"kind\",\"ref\"]}},{\"type\":\"null\"}]},\"failureJson\":{\"anyOf\":[{\"$ref\":\"#/$def",
72
- "s/PublicRunFailure\"},{\"type\":\"null\"}]},\"suspensionPayload\":{\"description\":\"The current typed question payload while `status` is `suspended`; null otherwise. The same exact payload is retained on the `suspended` ledger event.\",\"anyOf\":[{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]},\"suspensionStepId\":{\"description\":\"The step awaiting input while `status` is `suspended` — pass it back as `stepId` when resuming, so a stale client cannot resume a step the run has already moved past. Read `suspensionPayload` for the current typed question. The same exact payload is retained on the `suspended` ledger event for event-stream consumers.\",\"type\":[\"string\",\"null\"]},\"eventCursor\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"attempts\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"startedAt\":{\"anyOf\":[{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},{\"type\":\"null\"}]},\"cancellationRequestedAt\":{\"anyOf\":[{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},{\"type\":\"null\"}]},\"completedAt\":{\"anyOf\":[{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},{\"type\":\"null\"}]},\"createdAt\":{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},\"updatedAt\":{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"}},\"required\":[\"id\",\"workflowId\",\"clientReference\",\"status\",\"redactedInputJson\",\"redactedOutputJson\",\"usageJson\",\"artifactRefs\",\"failureJson\",\"suspensionPayload\",\"suspensionStepId\",\"eventCursor\",\"attempts\",\"startedAt\",\"cancellationRequestedAt\",\"completedAt\",\"createdAt\",\"updatedAt\"]},\"PublicRunFailure\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"},\"retryable\":{\"type\":\"boolean\"},\"detail\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}}},\"required\":[\"code\",\"message\",\"retryable\"]},\"PublicRunResponse\":{\"type\":\"object\",\"properties\":{\"run\":{\"$ref\":\"#/$defs/PublicRun\"}},\"required\":[\"run\"]},\"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",
73
- "\":{\"band\":{\"type\":\"string\",\"enum\":[\"inside\",\"near\",\"far\"]},\"family\":{\"type\":\"string\",\"enum\":[\"white\",\"cream\",\"gray\",\"black\",\"beige\",\"taupe\",\"brown\",\"red\",\"orange\",\"yellow\",\"green\",\"teal\",\"blue\",\"purple\",\"pink\"]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"band\",\"family\",\"hex\",\"id\",\"name\",\"range\"]}},\"principal\":{\"type\":\"object\",\"properties\":{\"band\":{\"type\":\"string\",\"enum\":[\"inside\",\"near\",\"far\"]},\"family\":{\"type\":\"string\",\"enum\":[\"white\",\"cream\",\"gray\",\"black\",\"beige\",\"taupe\",\"brown\",\"red\",\"orange\",\"yellow\",\"green\",\"teal\",\"blue\",\"purple\",\"pink\"]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"band\",\"family\",\"hex\",\"id\",\"name\",\"range\"]},\"source\":{\"type\":\"string\",\"enum\":[\"name\",\"family\",\"composed\",\"hex\",\"reference\",\"semantic\"]}},\"required\":[\"confidence\",\"input\",\"kind\",\"others\",\"principal\",\"source\"]},{\"type\":\"object\",\"properties\":{\"input\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"const\":\"unresolved\"},\"reason\":{\"type\":\"string\",\"enum\":[\"unknown-term\",\"ambiguous-modifier\",\"contradictory-modifiers\",\"unsupported-base\",\"empty-range\",\"unrepresentable-color\"]},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"input\",\"kind\",\"reason\",\"terms\"]}]},\"match\":{\"description\":\"The resolved color, or null when nothing resolved.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"description\":\"The resolved `#rrggbb` hex.\"},\"name\":{\"type\":\"string\",\"description\":\"The resolved display name (echoes the query when unnamed).\"},\"code\":{\"description\":\"The code the library gives the color (e.g. \\\"OC-17\\\", \\\"7016\\\"). Present only on a library hit.\",\"type\":\"string\"},\"libraryId\":{\"description\":\"The ColorScope library the color resolved in (e.g. \\\"benjamin-moore\\\", \\\"ral\\\"). A library is not necessarily a brand: read `libraryType`. Absent for a hex, and for a color word or semantic match that resolved without a library.\",\"type\":\"string\"},\"libraryType\":{\"description\":\"The type ColorScope declares for `libraryId`: `brand` is a paint brand's paint, `reference` a color standard (RAL, Pantone, HKS), `core` ColorScope's descriptive vocabulary. Present exactly when `libraryId` is. Only a `brand` hit is looked up in the catalogue.\",\"type\":\"string\",\"enum\":[\"brand\",\"consumer\",\"core\",\"reference\"]},\"matchTarget\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"hasSelection\":{\"type\":\"boolean\",\"const\":false},\"type\":{\"type\":\"string\",\"const\":\"none\"}},\"required\":[\"hasSelection\",\"type\"]},{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"hasSelection\":{\"type\":\"boolean\",\"const\":true},\"label\":{\"type\":\"string\"},\"previewColors\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"type\":{\"type\":\"string\",\"const\":\"oklab\"}},\"required\":[\"L\",\"a\",\"b\",\"hasSelection\",\"label\",",
74
- "\"previewColors\",\"type\"]},{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"hasSelection\":{\"type\":\"boolean\",\"const\":true},\"label\":{\"type\":\"string\"},\"previewColors\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"range\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"representative\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"}},\"required\":[\"hex\"]},\"type\":{\"type\":\"string\",\"const\":\"range\"}},\"required\":[\"L\",\"a\",\"b\",\"hasSelection\",\"label\",\"previewColors\",\"range\",\"representative\",\"type\"]}]},\"variant\":{\"description\":\"Whether the named paint is a variant in the catalogue. Only a color that resolved in a `brand` library is looked up. The lookup is exact (brand paint names and codes), global, and independent of `searchCatalogueSubset`, which only sets each variant's `inScope`.\",\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"slug\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"slug\"],\"description\":\"The variant's brand exactly as stored, suspect or not.\"},\"inScope\":{\"description\":\"Whether this variant is in the requested `searchCatalogueSubset`. Null when no `searchCatalogueSubset` was passed. The lookup itself is never narrowed by scope.\",\"type\":[\"boolean\",\"null\"]},\"parentageSuspect\":{\"type\":\"boolean\",\"description\":\"True when the stored brand is Samplize, a sampling channel, and the listing is not Samplize's own merchandise: the color is another brand's, so do not report `brand` as who made it. The variant is still returned and still the right one for the name.\"},\"variantId\":{\"type\":\"string\",\"description\":\"The variant id. Opaque; never parse it.\"},\"status\":{\"type\":\"string\",\"const\":\"matched\",\"description\":\"The name is one brand's paint and one variant carries it.\"}},\"required\":[\"brand\",\"inScope\",\"parentageSuspect\",\"variantId\",\"status\"]},{\"type\":\"object\",\"properties\":{\"candidates\":{\"minItems\":2,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"slug\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"slug\"],\"description\":\"The variant's brand exactly as stored, suspect or not.\"},\"inScope\":{\"description\":\"Whether this variant is in the requested `searchCatalogueSubset`. Null when no `searchCatalogueSubset` was passed. The lookup itself is never narrowed by scope.\",\"type\":[\"boolean\",\"null\"]},\"parentageSuspect\":{\"type\":\"boolean\",\"description\":\"True when the stored brand is Samplize, a sampling channel, and the listing is not Samplize's own merchandise: the color is another brand's, so do not report `brand` as who made it. The variant is still returned and still the right one for the name.\"},\"variantId\":{\"type\":\"string\",\"description\":\"The variant id. Opaque; never parse it.\"}},\"required\":[\"brand\",\"inScope\",\"parentageSuspect\",\"variantId\"]},\"description\":\"Every variant that carries the paint, catalogue order.\"},\"status\":{\"type\":\"string\",\"const\":\"ambiguous\",\"description\":\"The name is one brand's paint and more than one variant carries it, typically once per product line. Never picked between.\"}},\"required\":[\"candidates\",\"status\"]},{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"const\":\"not-in-catalogue\",\"description\":\"The name is one brand's paint and no variant in the catalogue carries it. A looked-up absence, distinct from `not-looked-up`.\"}},\"required\":[\"status\"]},{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"enum\":[\"",
75
- "reference-color\",\"descriptive-color\",\"no-paint-identity\",\"generic-color\",\"several-paints\"],\"description\":\"`reference-color`: the name resolved to a color standard (RAL, Pantone, HKS), which no brand's variant carries. `descriptive-color`: the name resolved to a descriptive color (\\\"sage\\\", \\\"warm terracotta\\\"), not a paint. `no-paint-identity`: the name is not exactly any brand's paint name or code, or it is a hex. `generic-color`: the name is a color word brands also use as a paint name; qualify it with a brand. `several-paints`: the name is more than one brand's paint; qualify it with a brand.\"},\"status\":{\"type\":\"string\",\"const\":\"not-looked-up\",\"description\":\"The catalogue was not searched; there was no one brand's paint to find.\"}},\"required\":[\"reason\",\"status\"]}]}},\"required\":[\"hex\",\"name\",\"matchTarget\",\"variant\"]},{\"type\":\"null\"}]},\"rangeSamples\":{\"description\":\"The range drawn as a lightness ramp at the resolved color's own hue and chroma, dark to light. Illustrative members of the range, never additional target colors.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"genericResolution\",\"match\"]},\"ResolveVariantResponse\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"outcome\":{\"type\":\"string\",\"const\":\"identified\"},\"subject\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"code\":{\"type\":\"string\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"kind\",\"name\"]}},\"required\":[\"evidence\",\"outcome\",\"subject\"]},{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"outcome\":{\"type\":\"string\",\"const\":\"placed\"},\"subject\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"code\":{\"type\":\"string\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"brand\"},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"kind\",\"name\"]}},\"required\":[\"evidence\",\"outcome\",\"subject\"]},{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"candidates\":{\"minItems\":1,\"maxItems\":20,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"nam",
76
- "e\"]},\"code\":{\"type\":\"string\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"enum\":[\"variant\",\"brand\"]},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"kind\",\"name\"]}},\"outcome\":{\"type\":\"string\",\"const\":\"ambiguous\"},\"truncated\":{\"type\":\"boolean\"}},\"required\":[\"evidence\",\"candidates\",\"outcome\",\"truncated\"]},{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"outcome\":{\"type\":\"string\",\"const\":\"unresolved\"},\"reason\":{\"type\":\"string\",\"enum\":[\"no-stored-url\",\"no-code-match\"]}},\"required\":[\"evidence\",\"outcome\",\"reason\"]}]},\"SamplizeCataloguePage\":{\"type\":\"object\",\"properties\":{\"complete\":{\"type\":\"boolean\"},\"searchCatalogueSubset\":{\"type\":\"string\",\"const\":\"samplizeCatalogue\"},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"slug\":{\"type\":\"string\"}},\"required\":[\"name\",\"slug\"]},\"code\":{\"type\":\"string\"},\"collectionMemberships\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"handle\":{\"type\":\"string\"},\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceCollectionId\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}},\"required\":[\"handle\",\"observedAt\",\"publisher\",\"source\",\"sourceCollectionId\",\"url\"]}},\"colorAnalysis\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},\"demand\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceUrl\":{\"type\":\"string\"},\"field\":{\"type\":\"string\",\"const\":\"recently_ordered_count\"},\"defaultAttributeLevel\":{\"type\":\"string\",\"const\":\"shopify_variant\"},\"recentlyOrderedCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"sourceVariantId\":{\"type\":\"string\"},\"window\":{\"type\":\"null\"}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"defaultAttributeLevel\",\"recentlyOrderedCount\",\"sourceVariantId\",\"window\"]},{\"type\":\"null\"}]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"hexObservations\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"differsFromSelected\":{\"type\":\"boolean\"},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\"},\"source\":{\"type\":\"string\"},\"valueSource\":{\"type\":\"string\"},\"sourceUrl\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"differsFromSelected\",\"hex\",\"observedAt\",\"publisher\",\"source\",\"valueSource\",\"sourceUrl\"]}},\"hexSource\":{\"type\":\"object\",\"properties\":{\"publisher\":{\"type\":\"string\"},\"source\":{\"type\":\"string\",\"const\":\"resolved_variant\"},\"valueSource\":{\"type\":[\"string\",\"null\"]},\"url\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"publisher\",\"source\",\"valueSource\",\"url\"]},\"lrv\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":100},{\"type\":\"null\"}]},\"lrvObservations\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceUrl\":{\"type\":\"string\"},\"field\":{\"type\":\"string\"},\"value\":{\"type\":\"number\",\"minimum\":0,\"maximum\":100}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"value\"]}},\"lrvSource\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceUrl\":{\"type\":\"string\"},\"fi",
77
- "eld\":{\"type\":\"string\"},\"value\":{\"type\":\"number\",\"minimum\":0,\"maximum\":100}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"value\"]},{\"type\":\"null\"}]},\"name\":{\"type\":\"string\"},\"oklab\":{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"}},\"required\":[\"L\",\"a\",\"b\"]},\"productId\":{\"type\":\"string\"},\"publishedHexes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"differsFromSelected\":{\"type\":\"boolean\"},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\"},\"source\":{\"type\":\"string\"},\"valueSource\":{\"type\":\"string\"},\"sourceUrl\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"differsFromSelected\",\"hex\",\"observedAt\",\"publisher\",\"source\",\"valueSource\",\"sourceUrl\"]}},\"sizeVariants\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"demand\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceUrl\":{\"type\":\"string\"},\"field\":{\"type\":\"string\",\"const\":\"recently_ordered_count\"},\"defaultAttributeLevel\":{\"type\":\"string\",\"const\":\"shopify_variant\"},\"recentlyOrderedCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"sourceVariantId\":{\"type\":\"string\"},\"window\":{\"type\":\"null\"}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"defaultAttributeLevel\",\"recentlyOrderedCount\",\"sourceVariantId\",\"window\"]},{\"type\":\"null\"}]},\"inventoryAvailable\":{\"type\":\"boolean\"},\"price\":{\"type\":[\"number\",\"null\"]},\"sku\":{\"type\":[\"string\",\"null\"]},\"sourceVariantId\":{\"type\":\"string\"},\"title\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"demand\",\"inventoryAvailable\",\"price\",\"sku\",\"sourceVariantId\",\"title\"]}},\"sourceProductId\":{\"type\":[\"string\",\"null\"]},\"url\":{\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"}},\"required\":[\"brand\",\"code\",\"collectionMemberships\",\"colorAnalysis\",\"demand\",\"hex\",\"hexObservations\",\"hexSource\",\"lrv\",\"lrvObservations\",\"lrvSource\",\"name\",\"oklab\",\"productId\",\"publishedHexes\",\"sizeVariants\",\"sourceProductId\",\"url\",\"variantId\"]}},\"nextCursor\":{\"type\":[\"string\",\"null\"]},\"schemaVersion\":{\"type\":\"number\",\"const\":2},\"source\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},\"sourceVersion\":{\"type\":\"string\"},\"total\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"unavailableFields\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"complete\",\"searchCatalogueSubset\",\"items\",\"nextCursor\",\"schemaVersion\",\"source\",\"sourceVersion\",\"total\",\"unavailableFields\"]},\"SchemaValueDictionariesResponse\":{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"valueDictionaries\"},\"schemaVersion\":{\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"taxonomy\"},\"system\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"kind\",\"system\"]},{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"colorscope\"},\"system\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"kind\",\"system\"]},{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"materialgraph\"},\"system\":{\"type\":\"string\",\"const\":\"@materialgraph/schema\"}},\"required\":[\"kind\",\"system\"]},{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"external-standard\"},\"system\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"kind\",\"system\"]}]},\"description\":{\"type\":\"string\"},\"id\":{\"type\":\"string\",\"minLength\":1,\"pattern\":\"^[a-z][a-z0-9_]*$\"},\"name\":{\"type\":\"string\"},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\"},\"aliases\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"broaderTermId\":{\"type\":\"string\",\"minLength\":1},\"definition\":{\"type\":\"string\",\"minLength\":1},\"externalMappings\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"mappingType\":{\"type\":\"string\",\"enum\":[\"direct\",\"transform\",\"derived\",\"classification\",\"semantic\"]},\"matchStrength\"",
78
- ":{\"type\":\"string\",\"enum\":[\"exact\",\"close\",\"broad\",\"narrow\",\"related\"]},\"notes\":{\"type\":\"string\"},\"target\":{\"type\":\"string\",\"enum\":[\"schema_org\",\"ifc_pset\",\"bsdd\",\"iso_23387\",\"eclass\",\"gs1_gdm\",\"gdsn\",\"etim\",\"uniclass\"]},\"targetPath\":{\"type\":\"string\"}},\"required\":[\"mappingType\",\"target\",\"targetPath\"]}},\"metadata\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":[\"string\",\"number\",\"boolean\",\"null\"]}},\"lifecycle\":{\"type\":\"object\",\"properties\":{\"deprecatedIn\":{\"type\":\"string\"},\"introducedIn\":{\"type\":\"string\"},\"status\":{\"type\":\"string\",\"enum\":[\"draft\",\"active\",\"deprecated\"]},\"supersededBy\":{\"type\":\"string\"}},\"required\":[\"introducedIn\",\"status\"]},\"semanticId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"lifecycle\",\"semanticId\"]}},\"lifecycle\":{\"type\":\"object\",\"properties\":{\"deprecatedIn\":{\"type\":\"string\"},\"introducedIn\":{\"type\":\"string\"},\"status\":{\"type\":\"string\",\"enum\":[\"draft\",\"active\",\"deprecated\"]},\"supersededBy\":{\"type\":\"string\"}},\"required\":[\"introducedIn\",\"status\"]},\"semanticId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"description\",\"id\",\"name\",\"terms\",\"lifecycle\",\"semanticId\"]}},\"totalCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"kind\",\"schemaVersion\",\"items\",\"totalCount\"]},\"SearchVariantsResponse\":{\"type\":\"object\",\"properties\":{\"excludedBySearchCatalogueSubset\":{\"description\":\"Filtered variant ids outside the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"category\":{\"description\":\"The first original source category, or null when unknown.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"description\":\"All original source categories in source order.\"},\"productType\":{\"description\":\"The accepted primary specification type, or null for a color sample or unresolved subject.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"sampleSubject\":{\"type\":\"string\",\"enum\":[\"material\",\"paint_color_sample\",\"unknown\",\"conflict\"]},\"colorOptionValueId\":{\"type\":[\"string\",\"null\"]},\"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.\"},\"code\":{\"description\":\"The brand's item code.\",\"type\":[\"string\",\"null\"]},\"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\"}]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The brand. `id` is the slug get_brand takes.\"},\"name\":{\"type\":\"string\",\"description\":\"The variant's own name.\"},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"url\":{\"description\":\"The brand's page for it, or null when none is known.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"materialBankId\":{\"description\":\"The variant's Material Bank SKU. Absent: none recorded.\",\"type\":\"string\"},\"notApplicable\":{\"type\":\"object\",\"properties\":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"description\":\"Requested blocks or attributes this product type does not carry.\"},\"preference\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"array\",\"items\":{\"type\":\"number\"}},\"score\":{\"type\":\"number\"}},\"required\":[\"matched\",\"score\"]},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additional",
79
- "Properties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}},\"variantCount\":{\"description\":\"Eligible variants of this product. Absent: none counted.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"category\",\"categories\",\"productType\",\"sampleSubject\",\"colorOptionValueId\",\"hasDeclaredColor\",\"code\",\"brand\",\"name\",\"product\",\"variantId\"]}},\"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 catalogue this list can't show, e.g. retired.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unresolvedVariantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unstated\":{\"description\":\"Filtered attributes no variant in scope states at all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"words\":{\"description\":\"Each word asked for, and whether any variant in scope names it.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"boolean\"},\"word\":{\"type\":\"string\"}},\"required\":[\"matched\",\"word\"]}},\"choices\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"alternatives\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"group\":{\"type\":\"string\"},\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"}},\"required\":[\"group\",\"id\",\"kind\",\"label\"]}},\"basis\":{\"type\":\"string\"},\"handle\":{\"type\":\"string\"},\"reason\":{\"type\":\"string\"},\"selected\":{\"type\":\"object\",\"properties\":{\"group\":{\"type\":\"string\"},\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"}},\"required\":[\"group\",\"id\",\"kind\",\"label\"]},\"text\":{\"type\":\"string\"}},\"required\":[\"alternatives\",\"basis\",\"handle\",\"reason\",\"selected\",\"text\"]}},\"colors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"pattern\":\"^#[\\\\da-f]{6}$\",\"description\":\"The color's own point in the region; it orders matches.\"},\"intent\":{\"type\":\"string\",\"enum\":[\"required\",\"preferred\"]},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\"]},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"hex\",\"op\",\"range\"]},\"description\":\"The color regions that ran.\"},\"corrections\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"correction\":{\"type\":\"string\"},\"word\":{\"type\":\"string\"}},\"required\":[\"correction\",\"word\"]}},\"filters\":{\"type\":\"object\",\"properties\":{\"anyField\":{\"description\":\"One of values in any of fields (term attributes).\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\"]},\"orText\":{\"type\":\"string\"},\"unstated\":{\"type\":\"string\",\"const\":\"pass\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"fields\",\"op\",\"values\"]}},\"numbers\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"eq\",\"gt\",\"gte\",\"lt\",\"lte\"]},\"value\":{\"type\":\"number\"}},\"required\":[\"field\",\"op\",\"value\"]}},\"presence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"exists\",\"missing\"]}},\"required\":[\"field\",\"op\"]}},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":",
80
- "{\"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_catalogue\"],\"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.\"},\"understood\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"applied\":{\"type\":\"string\",\"enum\":[\"filter\",\"preference\",\"not_applied\"],\"description\":\"filter narrows; preference only ranks; not_applied did neither.\"},\"id\":{\"type\":\"string\",\"description\":\"The parser's condition id.\"},\"kind\":{\"type\":\"string\",\"enum\":[\"category\",\"brand\",\"term\",\"number\",\"color\",\"paint\",\"name\"]},\"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\":{\"",
81
- "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\",\"catalogue\",\"color_finish_chart\",\"other\",\"unknown\"]}},\"height\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"imageRole\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"string\",\"enum\":[\"product\",\"swatch\",\"detail\",\"scene\",\"technical\",\"color_chart\",\"sample_collection\",\"other\",\"unknown\"]},\"kind\":{\"type\":\"string\",\"enum\":[\"image\",\"document\",\"cad\",\"bim\",\"model_3d\",\"texture\",\"archive\",\"other\",\"unknown\"]},\"name\":{\"description\":\"Not on images; absent when unknown.\",\"type\":\"string\"},\"presentation\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"string\",\"enum\":[\"edge_to_edge\",\"packshot\",\"cutout_margin\",\"montage\",\"unknown\"]},\"url\":{\"description\":\"Absent when availability is unavailable.\",\"type\":\"string\"},\"width\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"assetId\",\"availability\",\"kind\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"nextCursor\":{\"type\":[\"string\",\"null\"]},\"returnedCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"totalMatches\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"nextCursor\",\"returnedCount\",\"totalMatches\"]},\"primaryAssetId\":{\"description\":\"The variant's primary image. Absent when it has none.\",\"type\":\"string\",\"minLength\":1}},\"required\":[\"items\",\"pageInfo\"]},\"WhoamiResponse\":{\"type\":\"object\",\"properties\":{\"principal\":{\"type\":\"string\",\"description\":\"The resolved principal for the credential (e.g. `apikey:read`).\"},\"scopes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"The scopes granted to this credential (e.g. `mg:read`).\"}},\"required\":[\"principal\",\"scopes\"]},\"__schema0\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"},{\"type\":\"null\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/__schema0\"}},{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additiona",
82
- "lProperties\":{\"$ref\":\"#/$defs/__schema0\"}}]}},\"operations\":{\"find_nearest_paints\":{\"$ref\":\"#/$defs/NearestPaintsOutput\"},\"get_catalogue_generation\":{\"type\":\"object\",\"properties\":{\"generation\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"generation\"]},\"list_catalog_documents\":{\"$ref\":\"#/$defs/CatalogDocumentList\"},\"list_catalog_pages\":{\"$ref\":\"#/$defs/CatalogPageListResult\"},\"get_catalog_page_representation\":{\"$ref\":\"#/$defs/CataloguePageRepresentationReadResult\"},\"list_catalog_product_references\":{\"$ref\":\"#/$defs/CatalogProductReferenceReadResult\"},\"samplize_catalogue_products\":{\"$ref\":\"#/$defs/SamplizeCataloguePage\"},\"get_catalogue_references_batch\":{\"$ref\":\"#/$defs/CatalogueReferenceBatchResponse\"},\"list_catalogue_channel_collections\":{\"$ref\":\"#/$defs/CatalogueChannelCollectionsResponse\"},\"get_catalogue_document_access\":{\"$ref\":\"#/$defs/CatalogueDocumentAccessResult\"},\"list_material_blocks\":{\"$ref\":\"#/$defs/MaterialBlockProjection\"},\"list_variant_assets\":{\"$ref\":\"#/$defs/VariantAssetPage\"},\"list_material_documents\":{\"$ref\":\"#/$defs/ProductDocumentPage\"},\"list_schema_value_dictionaries\":{\"$ref\":\"#/$defs/SchemaValueDictionariesResponse\"},\"get_material_pairings\":{\"type\":\"object\",\"properties\":{\"seed\":{\"$ref\":\"#/$defs/MaterialTile\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/PairingItem\"}},\"cospecCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"How many items came from real order evidence (the cospec arm).\"},\"skippedCandidates\":{\"description\":\"Candidates dropped at hydration for violating the material contract; present only when > 0. A malformed row costs itself, never the rail (MG-985).\",\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"ordering\":{\"description\":\"Graph-owned ranking contract; present only when `order` was requested.\",\"$ref\":\"#/$defs/PairingOrdering\"},\"nextCursor\":{\"description\":\"Opaque continuation when another ordered page exists.\",\"type\":\"string\"}},\"required\":[\"seed\",\"items\",\"cospecCount\"]},\"list_associated_finishes\":{\"$ref\":\"#/$defs/DeclaredAssociations\"},\"list_associated_products\":{\"$ref\":\"#/$defs/DeclaredAssociations\"},\"get_applicability\":{\"$ref\":\"#/$defs/ApplicabilityCollection\"},\"list_variants\":{\"$ref\":\"#/$defs/ListVariantsResponse\"},\"list_variant_facets\":{\"$ref\":\"#/$defs/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\"},\"resolve_variant\":{\"$ref\":\"#/$defs/ResolveVariantResponse\"},\"get_variant\":{\"$ref\":\"#/$defs/GetVariantResponse\"},\"resolve_color_name\":{\"$ref\":\"#/$defs/ResolveColorResponse\"},\"catalog_list_attributes\":{\"$ref\":\"#/$defs/ListAttributesResponse\"},\"catalog_list_enum_values\":{\"$ref\":\"#/$defs/ListEnumValuesResponse\"},\"list_categories\":{\"$ref\":\"#/$defs/ListCategoriesResponse\"},\"get_category\":{\"$ref\":\"#/$defs/GetCategoryResponse\"},\"whoami\":{\"$ref\":\"#/$defs/WhoamiResponse\"},\"get_category_color_profiles\":{\"$ref\":\"#/$defs/CategoryColorProfilesResponse\"},\"extract_image_palette\":{\"$ref\":\"#/$defs/ExtractPaletteResponse\"},\"list_brands\":{\"$ref\":\"#/$defs/ListBrandsPage\"},\"upload_source_material\":{\"$ref\":\"#/$defs/SourceMaterialBatchReceipt\"},\"create_public_run\":{\"$ref\":\"#/$defs/CreatePublicRunResponse\"},\"get_public_run\":{\"$ref\":\"#/$defs/PublicRunResponse\"}}}",
63
+ "mage\"]},\"namedPaint\":{\"description\":\"The paint query.text names exactly, by a brand's paint name or code, when the catalogue holds it; the items are what looks like the words. Absent otherwise.\",\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"color\":{\"type\":[\"string\",\"null\"]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"hex\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"brand\",\"color\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},\"references\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"url\",\"assetId\",\"variantId\",\"sourceId\"]}},\"required\":[\"id\",\"kind\"]},\"description\":\"The image references the query used, in order. Empty in text mode.\"},\"scan\":{\"type\":\"object\",\"properties\":{\"exhausted\":{\"type\":\"boolean\",\"description\":\"True when no further candidates match; false means more may exist.\"},\"read\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"rejected\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"route\":{\"type\":\"string\",\"enum\":[\"lane\",\"metadata\",\"allowlist\"]}},\"required\":[\"exhausted\",\"read\",\"rejected\",\"route\"]},\"timings\":{\"type\":\"object\",\"properties\":{\"embedMs\":{\"type\":\"number\"},\"filterMs\":{\"type\":\"number\"},\"referenceMs\":{\"type\":\"number\"},\"totalMs\":{\"type\":\"number\"},\"vectorMs\":{\"type\":\"number\"},\"verifyMs\":{\"type\":\"number\"}},\"required\":[\"embedMs\",\"filterMs\",\"referenceMs\",\"totalMs\",\"vectorMs\",\"verifyMs\"]},\"unresolvedVariantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unstated\":{\"description\":\"Filtered attributes no variant in scope states at all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"items\",\"mode\",\"references\",\"scan\",\"timings\"]},\"GetCategoryResponse\":{\"type\":\"object\",\"properties\":{\"aliases\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ancestors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]}},\"children\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]}},\"description\":{\"type\":[\"string\",\"null\"]},\"formerNames\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"const\":\"category\"},\"name\":{\"type\":\"string\"},\"path\":{\"type\":\"string\"},\"depth\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"aliases\",\"ancestors\",\"children\",\"description\",\"formerNames\",\"id\",\"kind\",\"name\",\"path\",\"depth\"]},\"GetVariantResponse\":{\"type\":\"object\",\"properties\":{\"category\":{\"description\":\"The first original source category, or null when unknown.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"description\":\"All original source categories in source order.\"},\"productType\":{\"description\":\"The accepted primary specification type, or null for a color sample or unresolved subject.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"sampleSubject\":{\"type\":\"string\",\"enum\":[\"material\",\"paint_color_sample\",\"unknown\",\"conflict\"]},\"colorOptionValueId\":{\"type\":[\"string\",\"null\"]},\"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.\"},\"code\":{\"description\":\"The brand's item code.\",\"type\":[\"string\",\"null\"]},\"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\"",
64
+ "}]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The brand. `id` is the slug get_brand takes.\"},\"name\":{\"type\":\"string\",\"description\":\"The variant's own name.\"},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"url\":{\"description\":\"The brand's page for it, or null when none is known.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"eligible\":{\"type\":\"boolean\",\"description\":\"Whether lists may include this variant. Reads by id include ineligible variants.\"},\"channels\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"palette\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"share\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"dominant\":{\"type\":\"boolean\"},\"method\":{\"type\":\"string\",\"enum\":[\"stated\",\"isolated\",\"crop\"]}},\"required\":[\"hex\",\"share\",\"dominant\",\"method\"]},\"description\":\"The stored material palette, including how each band was obtained.\"},\"attributes\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"properties\":{\"value\":{},\"valueSource\":{\"anyOf\":[{\"type\":\"string\",\"enum\":[\"material_bank\",\"brand\",\"measured\",\"samplize\"]},{\"type\":\"null\"}]},\"wording\":{\"type\":[\"string\",\"null\"]},\"level\":{\"type\":\"string\",\"enum\":[\"variant\",\"product\",\"brand\"]}},\"required\":[\"value\",\"valueSource\",\"wording\",\"level\"]},\"description\":\"Selected settled attributes with their Value Source and exact source wording.\"},\"materialBankId\":{\"description\":\"The variant's Material Bank SKU. Absent: none recorded.\",\"type\":\"string\"},\"notApplicable\":{\"type\":\"object\",\"properties\":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"description\":\"Requested blocks or attributes this product type does not carry.\"},\"specifications\":{\"allOf\":[{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}},{\"type\":\"object\",\"properties\":{\"color\":{\"type\":\"object\",\"properties\":{\"color_palette\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\"},\"share\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"dominant\":{\"type\":\"boolean\"}},\"required\":[\"hex\",\"share\",\"dominant\"]},\"description\":\"Stored image swatches, largest share first. Paints use their declared color as one band with share 1, even when image swatches exist. Hexes use uppercase #RRGGBB. Absent means unknown.\"},\"light_reflectance_value\":{\"$ref\":\"#/$defs/__schema0\"}},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}}}]}},\"required\":[\"category\",\"categories\",\"productType\",\"sampleSubject\",\"colorOptionValueId\",\"hasDeclaredColor\",\"code\",\"image\",\"brand\",\"name\",\"product\",\"url\",\"variantId\",\"eligible\",\"channels\",\"palette\",\"attributes\"]},\"ListAttributesResponse\":{\"type\":\"object\",\"properties\":{\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"blockIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"description\":{\"type\":\"string\"},\"dictionaryId\":{\"type\":[\"string\",\"null\"]},\"filterOps\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\",\"all\",\"exists\",\"missing\",\"eq\",\"gt\",\"gte\",\"lt\",\"lte\"]},\"description\":\"list_variants ops; empty when it cannot filter on it.\"},\"filterable\":{\"type\":\"boolean\"},\"id\":{\"type\":\"string\"},\"match\":{\"description\":\"Present only when the page answers a query.\",\"type\":\"object\",\"properties\":{\"distance\":{\"description\":\"Fuse distance, 0 best.\",\"type\":\"number\"},\"matchedText\":{\"type\":[\"string\",\"null\"]},\"method\":{\"type\":\"string\",\"enum\":[\"exact\",\"alias\",\"fuzzy\",\"vector\"]},\"similarity\":{\"description\":\"Cosine similarity, 1 best.\",\"type\":\"number\"},\"valueId\":{\"description\":\"The dictionary term matchedText named exactly or by alias; present only for a value-tier match.\",\"type\":\"string\"}},\"required\":[\"matchedText\",\"method\"]},\"name\":{\"type\":\"string\"},\"statedBy\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991,\"description\":\"Live variants stating this, in the categories or ",
65
+ "all; 0 means none.\"},\"unitId\":{\"type\":[\"string\",\"null\"]},\"valueKind\":{\"type\":\"string\"}},\"required\":[\"blockIds\",\"description\",\"dictionaryId\",\"filterOps\",\"filterable\",\"id\",\"name\",\"statedBy\",\"unitId\",\"valueKind\"]}},\"liveVariants\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991,\"description\":\"Live variants in the categories, or all without categoryIds.\"},\"outsideScope\":{\"description\":\"Page one only: matches outside blockIds ranking above the best item.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"blockIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"blockIds\",\"id\",\"name\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"}},\"required\":[\"endCursor\",\"hasNextPage\"]}},\"required\":[\"items\",\"liveVariants\",\"pageInfo\"]},\"ListBrandsPage\":{\"type\":\"object\",\"properties\":{\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brandId\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"website\":{\"description\":\"The brand's homepage, when on record.\",\"type\":[\"string\",\"null\"]}},\"required\":[\"brandId\",\"name\",\"website\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"}},\"required\":[\"endCursor\",\"hasNextPage\"]}},\"required\":[\"items\",\"pageInfo\"]},\"ListCategoriesResponse\":{\"type\":\"object\",\"properties\":{\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hasChildren\":{\"type\":\"boolean\"},\"id\":{\"type\":\"string\"},\"match\":{\"description\":\"Present only when the page answers a query.\",\"type\":\"object\",\"properties\":{\"matchedText\":{\"type\":[\"string\",\"null\"]},\"method\":{\"type\":\"string\",\"enum\":[\"exact\",\"alias\",\"fuzzy\"]}},\"required\":[\"matchedText\",\"method\"]},\"name\":{\"type\":\"string\"},\"parentId\":{\"type\":[\"string\",\"null\"]},\"path\":{\"type\":\"string\"},\"depth\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"hasChildren\",\"id\",\"name\",\"parentId\",\"path\",\"depth\"]}},\"notice\":{\"description\":\"Present only when the query is refused as a category.\",\"type\":\"string\"},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"nextCursor\":{\"type\":[\"string\",\"null\"]},\"returnedCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"totalMatches\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"nextCursor\",\"returnedCount\",\"totalMatches\"]}},\"required\":[\"items\",\"pageInfo\"]},\"ListEnumValuesResponse\":{\"type\":\"object\",\"properties\":{\"dictionaryId\":{\"type\":[\"string\",\"null\"]},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"definition\":{\"type\":[\"string\",\"null\"]},\"dictionaryId\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"match\":{\"type\":\"object\",\"properties\":{\"distance\":{\"type\":\"number\"},\"matchedText\":{\"type\":[\"string\",\"null\"]},\"method\":{\"type\":\"string\",\"enum\":[\"exact\",\"alias\",\"fuzzy\",\"vector\"]},\"resolvedFrom\":{\"type\":\"string\"},\"similarity\":{\"type\":\"number\"}},\"required\":[\"matchedText\",\"method\"]},\"valueId\":{\"type\":\"string\"}},\"required\":[\"attributeIds\",\"definition\",\"dictionaryId\",\"label\",\"valueId\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"endCursor\":{\"type\":[\"string\",\"null\"]},\"hasNextPage\":{\"type\":\"boolean\"}},\"required\":[\"endCursor\",\"hasNextPage\"]}},\"required\":[\"dictionaryId\",\"items\",\"pageInfo\"]},\"ListVariantFacetsResponse\":{\"type\":\"object\",\"properties\":{\"matchedVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"facets\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"missingVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"categorical\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"value\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"variantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991}},\"required\":[\"value\",\"label\",\"variantCount\"]}},\"hasMoreValues\":{\"type\":\"boolean\"}},\"required\":[\"attributeId\",\"name\",\"missingVariantCount",
66
+ "\",\"kind\",\"values\",\"hasMoreValues\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"missingVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"boolean\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"value\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"variantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991}},\"required\":[\"value\",\"label\",\"variantCount\"]}},\"hasMoreValues\":{\"type\":\"boolean\"}},\"required\":[\"attributeId\",\"name\",\"missingVariantCount\",\"kind\",\"values\",\"hasMoreValues\"]},{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"missingVariantCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"kind\":{\"type\":\"string\",\"const\":\"numeric\"},\"min\":{\"type\":[\"number\",\"null\"]},\"max\":{\"type\":[\"number\",\"null\"]},\"unitId\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"attributeId\",\"name\",\"missingVariantCount\",\"kind\",\"min\",\"max\",\"unitId\"]}]}}},\"required\":[\"matchedVariantCount\",\"facets\"]},\"ListVariantsResponse\":{\"type\":\"object\",\"properties\":{\"excludedBySearchCatalogueSubset\":{\"description\":\"Filtered variant ids outside the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"category\":{\"description\":\"The first original source category, or null when unknown.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"description\":\"All original source categories in source order.\"},\"productType\":{\"description\":\"The accepted primary specification type, or null for a color sample or unresolved subject.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"sampleSubject\":{\"type\":\"string\",\"enum\":[\"material\",\"paint_color_sample\",\"unknown\",\"conflict\"]},\"colorOptionValueId\":{\"type\":[\"string\",\"null\"]},\"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.\"},\"code\":{\"description\":\"The brand's item code.\",\"type\":[\"string\",\"null\"]},\"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\"}]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The brand. `id` is the slug get_brand takes.\"},\"name\":{\"type\":\"string\",\"description\":\"The variant's own name.\"},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"url\":{\"description\":\"The brand's page for it, or null when none is known.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"materialBankId\":{\"description\":\"The variant's Material Bank SKU. Absent: none recorded.\",\"type\":\"string\"},\"notApplicable\":{\"type\":\"object\",\"properties\":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"description\":\"Requested blocks or attributes this product type does not carry.\"},\"preference\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"array\",\"items\":{\"type\":\"number\"}},\"score\":{\"type\":\"number\"}},\"required\":[\"matched\",\"score\"]},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}},\"variantCount\":{\"description\":\"Eligible variants of this product. Absen",
67
+ "t: none counted.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"category\",\"categories\",\"productType\",\"sampleSubject\",\"colorOptionValueId\",\"hasDeclaredColor\",\"code\",\"brand\",\"name\",\"product\",\"variantId\"]}},\"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 catalogue this list can't show, e.g. retired.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unresolvedVariantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unstated\":{\"description\":\"Filtered attributes no variant in scope states at all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"words\":{\"description\":\"Each word asked for, and whether any variant in scope names it.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"boolean\"},\"word\":{\"type\":\"string\"}},\"required\":[\"matched\",\"word\"]}}},\"required\":[\"items\",\"pageInfo\"]},\"MaterialBlockProjection\":{\"type\":\"object\",\"properties\":{\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"canonicalBlockId\":{\"type\":\"string\"},\"canonicalBlockName\":{\"type\":\"string\"},\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attributeId\":{\"type\":\"string\"},\"confidence\":{\"type\":\"number\"},\"displayValue\":{\"description\":\"The value dictionary's label for a single-term `value`. Absent when no label is on record; `value` stays the canonical token.\",\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"valueSource\":{\"type\":\"string\"},\"status\":{\"type\":\"string\",\"enum\":[\"complete\",\"partial\",\"missing\",\"not_applicable\"]},\"unit\":{\"type\":\"string\"},\"value\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"},{\"type\":\"array\",\"items\":{}},{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]}},\"required\":[\"attributeId\",\"label\",\"status\",\"value\"]}},\"missingAttributeIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"status\":{\"type\":\"string\",\"enum\":[\"complete\",\"partial\",\"missing\",\"not_applicable\"]}},\"required\":[\"canonicalBlockId\",\"canonicalBlockName\",\"fields\",\"missingAttributeIds\",\"status\"]}},\"variantId\":{\"type\":\"string\"}},\"required\":[\"blocks\",\"variantId\"]},\"MaterialTile\":{\"type\":\"object\",\"properties\":{\"availability\":{\"type\":\"string\",\"enum\":[\"available\",\"discontinued\",\"superseded\",\"unknown\"],\"description\":\"Orderability: 'available' (listed in the catalog of record), 'discontinued' (withdrawn from that catalog — not a reviewed manufacturer-discontinuation claim), 'superseded' (a reviewed successor relationship exists and the material is no longer listed), 'unknown' (never checked).\"},\"brand\":{\"type\":\"string\"},\"category\":{\"description\":\"The first original source category name, or null when unknown.\",\"type\":[\"string\",\"null\"]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"All accepted source category ids in original source order; empty when unknown.\"},\"color\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":[\"number\",\"null\"]},\"dominantHex\":{\"type\":[\"string\",\"null\"]},\"hsl\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"h\":{\"type\":\"number\",\"minimum\":0,\"exclusiveMaximum\":360},\"l\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"s\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1}},\"required\":[\"h\",\"l\",\"s\"]},{\"type\":\"null\"}]},\"oklab\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"l\":{\"type\":\"number\"}},\"required\":[\"a\",\"b\",\"l\"]},{\"type\":\"null\"}]},\"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 `okla",
68
+ "b`, `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\",\"samplize\"]},\"vibrancy\":{\"type\":[\"number\",\"null\"]}},\"required\":[\"chroma\",\"dominantHex\",\"hsl\",\"oklab\",\"vibrancy\"]},\"colorName\":{\"description\":\"The accepted Color Name attribute — the colorway's true name where variants.name collapsed to the product's; absent means the attribute is absent (MG-940).\",\"type\":\"string\"},\"imageSource\":{\"anyOf\":[{\"type\":\"string\",\"enum\":[\"r2\",\"origin\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"sampleable\":{\"description\":\"Whether a physical sample is explicitly known to be orderable. Absent means unknown, never unavailable.\",\"type\":\"boolean\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"availability\",\"brand\",\"category\",\"categories\",\"color\",\"imageSource\",\"imageUrl\",\"product\",\"variantId\",\"variantName\"]},\"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\":{\"variantId\":{\"type\":\"string\"},\"sampleSubject\":{\"type\":\"string\",\"enum\":[\"material\",\"paint_color_sample\",\"unknown\",\"conflict\"]},\"productType\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"name\":{\"type\":\"string\"},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"code\":{\"type\":[\"string\",\"null\"]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"lrv\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":100},{\"type\":\"null\"}]},\"image\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"url\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"}},\"required\":[\"url\",\"alt\"]},{\"type\":\"null\"}]},\"deltaE\":{\"type\":\"number\",\"minimum\":0},\"closeness\":{\"type\":\"string\",\"enum\":[\"very-near\",\"very-close\",\"close\",\"related\"]}},\"required\":[\"variantId\",\"sampleSubject\",\"productType\",\"name\",\"brand\",\"code\",\"hex\",\"lrv\",\"image\",\"deltaE\",\"closeness\"]}}},\"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\":{\"momentum\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"percentChange\":{\"type\":[\"number\",\"null\"]},\"priorSpecCount\":{\"type\":\"number\"},\"state\":{\"type\":\"string\",\"enum\":[\"rising\",\"fading\",\"stable\",\"emerging\",\"insufficient_volume\"]},\"trailingSpecCount\":{\"type\":\"number\"}},\"required\":[\"percentChange\",\"priorSpecCount\",\"state\",\"trailingSpecCount\"]},{\"type\":\"null\"}]},\"projectCount\":{\"type\":\"number\"},\"specCount\":{\"type\":\"number\"}},\"required\":[\"momentum\",\"projectCount\",\"specCount\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"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\"}},",
69
+ "\"required\":[\"anchorColorSimilarity\",\"anchorColorSimilarityMeasurable\",\"basis\",\"lightness\",\"lightnessMeasurable\"]},\"source\":{\"type\":\"string\",\"const\":\"cospec\"}},\"required\":[\"brand\",\"brandSlug\",\"category\",\"color\",\"customerCount\",\"demand\",\"imageUrl\",\"lift\",\"liftLabel\",\"product\",\"productId\",\"projectCount\",\"topProjectTypes\",\"variantId\",\"variantName\",\"source\"]},{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"string\"},\"inScope\":{\"type\":[\"boolean\",\"null\"]},\"brandSlug\":{\"type\":\"string\"},\"category\":{\"type\":[\"string\",\"null\"]},\"color\":{\"type\":[\"string\",\"null\"]},\"customerCount\":{\"type\":\"number\"},\"demand\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"momentum\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"percentChange\":{\"type\":[\"number\",\"null\"]},\"priorSpecCount\":{\"type\":\"number\"},\"state\":{\"type\":\"string\",\"enum\":[\"rising\",\"fading\",\"stable\",\"emerging\",\"insufficient_volume\"]},\"trailingSpecCount\":{\"type\":\"number\"}},\"required\":[\"percentChange\",\"priorSpecCount\",\"state\",\"trailingSpecCount\"]},{\"type\":\"null\"}]},\"projectCount\":{\"type\":\"number\"},\"specCount\":{\"type\":\"number\"}},\"required\":[\"momentum\",\"projectCount\",\"specCount\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"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\"},\"category\":{\"description\":\"The first original source category name, or null when unknown.\",\"type\":[\"string\",\"null\"]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"All accepted source category ids in original source order; empty when unknown.\"},\"color\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":[\"number\",\"null\"]},\"dominantHex\":{\"type\":[\"string\",\"null\"]},\"hsl\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"h\":{\"type\":\"number\",\"minimum\":0,\"exclusiveMaximum\":360},\"l\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1},\"s\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1}},\"required\":[\"h\",\"l\",\"s\"]},{\"type\":\"null\"}]},\"oklab\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"l\":{\"type\":\"number\"}},\"required\":[\"a\",\"b\",\"l\"]},{\"type\":\"null\"}]},\"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\"",
70
+ ",\"brand\",\"measured\",\"samplize\"]},\"vibrancy\":{\"type\":[\"number\",\"null\"]}},\"required\":[\"chroma\",\"dominantHex\",\"hsl\",\"oklab\",\"vibrancy\"]},\"colorName\":{\"description\":\"The accepted Color Name attribute — the colorway's true name where variants.name collapsed to the product's; absent means the attribute is absent (MG-940).\",\"type\":\"string\"},\"imageSource\":{\"anyOf\":[{\"type\":\"string\",\"enum\":[\"r2\",\"origin\"]},{\"type\":\"null\"}]},\"imageUrl\":{\"type\":[\"string\",\"null\"]},\"product\":{\"type\":\"string\"},\"sampleable\":{\"description\":\"Whether a physical sample is explicitly known to be orderable. Absent means unknown, never unavailable.\",\"type\":\"boolean\"},\"variantId\":{\"type\":\"string\"},\"variantName\":{\"type\":[\"string\",\"null\"]},\"inScope\":{\"type\":[\"boolean\",\"null\"]},\"ranking\":{\"type\":\"object\",\"properties\":{\"anchorColorSimilarity\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"anchorColorSimilarityMeasurable\":{\"type\":\"boolean\"},\"basis\":{\"type\":\"string\",\"const\":\"dominant_color_oklab\"},\"lightness\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"null\"}]},\"lightnessMeasurable\":{\"type\":\"boolean\"}},\"required\":[\"anchorColorSimilarity\",\"anchorColorSimilarityMeasurable\",\"basis\",\"lightness\",\"lightnessMeasurable\"]},\"score\":{\"type\":\"number\"},\"source\":{\"type\":\"string\",\"const\":\"color\"}},\"required\":[\"availability\",\"brand\",\"category\",\"categories\",\"color\",\"imageSource\",\"imageUrl\",\"product\",\"variantId\",\"variantName\",\"score\",\"source\"]}]},\"PairingOrdering\":{\"type\":\"object\",\"properties\":{\"anchorColorBasis\":{\"type\":\"string\",\"const\":\"one_minus_oklab_euclidean_distance\"},\"applied\":{\"type\":\"string\",\"enum\":[\"relevance\",\"lightness_asc\",\"lightness_desc\"]},\"colorSpace\":{\"type\":\"string\",\"const\":\"oklab\"},\"direction\":{\"type\":\"string\",\"enum\":[\"ascending\",\"descending\"]},\"lightnessRange\":{\"type\":\"object\",\"properties\":{\"max\":{\"type\":\"number\",\"const\":1},\"min\":{\"type\":\"number\",\"const\":0}},\"required\":[\"max\",\"min\"]},\"missingValues\":{\"type\":\"string\",\"const\":\"last\"},\"requested\":{\"type\":\"string\",\"enum\":[\"relevance\",\"lightness_asc\",\"lightness_desc\"]},\"tieBreak\":{\"type\":\"string\",\"const\":\"variantId_asc\"}},\"required\":[\"anchorColorBasis\",\"applied\",\"colorSpace\",\"direction\",\"lightnessRange\",\"missingValues\",\"requested\",\"tieBreak\"]},\"ProductDocumentPage\":{\"type\":\"object\",\"properties\":{\"coverage\":{\"type\":\"object\",\"properties\":{\"productUnion\":{\"type\":\"object\",\"properties\":{\"declaredCount\":{\"anyOf\":[{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},{\"type\":\"null\"}]},\"exact\":{\"type\":\"boolean\"},\"readableCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"state\":{\"type\":\"string\",\"enum\":[\"available\",\"none_declared\",\"not_ingested\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]}},\"required\":[\"declaredCount\",\"exact\",\"readableCount\",\"state\"]},\"requestedVariant\":{\"type\":\"object\",\"properties\":{\"declaredCount\":{\"anyOf\":[{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},{\"type\":\"null\"}]},\"exact\":{\"type\":\"boolean\"},\"readableCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"state\":{\"type\":\"string\",\"enum\":[\"available\",\"none_declared\",\"not_ingested\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]}},\"required\":[\"declaredCount\",\"exact\",\"readableCount\",\"state\"]},\"sources\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"declaredCount\":{\"anyOf\":[{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},{\"type\":\"null\"}]},\"exact\":{\"type\":\"boolean\"},\"readableCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"scope\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"product\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"id\",\"revision\"]},\"state\":{\"type\":\"string\",\"enum\":[\"available\",\"none_declared\",\"not_ingested\",\"unavailable_source\",\"dead_lin",
71
+ "k\",\"failed_ingest\"]}},\"required\":[\"declaredCount\",\"exact\",\"readableCount\",\"scope\",\"source\",\"state\"]}}},\"required\":[\"productUnion\",\"requestedVariant\",\"sources\"]},\"documents\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"appliesToRequestedVariant\":{\"type\":\"boolean\"},\"contentType\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"declarations\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"readable\":{\"type\":\"boolean\"},\"scope\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"product\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"id\",\"revision\"]},\"status\":{\"type\":\"string\",\"enum\":[\"downloaded\",\"linked_not_downloaded\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]}},\"required\":[\"readable\",\"scope\",\"source\",\"status\"]}},\"declaredScopes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"product\"}},\"required\":[\"id\",\"kind\"]},{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"}},\"required\":[\"id\",\"kind\"]}]}},\"documentTypes\":{\"minItems\":1,\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"technical_data_sheet\",\"product_sheet\",\"technical_bulletin\",\"sustainability_report\",\"specification\",\"installation_guide\",\"care_maintenance_guide\",\"operation_manual\",\"warranty\",\"parts_list\",\"technical_drawing\",\"test_report\",\"certificate\",\"declaration_of_performance\",\"environmental_product_declaration\",\"health_product_declaration\",\"ingredient_disclosure\",\"safety_data_sheet\",\"brochure\",\"catalogue\",\"color_finish_chart\",\"other\",\"unknown\"]}},\"fileExtension\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"id\":{\"type\":\"string\",\"minLength\":1},\"originalName\":{\"type\":\"string\",\"minLength\":1},\"scope\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"inherited\":{\"type\":\"boolean\"},\"kind\":{\"type\":\"string\",\"enum\":[\"product\",\"variant\"]}},\"required\":[\"id\",\"inherited\",\"kind\"]},\"source\":{\"type\":\"object\",\"properties\":{\"authority\":{\"type\":\"string\",\"minLength\":1},\"id\":{\"type\":\"string\",\"minLength\":1},\"revision\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"id\",\"revision\"]},\"status\":{\"type\":\"string\",\"enum\":[\"downloaded\",\"linked_not_downloaded\",\"unavailable_source\",\"dead_link\",\"failed_ingest\"]},\"url\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"variantAttribution\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}}},\"required\":[\"appliesToRequestedVariant\",\"contentType\",\"declarations\",\"declaredScopes\",\"fileExtension\",\"id\",\"originalName\",\"scope\",\"source\",\"status\",\"url\",\"variantAttribution\"]}},\"nextCursor\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1},{\"type\":\"null\"}]},\"totalDocuments\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"variantId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"coverage\",\"documents\",\"nextCursor\",\"totalDocuments\",\"variantId\"]},\"PublicRun\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"workflowId\":{\"type\":\"string\",\"description\":\"The workflow this run belongs to, the same id its path names.\"},\"clientReference\":{\"type\":[\"string\",\"null\"]},\"status\":{\"type\":\"string\",\"enum\":[\"queued\",\"claimed\",\"running\",\"suspended\",\"succeeded\",\"failed\",\"canceled\"]},\"redactedInputJson\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},\"redactedOutputJson\":{\"anyOf\":[{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]},\"usageJson\":{\"anyOf\":[{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]},\"artifactRefs\":{\"anyOf\":[{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\"},\"ref\":{\"type\":\"string\"}},\"re",
72
+ "quired\":[\"kind\",\"ref\"]}},{\"type\":\"null\"}]},\"failureJson\":{\"anyOf\":[{\"$ref\":\"#/$defs/PublicRunFailure\"},{\"type\":\"null\"}]},\"suspensionPayload\":{\"description\":\"The current typed question payload while `status` is `suspended`; null otherwise. The same exact payload is retained on the `suspended` ledger event.\",\"anyOf\":[{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},{\"type\":\"null\"}]},\"suspensionStepId\":{\"description\":\"The step awaiting input while `status` is `suspended` — pass it back as `stepId` when resuming, so a stale client cannot resume a step the run has already moved past. Read `suspensionPayload` for the current typed question. The same exact payload is retained on the `suspended` ledger event for event-stream consumers.\",\"type\":[\"string\",\"null\"]},\"eventCursor\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"attempts\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"startedAt\":{\"anyOf\":[{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},{\"type\":\"null\"}]},\"cancellationRequestedAt\":{\"anyOf\":[{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},{\"type\":\"null\"}]},\"completedAt\":{\"anyOf\":[{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},{\"type\":\"null\"}]},\"createdAt\":{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"},\"updatedAt\":{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))T(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?(?:Z))$\"}},\"required\":[\"id\",\"workflowId\",\"clientReference\",\"status\",\"redactedInputJson\",\"redactedOutputJson\",\"usageJson\",\"artifactRefs\",\"failureJson\",\"suspensionPayload\",\"suspensionStepId\",\"eventCursor\",\"attempts\",\"startedAt\",\"cancellationRequestedAt\",\"completedAt\",\"createdAt\",\"updatedAt\"]},\"PublicRunFailure\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"},\"retryable\":{\"type\":\"boolean\"},\"detail\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}}},\"required\":[\"code\",\"message\",\"retryable\"]},\"PublicRunResponse\":{\"type\":\"object\",\"properties\":{\"run\":{\"$ref\":\"#/$defs/PublicRun\"}},\"required\":[\"run\"]},\"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\":\"res",
73
+ "olved\"},\"others\":{\"maxItems\":4,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"band\":{\"type\":\"string\",\"enum\":[\"inside\",\"near\",\"far\"]},\"family\":{\"type\":\"string\",\"enum\":[\"white\",\"cream\",\"gray\",\"black\",\"beige\",\"taupe\",\"brown\",\"red\",\"orange\",\"yellow\",\"green\",\"teal\",\"blue\",\"purple\",\"pink\"]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"band\",\"family\",\"hex\",\"id\",\"name\",\"range\"]}},\"principal\":{\"type\":\"object\",\"properties\":{\"band\":{\"type\":\"string\",\"enum\":[\"inside\",\"near\",\"far\"]},\"family\":{\"type\":\"string\",\"enum\":[\"white\",\"cream\",\"gray\",\"black\",\"beige\",\"taupe\",\"brown\",\"red\",\"orange\",\"yellow\",\"green\",\"teal\",\"blue\",\"purple\",\"pink\"]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\",\"minLength\":1},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"band\",\"family\",\"hex\",\"id\",\"name\",\"range\"]},\"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\":{\"hex\":{\"type\":\"string\",\"description\":\"The resolved `#rrggbb` hex.\"},\"name\":{\"type\":\"string\",\"description\":\"The resolved display name (echoes the query when unnamed).\"},\"code\":{\"description\":\"The code the library gives the color (e.g. \\\"OC-17\\\", \\\"7016\\\"). Present only on a library hit.\",\"type\":\"string\"},\"libraryId\":{\"description\":\"The ColorScope library the color resolved in (e.g. \\\"benjamin-moore\\\", \\\"ral\\\"). A library is not necessarily a brand: read `libraryType`. Absent for a hex, and for a color word or semantic match that resolved without a library.\",\"type\":\"string\"},\"libraryType\":{\"description\":\"The type ColorScope declares for `libraryId`: `brand` is a paint brand's paint, `reference` a color standard (RAL, Pantone, HKS), `core` ColorScope's descriptive vocabulary. Present exactly when `libraryId` is. Only a `brand` hit is looked up in the catalogue.\",\"type\":\"string\",\"enum\":[\"brand\",\"consumer\",\"core\",\"reference\"]},\"matchTarget\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"hasSelection\":",
74
+ "{\"type\":\"boolean\",\"const\":false},\"type\":{\"type\":\"string\",\"const\":\"none\"}},\"required\":[\"hasSelection\",\"type\"]},{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"hasSelection\":{\"type\":\"boolean\",\"const\":true},\"label\":{\"type\":\"string\"},\"previewColors\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"type\":{\"type\":\"string\",\"const\":\"oklab\"}},\"required\":[\"L\",\"a\",\"b\",\"hasSelection\",\"label\",\"previewColors\",\"type\"]},{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"},\"hasSelection\":{\"type\":\"boolean\",\"const\":true},\"label\":{\"type\":\"string\"},\"previewColors\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"range\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0},{\"type\":\"number\",\"minimum\":0}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":360},{\"type\":\"number\",\"minimum\":0,\"maximum\":360}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":1},{\"type\":\"number\",\"minimum\":0,\"maximum\":1}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"representative\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9a-f]{6}$\"}},\"required\":[\"hex\"]},\"type\":{\"type\":\"string\",\"const\":\"range\"}},\"required\":[\"L\",\"a\",\"b\",\"hasSelection\",\"label\",\"previewColors\",\"range\",\"representative\",\"type\"]}]},\"variant\":{\"description\":\"Whether the named paint is a variant in the catalogue. Only a color that resolved in a `brand` library is looked up. The lookup is exact (brand paint names and codes), global, and independent of `searchCatalogueSubset`, which only sets each variant's `inScope`.\",\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"slug\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"slug\"],\"description\":\"The variant's brand exactly as stored, suspect or not.\"},\"inScope\":{\"description\":\"Whether this variant is in the requested `searchCatalogueSubset`. Null when no `searchCatalogueSubset` was passed. The lookup itself is never narrowed by scope.\",\"type\":[\"boolean\",\"null\"]},\"parentageSuspect\":{\"type\":\"boolean\",\"description\":\"True when the stored brand is Samplize, a sampling channel, and the listing is not Samplize's own merchandise: the color is another brand's, so do not report `brand` as who made it. The variant is still returned and still the right one for the name.\"},\"variantId\":{\"type\":\"string\",\"description\":\"The variant id. Opaque; never parse it.\"},\"status\":{\"type\":\"string\",\"const\":\"matched\",\"description\":\"The name is one brand's paint and one variant carries it.\"}},\"required\":[\"brand\",\"inScope\",\"parentageSuspect\",\"variantId\",\"status\"]},{\"type\":\"object\",\"properties\":{\"candidates\":{\"minItems\":2,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"slug\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"slug\"],\"description\":\"The variant's brand exactly as stored, suspect or not.\"},\"inScope\":{\"description\":\"Whether this variant is in the requested `searchCatalogueSubset`. Null when no `searchCatalogueSubset` was passed. The lookup itself is never narrowed by scope.\",\"type\":[\"boolean\",\"null\"]},\"parentageSuspect\":{\"type\":\"boolean\",\"description\":\"True when the stored brand is Samplize, a sampling channel, and the listing is not Samplize's own merchandise: the color is another brand's, so do not report `brand` as who made it. The variant is still returned and still the right one for the name.\"},\"variantId\":{\"type\":\"string\",\"description\":\"The variant id. Opaque; never parse it.\"}},\"required\":[\"brand\",\"inScope\",\"parentageSuspect\",\"variantId\"]},\"description\":\"Every variant that carries the paint, catalogue order.\"},\"status\":{\"type\":\"string\",\"const\":\"ambiguous\",\"description\":\"The name is one brand's paint and more than one var",
75
+ "iant carries it, typically once per product line. Never picked between.\"}},\"required\":[\"candidates\",\"status\"]},{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"const\":\"not-in-catalogue\",\"description\":\"The name is one brand's paint and no variant in the catalogue carries it. A looked-up absence, distinct from `not-looked-up`.\"}},\"required\":[\"status\"]},{\"type\":\"object\",\"properties\":{\"reason\":{\"type\":\"string\",\"enum\":[\"reference-color\",\"descriptive-color\",\"no-paint-identity\",\"generic-color\",\"several-paints\"],\"description\":\"`reference-color`: the name resolved to a color standard (RAL, Pantone, HKS), which no brand's variant carries. `descriptive-color`: the name resolved to a descriptive color (\\\"sage\\\", \\\"warm terracotta\\\"), not a paint. `no-paint-identity`: the name is not exactly any brand's paint name or code, or it is a hex. `generic-color`: the name is a color word brands also use as a paint name; qualify it with a brand. `several-paints`: the name is more than one brand's paint; qualify it with a brand.\"},\"status\":{\"type\":\"string\",\"const\":\"not-looked-up\",\"description\":\"The catalogue was not searched; there was no one brand's paint to find.\"}},\"required\":[\"reason\",\"status\"]}]}},\"required\":[\"hex\",\"name\",\"matchTarget\",\"variant\"]},{\"type\":\"null\"}]},\"rangeSamples\":{\"description\":\"The range drawn as a lightness ramp at the resolved color's own hue and chroma, dark to light. Illustrative members of the range, never additional target colors.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"genericResolution\",\"match\"]},\"ResolveVariantResponse\":{\"type\":\"object\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"outcome\":{\"type\":\"string\",\"const\":\"identified\"},\"subject\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"code\":{\"type\":\"string\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"variant\"},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"kind\",\"name\"]}},\"required\":[\"evidence\",\"outcome\",\"subject\"]},{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"outcome\":{\"type\":\"string\",\"const\":\"placed\"},\"subject\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"code\":{\"type\":\"string\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"const\":\"brand\"},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"kind\",\"name\"]}},\"required\":[\"evidence\",\"outcome\",\"subject\"]},{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\"",
76
+ ":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"candidates\":{\"minItems\":1,\"maxItems\":20,\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"code\":{\"type\":\"string\"},\"id\":{\"type\":\"string\",\"minLength\":1},\"kind\":{\"type\":\"string\",\"enum\":[\"variant\",\"brand\"]},\"name\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"kind\",\"name\"]}},\"outcome\":{\"type\":\"string\",\"const\":\"ambiguous\"},\"truncated\":{\"type\":\"boolean\"}},\"required\":[\"evidence\",\"candidates\",\"outcome\",\"truncated\"]},{\"type\":\"object\",\"properties\":{\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"detail\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\",\"enum\":[\"brand-url\",\"brand-homepage\",\"brand-code\",\"visible-label\"]},\"url\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"detail\",\"kind\"]}},\"receipt\":{\"type\":\"object\",\"properties\":{\"normalizationSteps\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"normalizedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"},\"submittedUrl\":{\"type\":\"string\",\"maxLength\":2048,\"format\":\"uri\"}},\"required\":[\"normalizationSteps\",\"normalizedUrl\",\"submittedUrl\"]},\"outcome\":{\"type\":\"string\",\"const\":\"unresolved\"},\"reason\":{\"type\":\"string\",\"enum\":[\"no-stored-url\",\"no-code-match\"]}},\"required\":[\"evidence\",\"outcome\",\"reason\"]}]},\"SamplizeCataloguePage\":{\"type\":\"object\",\"properties\":{\"complete\":{\"type\":\"boolean\"},\"searchCatalogueSubset\":{\"type\":\"string\",\"const\":\"samplizeCatalogue\"},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"brand\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"slug\":{\"type\":\"string\"}},\"required\":[\"name\",\"slug\"]},\"code\":{\"type\":\"string\"},\"collectionMemberships\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"handle\":{\"type\":\"string\"},\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceCollectionId\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}},\"required\":[\"handle\",\"observedAt\",\"publisher\",\"source\",\"sourceCollectionId\",\"url\"]}},\"colorAnalysis\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},\"demand\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceUrl\":{\"type\":\"string\"},\"field\":{\"type\":\"string\",\"const\":\"recently_ordered_count\"},\"defaultAttributeLevel\":{\"type\":\"string\",\"const\":\"shopify_variant\"},\"recentlyOrderedCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"sourceVariantId\":{\"type\":\"string\"},\"window\":{\"type\":\"null\"}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"defaultAttributeLevel\",\"recentlyOrderedCount\",\"sourceVariantId\",\"window\"]},{\"type\":\"null\"}]},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"hexObservations\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"differsFromSelected\":{\"type\":\"boolean\"},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\"},\"source\":{\"type\":\"string\"},\"valueSource\":{\"type\":\"string\"},\"sourceUrl\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"differsFromSelected\",\"hex\",\"observedAt\",\"publisher\",\"source\",\"valueSource\",\"sourceUrl\"]}},\"hexSource\":{\"type\":\"object\",\"properties\":{\"publisher\":{\"type\":\"string\"},\"source\":{\"type\":\"string\",\"const\":\"resolved_variant\"},\"valueSource\":{\"type\":[\"string\",\"null\"]},\"url\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"publisher\",\"source\",\"valueSource\",\"url\"]},\"lrv\":{\"anyOf\":[{\"type\":\"number\",\"minimum\":0,\"maximum\":100},{\"type\":\"null\"}]},\"lrvObservations\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_produc",
77
+ "ts\"},\"sourceUrl\":{\"type\":\"string\"},\"field\":{\"type\":\"string\"},\"value\":{\"type\":\"number\",\"minimum\":0,\"maximum\":100}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"value\"]}},\"lrvSource\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceUrl\":{\"type\":\"string\"},\"field\":{\"type\":\"string\"},\"value\":{\"type\":\"number\",\"minimum\":0,\"maximum\":100}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"value\"]},{\"type\":\"null\"}]},\"name\":{\"type\":\"string\"},\"oklab\":{\"type\":\"object\",\"properties\":{\"L\":{\"type\":\"number\"},\"a\":{\"type\":\"number\"},\"b\":{\"type\":\"number\"}},\"required\":[\"L\",\"a\",\"b\"]},\"productId\":{\"type\":\"string\"},\"publishedHexes\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"differsFromSelected\":{\"type\":\"boolean\"},\"hex\":{\"type\":\"string\",\"pattern\":\"^#[0-9A-F]{6}$\"},\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\"},\"source\":{\"type\":\"string\"},\"valueSource\":{\"type\":\"string\"},\"sourceUrl\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"differsFromSelected\",\"hex\",\"observedAt\",\"publisher\",\"source\",\"valueSource\",\"sourceUrl\"]}},\"sizeVariants\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"demand\":{\"anyOf\":[{\"type\":\"object\",\"properties\":{\"observedAt\":{\"type\":[\"string\",\"null\"]},\"publisher\":{\"type\":\"string\",\"const\":\"Samplize\"},\"source\":{\"type\":\"string\",\"const\":\"algolia_shopify_products\"},\"sourceUrl\":{\"type\":\"string\"},\"field\":{\"type\":\"string\",\"const\":\"recently_ordered_count\"},\"defaultAttributeLevel\":{\"type\":\"string\",\"const\":\"shopify_variant\"},\"recentlyOrderedCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"sourceVariantId\":{\"type\":\"string\"},\"window\":{\"type\":\"null\"}},\"required\":[\"observedAt\",\"publisher\",\"source\",\"sourceUrl\",\"field\",\"defaultAttributeLevel\",\"recentlyOrderedCount\",\"sourceVariantId\",\"window\"]},{\"type\":\"null\"}]},\"inventoryAvailable\":{\"type\":\"boolean\"},\"price\":{\"type\":[\"number\",\"null\"]},\"sku\":{\"type\":[\"string\",\"null\"]},\"sourceVariantId\":{\"type\":\"string\"},\"title\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"demand\",\"inventoryAvailable\",\"price\",\"sku\",\"sourceVariantId\",\"title\"]}},\"sourceProductId\":{\"type\":[\"string\",\"null\"]},\"url\":{\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"}},\"required\":[\"brand\",\"code\",\"collectionMemberships\",\"colorAnalysis\",\"demand\",\"hex\",\"hexObservations\",\"hexSource\",\"lrv\",\"lrvObservations\",\"lrvSource\",\"name\",\"oklab\",\"productId\",\"publishedHexes\",\"sizeVariants\",\"sourceProductId\",\"url\",\"variantId\"]}},\"nextCursor\":{\"type\":[\"string\",\"null\"]},\"schemaVersion\":{\"type\":\"number\",\"const\":2},\"source\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{}},\"sourceVersion\":{\"type\":\"string\"},\"total\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"unavailableFields\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"complete\",\"searchCatalogueSubset\",\"items\",\"nextCursor\",\"schemaVersion\",\"source\",\"sourceVersion\",\"total\",\"unavailableFields\"]},\"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\":{",
78
+ "\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\"},\"aliases\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"broaderTermId\":{\"type\":\"string\",\"minLength\":1},\"definition\":{\"type\":\"string\",\"minLength\":1},\"externalMappings\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"mappingType\":{\"type\":\"string\",\"enum\":[\"direct\",\"transform\",\"derived\",\"classification\",\"semantic\"]},\"matchStrength\":{\"type\":\"string\",\"enum\":[\"exact\",\"close\",\"broad\",\"narrow\",\"related\"]},\"notes\":{\"type\":\"string\"},\"target\":{\"type\":\"string\",\"enum\":[\"schema_org\",\"ifc_pset\",\"bsdd\",\"iso_23387\",\"eclass\",\"gs1_gdm\",\"gdsn\",\"etim\",\"uniclass\"]},\"targetPath\":{\"type\":\"string\"}},\"required\":[\"mappingType\",\"target\",\"targetPath\"]}},\"metadata\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":[\"string\",\"number\",\"boolean\",\"null\"]}},\"lifecycle\":{\"type\":\"object\",\"properties\":{\"deprecatedIn\":{\"type\":\"string\"},\"introducedIn\":{\"type\":\"string\"},\"status\":{\"type\":\"string\",\"enum\":[\"draft\",\"active\",\"deprecated\"]},\"supersededBy\":{\"type\":\"string\"}},\"required\":[\"introducedIn\",\"status\"]},\"semanticId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"id\",\"label\",\"lifecycle\",\"semanticId\"]}},\"lifecycle\":{\"type\":\"object\",\"properties\":{\"deprecatedIn\":{\"type\":\"string\"},\"introducedIn\":{\"type\":\"string\"},\"status\":{\"type\":\"string\",\"enum\":[\"draft\",\"active\",\"deprecated\"]},\"supersededBy\":{\"type\":\"string\"}},\"required\":[\"introducedIn\",\"status\"]},\"semanticId\":{\"type\":\"string\",\"minLength\":1}},\"required\":[\"authority\",\"description\",\"id\",\"name\",\"terms\",\"lifecycle\",\"semanticId\"]}},\"totalCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"kind\",\"schemaVersion\",\"items\",\"totalCount\"]},\"SearchVariantsResponse\":{\"type\":\"object\",\"properties\":{\"excludedBySearchCatalogueSubset\":{\"description\":\"Filtered variant ids outside the materials catalogue.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"category\":{\"description\":\"The first original source category, or null when unknown.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"description\":\"All original source categories in source order.\"},\"productType\":{\"description\":\"The accepted primary specification type, or null for a color sample or unresolved subject.\",\"anyOf\":[{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},{\"type\":\"null\"}]},\"sampleSubject\":{\"type\":\"string\",\"enum\":[\"material\",\"paint_color_sample\",\"unknown\",\"conflict\"]},\"colorOptionValueId\":{\"type\":[\"string\",\"null\"]},\"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.\"},\"code\":{\"description\":\"The brand's item code.\",\"type\":[\"string\",\"null\"]},\"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\"}]},\"brand\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"],\"description\":\"The brand. `id` is the slug get_brand takes.\"},\"name\":{\"type\":\"string\",\"description\":\"The variant's own name.\"},\"product\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"url\":{\"description\":\"The brand's page for it, or null when none is known.\",\"type\":[\"string\",\"null\"]},\"variantId\":{\"type\":\"string\"},\"materialBankId\":{\"description\":\"The variant's Material Bank SKU. Absent: none recorded.\",\"type\":\"string\"},\"notApplicable\":{\"type\":\"object\",\"properties\"",
79
+ ":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"blocks\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"description\":\"Requested blocks or attributes this product type does not carry.\"},\"preference\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"array\",\"items\":{\"type\":\"number\"}},\"score\":{\"type\":\"number\"}},\"required\":[\"matched\",\"score\"]},\"specifications\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}},\"variantCount\":{\"description\":\"Eligible variants of this product. Absent: none counted.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"category\",\"categories\",\"productType\",\"sampleSubject\",\"colorOptionValueId\",\"hasDeclaredColor\",\"code\",\"brand\",\"name\",\"product\",\"variantId\"]}},\"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 catalogue this list can't show, e.g. retired.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unresolvedVariantIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"unstated\":{\"description\":\"Filtered attributes no variant in scope states at all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"words\":{\"description\":\"Each word asked for, and whether any variant in scope names it.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"matched\":{\"type\":\"boolean\"},\"word\":{\"type\":\"string\"}},\"required\":[\"matched\",\"word\"]}},\"choices\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"alternatives\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"group\":{\"type\":\"string\"},\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"}},\"required\":[\"group\",\"id\",\"kind\",\"label\"]}},\"basis\":{\"type\":\"string\"},\"handle\":{\"type\":\"string\"},\"reason\":{\"type\":\"string\"},\"selected\":{\"type\":\"object\",\"properties\":{\"group\":{\"type\":\"string\"},\"id\":{\"type\":\"string\"},\"kind\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"}},\"required\":[\"group\",\"id\",\"kind\",\"label\"]},\"text\":{\"type\":\"string\"}},\"required\":[\"alternatives\",\"basis\",\"handle\",\"reason\",\"selected\",\"text\"]}},\"colors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hex\":{\"type\":\"string\",\"pattern\":\"^#[\\\\da-f]{6}$\",\"description\":\"The color's own point in the region; it orders matches.\"},\"intent\":{\"type\":\"string\",\"enum\":[\"required\",\"preferred\"]},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\"]},\"range\":{\"type\":\"object\",\"properties\":{\"chroma\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2},\"hue\":{\"anyOf\":[{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2},{\"type\":\"null\"}]},\"lightness\":{\"type\":\"array\",\"prefixItems\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"items\":false,\"minItems\":2,\"maxItems\":2}},\"required\":[\"chroma\",\"hue\",\"lightness\"]}},\"required\":[\"hex\",\"op\",\"range\"]},\"description\":\"The color regions that ran.\"},\"corrections\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"correction\":{\"type\":\"string\"},\"word\":{\"type\":\"string\"}},\"required\":[\"correction\",\"word\"]}},\"filters\":{\"type\":\"object\",\"properties\":{\"anyField\":{\"description\":\"One of values in any of fields (term attributes).\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"not_in\"]},\"orText\":{\"type\":\"string\"},\"unstated\":{\"type\":\"string\",\"const\":\"pass\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"fields\",\"op\",\"values\"]}},\"numbers\":{\"type\":\"array\",\"i",
80
+ "tems\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"eq\",\"gt\",\"gte\",\"lt\",\"lte\"]},\"value\":{\"type\":\"number\"}},\"required\":[\"field\",\"op\",\"value\"]}},\"presence\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"exists\",\"missing\"]}},\"required\":[\"field\",\"op\"]}},\"terms\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"op\":{\"type\":\"string\",\"enum\":[\"in\",\"all\",\"not_in\"]},\"orText\":{\"type\":\"string\"},\"unstated\":{\"type\":\"string\",\"const\":\"pass\"},\"values\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"field\",\"op\",\"values\"]}}},\"description\":\"The filters that ran, the scope among them.\"},\"name\":{\"type\":\"string\",\"description\":\"The paint name looked up.\"},\"oneRowPer\":{\"type\":\"string\",\"enum\":[\"product\",\"variant\",\"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_catalogue\"],\"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.\"},\"understood\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"applied\":{\"type\":\"string\",\"enum\":[\"filter\",\"preference\",\"not_applied\"],\"description\":\"filter narrows; preference only ranks; not_applied did neither.\"},\"id\":{\"type\":\"string\",\"description\":\"The parser's condition id.\"},\"kind\":{\"type\":\"string\",\"enum\":[\"category\",\"brand\",\"term\",\"number\",\"color\",\"paint\",\"name\"]},\"label\":{\"type\":\"string\",\"description\":\"What the words were read as.\"},\"note\":{\"type\":\"string\"},\"text\":{\"type\":\"string\",\"descripti",
81
+ "on\":\"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\",\"catalogue\",\"color_finish_chart\",\"other\",\"unknown\"]}},\"height\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"imageRole\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"string\",\"enum\":[\"product\",\"swatch\",\"detail\",\"scene\",\"technical\",\"color_chart\",\"sample_collection\",\"other\",\"unknown\"]},\"kind\":{\"type\":\"string\",\"enum\":[\"image\",\"document\",\"cad\",\"bim\",\"model_3d\",\"texture\",\"archive\",\"other\",\"unknown\"]},\"name\":{\"description\":\"Not on images; absent when unknown.\",\"type\":\"string\"},\"presentation\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"string\",\"enum\":[\"edge_to_edge\",\"packshot\",\"cutout_margin\",\"montage\",\"unknown\"]},\"url\":{\"description\":\"Absent when availability is unavailable.\",\"type\":\"string\"},\"width\":{\"description\":\"Images only; absent when unknown.\",\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991}},\"required\":[\"assetId\",\"availability\",\"kind\"]}},\"pageInfo\":{\"type\":\"object\",\"properties\":{\"nextCursor\":{\"type\":[\"string\",\"null\"]},\"returnedCount\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"totalMatches\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"nextCursor\",\"returnedCount\",\"totalMatches\"]},\"primaryAssetId\":{\"description\":\"The variant's primary image. Absent when it has none.\",\"type\":\"string\",\"minLength\":1}},\"required\":[\"items\",\"pageInfo\"]},\"WhoamiResponse\":{\"type\":\"object\",\"properties\":{\"principal\":{\"type\":\"string\",\"description\":\"The re",
82
+ "solved principal for the credential (e.g. `apikey:read`).\"},\"scopes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"The scopes granted to this credential (e.g. `mg:read`).\"}},\"required\":[\"principal\",\"scopes\"]},\"__schema0\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"},{\"type\":\"null\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/__schema0\"}},{\"type\":\"object\",\"propertyNames\":{\"type\":\"string\"},\"additionalProperties\":{\"$ref\":\"#/$defs/__schema0\"}}]}},\"operations\":{\"find_nearest_paints\":{\"$ref\":\"#/$defs/NearestPaintsOutput\"},\"get_catalogue_generation\":{\"type\":\"object\",\"properties\":{\"generation\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"required\":[\"generation\"]},\"list_catalog_documents\":{\"$ref\":\"#/$defs/CatalogDocumentList\"},\"list_catalog_pages\":{\"$ref\":\"#/$defs/CatalogPageListResult\"},\"get_catalog_page_representation\":{\"$ref\":\"#/$defs/CataloguePageRepresentationReadResult\"},\"list_catalog_product_references\":{\"$ref\":\"#/$defs/CatalogProductReferenceReadResult\"},\"samplize_catalogue_products\":{\"$ref\":\"#/$defs/SamplizeCataloguePage\"},\"get_catalogue_references_batch\":{\"$ref\":\"#/$defs/CatalogueReferenceBatchResponse\"},\"list_catalogue_channel_collections\":{\"$ref\":\"#/$defs/CatalogueChannelCollectionsResponse\"},\"get_catalogue_document_access\":{\"$ref\":\"#/$defs/CatalogueDocumentAccessResult\"},\"list_material_blocks\":{\"$ref\":\"#/$defs/MaterialBlockProjection\"},\"list_variant_assets\":{\"$ref\":\"#/$defs/VariantAssetPage\"},\"list_material_documents\":{\"$ref\":\"#/$defs/ProductDocumentPage\"},\"list_schema_value_dictionaries\":{\"$ref\":\"#/$defs/SchemaValueDictionariesResponse\"},\"get_material_pairings\":{\"type\":\"object\",\"properties\":{\"seed\":{\"$ref\":\"#/$defs/MaterialTile\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/PairingItem\"}},\"cospecCount\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991,\"description\":\"How many items came from real order evidence (the cospec arm).\"},\"skippedCandidates\":{\"description\":\"Candidates dropped at hydration for violating the material contract; present only when > 0. A malformed row costs itself, never the rail (MG-985).\",\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"ordering\":{\"description\":\"Graph-owned ranking contract; present only when `order` was requested.\",\"$ref\":\"#/$defs/PairingOrdering\"},\"nextCursor\":{\"description\":\"Opaque continuation when another ordered page exists.\",\"type\":\"string\"}},\"required\":[\"seed\",\"items\",\"cospecCount\"]},\"list_associated_finishes\":{\"$ref\":\"#/$defs/DeclaredAssociations\"},\"list_associated_products\":{\"$ref\":\"#/$defs/DeclaredAssociations\"},\"get_applicability\":{\"$ref\":\"#/$defs/ApplicabilityCollection\"},\"list_variants\":{\"$ref\":\"#/$defs/ListVariantsResponse\"},\"list_variant_facets\":{\"$ref\":\"#/$defs/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\"},\"resolve_variant\":{\"$ref\":\"#/$defs/ResolveVariantResponse\"},\"get_variant\":{\"$ref\":\"#/$defs/GetVariantResponse\"},\"resolve_color_name\":{\"$ref\":\"#/$defs/ResolveColorResponse\"},\"catalog_list_attributes\":{\"$ref\":\"#/$defs/ListAttributesResponse\"},\"catalog_list_enum_values\":{\"$ref\":\"#/$defs/ListEnumValuesResponse\"},\"list_categories\":{\"$ref\":\"#/$defs/ListCategoriesResponse\"},\"get_category\":{\"$ref\":\"#/$defs/GetCategoryResponse\"},\"whoami\":{\"$ref\":\"#/$defs/WhoamiResponse\"},\"get_category_color_profiles\":{\"$ref\":\"#/$defs/CategoryColorProfilesResponse\"},\"extract_image_palette\":{\"$ref\":\"#/$defs/ExtractPaletteResponse\"},\"list_brands\":{\"$ref\":\"#/$defs/ListBrandsPage\"},\"upload_source_material\":{\"$ref\":\"#/$defs/SourceMaterialBatchReceipt\"},\"create_public_run\":{\"$ref\":\"#/$defs/CreatePublicRunResponse\"},\"get_public_run\":{\"$ref\":\"#/$defs/PublicRunResponse\"}}}",
83
83
  ].join("");