{"openapi":"3.1.0","info":{"title":"Keble Customer Gateway","version":"3.284.1"},"paths":{"/gateway/dp_search":{"post":{"tags":["Gateway"],"summary":"answer a market question, or run a structured from-X-find-Y search, on the data platform. Two request modes: question is a plain-language ask answered from stored-first data; search is a structured ask whose fromObject names the known starting items and whose search.kind names the target kind. Plan hops from the catalog edges returned by dp_catalog.edges, each a served from-kind to to-kind step. To chain, put previous hits' item identities into fromObject.sourceIds as {kind, channel, key}: use an entity_page item's externalId (fields.external_id on a search_page row) for source entities, or its key for derived kinds. These sourceIds identify inputs, not detail record keys. To reach a creator's contact, chain the stored CREATOR → CONTACT hop, or ask for creators with an email. For a product's category best sellers, chain PRODUCT → PLATFORM_DEFINED_CATEGORY as a stored hop, pick the deepest category, then PLATFORM_DEFINED_CATEGORY → PRODUCT live. Every returned hit carries its evidence basis (RECORDED, MENTIONED or SIMILAR), and an entity hit its promoted flag: read those fields, never a relation name, to say how Keble knows the link: RECORDED means the platform's own data records it (say the content features or links the product); MENTIONED means the content's own text names it, with no platform link (say it mentions the product); SIMILAR means only a resemblance (say similar or looks like, never the same item). Say promoted only when promoted is true, and say paid only when the hit's evidence has a sponsorship fact of PAID_AD or PAID_PARTNERSHIP. Never say which brand paid. When the searched brand's link is MENTIONED, say \"a paid partnership that mentions <brand>\"; when it is RECORDED, say \"a paid partnership featuring <brand>'s product\". Promoted true does not mean the content speaks well of the searched brand. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it. analysis.unlinkedMentions lists brands a video names that Keble holds no record for; report them as mentioned, not linked. Search with concrete keywords: brand names and aliases, product titles or ASINs, @handles and category terms; avoid generic words, and make a separate call for each distinct variant. A still-collecting live search answers search_pending with retryAfterSeconds: wait that many seconds and repeat the identical call, which is free and charges nothing. Every returned row carries a recordKey; a page lists the question words it could not apply under unapplied and ends with a cursor for continuing. A market set under hints.market is authoritative: do not repeat it in question, and rows from another marketplace never satisfy it. By default, leave evidence_bases unset unless the user restricts it (only mentions / similar). Example MCP arguments: {\"request\": {\"question\":\"best running shoes\"}}; the REST endpoint posts the inner {\"question\":\"best running shoes\"}.","description":"answer a market question, or run a structured from-X-find-Y search, on the data platform. Two request modes: question is a plain-language ask answered from stored-first data; search is a structured ask whose fromObject names the known starting items and whose search.kind names the target kind. Plan hops from the catalog edges returned by dp_catalog.edges, each a served from-kind to to-kind step. To chain, put previous hits' item identities into fromObject.sourceIds as {kind, channel, key}: use an entity_page item's externalId (fields.external_id on a search_page row) for source entities, or its key for derived kinds. These sourceIds identify inputs, not detail record keys. To reach a creator's contact, chain the stored CREATOR → CONTACT hop, or ask for creators with an email. For a product's category best sellers, chain PRODUCT → PLATFORM_DEFINED_CATEGORY as a stored hop, pick the deepest category, then PLATFORM_DEFINED_CATEGORY → PRODUCT live. Every returned hit carries its evidence basis (RECORDED, MENTIONED or SIMILAR), and an entity hit its promoted flag: read those fields, never a relation name, to say how Keble knows the link: RECORDED means the platform's own data records it (say the content features or links the product); MENTIONED means the content's own text names it, with no platform link (say it mentions the product); SIMILAR means only a resemblance (say similar or looks like, never the same item). Say promoted only when promoted is true, and say paid only when the hit's evidence has a sponsorship fact of PAID_AD or PAID_PARTNERSHIP. Never say which brand paid. When the searched brand's link is MENTIONED, say \"a paid partnership that mentions <brand>\"; when it is RECORDED, say \"a paid partnership featuring <brand>'s product\". Promoted true does not mean the content speaks well of the searched brand. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it. analysis.unlinkedMentions lists brands a video names that Keble holds no record for; report them as mentioned, not linked. Search with concrete keywords: brand names and aliases, product titles or ASINs, @handles and category terms; avoid generic words, and make a separate call for each distinct variant. A still-collecting live search answers search_pending with retryAfterSeconds: wait that many seconds and repeat the identical call, which is free and charges nothing. Every returned row carries a recordKey; a page lists the question words it could not apply under unapplied and ends with a cursor for continuing. A market set under hints.market is authoritative: do not repeat it in question, and rows from another marketplace never satisfy it. By default, leave evidence_bases unset unless the user restricts it (only mentions / similar). Example MCP arguments: {\"request\": {\"question\":\"best running shoes\"}}; the REST endpoint posts the inner {\"question\":\"best running shoes\"}.\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_dp_search","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest","examples":[{"question":"best running shoes"},{"search":{"fromObject":{"kind":"BRAND","descriptions":[{"value":"Anker","termType":"BRAND"}]},"search":{"kind":"CONTENT","channel":"TIKTOK","limit":10}}}]},"example":{"question":"best running shoes"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerDpSearchResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["DATA_CONTENT","DATA_CREATOR","DATA_KEYWORD"]}},"/gateway/dp_continue":{"post":{"tags":["Gateway"],"summary":"continue a data platform answer from its signed cursor. Pass the cursor of either page kind, search_page or entity_page. An entity page's progress says how far the answer got (rows requested and each hop read); keep following the returned cursor until it is absent. A continued page keeps its unapplied words and each row's recordKey. Example MCP arguments: {\"request\": {\"cursor\":\"example.continuation.token\"}}; the REST endpoint posts the inner {\"cursor\":\"example.continuation.token\"}.","description":"continue a data platform answer from its signed cursor. Pass the cursor of either page kind, search_page or entity_page. An entity page's progress says how far the answer got (rows requested and each hop read); keep following the returned cursor until it is absent. A continued page keeps its unapplied words and each row's recordKey. Example MCP arguments: {\"request\": {\"cursor\":\"example.continuation.token\"}}; the REST endpoint posts the inner {\"cursor\":\"example.continuation.token\"}.\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_dp_continue","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContinueRequest"},"example":{"cursor":"example.continuation.token"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerDpContinueResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["DATA_CONTENT"]}},"/gateway/dp_catalog":{"post":{"tags":["Gateway"],"summary":"the data platform's serving declaration catalog: the object kinds it serves, the edges (from-kind to to-kind hops) a structured search may chain, and each source's declared capabilities, keys and markets. Read it before planning a hop. Example MCP arguments: {\"request\": {}}; the REST endpoint posts the inner {}.","description":"the data platform's serving declaration catalog: the object kinds it serves, the edges (from-kind to to-kind hops) a structured search may chain, and each source's declared capabilities, keys and markets. Read it before planning a hop. Example MCP arguments: {\"request\": {}}; the REST endpoint posts the inner {}.\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_dp_catalog","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoArguments"},"example":{}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerDpCatalogResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/dp_freshness":{"post":{"tags":["Gateway"],"summary":"the data platform's cached activation freshness: which sources are active and how recently each was refreshed, so an answer can say whether its stored data may be stale. Example MCP arguments: {\"request\": {}}; the REST endpoint posts the inner {}.","description":"the data platform's cached activation freshness: which sources are active and how recently each was refreshed, so an answer can say whether its stored data may be stale. Example MCP arguments: {\"request\": {}}; the REST endpoint posts the inner {}.\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_dp_freshness","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoArguments"},"example":{}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerDpFreshnessResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/dp_record":{"post":{"tags":["Gateway"],"summary":"one analyzed record detail from the data platform, addressed by its kind and stable key. Open any search hit with kind NODE and that hit's recordKey. Example MCP arguments: {\"request\": {\"kind\":\"NODE\",\"recordKey\":\"CONTENT:public:example\"}}; the REST endpoint posts the inner {\"kind\":\"NODE\",\"recordKey\":\"CONTENT:public:example\"}.","description":"one analyzed record detail from the data platform, addressed by its kind and stable key. Open any search hit with kind NODE and that hit's recordKey. Example MCP arguments: {\"request\": {\"kind\":\"NODE\",\"recordKey\":\"CONTENT:public:example\"}}; the REST endpoint posts the inner {\"kind\":\"NODE\",\"recordKey\":\"CONTENT:public:example\"}.\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_dp_record","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordAddress"},"example":{"kind":"NODE","recordKey":"CONTENT:public:example"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerDpRecordResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["DATA_CONTENT","DATA_CREATOR"]}},"/gateway/dp_motifs":{"post":{"tags":["Gateway"],"summary":"the data platform's motif cards for one section: ranked content groups that share a pattern, with their members and figures. Example MCP arguments: {\"request\": {\"section\":\"SPREADING\"}}; the REST endpoint posts the inner {\"section\":\"SPREADING\"}.","description":"the data platform's motif cards for one section: ranked content groups that share a pattern, with their members and figures. Example MCP arguments: {\"request\": {\"section\":\"SPREADING\"}}; the REST endpoint posts the inner {\"section\":\"SPREADING\"}.\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_dp_motifs","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MotifQuery"},"example":{"section":"SPREADING"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerDpMotifsResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/elta_catalog":{"post":{"tags":["Gateway"],"summary":"list installed store-source declarations, data schemas and allowed level keys in levels (with titles and parents); use those keys for EntityRef.level and elta_store_capabilities for a store's current availability","description":"list installed store-source declarations, data schemas and allowed level keys in levels (with titles and parents); use those keys for EntityRef.level and elta_store_capabilities for a store's current availability\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_elta_catalog","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoArguments"},"example":{}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PluginDeclarationCatalog"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/elta_stores":{"post":{"tags":["Gateway"],"summary":"list stores with their connectors and sync state","description":"list stores with their connectors and sync state\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_elta_stores","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoArguments"},"example":{}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoresResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/elta_store_capabilities":{"post":{"tags":["Gateway"],"summary":"read a store's current lookup, action and dataset availability, including typed blockers","description":"read a store's current lookup, action and dataset availability, including typed blockers\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_elta_store_capabilities","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeStoreRequest"},"example":{"storeId":"store_1"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreCapabilities"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/elta_metrics":{"post":{"tags":["Gateway"],"summary":"read stored store metrics","description":"read stored store metrics\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_elta_metrics","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsRequest"},"example":{"metricKeys":["acos"],"level":"CAMPAIGN","days":{"startsOn":"2026-09-01","endsOn":"2026-09-02"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricPage"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/elta_facts":{"post":{"tags":["Gateway"],"summary":"read stored store facts","description":"read stored store facts\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_elta_facts","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FactsRequest"},"example":{"familyKey":"amazon.ads.sp_campaign_daily","days":{"startsOn":"2026-09-01","endsOn":"2026-09-02"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FactPage"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/elta_fact_history":{"post":{"tags":["Gateway"],"summary":"read one stored fact's history","description":"read one stored fact's history\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_elta_fact_history","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FactsRequest"},"example":{"familyKey":"amazon.ads.sp_campaign_daily","days":{"startsOn":"2026-09-01","endsOn":"2026-09-02"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FactHistoryResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/elta_changes":{"post":{"tags":["Gateway"],"summary":"read stored fact changes","description":"read stored fact changes\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_elta_changes","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangesRequest"},"example":{"familyKey":"amazon.ads.sp_campaign_daily","days":{"startsOn":"2026-09-01","endsOn":"2026-09-02"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FactChangePage"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/elta_lookup":{"post":{"tags":["Gateway"],"summary":"read live store data from an owner-visible store","description":"read live store data from an owner-visible store\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_elta_lookup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LookupRequest"},"example":{"storeId":"store_1","lookupKey":"google.gmail.search","accountId":"acct_1","query":{"q":"from:acme"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LookupPage"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["STORE_READ"]}},"/gateway/elta_query":{"post":{"tags":["Gateway"],"summary":"query stored store data with bounded aggregation","description":"query stored store data with bounded aggregation\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_elta_query","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryRequest"},"example":{"target":"METRIC_DAYS","pipeline":[{"$limit":10}]}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryPage"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/elta_preview_revert":{"post":{"tags":["Gateway"],"summary":"preview undo verdicts without filing an approval","description":"preview undo verdicts without filing an approval\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_elta_preview_revert","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevertRequest"},"example":{"proposalId":"proposal_1"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewView"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["STORE_READ"]}},"/gateway/elta_propose":{"post":{"tags":["Gateway"],"summary":"propose an ELTA provider change for human approval","description":"propose an ELTA provider change for human approval\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_elta_propose","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionBatch"},"example":{"actions":[{"actionKey":"example-action-1","actionTypeKey":"amazon.ads.set_target_bid","account":{"connectionId":"conn_1","accountId":"acct_1","timezone":"UTC"},"target":{"level":"TARGET","entity":"target_1"},"change":{"bid":"0.90"}}]}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProposalFiled"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["STORE_CAPTURE"]}},"/gateway/elta_propose_revert":{"post":{"tags":["Gateway"],"summary":"propose a safe undo for a recorded ELTA change","description":"propose a safe undo for a recorded ELTA change\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_elta_propose_revert","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevertRequest"},"example":{"proposalId":"proposal_1"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProposalFiled"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["STORE_CAPTURE"]}},"/gateway/approval_view":{"post":{"tags":["Gateway"],"summary":"view an ELTA proposal approval","description":"view an ELTA proposal approval\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_approval_view","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalViewRequest"},"example":{"itemId":"item_1"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalView"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/approval_decide":{"post":{"tags":["Gateway"],"summary":"approve or reject an ELTA proposal","description":"approve or reject an ELTA proposal\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_approval_decide","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalDecideRequest"},"example":{"itemId":"item_1","decision":"APPROVE"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalView"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["MCP","REST"],"x-keble-actors":["API_KEY","HUMAN"],"x-keble-features":[]}},"/gateway/artifect_create":{"post":{"tags":["Gateway"],"summary":"start one run of a hosted kind (replay-keyed); artifect_describe gives a kind's exact fields when you need them. Kinds: AMZ_PRODUCT_REPORT (Amazon product report): Analyse one Amazon product and its competitors into a sourced report, after the seller confirms the purchasing cost (single value or range) or explicitly agrees to Keble's estimate. A finished conclusion is updated by ONE judgment text update (no figures in its texts; a fixed can't-decide verdict stays fixed), never re-run; POSITIONING (Product positioning): Map a product market's competitors into a positioning grid across chosen dimensions; AMZ_ADS_ADVICE (Ads optimization advice): Review one connected store's Amazon Ads results and suggest bid, budget and keyword changes, unlike Ads advice changes, which only carries chosen changes to approval; SHOPIFY_THEME_UPDATE (Shopify theme changes): Edit a Shopify store's pages as Keble sections and settings, preview them on an unpublished theme copy and publish with one approval; use it instead of raw theme-file writes; AMZ_LISTING_CHANGES (Amazon listing changes): Propose Amazon listing edits for a connected store as a change list a person approves in the inbox; SHOPIFY_ARTICLE_CHANGES (Shopify blog post changes): Propose updates or deletions to existing Shopify blog posts as a change list a person approves in the inbox, unlike Shopify blog posts, which writes new ones; SHOPIFY_SEO_CHANGES (Shopify SEO changes): Propose SEO field fixes for a connected Shopify store as a change list a person approves in the inbox; SHOPIFY_GEO_CHANGES (Shopify GEO changes): Propose GEO content and FAQ fixes for a connected Shopify store as a change list a person approves in the inbox; AMZ_ADS_CHANGES (Ads advice changes): Propose bid, budget, pause and negative-keyword changes to one Amazon Ads account as a change list a person approves in the inbox, unlike Ads optimization advice, which analyses results; SHOPIFY_BLOG_POSTS (Shopify blog posts): Plan and write a set of new Shopify blog posts step by step and propose creating them for approval, unlike Shopify blog post changes, which edits existing posts; SHOPIFY_PRODUCT (Shopify product): Draft one new, unpublished Shopify product and propose creating it for approval; AMZ_LISTING (New Amazon listing): Draft one new Amazon seller listing and propose creating it for approval, unlike Amazon listing changes, which edits existing listings. A request is used once the work is dispatched and stays used for caller-caused outcomes (no data, expired input, a stop after start, a data question that is refused or asks for clarification) and for a timeout with no response; a refusal returned before any work started (a structured data search, cursor or record refusal, a create that started no run) uses nothing; it is released when the work ends in a Keble or provider error; balance is charged only on success.","description":"start one run of a hosted kind (replay-keyed); artifect_describe gives a kind's exact fields when you need them. Kinds: AMZ_PRODUCT_REPORT (Amazon product report): Analyse one Amazon product and its competitors into a sourced report, after the seller confirms the purchasing cost (single value or range) or explicitly agrees to Keble's estimate. A finished conclusion is updated by ONE judgment text update (no figures in its texts; a fixed can't-decide verdict stays fixed), never re-run; POSITIONING (Product positioning): Map a product market's competitors into a positioning grid across chosen dimensions; AMZ_ADS_ADVICE (Ads optimization advice): Review one connected store's Amazon Ads results and suggest bid, budget and keyword changes, unlike Ads advice changes, which only carries chosen changes to approval; SHOPIFY_THEME_UPDATE (Shopify theme changes): Edit a Shopify store's pages as Keble sections and settings, preview them on an unpublished theme copy and publish with one approval; use it instead of raw theme-file writes; AMZ_LISTING_CHANGES (Amazon listing changes): Propose Amazon listing edits for a connected store as a change list a person approves in the inbox; SHOPIFY_ARTICLE_CHANGES (Shopify blog post changes): Propose updates or deletions to existing Shopify blog posts as a change list a person approves in the inbox, unlike Shopify blog posts, which writes new ones; SHOPIFY_SEO_CHANGES (Shopify SEO changes): Propose SEO field fixes for a connected Shopify store as a change list a person approves in the inbox; SHOPIFY_GEO_CHANGES (Shopify GEO changes): Propose GEO content and FAQ fixes for a connected Shopify store as a change list a person approves in the inbox; AMZ_ADS_CHANGES (Ads advice changes): Propose bid, budget, pause and negative-keyword changes to one Amazon Ads account as a change list a person approves in the inbox, unlike Ads optimization advice, which analyses results; SHOPIFY_BLOG_POSTS (Shopify blog posts): Plan and write a set of new Shopify blog posts step by step and propose creating them for approval, unlike Shopify blog post changes, which edits existing posts; SHOPIFY_PRODUCT (Shopify product): Draft one new, unpublished Shopify product and propose creating it for approval; AMZ_LISTING (New Amazon listing): Draft one new Amazon seller listing and propose creating it for approval, unlike Amazon listing changes, which edits existing listings. A request is used once the work is dispatched and stays used for caller-caused outcomes (no data, expired input, a stop after start, a data question that is refused or asks for clarification) and for a timeout with no response; a refusal returned before any work started (a structured data search, cursor or record refusal, a create that started no run) uses nothing; it is released when the work ends in a Keble or provider error; balance is charged only on success.\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_artifect_create","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ArtifectReportCreate"},{"$ref":"#/components/schemas/ArtifectPositioningCreate"},{"$ref":"#/components/schemas/ArtifectAdsAdviceCreate"},{"$ref":"#/components/schemas/ArtifectShopifyThemeCreate"},{"$ref":"#/components/schemas/ArtifectChangeListCreate"},{"$ref":"#/components/schemas/ArtifectShopifyBlogPostsCreate"},{"$ref":"#/components/schemas/ArtifectShopifyProductCreate"},{"$ref":"#/components/schemas/ArtifectAmzListingCreate"}],"title":"Request","discriminator":{"propertyName":"kind","mapping":{"AMZ_PRODUCT_REPORT":"#/components/schemas/ArtifectReportCreate","POSITIONING":"#/components/schemas/ArtifectPositioningCreate","AMZ_ADS_ADVICE":"#/components/schemas/ArtifectAdsAdviceCreate","SHOPIFY_THEME_UPDATE":"#/components/schemas/ArtifectShopifyThemeCreate","AMZ_LISTING_CHANGES":"#/components/schemas/ArtifectChangeListCreate","SHOPIFY_ARTICLE_CHANGES":"#/components/schemas/ArtifectChangeListCreate","SHOPIFY_SEO_CHANGES":"#/components/schemas/ArtifectChangeListCreate","SHOPIFY_GEO_CHANGES":"#/components/schemas/ArtifectChangeListCreate","AMZ_ADS_CHANGES":"#/components/schemas/ArtifectChangeListCreate","SHOPIFY_BLOG_POSTS":"#/components/schemas/ArtifectShopifyBlogPostsCreate","SHOPIFY_PRODUCT":"#/components/schemas/ArtifectShopifyProductCreate","AMZ_LISTING":"#/components/schemas/ArtifectAmzListingCreate"}}},"example":{"kind":"AMZ_PRODUCT_REPORT","replayKey":"example-replay-1","asin":"B0EXAMPLE1","amazonMarketplace":"US","purchaseCost":{"source":"SYSTEM_ESTIMATED","sellerAgreed":true}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerArtifectCreateResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["ARTIFECT_AMZ_PRODUCT_REPORT","ARTIFECT_POSITIONING","ARTIFECT_AMZ_ADS_ADVICE","ARTIFECT_PRODUCT_IMAGES","STORE_CAPTURE"]}},"/gateway/artifect_answer":{"post":{"tags":["Gateway"],"summary":"answer a run's pending question (replay-keyed); a kind's decision bodies are its artifect_describe decision section, and a kind without one asks none. For REPORT_SCOPE, require at least one non-blank owner-confirmed keyword; candidates carry none, so never derive one. Input: {\"ref\":{\"id\":\"run_1\"},\"answer\":{\"inputKey\":\"REPORT_SCOPE:a1b2c3d4\",\"expectedRevision\":0,\"replayKey\":\"answer_1\",\"decision\":{\"decisionType\":\"REPORT_SCOPE\",\"categoryId\":1,\"keywords\":[\"running shoes\"]}}}","description":"answer a run's pending question (replay-keyed); a kind's decision bodies are its artifect_describe decision section, and a kind without one asks none. For REPORT_SCOPE, require at least one non-blank owner-confirmed keyword; candidates carry none, so never derive one. Input: {\"ref\":{\"id\":\"run_1\"},\"answer\":{\"inputKey\":\"REPORT_SCOPE:a1b2c3d4\",\"expectedRevision\":0,\"replayKey\":\"answer_1\",\"decision\":{\"decisionType\":\"REPORT_SCOPE\",\"categoryId\":1,\"keywords\":[\"running shoes\"]}}}\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_artifect_answer","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifectAnswerRequest"},"example":{"ref":{"id":"artifect_1"},"answer":{"inputKey":"REPORT_SCOPE:a1b2c3d4","expectedRevision":0,"replayKey":"example-answer-1","decision":{"decisionType":"REPORT_SCOPE","categoryId":1,"keywords":["running shoes"]}}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerArtifectDecisionResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["STORE_CAPTURE"]}},"/gateway/artifect_adjust":{"post":{"tags":["Gateway"],"summary":"revise a run's finished result (replay-keyed); a kind's adjustment bodies are its artifect_describe adjustment section, and a kind without one is read-only. Pass a nested ref and the edit in adjust; a rejected adjustment needs a new replayKey. Input: {\"ref\":{\"id\":\"run_1\"},\"adjust\":{\"baseRevision\":0,\"replayKey\":\"adjust_1\",\"adjustment\":{\"adjustmentType\":\"EXCLUDE_ASINS\",\"asins\":[\"B000000001\"]}}}","description":"revise a run's finished result (replay-keyed); a kind's adjustment bodies are its artifect_describe adjustment section, and a kind without one is read-only. Pass a nested ref and the edit in adjust; a rejected adjustment needs a new replayKey. Input: {\"ref\":{\"id\":\"run_1\"},\"adjust\":{\"baseRevision\":0,\"replayKey\":\"adjust_1\",\"adjustment\":{\"adjustmentType\":\"EXCLUDE_ASINS\",\"asins\":[\"B000000001\"]}}}\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_artifect_adjust","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifectAdjustRequest"},"example":{"ref":{"id":"artifect_1"},"adjust":{"baseRevision":0,"replayKey":"example-adjust-1","adjustment":{"adjustmentType":"EXCLUDE_ASINS","asins":["B0EXAMPLE1"]}}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerArtifectDecisionResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["STORE_CAPTURE"]}},"/gateway/artifect_cancel":{"post":{"tags":["Gateway"],"summary":"cancel a run; pass the returned ref fields directly as {\"id\":\"...\"}, never {\"ref\":{\"id\":\"...\"}}. Input: {\"id\":\"run_1\"}","description":"cancel a run; pass the returned ref fields directly as {\"id\":\"...\"}, never {\"ref\":{\"id\":\"...\"}}. Input: {\"id\":\"run_1\"}\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_artifect_cancel","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifectRef"},"example":{"id":"artifect_1"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerArtifectStatusResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["STORE_CAPTURE"]}},"/gateway/artifect_status":{"post":{"tags":["Gateway"],"summary":"where a run stands and what it is waiting for; pass the returned ref fields directly as {\"id\":\"...\"}, never {\"ref\":{\"id\":\"...\"}}. A request is used once the work is dispatched and stays used for caller-caused outcomes (no data, expired input, a stop after start, a data question that is refused or asks for clarification) and for a timeout with no response; a refusal returned before any work started (a structured data search, cursor or record refusal, a create that started no run) uses nothing; it is released when the work ends in a Keble or provider error; balance is charged only on success. Input: {\"id\":\"run_1\"}","description":"where a run stands and what it is waiting for; pass the returned ref fields directly as {\"id\":\"...\"}, never {\"ref\":{\"id\":\"...\"}}. A request is used once the work is dispatched and stays used for caller-caused outcomes (no data, expired input, a stop after start, a data question that is refused or asks for clarification) and for a timeout with no response; a refusal returned before any work started (a structured data search, cursor or record refusal, a create that started no run) uses nothing; it is released when the work ends in a Keble or provider error; balance is charged only on success. Input: {\"id\":\"run_1\"}\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_artifect_status","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifectRef"},"example":{"id":"artifect_1"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerArtifectStatusResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["STORE_READ"]}},"/gateway/artifect_read_input":{"post":{"tags":["Gateway"],"summary":"the inputs a run is waiting for","description":"the inputs a run is waiting for\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_artifect_read_input","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifectInputRequest"},"example":{"ref":{"id":"artifect_1"},"inputKey":"DIMENSIONS:a1b2c3d4"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerArtifectInputResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["STORE_READ"]}},"/gateway/artifect_snapshot":{"post":{"tags":["Gateway"],"summary":"a run's result; pass a nested ref. Omit revision for the run's current result; an explicit revision must be a committed one, 1 or more. A positioning keeps only its current revision, so keep your own copies to compare. Input: {\"ref\":{\"id\":\"run_1\"}}","description":"a run's result; pass a nested ref. Omit revision for the run's current result; an explicit revision must be a committed one, 1 or more. A positioning keeps only its current revision, so keep your own copies to compare. Input: {\"ref\":{\"id\":\"run_1\"}}\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_artifect_snapshot","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifectSnapshotRequest"},"example":{"ref":{"id":"artifect_1"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerArtifectSnapshotResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["STORE_READ"]}},"/gateway/artifect_detail":{"post":{"tags":["Gateway"],"summary":"one detail of a run, asked in the run's own kind; pass a nested ref and a query whose kind is the run's kind. A kind's query fields are its artifect_describe detailQuery section; a kind without one has no detail, so read its snapshot. Input: {\"ref\":{\"id\":\"run_1\"},\"query\":{\"kind\":\"AMZ_PRODUCT_REPORT\",\"query\":{\"object\":\"report_listing\",\"asin\":\"B0EXAMPLE1\"}}}","description":"one detail of a run, asked in the run's own kind; pass a nested ref and a query whose kind is the run's kind. A kind's query fields are its artifect_describe detailQuery section; a kind without one has no detail, so read its snapshot. Input: {\"ref\":{\"id\":\"run_1\"},\"query\":{\"kind\":\"AMZ_PRODUCT_REPORT\",\"query\":{\"object\":\"report_listing\",\"asin\":\"B0EXAMPLE1\"}}}\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_artifect_detail","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifectDetailRequest"},"example":{"ref":{"id":"artifect_1"},"query":{"kind":"AMZ_PRODUCT_REPORT","query":{"object":"report_listing","asin":"B0EXAMPLE1"}}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerArtifectDetailResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["STORE_READ"]}},"/gateway/artifect_plugins":{"post":{"tags":["Gateway"],"summary":"the positioning plugins a run may use","description":"the positioning plugins a run may use\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_artifect_plugins","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoArguments"},"example":{}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerArtifectPluginListResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["STORE_READ"]}},"/gateway/artifect_runs":{"post":{"tags":["Gateway"],"summary":"your own Artifect runs, newest first, with timestamp paging; omit kind to list every kind together.","description":"your own Artifect runs, newest first, with timestamp paging; omit kind to list every kind together.\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_artifect_runs","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifectRunsRequest"},"example":{"kind":"AMZ_ADS_ADVICE","storeId":"st_1"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifectRunList"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["STORE_READ"]}},"/gateway/artifect_describe":{"post":{"tags":["Gateway"],"summary":"one hosted kind's label, purpose and exact request fields: requestSchema is a JSON Schema whose create, adjustment, decision and detailQuery sections are the bodies artifect_create, artifect_adjust, artifect_answer and artifect_detail accept; a missing section means the kind has none","description":"one hosted kind's label, purpose and exact request fields: requestSchema is a JSON Schema whose create, adjustment, decision and detailQuery sections are the bodies artifect_create, artifect_adjust, artifect_answer and artifect_detail accept; a missing section means the kind has none\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_artifect_describe","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifectDescribeRequest"},"example":{"kind":"AMZ_PRODUCT_REPORT"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifectKindDescription"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/artifect_photo_links":{"post":{"tags":["Gateway"],"summary":"save HTTPS seller photo links (origin UPLOAD, the default) or found public image links (origin REFERENCE) for scene style evidence; references never become photos or design pixels","description":"save HTTPS seller photo links (origin UPLOAD, the default) or found public image links (origin REFERENCE) for scene style evidence; references never become photos or design pixels\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_artifect_photo_links","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhotoLinksRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhotoLinksAdded"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["STORE_CAPTURE"]}},"/gateway/todo_create":{"post":{"tags":["Gateway"],"summary":"add a todo; the same key and identical intent return the first item; a changed intent is refused","description":"add a todo; the same key and identical intent return the first item; a changed intent is refused\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_todo_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TodoCreate"},"example":{"content":{"title":"Review the weekly report"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateResult"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/todo_complete":{"post":{"tags":["Gateway"],"summary":"mark one todo done","description":"mark one todo done\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_todo_complete","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboxItemRef"},"example":{"itemId":"item_1"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TodoItem"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/todo_withdraw":{"post":{"tags":["Gateway"],"summary":"withdraw a todo or approval this agent created and that is still open; never a person's item","description":"withdraw a todo or approval this agent created and that is still open; never a person's item\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_todo_withdraw","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboxItemRef"},"example":{"itemId":"item_1"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerInboxItemResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/inbox_pending":{"post":{"tags":["Gateway"],"summary":"the owner's open todos and pending approvals","description":"the owner's open todos and pending approvals\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_inbox_pending","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboxPendingRequest"},"example":{}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemPage"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/inbox_get":{"post":{"tags":["Gateway"],"summary":"one inbox item in any status","description":"one inbox item in any status\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_inbox_get","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboxItemRef"},"example":{"itemId":"item_1"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerInboxItemResponse"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":[]}},"/gateway/amz_profit_calculate":{"post":{"tags":["Gateway"],"summary":"calculate one product's profit breakdown from its cost and shipping profile","description":"calculate one product's profit breakdown from its cost and shipping profile\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_amz_profit_calculate","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmzProfitCalculateRequest"},"example":{"costProfile":{"len1":20.0,"len2":12.0,"len3":5.0,"lenUnit":"cm","marketplace":"US","weight":0.45,"weightUnit":"kg","expectedAdsCostRatio":0.2,"expectedPurchasingCost":{"amount":{"value":3000},"currency":"CNY"},"expectedAverageDailyInventoryVolume":30,"expectedAverageDailyShippedVolume":3,"isApparel":false,"isDangerousGoods":false,"isBattery":false,"feeCategoryString":"HOME_AND_KITCHEN","exchangeRates":[{"currency":"USD","exchangeRate":{"value":100}},{"currency":"CNY","exchangeRate":{"value":720}},{"currency":"CAD","exchangeRate":{"value":136}},{"currency":"EUR","exchangeRate":{"value":92}},{"currency":"GBP","exchangeRate":{"value":79}},{"currency":"JPY","exchangeRate":{"value":15000}},{"currency":"MXN","exchangeRate":{"value":1700}},{"currency":"PLN","exchangeRate":{"value":400}},{"currency":"SEK","exchangeRate":{"value":1050}}],"price":{"amount":{"value":3999},"currency":"USD"}},"shippingProfile":{"exchangeRates":[{"currency":"USD","exchangeRate":{"value":100}},{"currency":"CNY","exchangeRate":{"value":720}},{"currency":"CAD","exchangeRate":{"value":136}},{"currency":"EUR","exchangeRate":{"value":92}},{"currency":"GBP","exchangeRate":{"value":79}},{"currency":"JPY","exchangeRate":{"value":15000}},{"currency":"MXN","exchangeRate":{"value":1700}},{"currency":"PLN","exchangeRate":{"value":400}},{"currency":"SEK","exchangeRate":{"value":1050}}],"freightPerKg":{"amount":{"value":3},"currency":"USD"},"airPerKg":{"amount":{"value":8},"currency":"USD"}}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfitBreakdown"}}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["AGENT","MCP","REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["TOOL_AMZ_PROFIT_CALCULATOR"]}},"/gateway/artifect_workbook":{"get":{"tags":["Gateway"],"summary":"download an Ads optimization suggestions run as an Excel workbook","description":"download an Ads optimization suggestions run as an Excel workbook\n\nGateway glossary:\n- Site marketplace: US (keble.ai) or CN (keble.cn); it selects the default answer language, not the source-data market.\n- Answer language: an explicit answerLanguage or artifect language wins; otherwise use the site header, then Chinese for a CNY account, otherwise English.\n- Source market: the DP market region of source data; it is a global-data filter and is never filled from the site marketplace. Stored reads may leave it unset; live reads require the market declared by the catalog.\n- Content language: the language a video is in; it is a stored attribute, not a customer filter.\n- Amazon marketplace: the Amazon store a report analyses; it is an explicit report input.\n- Refusal recovery: a refused read carries a code naming what went wrong and, when one request field can fix it, a field naming that request field's contract name in snake_case, for example from_object is search.fromObject (the one exception is the public recordKey alias, which keeps its camelCase spelling). Change that field and call again; the detail sentence is safe to relay. SOURCE_REJECTED_REQUEST is a typed refusal: relay its detail verbatim, correct the stated constraint and retry, rather than treating it as an upstream outage.\n- Partial answers: unapplied lists the person's own words, verbatim, that could not be applied. Say plainly which part of the question was left out.\n- Evidence: each matched fact carries a basis of recorded, mentioned or similar, plus the source snippet. An entity hit also carries a promoted flag; say promoted only when that flag is true, never re-derived from the basis. When the person asks about praise, criticism or comparison, prefer the relation's stance, emotion and phrase when present, and fall back to the hit's caption or transcript before characterising it.\n- Families: an entity page groups listing hits by familyKey and adds a families summary with each family's label, member count and price range.\n- Money: a money cell is a major-unit decimal string (for example \"19.99\") paired with its own currency column. Read the two together and never treat the digits as minor units.\n- Revision: a revision of 1 or more means work has started and its requests are already counted.\n- Ads window: day windows are inclusive (d, d-1, d-7); l7 is the last 7 days and p7 the 7 days before that, in the account's reporting timezone.\n- Ads money: amounts are in major units with ACOS as a percent; a noChange summary means nothing changed in the window.\n- Ads levels: parent and child spend overlap, so never add them across levels.\n- Ads advice results are read-only: no tool changes a row or applies it. When the person asks for a change, say it is made in the Amazon Ads console, and that the result page's Excel download lists every advised row to work from; one-click changes are not available yet.","operationId":"gateway_artifect_workbook","parameters":[{"name":"ref","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"description":"The run to download.","title":"Ref"},"description":"The run to download."},{"name":"language","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Language","description":"Language of the workbook labels."},"description":"Language of the workbook labels."}],"responses":{"200":{"description":"Successful Response","content":{"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{}}},"401":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"403":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"409":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"428":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"422":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"404":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"429":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"402":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"503":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"502":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}},"504":{"description":"The request was refused with this HTTP status. Read the \"code\" field of the response body for the exact refusal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayError"}}}}},"x-keble-surfaces":["REST"],"x-keble-actors":["AGENT","HUMAN"],"x-keble-features":["STORE_READ"]}}},"components":{"schemas":{"AbsencePolicy":{"type":"string","enum":["ZERO_WHEN_COVERED","UNKNOWN"],"title":"AbsencePolicy","description":"What an entity missing from a confirmed day means for its family."},"AbsoluteTargetBidValue":{"properties":{"kind":{"type":"string","const":"target_bid","title":"Kind","default":"target_bid"},"bid":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Bid"}},"additionalProperties":false,"type":"object","required":["bid"],"title":"AbsoluteTargetBidValue","description":"An absolute bid for a keyword, a product target or an exact-harvest keyword."},"AccountChoice":{"properties":{"accountId":{"type":"string","minLength":1,"title":"Accountid","description":"Stored account identifier."},"label":{"type":"string","minLength":1,"title":"Label","description":"Readable account or marketplace name."}},"additionalProperties":false,"type":"object","required":["accountId","label"],"title":"AccountChoice","description":"One owner-visible account option offered when the caller must select an account."},"AccountRef":{"properties":{"connectionId":{"type":"string","minLength":1,"title":"Connectionid","description":"Connector reaching this account."},"accountId":{"type":"string","minLength":1,"title":"Accountid","description":"Account identifier within the source."},"timezone":{"type":"string","maxLength":64,"minLength":1,"title":"Timezone","description":"Reporting timezone of this account."},"currency":{"anyOf":[{"type":"string","pattern":"^[A-Z]{3}$"},{"type":"null"}],"title":"Currency","description":"Account currency; null when no money is reported."}},"additionalProperties":false,"type":"object","required":["connectionId","accountId","timezone"],"title":"AccountRef","description":"One provider account reached through one bound connection."},"ActionBatch":{"properties":{"actions":{"items":{"$ref":"#/components/schemas/ProviderAction"},"type":"array","minItems":1,"title":"Actions","description":"Requested actions in order, each with a unique action_key."}},"additionalProperties":false,"type":"object","required":["actions"],"title":"ActionBatch","description":"One non-empty proposal batch with a unique caller-owned key for each action."},"ActionDiff":{"properties":{"actionKey":{"type":"string","minLength":1,"title":"Actionkey","description":"Proposal action row key."},"kind":{"$ref":"#/components/schemas/ActionKind","description":"ADD, SET or REMOVE action presentation kind."},"status":{"$ref":"#/components/schemas/ActionStatus","description":"Proposal preview or apply status for this row."},"target":{"$ref":"#/components/schemas/EntityRef"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Provider display label, when available."},"lines":{"items":{"$ref":"#/components/schemas/DiffLine"},"type":"array","title":"Lines","description":"Derived field-level change lines.","default":[]},"fidelity":{"$ref":"#/components/schemas/RevertFidelity","description":"Declared completeness of the action's undo."},"revertible":{"type":"boolean","title":"Revertible","description":"Whether this row can be reverted: on a stored view, an applied, not yet reverted action whose fidelity is not NONE; on a preview, the declared limit. Never true when fidelity is NONE.","default":false},"revertNote":{"anyOf":[{"$ref":"#/components/schemas/StoreLocalizedText"},{"type":"null"}],"description":"Provider-specific undo limitation (3.5.0: bilingual)."},"alsoPending":{"items":{"type":"string","minLength":1},"type":"array","title":"Alsopending","description":"Other open proposals touching the same change key.","default":[]}},"additionalProperties":false,"type":"object","required":["actionKey","kind","status","target","fidelity"],"title":"ActionDiff","description":"One derived action diff with its declared undo fidelity and whether the row is revertible."},"ActionFamily":{"properties":{"key":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Key","description":"Write-family identifier."},"title":{"$ref":"#/components/schemas/StoreLocalizedText","description":"Owner-facing name of this write family."}},"additionalProperties":false,"type":"object","required":["key","title"],"title":"ActionFamily","description":"One owner-facing group of actions that a store can enable or disable together."},"ActionIntent":{"type":"string","enum":["SET_BID","SET_STATE","SET_DAILY_BUDGET","ADD_KEYWORD","ADD_NEGATIVE_KEYWORD"],"title":"ActionIntent","description":"ELTA-owned neutral write meanings, without provider wire names."},"ActionKind":{"type":"string","enum":["SET","ADD","REMOVE"],"title":"ActionKind","description":"What one action does to its target; it selects the shared gate and diff colour."},"ActionOutcome":{"properties":{"actionKey":{"type":"string","minLength":1,"title":"Actionkey","description":"The action row this outcome belongs to."},"status":{"$ref":"#/components/schemas/ActionStatus","description":"Preview or apply result for this action."},"current":{"anyOf":[{"$ref":"#/components/schemas/JsonValue"},{"type":"null"}],"description":"Current provider value when available."},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Provider label for the target, when available."},"created":{"anyOf":[{"$ref":"#/components/schemas/EntityRef"},{"type":"null"}]},"issue":{"anyOf":[{"$ref":"#/components/schemas/ProviderIssue"},{"type":"null"}],"description":"Provider-owned refusal reason."},"refusal":{"anyOf":[{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$"},{"type":"null"}],"title":"Refusal","description":"ELTA-owned write-gate refusal reason."},"blockedBy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blockedby","description":"Earlier row or apply record holding a conflicting change key."},"problems":{"items":{"$ref":"#/components/schemas/FieldProblem"},"type":"array","title":"Problems","description":"Field-level provider validation details.","default":[]},"quote":{"anyOf":[{"$ref":"#/components/schemas/JsonValue"},{"type":"null"}],"description":"Provider estimate included in this outcome."},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Opaque live token read at preview."},"createdVersion":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Createdversion","description":"Provider version of the entity an applied ADD created."}},"additionalProperties":false,"type":"object","required":["actionKey","status"],"title":"ActionOutcome","description":"Live preview or final result for one action, with one typed refusal reason if rejected."},"ActionProposal":{"properties":{"object":{"type":"string","const":"action_proposal","title":"Object","description":"Fixed tag marking an action proposal.","default":"action_proposal"},"proposalId":{"type":"string","minLength":1,"title":"Proposalid","description":"Identifier of this proposal."},"storeId":{"type":"string","minLength":1,"title":"Storeid","description":"Store whose write policy applies."},"account":{"$ref":"#/components/schemas/AccountRef","description":"Account every action of this proposal targets."},"batch":{"$ref":"#/components/schemas/ActionBatch","description":"Requested provider changes."},"replayKey":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Replaykey","description":"Caller-owned idempotency key."},"attribution":{"anyOf":[{"$ref":"#/components/schemas/ProposalAttribution"},{"type":"null"}],"description":"Origin and reason frozen at creation; null for 3.2 proposals; not hashed."},"decline":{"anyOf":[{"$ref":"#/components/schemas/ProposalDecline"},{"type":"null"}],"description":"Decline actor and reason; set exactly on a DECLINED proposal; not hashed."},"previews":{"items":{"$ref":"#/components/schemas/ActionOutcome"},"type":"array","title":"Previews","description":"One live outcome per action, in order."},"reverts":{"items":{"$ref":"#/components/schemas/RevertLink"},"type":"array","title":"Reverts","description":"Apply records this proposal is attempting to revert.","default":[]},"proposalHash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","title":"Proposalhash","description":"Hash of the exact proposal contents."},"proposedAt":{"type":"string","format":"date-time","title":"Proposedat","description":"Instant the proposal was created."},"expiresAt":{"type":"string","format":"date-time","title":"Expiresat","description":"Instant after which the proposal cannot be applied."},"state":{"$ref":"#/components/schemas/ProposalState","description":"Proposal lifecycle state.","default":"PROPOSED"},"outcomes":{"items":{"$ref":"#/components/schemas/ActionOutcome"},"type":"array","title":"Outcomes","description":"One final outcome per action, set after proposal application.","default":[]}},"additionalProperties":false,"type":"object","required":["proposalId","storeId","account","batch","previews","proposalHash","proposedAt","expiresAt"],"title":"ActionProposal","description":"Stored proposal plus preview and eventual outcomes for one store and account."},"ActionStatus":{"type":"string","enum":["ACCEPTED","APPLIED","NO_CHANGE","REJECTED","UNKNOWN"],"title":"ActionStatus","description":"Preview or apply result for one action; equality-to-preview is not a status."},"AddBlock":{"properties":{"action":{"type":"string","const":"ADD_BLOCK","title":"Action","default":"ADD_BLOCK"},"sectionKey":{"type":"string","pattern":"^keble-[a-z0-9][a-z0-9-]{0,56}$","title":"Sectionkey"},"block":{"$ref":"#/components/schemas/ThemeBlockInstance"},"after":{"anyOf":[{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,62}$"},{"type":"null"}],"title":"After"}},"additionalProperties":false,"type":"object","required":["sectionKey","block"],"title":"AddBlock","description":"Add one block (caller-chosen stable key) to a section after another block (None: at the end)."},"AddDesign":{"properties":{"action":{"type":"string","const":"ADD_DESIGN","title":"Action","default":"ADD_DESIGN"},"designId":{"type":"string","title":"Designid"},"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"preset":{"type":"string","enum":["amazon.aplus.banner","amazon.aplus.comparison","amazon.aplus.four_image","amazon.aplus.header","amazon.aplus.logo","amazon.aplus.quadrant","amazon.aplus.single","amazon.aplus_premium.full_width","amazon.brand_story.background","amazon.brand_story.card","amazon.main","amazon.secondary","custom","shopify.blog_featured","shopify.collection","shopify.product"],"title":"Preset"},"size":{"anyOf":[{"$ref":"#/components/schemas/PixelSize"},{"type":"null"}]},"position":{"anyOf":[{"$ref":"#/components/schemas/BoardPoint"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["designId","name","preset"],"title":"AddDesign","description":"Add an empty OWN image; layouts come only from ApplyTemplate (one template path, G5)."},"AddItems":{"properties":{"type":{"type":"string","const":"ADD_ITEMS","title":"Type","default":"ADD_ITEMS"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"items":{"items":{"$ref":"#/components/schemas/SourcedItem"},"type":"array","minItems":1,"title":"Items"}},"additionalProperties":false,"type":"object","required":["actionKey","items"],"title":"AddItems","description":"Add items by hand, as relevant; facts are checked against the declaration, nothing else."},"AddLayer":{"properties":{"action":{"type":"string","const":"ADD_LAYER","title":"Action","default":"ADD_LAYER"},"designId":{"type":"string","title":"Designid"},"layer":{"oneOf":[{"$ref":"#/components/schemas/ImageLayer"},{"$ref":"#/components/schemas/TextLayer"},{"$ref":"#/components/schemas/ShapeLayer"},{"$ref":"#/components/schemas/GroupLayer"}],"title":"Layer","discriminator":{"propertyName":"kind","mapping":{"GROUP":"#/components/schemas/GroupLayer","IMAGE":"#/components/schemas/ImageLayer","SHAPE":"#/components/schemas/ShapeLayer","TEXT":"#/components/schemas/TextLayer"}}},"above":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Above"},"parent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent"}},"additionalProperties":false,"type":"object","required":["designId","layer"],"title":"AddLayer","description":"Insert a layer (caller-minted id) above above, or at the top when None."},"AddNegativeKeywordValue":{"properties":{"kind":{"type":"string","const":"negative_keyword","title":"Kind","default":"negative_keyword"},"matchType":{"$ref":"#/components/schemas/AdsNegativeMatch"}},"additionalProperties":false,"type":"object","required":["matchType"],"title":"AddNegativeKeywordValue","description":"The negative-keyword match type only; the text is the row's exact search term."},"AddPage":{"properties":{"action":{"type":"string","const":"ADD_PAGE","title":"Action","default":"ADD_PAGE"},"template":{"$ref":"#/components/schemas/ThemeTemplateRef"},"previewPath":{"type":"string","pattern":"^/(?:[a-z0-9][a-z0-9_-]*(?:/[a-z0-9][a-z0-9_-]*)*)?$","title":"Previewpath"},"newPage":{"anyOf":[{"$ref":"#/components/schemas/NewKeblePage"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["template","previewPath"],"title":"AddPage","description":"Add an empty page for one template (UNKNOWN target refusals are the runtime's)."},"AddPlan":{"properties":{"action":{"type":"string","const":"ADD_PLAN","title":"Action","default":"ADD_PLAN"},"objectId":{"type":"string","title":"Objectid"},"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"sourceId":{"type":"string","title":"Sourceid"},"columns":{"items":{"$ref":"#/components/schemas/PlanColumn"},"type":"array","minItems":1,"title":"Columns"},"rows":{"items":{"$ref":"#/components/schemas/PlanRow"},"type":"array","title":"Rows","default":[]},"position":{"anyOf":[{"$ref":"#/components/schemas/BoardPoint"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["objectId","name","sourceId","columns"],"title":"AddPlan","description":"Add a content plan whose rows will become variants of the OWN image source_id."},"AddRows":{"properties":{"op":{"type":"string","const":"ADD_ROWS","title":"Op","default":"ADD_ROWS"},"rows":{"items":{"$ref":"#/components/schemas/NewChangeRow"},"type":"array","minItems":1,"title":"Rows"}},"additionalProperties":false,"type":"object","required":["rows"],"title":"AddRows","description":"Append rows (create also uses this shape)."},"AddSection":{"properties":{"action":{"type":"string","const":"ADD_SECTION","title":"Action","default":"ADD_SECTION"},"page":{"$ref":"#/components/schemas/ThemeTemplateRef"},"section":{"$ref":"#/components/schemas/ThemeSectionInstance"},"after":{"anyOf":[{"type":"string","pattern":"^(?:@start|[A-Za-z0-9_-]{1,64})$"},{"type":"null"}],"title":"After"}},"additionalProperties":false,"type":"object","required":["page","section"],"title":"AddSection","description":"Place a new section (caller-chosen stable key) on a page after an anchor (None: at the end)."},"AdsAdType":{"type":"string","enum":["SP","SB","SD"],"title":"AdsAdType","description":"Amazon Ads product family one row belongs to (ELTA1 TodoAdType)."},"AdsAdviceAction":{"type":"string","enum":["LOWER_BID","NEGATE","PAUSE","RAISE_BID","RAISE_BUDGET","HARVEST_EXACT","HOLD"],"title":"AdsAdviceAction","description":"The one action the AI picks for one reviewed row (ELTA1 TodayAdviceAction)."},"AdsAdviceRow":{"properties":{"rowKey":{"type":"string","pattern":"^r[1-9][0-9]*$","title":"Rowkey"},"level":{"$ref":"#/components/schemas/AdsLevel"},"adType":{"$ref":"#/components/schemas/AdsAdType"},"entityId":{"type":"string","maxLength":512,"minLength":1,"title":"Entityid"},"campaignId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaignid"},"adGroupId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Adgroupid"},"keywordId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Keywordid"},"targetId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Targetid"},"advertisedAsin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Advertisedasin"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"campaignName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaignname"},"adGroupName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Adgroupname"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"budget":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Budget"},"matchType":{"anyOf":[{"$ref":"#/components/schemas/AdsMatchType"},{"type":"null"}]},"bid":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Bid"},"d":{"$ref":"#/components/schemas/AdsWindowMetrics"},"dMinus1":{"$ref":"#/components/schemas/AdsWindowMetrics"},"dMinus7":{"$ref":"#/components/schemas/AdsWindowMetrics"},"l7":{"$ref":"#/components/schemas/AdsWindowMetrics"},"p7":{"$ref":"#/components/schemas/AdsWindowMetrics"},"triggerCodes":{"items":{"$ref":"#/components/schemas/AdsTriggerCode"},"type":"array","minItems":1,"title":"Triggercodes"},"foldedInto":{"anyOf":[{"type":"string","pattern":"^r[1-9][0-9]*$"},{"type":"null"}],"title":"Foldedinto"}},"additionalProperties":false,"type":"object","required":["rowKey","level","adType","entityId","d","dMinus1","dMinus7","l7","p7","triggerCodes"],"title":"AdsAdviceRow","description":"One flagged entity row of one marketplace, with its five windows."},"AdsChangeListAbsenceReason":{"type":"string","enum":["NO_ONE_CLICK_ROWS","NO_ADS_ACCOUNT","NOT_HOSTED","CREATE_FAILED"],"title":"AdsChangeListAbsenceReason","description":"Why a marketplace that shows advice has no one-click AMZ_ADS_CHANGES list."},"AdsDecisionType":{"type":"string","enum":["ADS_ROW_AUDIT"],"title":"AdsDecisionType","description":"The Ads kind's one agent decision on the shared decision_type discriminator."},"AdsEvidenceField":{"type":"string","enum":["name","campaign_name","ad_group_name","state","budget","bid","trigger_codes","advertised_asin"],"title":"AdsEvidenceField","description":"The non-metric source facts of one AdsAdviceRow a citation may name."},"AdsEvidenceRole":{"type":"string","enum":["SUPPORTS","CAUTION"],"title":"AdsEvidenceRole","description":"Whether one cited fact supports or cautions against the advice."},"AdsLevel":{"type":"string","enum":["CAMPAIGN","AD_GROUP","KEYWORD","TARGET","SEARCH_TERM","ADVERTISED_PRODUCT"],"title":"AdsLevel","description":"Advice grain, mapped explicitly onto ELTA's EntityLevel."},"AdsLevelNoChange":{"properties":{"level":{"$ref":"#/components/schemas/AdsLevel"},"count":{"type":"integer","minimum":0.0,"title":"Count"},"l7Spend":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"L7Spend"}},"additionalProperties":false,"type":"object","required":["level","count"],"title":"AdsLevelNoChange","description":"Rows of one level that raised no signal: the proof of what was not shown."},"AdsMarketplaceAdvice":{"properties":{"marketplace":{"$ref":"#/components/schemas/AmazonMarketplace"},"currency":{"$ref":"#/components/schemas/Currency"},"anchorDay":{"type":"string","format":"date","title":"Anchorday"},"completeness":{"$ref":"#/components/schemas/AdsWindowCompleteness"},"screenedCount":{"type":"integer","minimum":0.0,"title":"Screenedcount"},"candidateCount":{"type":"integer","minimum":0.0,"title":"Candidatecount"},"candidateOverflow":{"type":"boolean","title":"Candidateoverflow","default":false},"noChange":{"items":{"$ref":"#/components/schemas/AdsLevelNoChange"},"type":"array","title":"Nochange","default":[]},"rows":{"items":{"$ref":"#/components/schemas/AdsAdviceRow"},"type":"array","title":"Rows","default":[]},"reviews":{"items":{"$ref":"#/components/schemas/AdsRowReview"},"type":"array","title":"Reviews","default":[]},"targetAcosPct":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Targetacospct"},"oneClick":{"items":{"$ref":"#/components/schemas/AdsRowOneClick"},"type":"array","title":"Oneclick","default":[]}},"additionalProperties":false,"type":"object","required":["marketplace","currency","anchorDay","completeness","screenedCount","candidateCount"],"title":"AdsMarketplaceAdvice","description":"The screen and review result of ONE marketplace of the store."},"AdsMarketplaceQuery":{"properties":{"object":{"type":"string","const":"ads_marketplace","title":"Object","default":"ads_marketplace"},"marketplace":{"$ref":"#/components/schemas/AmazonMarketplace"},"action":{"anyOf":[{"$ref":"#/components/schemas/AdsAdviceAction"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["marketplace"],"title":"AdsMarketplaceQuery","description":"Ask for one marketplace's advice, optionally only the rows of one action."},"AdsMatchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"],"title":"AdsMatchType","description":"Keyword-only match identity from the existing ELTA datasets."},"AdsMetricEvidenceRef":{"properties":{"kind":{"type":"string","const":"metric","title":"Kind","default":"metric"},"rowKey":{"type":"string","pattern":"^r[1-9][0-9]*$","title":"Rowkey"},"window":{"$ref":"#/components/schemas/AdsMetricWindow"},"metric":{"$ref":"#/components/schemas/AdsMetricName"},"role":{"$ref":"#/components/schemas/AdsEvidenceRole"}},"additionalProperties":false,"type":"object","required":["rowKey","window","metric","role"],"title":"AdsMetricEvidenceRef","description":"Cite one measured cell of the reviewed row by window and metric."},"AdsMetricName":{"type":"string","enum":["impressions","clicks","spend","orders","sales","acos_pct"],"title":"AdsMetricName","description":"The AdsWindowMetrics fields a metric citation may name."},"AdsMetricWindow":{"type":"string","enum":["d","d_minus_1","d_minus_7","l7","p7"],"title":"AdsMetricWindow","description":"The five metric-window fields of one AdsAdviceRow a citation may name."},"AdsNegativeMatch":{"type":"string","enum":["EXACT","PHRASE"],"title":"AdsNegativeMatch","description":"The agent's negative-keyword match choice; mapped once to ELTA's type."},"AdsReadOnlyReason":{"type":"string","enum":["NO_ELTA_ACTION","NOT_SPONSORED_PRODUCTS","NO_VALUE","ASIN_TERM","OVER_ROW_CAP"],"title":"AdsReadOnlyReason","description":"Why one shown advice row has no one-click change."},"AdsReasoning":{"properties":{"observedSignal":{"type":"string","minLength":1,"title":"Observedsignal"},"interpretation":{"type":"string","minLength":1,"title":"Interpretation"},"caveat":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Caveat"}},"additionalProperties":false,"type":"object","required":["observedSignal","interpretation"],"title":"AdsReasoning","description":"Observation, inference and uncertainty as separate qualitative statements."},"AdsRowAuditAnswer":{"properties":{"decisionType":{"type":"string","const":"ADS_ROW_AUDIT","title":"Decisiontype","default":"ADS_ROW_AUDIT"},"reviews":{"items":{"$ref":"#/components/schemas/AdsRowReview"},"type":"array","title":"Reviews","default":[]},"skippedRowKeys":{"items":{"type":"string","pattern":"^r[1-9][0-9]*$"},"type":"array","title":"Skippedrowkeys","default":[]}},"additionalProperties":false,"type":"object","title":"AdsRowAuditAnswer","description":"One audit fragment: reviews for some offered rows plus the rows deliberately skipped."},"AdsRowAuditItem":{"properties":{"marketplace":{"$ref":"#/components/schemas/AmazonMarketplace"},"currency":{"$ref":"#/components/schemas/Currency"},"anchorDay":{"type":"string","format":"date","title":"Anchorday"},"row":{"$ref":"#/components/schemas/AdsAdviceRow"}},"additionalProperties":false,"type":"object","required":["marketplace","currency","anchorDay","row"],"title":"AdsRowAuditItem","description":"One frozen flagged row offered to the agent, read in its marketplace's money."},"AdsRowDetail":{"properties":{"marketplace":{"$ref":"#/components/schemas/AmazonMarketplace"},"currency":{"$ref":"#/components/schemas/Currency"},"anchorDay":{"type":"string","format":"date","title":"Anchorday"},"row":{"$ref":"#/components/schemas/AdsAdviceRow"},"review":{"anyOf":[{"$ref":"#/components/schemas/AdsRowReview"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["marketplace","currency","anchorDay","row"],"title":"AdsRowDetail","description":"One flagged row with its AI review and the money context it is read in."},"AdsRowFieldEvidenceRef":{"properties":{"kind":{"type":"string","const":"row_field","title":"Kind","default":"row_field"},"rowKey":{"type":"string","pattern":"^r[1-9][0-9]*$","title":"Rowkey"},"field":{"$ref":"#/components/schemas/AdsEvidenceField"},"role":{"$ref":"#/components/schemas/AdsEvidenceRole"}},"additionalProperties":false,"type":"object","required":["rowKey","field","role"],"title":"AdsRowFieldEvidenceRef","description":"Cite one typed non-metric source fact of the reviewed row."},"AdsRowOneClick":{"properties":{"rowKey":{"type":"string","pattern":"^r[1-9][0-9]*$","title":"Rowkey"},"changeRowKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Changerowkey"},"readOnly":{"anyOf":[{"$ref":"#/components/schemas/AdsReadOnlyReason"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["rowKey","changeRowKey","readOnly"],"title":"AdsRowOneClick","description":"Join one shown advice row to its change row, or state why it is read-only."},"AdsRowQuery":{"properties":{"object":{"type":"string","const":"ads_row","title":"Object","default":"ads_row"},"marketplace":{"$ref":"#/components/schemas/AmazonMarketplace"},"rowKey":{"type":"string","pattern":"^r[1-9][0-9]*$","title":"Rowkey"}},"additionalProperties":false,"type":"object","required":["marketplace","rowKey"],"title":"AdsRowQuery","description":"Ask for one flagged row of one marketplace and its AI review."},"AdsRowReview":{"properties":{"rowKey":{"type":"string","pattern":"^r[1-9][0-9]*$","title":"Rowkey"},"action":{"$ref":"#/components/schemas/AdsAdviceAction"},"reason":{"type":"string","maxLength":40,"minLength":1,"title":"Reason"},"reasoning":{"anyOf":[{"$ref":"#/components/schemas/AdsReasoning"},{"type":"null"}]},"evidenceRefs":{"items":{"oneOf":[{"$ref":"#/components/schemas/AdsMetricEvidenceRef"},{"$ref":"#/components/schemas/AdsRowFieldEvidenceRef"}],"discriminator":{"propertyName":"kind","mapping":{"metric":"#/components/schemas/AdsMetricEvidenceRef","row_field":"#/components/schemas/AdsRowFieldEvidenceRef"}}},"type":"array","title":"Evidencerefs","default":[]},"suggestedChange":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/RelativeTargetBidChange"},{"$ref":"#/components/schemas/AbsoluteTargetBidValue"},{"$ref":"#/components/schemas/SetDailyBudgetValue"},{"$ref":"#/components/schemas/AddNegativeKeywordValue"}],"discriminator":{"propertyName":"kind","mapping":{"daily_budget":"#/components/schemas/SetDailyBudgetValue","negative_keyword":"#/components/schemas/AddNegativeKeywordValue","target_bid":"#/components/schemas/AbsoluteTargetBidValue","target_bid_adjustment":"#/components/schemas/RelativeTargetBidChange"}}},{"type":"null"}],"title":"Suggestedchange"}},"additionalProperties":false,"type":"object","required":["rowKey","action","reason"],"title":"AdsRowReview","description":"One AI decision for one flagged row; the audit answer carries exactly these fields."},"AdsTriggerCode":{"type":"string","enum":["SPEND_SPIKE","ZERO_ORDER_SPEND","ACOS_ABOVE_TARGET","HARVEST_SEARCH_TERM","SCALE_WINNER","BUDGET_CAPPED"],"title":"AdsTriggerCode","description":"Deterministic screen signals (ELTA1 TodoTriggerCode)."},"AdsWindowCompleteness":{"properties":{"latestDay":{"type":"boolean","title":"Latestday"},"previousDay":{"type":"boolean","title":"Previousday"},"sameWeekdayLastWeek":{"type":"boolean","title":"Sameweekdaylastweek"},"last7Days":{"type":"boolean","title":"Last7Days"},"prior7Days":{"type":"boolean","title":"Prior7Days"}},"additionalProperties":false,"type":"object","required":["latestDay","previousDay","sameWeekdayLastWeek","last7Days","prior7Days"],"title":"AdsWindowCompleteness","description":"Whether each comparison window of one marketplace is fully synced."},"AdsWindowMetrics":{"properties":{"impressions":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Impressions"},"clicks":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Clicks"},"spend":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Spend"},"orders":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Orders"},"sales":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Sales"},"acosPct":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Acospct"}},"additionalProperties":false,"type":"object","title":"AdsWindowMetrics","description":"Public metric bases and ACoS of one comparison window (ELTA1 DailyTodoWindowMetrics)."},"AlertCreate":{"properties":{"kind":{"type":"string","const":"ALERT","title":"Kind","default":"ALERT"},"content":{"$ref":"#/components/schemas/ItemContent"},"key":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Key"},"action":{"anyOf":[{"$ref":"#/components/schemas/ItemAction"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["content"],"title":"AlertCreate","description":"Immutable SYSTEM-only alert intent with an optional host-defined remedy."},"AlertItem":{"properties":{"id":{"type":"string","minLength":1,"title":"Id"},"owner":{"$ref":"#/components/schemas/OwnerRef"},"current":{"$ref":"#/components/schemas/ItemContent"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"revision":{"type":"integer","minimum":0.0,"title":"Revision"},"created_by":{"anyOf":[{"$ref":"#/components/schemas/ActorRef"},{"type":"null"}]},"kind":{"type":"string","const":"ALERT","title":"Kind","default":"ALERT"},"object":{"type":"string","const":"alert_item","title":"Object","default":"alert_item"},"creation":{"$ref":"#/components/schemas/AlertCreate"},"status":{"$ref":"#/components/schemas/AlertStatus"},"resolved_by":{"anyOf":[{"$ref":"#/components/schemas/ActorRef"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["id","owner","current","created_at","revision","creation","status"],"title":"AlertItem","description":"Source alert with immutable creation and source-confirmed clear state."},"AlertStatus":{"type":"string","enum":["OPEN","CLEARED"],"title":"AlertStatus","description":"An alert is cleared only after its source confirms recovery."},"AlignField":{"properties":{"field":{"type":"string","const":"ALIGN","title":"Field","default":"ALIGN"},"align":{"$ref":"#/components/schemas/TextAlign"}},"additionalProperties":false,"type":"object","required":["align"],"title":"AlignField","description":"Override value: a text layer's alignment."},"AmazonMarketplace":{"type":"string","enum":["US","CA","MX","JP","UK","DE","ES","FR","IT","NL","SE","PL","BE"],"title":"AmazonMarketplace"},"AmzProfitCalculateRequest":{"properties":{"costProfile":{"$ref":"#/components/schemas/CostProfile"},"shippingProfile":{"$ref":"#/components/schemas/ShippingProfile"},"shippingMode":{"$ref":"#/components/schemas/ShippingMode","default":"FREIGHT"},"isPeakPeriod":{"type":"boolean","title":"Ispeakperiod","default":false}},"additionalProperties":false,"type":"object","required":["costProfile","shippingProfile"],"title":"AmzProfitCalculateRequest","description":"One product's cost and shipping observations for the profit calculator."},"Analysis":{"properties":{"recordKey":{"type":"string","title":"Recordkey","description":"Analyzed record key these facts belong to."},"version":{"type":"integer","title":"Version","description":"Version of the analyzed record these facts were read from."},"observedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Observedat","description":"When these facts were observed; null when unknown."},"relations":{"items":{"$ref":"#/components/schemas/RelationRef"},"type":"array","title":"Relations","description":"Typed relations attached to the record.","default":[]},"unlinkedMentions":{"items":{"$ref":"#/components/schemas/UnlinkedMention"},"type":"array","maxItems":16,"title":"Unlinkedmentions","description":"Claims of the record that name an entity no held record matched; at most 16.","default":[]},"concepts":{"items":{"$ref":"#/components/schemas/ConceptRef"},"type":"array","title":"Concepts","description":"Concepts extracted for the record.","default":[]},"features":{"items":{"$ref":"#/components/schemas/FeatureValue"},"type":"array","title":"Features","description":"Windowed feature values for the record.","default":[]}},"type":"object","required":["recordKey","version","observedAt"],"title":"Analysis","description":"Optional bounded analyzed facts (relations, unlinked mentions, concepts, trend features) attached to one typed node hit."},"AnalyzedRecordKind":{"type":"string","enum":["NODE","IDEA","CONCEPT","RELATION","TREND"],"title":"AnalyzedRecordKind","description":"WHAT KIND OF RECORD a stored analyzed row is about — the column that makes 'kind is a column, not a table' true, and the identity space `AnalyzedStoreWriteProtocol.reserve_version` allocates versions in. NODE (D16): one analyzed copy of any one node kind — a DI entity or content item or a DP-derived node; `node_kind` beside it says WHICH node. IDEA and CONCEPT: the extract capability's semantic output, including the CLAIM rows the grouping linker later matches. RELATION and TREND: what grouping computes — an edge between two nodes, and a windowed feature over such edges."},"AnalyzedRelationKind":{"type":"string","enum":["VARIANT_OF","BRANDED_BY","SOLD_BY","PUBLISHED_BY","BELONGS_TO_CATEGORY","SAME_PRODUCT_AS","FEATURES_PRODUCT","FEATURES_BRAND","RANKED_FOR","MEMBER_OF_MOTIF","PROMOTES","SAME_CREATOR_AS","COMPETES_WITH"],"title":"AnalyzedRelationKind","description":"Every relation row the platform may write: subject --kind--> object."},"AnswerLanguage":{"type":"string","enum":["ZH","EN"],"title":"AnswerLanguage","description":"Language of seller-facing clarification and refusal wording (RS-12)."},"ApplyTemplate":{"properties":{"action":{"type":"string","const":"APPLY_TEMPLATE","title":"Action","default":"APPLY_TEMPLATE"},"designId":{"type":"string","title":"Designid"},"template":{"type":"string","enum":["amazon.aplus.header.headline","amazon.main.packshot","amazon.secondary.lifestyle","amazon.secondary.three_callouts","shopify.blog_featured.headline","shopify.product.bold_drop","shopify.product.packshot"],"title":"Template"},"fills":{"items":{"anyOf":[{"$ref":"#/components/schemas/TextFill"},{"$ref":"#/components/schemas/ImageFill"}]},"type":"array","title":"Fills","default":[]}},"additionalProperties":false,"type":"object","required":["designId","template"],"title":"ApplyTemplate","description":"Replace a design's layers with a template's, filling its placeholders (the one template path)."},"ApprovalCreate":{"properties":{"kind":{"type":"string","const":"APPROVAL","title":"Kind","default":"APPROVAL"},"content":{"$ref":"#/components/schemas/ItemContent"},"key":{"type":"string","minLength":1,"title":"Key"},"proposal":{"$ref":"#/components/schemas/ProposalRef"},"requested_by":{"anyOf":[{"$ref":"#/components/schemas/ActorRef"},{"type":"null"}]},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref"}},"additionalProperties":false,"type":"object","required":["content","key","proposal"],"title":"ApprovalCreate","description":"Immutable SYSTEM-written proposal intent, verified proposer and expiry."},"ApprovalDecideRequest":{"properties":{"itemId":{"type":"string","minLength":1,"title":"Itemid"},"decision":{"$ref":"#/components/schemas/ApprovalDecision"}},"additionalProperties":false,"type":"object","required":["itemId","decision"],"title":"ApprovalDecideRequest","description":"The gateway request carrying one item id and one human decision."},"ApprovalDecision":{"type":"string","enum":["APPROVE","REJECT"],"title":"ApprovalDecision","description":"The two decisions a verified human or API-key actor may make."},"ApprovalItem":{"properties":{"id":{"type":"string","minLength":1,"title":"Id"},"owner":{"$ref":"#/components/schemas/OwnerRef"},"current":{"$ref":"#/components/schemas/ItemContent"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"revision":{"type":"integer","minimum":0.0,"title":"Revision"},"created_by":{"anyOf":[{"$ref":"#/components/schemas/ActorRef"},{"type":"null"}]},"kind":{"type":"string","const":"APPROVAL","title":"Kind","default":"APPROVAL"},"object":{"type":"string","const":"approval_item","title":"Object","default":"approval_item"},"creation":{"$ref":"#/components/schemas/ApprovalCreate"},"status":{"$ref":"#/components/schemas/TodoApprovalStatus"},"decided_by":{"anyOf":[{"$ref":"#/components/schemas/ActorRef"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["id","owner","current","created_at","revision","creation","status"],"title":"ApprovalItem","description":"Proposal-bound decision whose source reference cannot be edited."},"ApprovalState":{"properties":{"inboxItemId":{"type":"string","title":"Inboxitemid"},"status":{"$ref":"#/components/schemas/ArtifectHostApprovalStatus"},"withdrawn":{"type":"boolean","title":"Withdrawn","default":false},"proposal":{"$ref":"#/components/schemas/ProposalView"}},"additionalProperties":false,"type":"object","required":["inboxItemId","status","proposal"],"title":"ApprovalState","description":"The live read of one filed item: inbox status and ELTA's current view."},"ApprovalView":{"properties":{"item":{"$ref":"#/components/schemas/ApprovalItem"},"proposal":{"$ref":"#/components/schemas/ProposalView"}},"additionalProperties":false,"type":"object","required":["item","proposal"],"title":"ApprovalView","description":"The inbox item and ELTA's current proposal state shown to a person."},"ApprovalViewRequest":{"properties":{"itemId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Itemid","description":"Existing owner-scoped inbox item id."},"proposalId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Proposalid","description":"ELTA proposal id resolved through its owner-scoped inbox key."}},"additionalProperties":false,"type":"object","title":"ApprovalViewRequest","description":"Select an approval by its existing item id or ELTA proposal id."},"ArtifectAccountRequired":{"properties":{"object":{"type":"string","const":"artifect_account_required","title":"Object","default":"artifect_account_required"},"accountChoices":{"items":{"$ref":"#/components/schemas/AccountChoice"},"type":"array","minItems":1,"title":"Accountchoices"}},"additionalProperties":false,"type":"object","required":["accountChoices"],"title":"ArtifectAccountRequired","description":"The create answer when the store has several accounts and none was chosen."},"ArtifectAdjust":{"properties":{"baseRevision":{"type":"integer","minimum":0.0,"title":"Baserevision"},"replayKey":{"type":"string","maxLength":256,"minLength":1,"title":"Replaykey"},"adjustment":{"oneOf":[{"$ref":"#/components/schemas/ProfitInputsAdjustment"},{"$ref":"#/components/schemas/ProfileInputsAdjustment"},{"$ref":"#/components/schemas/ExcludeAsinsAdjustment"},{"$ref":"#/components/schemas/JudgmentAdjustment"},{"$ref":"#/components/schemas/ArtifectPositioningAdjustment"},{"$ref":"#/components/schemas/ArtifectAdsAdviceRemove"},{"$ref":"#/components/schemas/ArtifectProductImagesEdit"},{"$ref":"#/components/schemas/ArtifectProductImagesExport"},{"$ref":"#/components/schemas/ArtifectChangeListEdit"},{"$ref":"#/components/schemas/ArtifectChangeListPropose"},{"$ref":"#/components/schemas/ArtifectChangeListProposeRevert"},{"$ref":"#/components/schemas/ArtifectShopifyThemeEdit"},{"$ref":"#/components/schemas/ArtifectShopifyThemeUpdatePreview"},{"$ref":"#/components/schemas/ArtifectShopifyThemePublish"},{"$ref":"#/components/schemas/ArtifectShopifyThemeDiscardPreview"},{"$ref":"#/components/schemas/ArtifectShopifyThemeProposeRevert"},{"$ref":"#/components/schemas/ArtifectShopifyThemeProposeDiscard"},{"$ref":"#/components/schemas/ArtifectShopifyBlogPostsEdits"},{"$ref":"#/components/schemas/ArtifectShopifyBlogPostsPropose"},{"$ref":"#/components/schemas/ArtifectShopifyBlogPostsProposeRevert"},{"$ref":"#/components/schemas/ArtifectShopifyProductEdit"},{"$ref":"#/components/schemas/ArtifectShopifyProductPropose"},{"$ref":"#/components/schemas/ArtifectShopifyProductProposeRevert"},{"$ref":"#/components/schemas/ArtifectAmzListingEdit"},{"$ref":"#/components/schemas/ArtifectAmzListingPropose"},{"$ref":"#/components/schemas/ArtifectAmzListingProposeRevert"},{"$ref":"#/components/schemas/ArtifectFbaInboundProposePlan"},{"$ref":"#/components/schemas/ArtifectFbaInboundProposePacking"},{"$ref":"#/components/schemas/ArtifectFbaInboundProposeRevert"},{"$ref":"#/components/schemas/ArtifectMonitorAdjust"},{"$ref":"#/components/schemas/StandingAdjust"}],"title":"Adjustment","description":"One post-completion edit. Later changes to the seller's own cost go through PROFILE_INPUTS and re-price every product; competitors' costs can be changed one by one or as a set through PROFIT_INPUTS. PROFILE_INPUTS also changes the ACOS band, the whole-product fixed size/weight and the entry budget; PROFIT_INPUTS corrects a named product (ask the seller for override sizes and weights; one size may be assigned to a set of products); EXCLUDE_ASINS never adds one. JUDGMENT rewrites the conclusion text of a finished revision (a verdict, named section slots or the overview; numbers untouched) and may be sent at any time. A re-priced revision carries a typed recheck hint: recheck the summary and conclusions against the new numbers, then send ONE JUDGMENT update. Conclusion texts carry no figures; a verdict the policy fixed (including a can't-decide NOT_DETERMINABLE) stays fixed and must be omitted.","discriminator":{"propertyName":"adjustmentType","mapping":{"ADS_ADVICE_REMOVE":"#/components/schemas/ArtifectAdsAdviceRemove","AMZ_FBA_INBOUND_PLAN_PROPOSE_PACKING":"#/components/schemas/ArtifectFbaInboundProposePacking","AMZ_FBA_INBOUND_PLAN_PROPOSE_PLAN":"#/components/schemas/ArtifectFbaInboundProposePlan","AMZ_FBA_INBOUND_PLAN_PROPOSE_REVERT":"#/components/schemas/ArtifectFbaInboundProposeRevert","AMZ_LISTING_EDIT":"#/components/schemas/ArtifectAmzListingEdit","AMZ_LISTING_PROPOSE":"#/components/schemas/ArtifectAmzListingPropose","AMZ_LISTING_PROPOSE_REVERT":"#/components/schemas/ArtifectAmzListingProposeRevert","CHANGE_LIST_EDIT":"#/components/schemas/ArtifectChangeListEdit","CHANGE_LIST_PROPOSE":"#/components/schemas/ArtifectChangeListPropose","CHANGE_LIST_PROPOSE_REVERT":"#/components/schemas/ArtifectChangeListProposeRevert","EXCLUDE_ASINS":"#/components/schemas/ExcludeAsinsAdjustment","JUDGMENT":"#/components/schemas/JudgmentAdjustment","MONITOR_ADJUST":"#/components/schemas/ArtifectMonitorAdjust","POSITIONING_EDITS":"#/components/schemas/ArtifectPositioningAdjustment","PRODUCT_IMAGES_EDIT":"#/components/schemas/ArtifectProductImagesEdit","PRODUCT_IMAGES_EXPORT":"#/components/schemas/ArtifectProductImagesExport","PROFILE_INPUTS":"#/components/schemas/ProfileInputsAdjustment","PROFIT_INPUTS":"#/components/schemas/ProfitInputsAdjustment","SHOPIFY_BLOG_POSTS_EDITS":"#/components/schemas/ArtifectShopifyBlogPostsEdits","SHOPIFY_BLOG_POSTS_PROPOSE":"#/components/schemas/ArtifectShopifyBlogPostsPropose","SHOPIFY_BLOG_POSTS_PROPOSE_REVERT":"#/components/schemas/ArtifectShopifyBlogPostsProposeRevert","SHOPIFY_PRODUCT_EDIT":"#/components/schemas/ArtifectShopifyProductEdit","SHOPIFY_PRODUCT_PROPOSE":"#/components/schemas/ArtifectShopifyProductPropose","SHOPIFY_PRODUCT_PROPOSE_REVERT":"#/components/schemas/ArtifectShopifyProductProposeRevert","SHOPIFY_THEME_UPDATE_DISCARD_PREVIEW":"#/components/schemas/ArtifectShopifyThemeDiscardPreview","SHOPIFY_THEME_UPDATE_EDIT":"#/components/schemas/ArtifectShopifyThemeEdit","SHOPIFY_THEME_UPDATE_PROPOSE_DISCARD":"#/components/schemas/ArtifectShopifyThemeProposeDiscard","SHOPIFY_THEME_UPDATE_PROPOSE_REVERT":"#/components/schemas/ArtifectShopifyThemeProposeRevert","SHOPIFY_THEME_UPDATE_PUBLISH":"#/components/schemas/ArtifectShopifyThemePublish","SHOPIFY_THEME_UPDATE_UPDATE_PREVIEW":"#/components/schemas/ArtifectShopifyThemeUpdatePreview","STANDING":"#/components/schemas/StandingAdjust"}}}},"additionalProperties":false,"type":"object","required":["baseRevision","replayKey","adjustment"],"title":"ArtifectAdjust","description":"Carry one post-completion adjustment against a committed revision."},"ArtifectAdjustRequest":{"properties":{"ref":{"$ref":"#/components/schemas/ArtifectRef"},"adjust":{"$ref":"#/components/schemas/ArtifectAdjust"}},"additionalProperties":false,"type":"object","required":["ref","adjust"],"title":"ArtifectAdjustRequest","description":"Which run and typed adjustment; removed arms retain ordinary INVALID_REQUEST validation."},"ArtifectAdjustmentStatus":{"properties":{"adjustmentRef":{"type":"string","maxLength":128,"minLength":1,"title":"Adjustmentref","description":"Opaque child-task or same-run queued-work locator."},"stage":{"$ref":"#/components/schemas/TaskStage","description":"Adjustment or queued-work execution stage."},"targetRevision":{"type":"integer","minimum":0.0,"title":"Targetrevision","description":"Revision the edit publishes or queued work updates."},"failureCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failurecode","description":"Stable child failure refinement code while failed, when available."},"failureReason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failurereason","description":"Sanitized child failure sentence while failed."},"failureType":{"anyOf":[{"$ref":"#/components/schemas/TaskExceptionType"},{"type":"null"}],"description":"Child's keble-task failure class, set only while stage is FAILURE."},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat","description":"Projection instant of this row."},"recheckHint":{"anyOf":[{"$ref":"#/components/schemas/ArtifectRecheckHint"},{"type":"null"}],"description":"Figures-moved recheck hint, set only on the SUCCESS projection of a committed adjustment whose figures moved; None (the default) is never serialized."}},"additionalProperties":false,"type":"object","required":["adjustmentRef","stage","targetRevision","updatedAt"],"title":"ArtifectAdjustmentStatus","description":"Project one admitted adjustment or queued model work on the same run."},"ArtifectAdsAdviceCreate":{"properties":{"kind":{"type":"string","const":"AMZ_ADS_ADVICE","title":"Kind","default":"AMZ_ADS_ADVICE"},"replayKey":{"type":"string","maxLength":256,"minLength":1,"title":"Replaykey"},"storeId":{"type":"string","maxLength":128,"minLength":1,"title":"Storeid"},"anchorDay":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Anchorday","description":"Requested data day; null means yesterday in UTC; a later day is refused before any source is read."},"language":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["replayKey","storeId"],"title":"ArtifectAdsAdviceCreate","description":"Start one on-demand Ads optimization-suggestions run for one store."},"ArtifectAdsAdviceDetail":{"properties":{"kind":{"type":"string","const":"AMZ_ADS_ADVICE","title":"Kind","default":"AMZ_ADS_ADVICE"},"answer":{"anyOf":[{"$ref":"#/components/schemas/AdsMarketplaceAdvice"},{"$ref":"#/components/schemas/AdsRowDetail"}],"title":"Answer"}},"additionalProperties":false,"type":"object","required":["answer"],"title":"ArtifectAdsAdviceDetail","description":"Carry one marketplace's advice or one row's detail from the stored run."},"ArtifectAdsAdviceDetailQuery":{"properties":{"kind":{"type":"string","const":"AMZ_ADS_ADVICE","title":"Kind","default":"AMZ_ADS_ADVICE"},"query":{"oneOf":[{"$ref":"#/components/schemas/AdsMarketplaceQuery"},{"$ref":"#/components/schemas/AdsRowQuery"}],"title":"Query","discriminator":{"propertyName":"object","mapping":{"ads_marketplace":"#/components/schemas/AdsMarketplaceQuery","ads_row":"#/components/schemas/AdsRowQuery"}}}},"additionalProperties":false,"type":"object","required":["query"],"title":"ArtifectAdsAdviceDetailQuery","description":"Wrap the ads-advice detail query (owned by ads_advice)."},"ArtifectAdsAdviceRemove":{"properties":{"adjustmentType":{"type":"string","const":"ADS_ADVICE_REMOVE","title":"Adjustmenttype","default":"ADS_ADVICE_REMOVE"},"marketplace":{"$ref":"#/components/schemas/AmazonMarketplace"},"rowKeys":{"items":{"type":"string","pattern":"^r[1-9][0-9]*$"},"type":"array","minItems":1,"title":"Rowkeys"}},"additionalProperties":false,"type":"object","required":["marketplace","rowKeys"],"title":"ArtifectAdsAdviceRemove","description":"Remove advice rows in one marketplace, including manual-only advice."},"ArtifectAdsAdviceSnapshot":{"properties":{"kind":{"type":"string","const":"AMZ_ADS_ADVICE","title":"Kind","default":"AMZ_ADS_ADVICE"},"storeId":{"type":"string","maxLength":128,"minLength":1,"title":"Storeid"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"requestedAnchorDay":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Requestedanchorday"},"marketplaces":{"items":{"$ref":"#/components/schemas/AdsMarketplaceAdvice"},"type":"array","title":"Marketplaces","default":[]},"changeLists":{"items":{"$ref":"#/components/schemas/ArtifectAdsChangeListLink"},"type":"array","title":"Changelists","default":[]},"changeListAbsences":{"items":{"$ref":"#/components/schemas/ArtifectAdsChangeListAbsence"},"type":"array","title":"Changelistabsences","default":[]},"unsupportedMarketplaces":{"items":{"type":"string","pattern":"^[A-Z]{2}$"},"type":"array","title":"Unsupportedmarketplaces","default":[]}},"additionalProperties":false,"type":"object","required":["storeId","createdAt"],"title":"ArtifectAdsAdviceSnapshot","description":"Expose one completed Ads optimization-suggestions run, per marketplace."},"ArtifectAdsChangeListAbsence":{"properties":{"marketplace":{"$ref":"#/components/schemas/AmazonMarketplace"},"reason":{"$ref":"#/components/schemas/AdsChangeListAbsenceReason"}},"additionalProperties":false,"type":"object","required":["marketplace","reason"],"title":"ArtifectAdsChangeListAbsence","description":"Say why one marketplace that shows advice has no AMZ_ADS_CHANGES list."},"ArtifectAdsChangeListLink":{"properties":{"marketplace":{"$ref":"#/components/schemas/AmazonMarketplace"},"ref":{"$ref":"#/components/schemas/ArtifectRef"}},"additionalProperties":false,"type":"object","required":["marketplace","ref"],"title":"ArtifectAdsChangeListLink","description":"Link one marketplace of an Ads Advice run to its AMZ_ADS_CHANGES list."},"ArtifectAdsRowAuditInputPage":{"properties":{"object":{"type":"string","const":"artifect_input_page","title":"Object","default":"artifect_input_page"},"inputKey":{"type":"string","maxLength":256,"minLength":1,"title":"Inputkey"},"ownerRevision":{"type":"integer","minimum":0.0,"title":"Ownerrevision"},"instructions":{"type":"string","maxLength":4000,"minLength":1,"title":"Instructions"},"items":{"items":{"$ref":"#/components/schemas/AdsRowAuditItem"},"type":"array","title":"Items","default":[]},"coveredItemCount":{"type":"integer","minimum":0.0,"title":"Covereditemcount"},"itemCount":{"type":"integer","minimum":0.0,"title":"Itemcount"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"},"deadline":{"type":"string","format":"date-time","title":"Deadline"},"decisionType":{"type":"string","const":"ADS_ROW_AUDIT","title":"Decisiontype","default":"ADS_ROW_AUDIT"}},"additionalProperties":false,"type":"object","required":["inputKey","ownerRevision","instructions","coveredItemCount","itemCount","deadline"],"title":"ArtifectAdsRowAuditInputPage","description":"Input page for ADS_ROW_AUDIT: one page of flagged Ads rows to audit."},"ArtifectAmzListingCreate":{"properties":{"kind":{"type":"string","const":"AMZ_LISTING","title":"Kind","default":"AMZ_LISTING"},"request":{"$ref":"#/components/schemas/ListingCreate"}},"additionalProperties":false,"type":"object","required":["request"],"title":"ArtifectAmzListingCreate","description":"Create one owner-fenced new Amazon listing draft from the kind's own ListingCreate."},"ArtifectAmzListingEdit":{"properties":{"adjustmentType":{"type":"string","const":"AMZ_LISTING_EDIT","title":"Adjustmenttype","default":"AMZ_LISTING_EDIT"},"content":{"$ref":"#/components/schemas/ListingContent"}},"additionalProperties":false,"type":"object","required":["content"],"title":"ArtifectAmzListingEdit","description":"Replace an AMZ_LISTING draft's whole content (editor or agent edit)."},"ArtifectAmzListingPropose":{"properties":{"adjustmentType":{"type":"string","const":"AMZ_LISTING_PROPOSE","title":"Adjustmenttype","default":"AMZ_LISTING_PROPOSE"}},"additionalProperties":false,"type":"object","title":"ArtifectAmzListingPropose","description":"File the draft's one ADD for approval at the envelope's base_revision."},"ArtifectAmzListingProposeRevert":{"properties":{"adjustmentType":{"type":"string","const":"AMZ_LISTING_PROPOSE_REVERT","title":"Adjustmenttype","default":"AMZ_LISTING_PROPOSE_REVERT"}},"additionalProperties":false,"type":"object","title":"ArtifectAmzListingProposeRevert","description":"File the undo (seller-SKU removal) of a LISTED draft at the envelope's base_revision."},"ArtifectAmzListingSnapshot":{"properties":{"kind":{"type":"string","const":"AMZ_LISTING","title":"Kind","default":"AMZ_LISTING"},"snapshot":{"$ref":"#/components/schemas/ListingSnapshot"}},"additionalProperties":false,"type":"object","required":["snapshot"],"title":"ArtifectAmzListingSnapshot","description":"Carry the listing core's current ListingSnapshot under its kind tag."},"ArtifectAnswer":{"properties":{"inputKey":{"type":"string","maxLength":256,"minLength":1,"title":"Inputkey"},"expectedRevision":{"type":"integer","minimum":0.0,"title":"Expectedrevision"},"replayKey":{"type":"string","maxLength":256,"minLength":1,"title":"Replaykey"},"decision":{"oneOf":[{"$ref":"#/components/schemas/ReportScopeAnswer"},{"$ref":"#/components/schemas/SampleRelevanceAnswer"},{"$ref":"#/components/schemas/MaterialFactsAnswer"},{"$ref":"#/components/schemas/StandoutSelectionAnswer"},{"$ref":"#/components/schemas/ReportJudgmentAnswer"},{"$ref":"#/components/schemas/ArtifectPositioningStepDecision"},{"$ref":"#/components/schemas/AdsRowAuditAnswer"},{"$ref":"#/components/schemas/ArtifectShopifyBlogPostsStepDecision"},{"$ref":"#/components/schemas/ArtifectMonitorSetupAnswer"},{"$ref":"#/components/schemas/ArtifectMonitorConfirmAnswer"}],"title":"Decision","discriminator":{"propertyName":"decisionType","mapping":{"ADS_ROW_AUDIT":"#/components/schemas/AdsRowAuditAnswer","JUDGMENT":"#/components/schemas/ReportJudgmentAnswer","MATERIAL_FACTS":"#/components/schemas/MaterialFactsAnswer","MONITOR_CONFIRM":"#/components/schemas/ArtifectMonitorConfirmAnswer","MONITOR_SETUP":"#/components/schemas/ArtifectMonitorSetupAnswer","POSITIONING_STEP":"#/components/schemas/ArtifectPositioningStepDecision","REPORT_SCOPE":"#/components/schemas/ReportScopeAnswer","SAMPLE_RELEVANCE":"#/components/schemas/SampleRelevanceAnswer","SHOPIFY_BLOG_POSTS_STEP":"#/components/schemas/ArtifectShopifyBlogPostsStepDecision","STANDOUT_SELECTION":"#/components/schemas/StandoutSelectionAnswer"}}}},"additionalProperties":false,"type":"object","required":["inputKey","expectedRevision","replayKey","decision"],"title":"ArtifectAnswer","description":"Carry one validated decision fragment for a parked Artifect."},"ArtifectAnswerRequest":{"properties":{"ref":{"$ref":"#/components/schemas/ArtifectRef"},"answer":{"$ref":"#/components/schemas/ArtifectAnswer"}},"additionalProperties":false,"type":"object","required":["ref","answer"],"title":"ArtifectAnswerRequest","description":"Which run, and the typed decision fragment (own input key, revision and replay_key)."},"ArtifectChangeListCreate":{"properties":{"kind":{"type":"string","enum":["AMZ_LISTING_CHANGES","SHOPIFY_ARTICLE_CHANGES","SHOPIFY_SEO_CHANGES","SHOPIFY_GEO_CHANGES","AMZ_ADS_CHANGES"],"title":"Kind"},"request":{"$ref":"#/components/schemas/ChangeListCreatePremise"}},"additionalProperties":false,"type":"object","required":["kind","request"],"title":"ArtifectChangeListCreate","description":"Carry one account-free change-list create premise to its configured host."},"ArtifectChangeListEdit":{"properties":{"adjustmentType":{"type":"string","const":"CHANGE_LIST_EDIT","title":"Adjustmenttype","default":"CHANGE_LIST_EDIT"},"ops":{"items":{"oneOf":[{"$ref":"#/components/schemas/AddRows"},{"$ref":"#/components/schemas/EditRow"},{"$ref":"#/components/schemas/DiscardRow"},{"$ref":"#/components/schemas/RestoreRow"}],"discriminator":{"propertyName":"op","mapping":{"ADD_ROWS":"#/components/schemas/AddRows","DISCARD_ROW":"#/components/schemas/DiscardRow","EDIT_ROW":"#/components/schemas/EditRow","RESTORE_ROW":"#/components/schemas/RestoreRow"}}},"type":"array","minItems":1,"title":"Ops"}},"additionalProperties":false,"type":"object","required":["ops"],"title":"ArtifectChangeListEdit","description":"Submit the shared engine's typed edit operations through artifect_adjust."},"ArtifectChangeListPropose":{"properties":{"adjustmentType":{"type":"string","const":"CHANGE_LIST_PROPOSE","title":"Adjustmenttype","default":"CHANGE_LIST_PROPOSE"},"rowKeys":{"items":{"type":"string"},"type":"array","title":"Rowkeys","default":[]}},"additionalProperties":false,"type":"object","title":"ArtifectChangeListPropose","description":"Ask the shared engine to file selected rows; empty selects every eligible row."},"ArtifectChangeListProposeRevert":{"properties":{"adjustmentType":{"type":"string","const":"CHANGE_LIST_PROPOSE_REVERT","title":"Adjustmenttype","default":"CHANGE_LIST_PROPOSE_REVERT"},"rowKeys":{"items":{"type":"string"},"type":"array","title":"Rowkeys","default":[]}},"additionalProperties":false,"type":"object","title":"ArtifectChangeListProposeRevert","description":"Ask the engine to revert selected applied rows; empty selects all eligible rows."},"ArtifectChangeListSnapshot":{"properties":{"kind":{"type":"string","enum":["AMZ_LISTING_CHANGES","SHOPIFY_ARTICLE_CHANGES","SHOPIFY_SEO_CHANGES","SHOPIFY_GEO_CHANGES","AMZ_ADS_CHANGES","AMZ_MCF_ORDER"],"title":"Kind","default":"AMZ_LISTING_CHANGES"},"snapshot":{"$ref":"#/components/schemas/ChangeListSnapshot"}},"additionalProperties":false,"type":"object","required":["snapshot"],"title":"ArtifectChangeListSnapshot","description":"Carry the engine's canonical current change-list snapshot under its kind tag."},"ArtifectDecisionRejection":{"properties":{"object":{"type":"string","const":"artifect_rejection","title":"Object","default":"artifect_rejection"},"inputKey":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Inputkey"},"reason":{"$ref":"#/components/schemas/ArtifectRejectionReason"},"pendingInputKey":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Pendinginputkey"},"currentRevision":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Currentrevision"},"itemKeys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Itemkeys"},"message":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Message"},"kindCode":{"anyOf":[{"type":"string","pattern":"^[A-Z][A-Z0-9_]{0,63}$"},{"type":"null"}],"title":"Kindcode"}},"additionalProperties":false,"type":"object","required":["reason"],"title":"ArtifectDecisionRejection","description":"Report one typed refusal without failing the Artifect run."},"ArtifectDescribeRequest":{"properties":{"kind":{"type":"string","enum":["AMZ_PRODUCT_REPORT","POSITIONING","AMZ_ADS_ADVICE","SHOPIFY_THEME_UPDATE","AMZ_LISTING_CHANGES","SHOPIFY_ARTICLE_CHANGES","SHOPIFY_SEO_CHANGES","SHOPIFY_GEO_CHANGES","AMZ_ADS_CHANGES","SHOPIFY_BLOG_POSTS","SHOPIFY_PRODUCT","AMZ_LISTING"],"title":"ArtifectKind","description":"Identify the workflow family handled by an Artifect runtime."}},"additionalProperties":false,"type":"object","required":["kind"],"title":"ArtifectDescribeRequest","description":"Which kind's request bodies to describe (A-03)."},"ArtifectDetail":{"properties":{"object":{"type":"string","const":"artifect_detail","title":"Object","default":"artifect_detail"},"ref":{"$ref":"#/components/schemas/ArtifectRef"},"payload":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/ArtifectReportDetail"},{"$ref":"#/components/schemas/ArtifectPositioningDetail"},{"$ref":"#/components/schemas/ArtifectAdsAdviceDetail"},{"$ref":"#/components/schemas/ArtifectProductImagesDetail"},{"$ref":"#/components/schemas/ArtifectShopifyThemeRunDetail"},{"$ref":"#/components/schemas/ArtifectMonitorDetail"}],"discriminator":{"propertyName":"kind","mapping":{"AMZ_ADS_ADVICE":"#/components/schemas/ArtifectAdsAdviceDetail","AMZ_PRODUCT_REPORT":"#/components/schemas/ArtifectReportDetail","MONITOR":"#/components/schemas/ArtifectMonitorDetail","POSITIONING":"#/components/schemas/ArtifectPositioningDetail","PRODUCT_IMAGES":"#/components/schemas/ArtifectProductImagesDetail","SHOPIFY_THEME_UPDATE":"#/components/schemas/ArtifectShopifyThemeRunDetail"}}},{"$ref":"#/components/schemas/ArtifectOccurrences"}],"title":"Payload"},"capturedAt":{"type":"string","format":"date-time","title":"Capturedat"}},"additionalProperties":false,"type":"object","required":["ref","payload","capturedAt"],"title":"ArtifectDetail","description":"One typed detail answer about one artifect."},"ArtifectDetailRequest":{"properties":{"ref":{"$ref":"#/components/schemas/ArtifectRef"},"query":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/ArtifectReportDetailQuery"},{"$ref":"#/components/schemas/ArtifectPositioningDetailQuery"},{"$ref":"#/components/schemas/ArtifectAdsAdviceDetailQuery"},{"$ref":"#/components/schemas/ArtifectProductImagesDetailQuery"},{"$ref":"#/components/schemas/ArtifectShopifyThemeQuery"},{"$ref":"#/components/schemas/ArtifectMonitorDetailQuery"}],"discriminator":{"propertyName":"kind","mapping":{"AMZ_ADS_ADVICE":"#/components/schemas/ArtifectAdsAdviceDetailQuery","AMZ_PRODUCT_REPORT":"#/components/schemas/ArtifectReportDetailQuery","MONITOR":"#/components/schemas/ArtifectMonitorDetailQuery","POSITIONING":"#/components/schemas/ArtifectPositioningDetailQuery","PRODUCT_IMAGES":"#/components/schemas/ArtifectProductImagesDetailQuery","SHOPIFY_THEME_UPDATE":"#/components/schemas/ArtifectShopifyThemeQuery"}}},{"$ref":"#/components/schemas/ArtifectOccurrencesQuery"}],"title":"Query"}},"additionalProperties":false,"type":"object","required":["ref","query"],"title":"ArtifectDetailRequest","description":"Address one artifect and ask it one kind-typed detail question."},"ArtifectFailure":{"properties":{"object":{"type":"string","const":"artifect_failure","title":"Object","default":"artifect_failure"},"code":{"$ref":"#/components/schemas/ArtifectFailureCode"},"retryable":{"type":"boolean","title":"Retryable"},"message":{"type":"string","maxLength":512,"minLength":1,"title":"Message"}},"additionalProperties":false,"type":"object","required":["code","retryable","message"],"title":"ArtifectFailure","description":"The provider-free failure one customer answer may carry."},"ArtifectFailureCode":{"type":"string","enum":["NOT_FOUND","INVALID_REQUEST","CONFLICT","RATE_LIMITED","QUOTA_EXHAUSTED","UNAVAILABLE","INTERNAL"],"title":"ArtifectFailureCode","description":"Classify one sanitized failure a customer may see for an Artifect run."},"ArtifectFbaInboundPlanSnapshot":{"properties":{"kind":{"type":"string","const":"AMZ_FBA_INBOUND_PLAN","title":"Kind","default":"AMZ_FBA_INBOUND_PLAN"},"storeId":{"type":"string","title":"Storeid"},"stage":{"$ref":"#/components/schemas/FbaInboundStage"},"guide":{"type":"string","minLength":1,"title":"Guide"},"plan":{"anyOf":[{"$ref":"#/components/schemas/EntityRef"},{"type":"null"}]},"planStatus":{"anyOf":[{"$ref":"#/components/schemas/FbaInboundPlanStatus"},{"type":"null"}]},"create":{"anyOf":[{"$ref":"#/components/schemas/ApprovalState"},{"type":"null"}]},"packing":{"anyOf":[{"$ref":"#/components/schemas/ApprovalState"},{"type":"null"}]},"revert":{"anyOf":[{"$ref":"#/components/schemas/ApprovalState"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["storeId","stage","guide"],"title":"ArtifectFbaInboundPlanSnapshot","description":"Expose one FBA inbound plan: its stage, the agent's next step and the live approvals."},"ArtifectFbaInboundProposePacking":{"properties":{"adjustmentType":{"type":"string","const":"AMZ_FBA_INBOUND_PLAN_PROPOSE_PACKING","title":"Adjustmenttype","default":"AMZ_FBA_INBOUND_PLAN_PROPOSE_PACKING"},"change":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"type":"object","title":"Change"}},"additionalProperties":false,"type":"object","required":["change"],"title":"ArtifectFbaInboundProposePacking","description":"File the boxes on the created plan with ELTA's SetFbaInboundPacking change."},"ArtifectFbaInboundProposePlan":{"properties":{"adjustmentType":{"type":"string","const":"AMZ_FBA_INBOUND_PLAN_PROPOSE_PLAN","title":"Adjustmenttype","default":"AMZ_FBA_INBOUND_PLAN_PROPOSE_PLAN"},"change":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"type":"object","title":"Change"}},"additionalProperties":false,"type":"object","required":["change"],"title":"ArtifectFbaInboundProposePlan","description":"Re-file the plan with an edited ELTA CreateFbaInboundPlan change."},"ArtifectFbaInboundProposeRevert":{"properties":{"adjustmentType":{"type":"string","const":"AMZ_FBA_INBOUND_PLAN_PROPOSE_REVERT","title":"Adjustmenttype","default":"AMZ_FBA_INBOUND_PLAN_PROPOSE_REVERT"}},"additionalProperties":false,"type":"object","title":"ArtifectFbaInboundProposeRevert","description":"File ELTA's undo of the newest applied proposal; undo cancels the whole plan."},"ArtifectInputRequest":{"properties":{"ref":{"$ref":"#/components/schemas/ArtifectRef"},"inputKey":{"type":"string","maxLength":256,"minLength":1,"title":"Inputkey"},"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"},"maxItems":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Maxitems"}},"additionalProperties":false,"type":"object","required":["ref","inputKey"],"title":"ArtifectInputRequest","description":"One page of the input a parked run offers."},"ArtifectJudgmentInputPage":{"properties":{"object":{"type":"string","const":"artifect_input_page","title":"Object","default":"artifect_input_page"},"inputKey":{"type":"string","maxLength":256,"minLength":1,"title":"Inputkey"},"ownerRevision":{"type":"integer","minimum":0.0,"title":"Ownerrevision"},"instructions":{"type":"string","maxLength":4000,"minLength":1,"title":"Instructions"},"items":{"items":{"$ref":"#/components/schemas/ReportJudgmentEvidenceItem"},"type":"array","title":"Items","description":"Citable accepted artifacts.","default":[]},"coveredItemCount":{"type":"integer","minimum":0.0,"title":"Covereditemcount"},"itemCount":{"type":"integer","minimum":0.0,"title":"Itemcount"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"},"deadline":{"type":"string","format":"date-time","title":"Deadline"},"decisionType":{"type":"string","const":"JUDGMENT","title":"Decisiontype","default":"JUDGMENT"},"language":{"$ref":"#/components/schemas/Language","description":"Reader language of every text."},"verdictOpen":{"type":"boolean","title":"Verdictopen","description":"False: a policy pre-check already fixed the verdict."},"fixedReasonCode":{"anyOf":[{"$ref":"#/components/schemas/ReportReasonCode"},{"type":"null"}],"description":"Set iff the verdict is not open."},"materialInputUnresolvedAdmissible":{"type":"boolean","title":"Materialinputunresolvedadmissible","description":"Whether MATERIAL_INPUT_UNRESOLVED may be the reason."},"ruleLines":{"items":{"type":"string"},"type":"array","title":"Rulelines","description":"Policy rules the verdict must follow.","default":[]},"sectionKinds":{"items":{"$ref":"#/components/schemas/ReportNarrativeSectionKind"},"type":"array","title":"Sectionkinds","description":"The section slots to write, once each."}},"additionalProperties":false,"type":"object","required":["inputKey","ownerRevision","instructions","coveredItemCount","itemCount","deadline","language","verdictOpen","materialInputUnresolvedAdmissible","sectionKinds"],"title":"ArtifectJudgmentInputPage","description":"Input page for JUDGMENT: the conclusion question and its citable evidence."},"ArtifectKind":{"type":"string","enum":["AMZ_PRODUCT_REPORT","POSITIONING","AMZ_ADS_ADVICE","PRODUCT_IMAGES","SHOPIFY_THEME_UPDATE","AMZ_LISTING_CHANGES","SHOPIFY_ARTICLE_CHANGES","SHOPIFY_SEO_CHANGES","SHOPIFY_GEO_CHANGES","AMZ_ADS_CHANGES","SHOPIFY_BLOG_POSTS","SHOPIFY_PRODUCT","AMZ_MCF_ORDER","AMZ_LISTING","AMZ_FBA_INBOUND_PLAN","MONITOR"],"title":"ArtifectKind","description":"Identify the workflow family handled by an Artifect runtime."},"ArtifectKindDescription":{"properties":{"kind":{"$ref":"#/components/schemas/ArtifectKind"},"label":{"type":"string","minLength":1,"title":"Label"},"purpose":{"type":"string","minLength":1,"title":"Purpose"},"requestSchema":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"type":"object","title":"Requestschema"}},"additionalProperties":false,"type":"object","required":["kind","label","purpose","requestSchema"],"title":"ArtifectKindDescription","description":"One hosted kind's label, purpose and exact request bodies as one JSON Schema document."},"ArtifectMaterialFactsInputPage":{"properties":{"object":{"type":"string","const":"artifect_input_page","title":"Object","default":"artifect_input_page"},"inputKey":{"type":"string","maxLength":256,"minLength":1,"title":"Inputkey"},"ownerRevision":{"type":"integer","minimum":0.0,"title":"Ownerrevision"},"instructions":{"type":"string","maxLength":4000,"minLength":1,"title":"Instructions"},"items":{"items":{"$ref":"#/components/schemas/ReportMaterialQuestion"},"type":"array","title":"Items","default":[]},"coveredItemCount":{"type":"integer","minimum":0.0,"title":"Covereditemcount"},"itemCount":{"type":"integer","minimum":0.0,"title":"Itemcount"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"},"deadline":{"type":"string","format":"date-time","title":"Deadline"},"decisionType":{"type":"string","const":"MATERIAL_FACTS","title":"Decisiontype","default":"MATERIAL_FACTS"}},"additionalProperties":false,"type":"object","required":["inputKey","ownerRevision","instructions","coveredItemCount","itemCount","deadline"],"title":"ArtifectMaterialFactsInputPage","description":"Input page for MATERIAL_FACTS: every open material question."},"ArtifectMonitorAdjust":{"properties":{"adjustmentType":{"type":"string","const":"MONITOR_ADJUST","title":"Adjustmenttype","default":"MONITOR_ADJUST"},"command":{"oneOf":[{"$ref":"#/components/schemas/MonitorSetWatches"},{"$ref":"#/components/schemas/MonitorSetCadence"},{"$ref":"#/components/schemas/MonitorSetDelivery"}],"title":"Command","discriminator":{"propertyName":"command","mapping":{"SET_CADENCE":"#/components/schemas/MonitorSetCadence","SET_DELIVERY":"#/components/schemas/MonitorSetDelivery","SET_WATCHES":"#/components/schemas/MonitorSetWatches"}}}},"additionalProperties":false,"type":"object","required":["command"],"title":"ArtifectMonitorAdjust","description":"Edit a monitor's watches, schedule or delivery at the status's revision (0.25.0)."},"ArtifectMonitorConfirmAnswer":{"properties":{"decisionType":{"type":"string","const":"MONITOR_CONFIRM","title":"Decisiontype","default":"MONITOR_CONFIRM"}},"additionalProperties":false,"type":"object","title":"ArtifectMonitorConfirmAnswer","description":"Confirm a MONITOR draft's spec at the answer's expected_revision (its spec revision, 0.25.0)."},"ArtifectMonitorConfirmInputPage":{"properties":{"object":{"type":"string","const":"artifect_input_page","title":"Object","default":"artifect_input_page"},"decisionType":{"type":"string","const":"MONITOR_CONFIRM","title":"Decisiontype","default":"MONITOR_CONFIRM"},"inputKey":{"type":"string","maxLength":256,"minLength":1,"title":"Inputkey"},"ownerRevision":{"type":"integer","minimum":0.0,"title":"Ownerrevision"},"deadline":{"type":"string","format":"date-time","title":"Deadline"},"nextCursor":{"type":"null","title":"Nextcursor"},"page":{"$ref":"#/components/schemas/MonitorConfirmPage"}},"additionalProperties":false,"type":"object","required":["inputKey","ownerRevision","deadline","page"],"title":"ArtifectMonitorConfirmInputPage","description":"The MONITOR confirm page (0.25.0): \"What we'll monitor\" for the person to confirm."},"ArtifectMonitorDecisionType":{"type":"string","enum":["MONITOR_SETUP","MONITOR_CONFIRM"],"title":"ArtifectMonitorDecisionType","description":"The two inputs a MONITOR draft parks on (0.25.0): setup, then the person's confirm."},"ArtifectMonitorDetail":{"properties":{"kind":{"type":"string","const":"MONITOR","title":"Kind","default":"MONITOR"},"cycle":{"$ref":"#/components/schemas/MonitorCycle"},"findings":{"items":{"$ref":"#/components/schemas/MonitorFinding"},"type":"array","title":"Findings","default":[]},"nextAfter":{"anyOf":[{"$ref":"#/components/schemas/MonitorFindingKey"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["cycle"],"title":"ArtifectMonitorDetail","description":"One monitor check in full (0.25.0), the answer to ArtifectMonitorDetailQuery."},"ArtifectMonitorDetailQuery":{"properties":{"kind":{"type":"string","const":"MONITOR","title":"Kind","default":"MONITOR"},"cycleSeq":{"type":"integer","minimum":1.0,"title":"Cycleseq"},"after":{"anyOf":[{"$ref":"#/components/schemas/MonitorFindingKey"},{"type":"null"}]},"limit":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Limit"}},"additionalProperties":false,"type":"object","required":["cycleSeq","limit"],"title":"ArtifectMonitorDetailQuery","description":"Open one monitor check in full (0.25.0): its coverage, deliveries and one findings page."},"ArtifectMonitorSetupAnswer":{"properties":{"decisionType":{"type":"string","const":"MONITOR_SETUP","title":"Decisiontype","default":"MONITOR_SETUP"},"watches":{"items":{"$ref":"#/components/schemas/MonitorWatchRequest"},"type":"array","minItems":1,"title":"Watches"},"cadence":{"$ref":"#/components/schemas/MonitorCadence"},"delivery":{"$ref":"#/components/schemas/MonitorDelivery","default":{"chat":true,"email":false}}},"additionalProperties":false,"type":"object","required":["watches","cadence"],"title":"ArtifectMonitorSetupAnswer","description":"Answer a MONITOR draft's setup: the watches, the schedule and the delivery channels (0.25.0)."},"ArtifectMonitorSetupInputPage":{"properties":{"object":{"type":"string","const":"artifect_input_page","title":"Object","default":"artifect_input_page"},"decisionType":{"type":"string","const":"MONITOR_SETUP","title":"Decisiontype","default":"MONITOR_SETUP"},"inputKey":{"type":"string","maxLength":256,"minLength":1,"title":"Inputkey"},"ownerRevision":{"type":"integer","minimum":0.0,"title":"Ownerrevision"},"deadline":{"type":"string","format":"date-time","title":"Deadline"},"nextCursor":{"type":"null","title":"Nextcursor"},"page":{"$ref":"#/components/schemas/MonitorSetupPage"}},"additionalProperties":false,"type":"object","required":["inputKey","ownerRevision","deadline","page"],"title":"ArtifectMonitorSetupInputPage","description":"The MONITOR setup page (0.25.0): the core-rendered capability offers and the cadence floor."},"ArtifectMonitorSnapshot":{"properties":{"kind":{"type":"string","const":"MONITOR","title":"Kind","default":"MONITOR"},"snapshot":{"$ref":"#/components/schemas/MonitorSnapshot"}},"additionalProperties":false,"type":"object","required":["snapshot"],"title":"ArtifectMonitorSnapshot","description":"A MONITOR's snapshot (0.25.0): the monitor, its open cycle and its newest finished one."},"ArtifectOccurrence":{"properties":{"seq":{"type":"integer","minimum":1.0,"title":"Seq"},"state":{"$ref":"#/components/schemas/ArtifectOccurrenceState"},"dueAt":{"type":"string","format":"date-time","title":"Dueat"},"finishedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finishedat"},"newCount":{"type":"integer","minimum":0.0,"title":"Newcount"}},"additionalProperties":false,"type":"object","required":["seq","state","dueAt","finishedAt","newCount"],"title":"ArtifectOccurrence","description":"One scheduled occurrence (a monitor's check), as every standing kind shows it."},"ArtifectOccurrenceState":{"type":"string","enum":["RUNNING","REPORTED","QUIET","SKIPPED","FAILED"],"title":"ArtifectOccurrenceState","description":"Where one scheduled occurrence is; RUNNING is open, the other four are finished."},"ArtifectOccurrences":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ArtifectOccurrence"},"type":"array","title":"Items"},"more":{"type":"boolean","title":"More"}},"additionalProperties":false,"type":"object","required":["items","more"],"title":"ArtifectOccurrences","description":"The answer to ArtifectOccurrencesQuery: one page of occurrences, newest first."},"ArtifectOccurrencesQuery":{"properties":{"query":{"type":"string","const":"OCCURRENCES","title":"Query"},"beforeSeq":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Beforeseq"},"limit":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Limit"},"kind":{"anyOf":[{"type":"string","const":"MONITOR"},{"type":"null"}],"title":"Kind"}},"additionalProperties":false,"type":"object","required":["query","limit"],"title":"ArtifectOccurrencesQuery","description":"List a standing artifect's occurrences (a monitor's checks), newest first."},"ArtifectPendingInput":{"properties":{"inputKey":{"type":"string","maxLength":256,"minLength":1,"title":"Inputkey"},"decisionType":{"anyOf":[{"$ref":"#/components/schemas/ReportDecisionType"},{"$ref":"#/components/schemas/ArtifectPositioningDecisionType"},{"$ref":"#/components/schemas/AdsDecisionType"},{"$ref":"#/components/schemas/ArtifectShopifyBlogPostsDecisionType"},{"$ref":"#/components/schemas/ArtifectMonitorDecisionType"}],"title":"Decisiontype"},"itemCount":{"type":"integer","minimum":0.0,"title":"Itemcount"},"coveredItemCount":{"type":"integer","minimum":0.0,"title":"Covereditemcount"},"deadline":{"type":"string","format":"date-time","title":"Deadline"}},"additionalProperties":false,"type":"object","required":["inputKey","decisionType","itemCount","coveredItemCount","deadline"],"title":"ArtifectPendingInput","description":"Summarize the one request a WAITING_FOR_INPUT Artifect is parked on."},"ArtifectPositioningAdjustment":{"properties":{"adjustmentType":{"type":"string","const":"POSITIONING_EDITS","title":"Adjustmenttype","default":"POSITIONING_EDITS"},"edits":{"items":{"oneOf":[{"$ref":"#/components/schemas/SetSetup"},{"$ref":"#/components/schemas/AddItems"},{"$ref":"#/components/schemas/UpdateItems"},{"$ref":"#/components/schemas/RemoveItems"},{"$ref":"#/components/schemas/SaveDimension"},{"$ref":"#/components/schemas/DeleteDimension"},{"$ref":"#/components/schemas/SetPlacements"},{"$ref":"#/components/schemas/SaveCriterion"},{"$ref":"#/components/schemas/DeleteCriterion"},{"$ref":"#/components/schemas/SetResults"},{"$ref":"#/components/schemas/SaveView"},{"$ref":"#/components/schemas/DeleteView"},{"$ref":"#/components/schemas/ReorderViews"},{"$ref":"#/components/schemas/Continue"},{"$ref":"#/components/schemas/SetReview"},{"$ref":"#/components/schemas/Cancel"},{"$ref":"#/components/schemas/Propose"},{"$ref":"#/components/schemas/Classify"},{"$ref":"#/components/schemas/Assess"},{"$ref":"#/components/schemas/Score"},{"$ref":"#/components/schemas/Decide"}],"discriminator":{"propertyName":"type","mapping":{"ADD_ITEMS":"#/components/schemas/AddItems","ASSESS":"#/components/schemas/Assess","CANCEL":"#/components/schemas/Cancel","CLASSIFY":"#/components/schemas/Classify","CONTINUE":"#/components/schemas/Continue","DECIDE":"#/components/schemas/Decide","DELETE_CRITERION":"#/components/schemas/DeleteCriterion","DELETE_DIMENSION":"#/components/schemas/DeleteDimension","DELETE_VIEW":"#/components/schemas/DeleteView","PROPOSE":"#/components/schemas/Propose","REMOVE_ITEMS":"#/components/schemas/RemoveItems","REORDER_VIEWS":"#/components/schemas/ReorderViews","SAVE_CRITERION":"#/components/schemas/SaveCriterion","SAVE_DIMENSION":"#/components/schemas/SaveDimension","SAVE_VIEW":"#/components/schemas/SaveView","SCORE":"#/components/schemas/Score","SET_PLACEMENTS":"#/components/schemas/SetPlacements","SET_RESULTS":"#/components/schemas/SetResults","SET_REVIEW":"#/components/schemas/SetReview","SET_SETUP":"#/components/schemas/SetSetup","UPDATE_ITEMS":"#/components/schemas/UpdateItems"}}},"type":"array","minItems":1,"title":"Edits"}},"additionalProperties":false,"type":"object","required":["edits"],"title":"ArtifectPositioningAdjustment","description":"Post-completion positioning edits applied literally, without a rerun."},"ArtifectPositioningCreate":{"properties":{"kind":{"type":"string","const":"POSITIONING","title":"Kind","default":"POSITIONING"},"replayKey":{"type":"string","maxLength":256,"minLength":1,"title":"Replaykey"},"positioningContext":{"type":"string","maxLength":4000,"minLength":1,"title":"Positioningcontext"},"pluginId":{"anyOf":[{"type":"string","maxLength":80,"pattern":"^[a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*$"},{"type":"null"}],"title":"Pluginid","description":"Installed plugin ID; omit for the host default. Setup must match this plugin's declaration."},"setup":{"anyOf":[{"patternProperties":{"^[A-Z][A-Z0-9_]*$":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"string"},{"items":{"type":"string"},"type":"array"}]}},"propertyNames":{"maxLength":64},"type":"object"},{"type":"null"}],"title":"Setup","description":"Values for the selected plugin's declared setup fields; omitted fields are proposed at SCOPE."},"language":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["replayKey","positioningContext"],"title":"ArtifectPositioningCreate","description":"Carry the source-agnostic premise for one positioning study."},"ArtifectPositioningDecisionType":{"type":"string","enum":["POSITIONING_STEP"],"title":"ArtifectPositioningDecisionType","description":"The one positioning answer family: a waiting run step's reviewed result."},"ArtifectPositioningDetail":{"properties":{"kind":{"type":"string","const":"POSITIONING","title":"Kind","default":"POSITIONING"},"answer":{"$ref":"#/components/schemas/PositioningDetail"}},"additionalProperties":false,"type":"object","required":["answer"],"title":"ArtifectPositioningDetail","description":"Carry positioning's own answered detail and the labels its answer uses."},"ArtifectPositioningDetailQuery":{"properties":{"kind":{"type":"string","const":"POSITIONING","title":"Kind","default":"POSITIONING"},"query":{"oneOf":[{"$ref":"#/components/schemas/PositioningCellQuery"},{"$ref":"#/components/schemas/PositioningItemsQuery"}],"title":"Query","discriminator":{"propertyName":"object","mapping":{"positioning_cell":"#/components/schemas/PositioningCellQuery","positioning_items":"#/components/schemas/PositioningItemsQuery"}}}},"additionalProperties":false,"type":"object","required":["query"],"title":"ArtifectPositioningDetailQuery","description":"Wrap the POSITIONING package's own detail query for one positioning."},"ArtifectPositioningSnapshot":{"properties":{"kind":{"type":"string","const":"POSITIONING","title":"Kind","default":"POSITIONING"},"room":{"$ref":"#/components/schemas/RoomPublicRead"},"decision":{"$ref":"#/components/schemas/RoomPublicDecisionRead"}},"additionalProperties":false,"type":"object","required":["room","decision"],"title":"ArtifectPositioningSnapshot","description":"Expose one committed POSITIONING revision through customer projections."},"ArtifectPositioningStepCell":{"properties":{"resultType":{"type":"string","const":"CELL","title":"Resulttype","default":"CELL"},"cell":{"$ref":"#/components/schemas/RoomCell"}},"additionalProperties":false,"type":"object","required":["cell"],"title":"ArtifectPositioningStepCell","description":"One assessed cell the waiting step produced (the ASSESS review)."},"ArtifectPositioningStepDecision":{"properties":{"decisionType":{"type":"string","const":"POSITIONING_STEP","title":"Decisiontype","default":"POSITIONING_STEP"},"step":{"$ref":"#/components/schemas/RunStep"},"edits":{"items":{"oneOf":[{"$ref":"#/components/schemas/SetSetup"},{"$ref":"#/components/schemas/AddItems"},{"$ref":"#/components/schemas/UpdateItems"},{"$ref":"#/components/schemas/RemoveItems"},{"$ref":"#/components/schemas/SaveDimension"},{"$ref":"#/components/schemas/DeleteDimension"},{"$ref":"#/components/schemas/SetPlacements"},{"$ref":"#/components/schemas/SaveCriterion"},{"$ref":"#/components/schemas/DeleteCriterion"},{"$ref":"#/components/schemas/SetResults"},{"$ref":"#/components/schemas/SaveView"},{"$ref":"#/components/schemas/DeleteView"},{"$ref":"#/components/schemas/ReorderViews"},{"$ref":"#/components/schemas/Continue"},{"$ref":"#/components/schemas/SetReview"},{"$ref":"#/components/schemas/Cancel"},{"$ref":"#/components/schemas/Propose"},{"$ref":"#/components/schemas/Classify"},{"$ref":"#/components/schemas/Assess"},{"$ref":"#/components/schemas/Score"},{"$ref":"#/components/schemas/Decide"}],"discriminator":{"propertyName":"type","mapping":{"ADD_ITEMS":"#/components/schemas/AddItems","ASSESS":"#/components/schemas/Assess","CANCEL":"#/components/schemas/Cancel","CLASSIFY":"#/components/schemas/Classify","CONTINUE":"#/components/schemas/Continue","DECIDE":"#/components/schemas/Decide","DELETE_CRITERION":"#/components/schemas/DeleteCriterion","DELETE_DIMENSION":"#/components/schemas/DeleteDimension","DELETE_VIEW":"#/components/schemas/DeleteView","PROPOSE":"#/components/schemas/Propose","REMOVE_ITEMS":"#/components/schemas/RemoveItems","REORDER_VIEWS":"#/components/schemas/ReorderViews","SAVE_CRITERION":"#/components/schemas/SaveCriterion","SAVE_DIMENSION":"#/components/schemas/SaveDimension","SAVE_VIEW":"#/components/schemas/SaveView","SCORE":"#/components/schemas/Score","SET_PLACEMENTS":"#/components/schemas/SetPlacements","SET_RESULTS":"#/components/schemas/SetResults","SET_REVIEW":"#/components/schemas/SetReview","SET_SETUP":"#/components/schemas/SetSetup","UPDATE_ITEMS":"#/components/schemas/UpdateItems"}}},"type":"array","title":"Edits","default":[]}},"additionalProperties":false,"type":"object","required":["step"],"title":"ArtifectPositioningStepDecision","description":"Answer a waiting positioning step: apply these edits, then continue."},"ArtifectPositioningStepInputPage":{"properties":{"object":{"type":"string","const":"artifect_input_page","title":"Object","default":"artifect_input_page"},"decisionType":{"type":"string","const":"POSITIONING_STEP","title":"Decisiontype","default":"POSITIONING_STEP"},"inputKey":{"type":"string","maxLength":256,"minLength":1,"title":"Inputkey"},"step":{"$ref":"#/components/schemas/RunStep"},"run":{"$ref":"#/components/schemas/RunRead"},"results":{"items":{"oneOf":[{"$ref":"#/components/schemas/ArtifectPositioningStepItem"},{"$ref":"#/components/schemas/ArtifectPositioningStepCell"}],"discriminator":{"propertyName":"resultType","mapping":{"CELL":"#/components/schemas/ArtifectPositioningStepCell","ITEM":"#/components/schemas/ArtifectPositioningStepItem"}}},"type":"array","title":"Results","default":[]},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"},"deadline":{"type":"string","format":"date-time","title":"Deadline"}},"additionalProperties":false,"type":"object","required":["inputKey","step","run","deadline"],"title":"ArtifectPositioningStepInputPage","description":"One waiting positioning step and the result its agent reviews."},"ArtifectPositioningStepItem":{"properties":{"resultType":{"type":"string","const":"ITEM","title":"Resulttype","default":"ITEM"},"item":{"$ref":"#/components/schemas/ItemRead"}},"additionalProperties":false,"type":"object","required":["item"],"title":"ArtifectPositioningStepItem","description":"One sourced or placed item the waiting step produced (the SOURCE/PLACE review)."},"ArtifectProductImagesDetail":{"properties":{"kind":{"type":"string","const":"PRODUCT_IMAGES","title":"Kind","default":"PRODUCT_IMAGES"},"exports":{"items":{"$ref":"#/components/schemas/ExportSet"},"type":"array","title":"Exports","default":[]},"newestUrls":{"items":{"$ref":"#/components/schemas/HostedImage"},"type":"array","title":"Newesturls","default":[]}},"additionalProperties":false,"type":"object","title":"ArtifectProductImagesDetail","description":"Carry the board's EXPORTS view and ephemeral links for its newest export."},"ArtifectProductImagesDetailQuery":{"properties":{"kind":{"type":"string","const":"PRODUCT_IMAGES","title":"Kind","default":"PRODUCT_IMAGES"},"view":{"$ref":"#/components/schemas/ProductImagesDetailView"}},"additionalProperties":false,"type":"object","required":["view"],"title":"ArtifectProductImagesDetailQuery","description":"Ask one image set one detail view."},"ArtifectProductImagesEdit":{"properties":{"adjustmentType":{"type":"string","const":"PRODUCT_IMAGES_EDIT","title":"Adjustmenttype","default":"PRODUCT_IMAGES_EDIT"},"actions":{"items":{"oneOf":[{"$ref":"#/components/schemas/AddDesign"},{"$ref":"#/components/schemas/RemoveDesign"},{"$ref":"#/components/schemas/OrderDesigns"},{"$ref":"#/components/schemas/ResizeDesign"},{"$ref":"#/components/schemas/SetBackground"},{"$ref":"#/components/schemas/ApplyTemplate"},{"$ref":"#/components/schemas/AddLayer"},{"$ref":"#/components/schemas/RemoveLayers"},{"$ref":"#/components/schemas/OrderLayer"},{"$ref":"#/components/schemas/SetBox"},{"$ref":"#/components/schemas/SetLayerFlags"},{"$ref":"#/components/schemas/SetText"},{"$ref":"#/components/schemas/SetTextStyle"},{"$ref":"#/components/schemas/SetShapeStyle"},{"$ref":"#/components/schemas/SetShadow"},{"$ref":"#/components/schemas/GroupLayers"},{"$ref":"#/components/schemas/UngroupLayer"},{"$ref":"#/components/schemas/CutOutProduct"},{"$ref":"#/components/schemas/GenerateScene"},{"$ref":"#/components/schemas/RestoreRevision"},{"$ref":"#/components/schemas/SetObjectFrame"},{"$ref":"#/components/schemas/SetObjectLock"},{"$ref":"#/components/schemas/CreateVariants"},{"$ref":"#/components/schemas/SetVariantRecipe"},{"$ref":"#/components/schemas/DetachVariant"},{"$ref":"#/components/schemas/AddPlan"},{"$ref":"#/components/schemas/SetPlan"},{"$ref":"#/components/schemas/GenerateFromPlan"},{"$ref":"#/components/schemas/PlaceBrandKit"},{"$ref":"#/components/schemas/SetImageTransform"},{"$ref":"#/components/schemas/GenerateDecor"},{"$ref":"#/components/schemas/SetBoardTitle"}],"discriminator":{"propertyName":"action","mapping":{"ADD_DESIGN":"#/components/schemas/AddDesign","ADD_LAYER":"#/components/schemas/AddLayer","ADD_PLAN":"#/components/schemas/AddPlan","APPLY_TEMPLATE":"#/components/schemas/ApplyTemplate","CREATE_VARIANTS":"#/components/schemas/CreateVariants","CUT_OUT_PRODUCT":"#/components/schemas/CutOutProduct","DETACH_VARIANT":"#/components/schemas/DetachVariant","GENERATE_DECOR":"#/components/schemas/GenerateDecor","GENERATE_FROM_PLAN":"#/components/schemas/GenerateFromPlan","GENERATE_SCENE":"#/components/schemas/GenerateScene","GROUP_LAYERS":"#/components/schemas/GroupLayers","ORDER_DESIGNS":"#/components/schemas/OrderDesigns","ORDER_LAYER":"#/components/schemas/OrderLayer","PLACE_BRAND_KIT":"#/components/schemas/PlaceBrandKit","REMOVE_DESIGN":"#/components/schemas/RemoveDesign","REMOVE_LAYERS":"#/components/schemas/RemoveLayers","RESIZE_DESIGN":"#/components/schemas/ResizeDesign","RESTORE_REVISION":"#/components/schemas/RestoreRevision","SET_BACKGROUND":"#/components/schemas/SetBackground","SET_BOARD_TITLE":"#/components/schemas/SetBoardTitle","SET_BOX":"#/components/schemas/SetBox","SET_IMAGE_TRANSFORM":"#/components/schemas/SetImageTransform","SET_LAYER_FLAGS":"#/components/schemas/SetLayerFlags","SET_OBJECT_FRAME":"#/components/schemas/SetObjectFrame","SET_OBJECT_LOCK":"#/components/schemas/SetObjectLock","SET_PLAN":"#/components/schemas/SetPlan","SET_SHADOW":"#/components/schemas/SetShadow","SET_SHAPE_STYLE":"#/components/schemas/SetShapeStyle","SET_TEXT":"#/components/schemas/SetText","SET_TEXT_STYLE":"#/components/schemas/SetTextStyle","SET_VARIANT_RECIPE":"#/components/schemas/SetVariantRecipe","UNGROUP_LAYER":"#/components/schemas/UngroupLayer"}}},"type":"array","minItems":1,"title":"Actions"},"dryRun":{"type":"boolean","title":"Dryrun","default":false}},"additionalProperties":false,"type":"object","required":["actions"],"title":"ArtifectProductImagesEdit","description":"Edit or quote one board using the image contract's own action batch."},"ArtifectProductImagesExport":{"properties":{"adjustmentType":{"type":"string","const":"PRODUCT_IMAGES_EXPORT","title":"Adjustmenttype","default":"PRODUCT_IMAGES_EXPORT"},"revision":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Revision"},"options":{"$ref":"#/components/schemas/ExportOptions"}},"additionalProperties":false,"type":"object","title":"ArtifectProductImagesExport","description":"Export one revision of an image set (head when revision is None)."},"ArtifectProductImagesQuote":{"properties":{"object":{"type":"string","const":"artifect_quote","title":"Object","default":"artifect_quote"},"quote":{"$ref":"#/components/schemas/BatchQuote"}},"additionalProperties":false,"type":"object","required":["quote"],"title":"ArtifectProductImagesQuote","description":"The no-write quote returned only by a product-images dry-run adjustment."},"ArtifectProductImagesSnapshot":{"properties":{"kind":{"type":"string","const":"PRODUCT_IMAGES","title":"Kind","default":"PRODUCT_IMAGES"},"outline":{"$ref":"#/components/schemas/DocumentOutline"}},"additionalProperties":false,"type":"object","required":["outline"],"title":"ArtifectProductImagesSnapshot","description":"Expose the image contract's canonical multi-object board outline."},"ArtifectRecheckHint":{"properties":{"partKeys":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Partkeys","description":"Affected snapshot parts using the owning kind's existing stable keys, converted by its adapter. Never displayed."},"message":{"type":"string","minLength":1,"title":"Message","description":"Owner-authored, number-free recheck sentence shown to the reader."}},"additionalProperties":false,"type":"object","required":["partKeys","message"],"title":"ArtifectRecheckHint","description":"Tell the agent which snapshot parts moved and how to recheck them."},"ArtifectRef":{"properties":{"object":{"type":"string","const":"artifect_ref","title":"Object","default":"artifect_ref"},"id":{"type":"string","maxLength":256,"minLength":1,"title":"Id"}},"additionalProperties":false,"type":"object","required":["id"],"title":"ArtifectRef","description":"Identify one durable Artifect instance by its opaque public id."},"ArtifectRejectionReason":{"type":"string","enum":["STALE_REVISION","WRONG_INPUT","UNKNOWN_ITEM","ITEM_ALREADY_ANSWERED","CONFLICT","NOT_IN_SAMPLE","EVIDENCE_NOT_RETAINED","REVISION_CONFLICT","RUN_TERMINAL","INVALID_EVIDENCE","INVALID_VALUE"],"title":"ArtifectRejectionReason","description":"Why an answer or adjustment was refused with state left unchanged."},"ArtifectReportCreate":{"properties":{"kind":{"type":"string","const":"AMZ_PRODUCT_REPORT","title":"Kind","default":"AMZ_PRODUCT_REPORT"},"replayKey":{"type":"string","maxLength":256,"minLength":1,"title":"Replaykey"},"asin":{"type":"string","pattern":"^[A-Z0-9]{10}$","title":"Asin"},"amazonMarketplace":{"$ref":"#/components/schemas/AmazonMarketplace"},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords","description":"Discovery keywords; suggest keywords, the seller confirms; at least one nonblank keyword with categoryId skips REPORT_SCOPE; otherwise the run parks on REPORT_SCOPE to ask.","default":[]},"categoryId":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Categoryid","description":"Confirmed Amazon category; with at least one nonblank keyword it skips REPORT_SCOPE."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"language":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}]},"similarProductsLimit":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Similarproductslimit","description":"How many comparable products to analyse; None keeps the runtime's website-aligned default."},"economicSetup":{"anyOf":[{"$ref":"#/components/schemas/ReportProfileEconomicFields"},{"type":"null"}],"description":"The seller's economic setup in the report package's own field names (ACOS band, fixed size/weight, entry-budget threshold). Its suggestedPurchasingCost is refused when purchaseCost is sent, so the seller's cost has ONE create source; a later PROFILE_INPUTS edit changes the benchmark, never a PROFIT_INPUTS override of the analysed product."},"purchaseCost":{"oneOf":[{"$ref":"#/components/schemas/ArtifectReportUserPurchaseCost"},{"$ref":"#/components/schemas/ArtifectReportSystemEstimatedPurchaseCost"}],"title":"Purchasecost","description":"Required seller-confirmed cost: show Keble's estimate as a suggestion, confirm the cost (single or range) with the seller before creating; later changes to the seller's own cost go through PROFILE_INPUTS and re-price every product; competitors' costs can be changed one by one or as a set through PROFIT_INPUTS.","discriminator":{"propertyName":"source","mapping":{"SYSTEM_ESTIMATED":"#/components/schemas/ArtifectReportSystemEstimatedPurchaseCost","USER_SUPPLIED":"#/components/schemas/ArtifectReportUserPurchaseCost"}}}},"additionalProperties":false,"type":"object","required":["replayKey","asin","amazonMarketplace","purchaseCost"],"title":"ArtifectReportCreate","description":"Carry the complete V3 report premise accepted by the runtime."},"ArtifectReportDetail":{"properties":{"kind":{"type":"string","const":"AMZ_PRODUCT_REPORT","title":"Kind","default":"AMZ_PRODUCT_REPORT"},"answer":{"oneOf":[{"$ref":"#/components/schemas/ReportV3OverviewToolResult"},{"$ref":"#/components/schemas/ReportV3ListingsToolResult"},{"$ref":"#/components/schemas/ReportV3ListingDetailToolResult"},{"$ref":"#/components/schemas/ReportV3SectionToolResult"},{"$ref":"#/components/schemas/ReportV3ConclusionToolResult"},{"$ref":"#/components/schemas/ReportV3LifecycleToolResult"},{"$ref":"#/components/schemas/ReportV3EstimationToolResult"},{"$ref":"#/components/schemas/ReportV3JudgmentToolResult"}],"title":"Answer","discriminator":{"propertyName":"object","mapping":{"report_v3_conclusion":"#/components/schemas/ReportV3ConclusionToolResult","report_v3_estimation":"#/components/schemas/ReportV3EstimationToolResult","report_v3_judgment":"#/components/schemas/ReportV3JudgmentToolResult","report_v3_lifecycle":"#/components/schemas/ReportV3LifecycleToolResult","report_v3_listing_detail":"#/components/schemas/ReportV3ListingDetailToolResult","report_v3_listings":"#/components/schemas/ReportV3ListingsToolResult","report_v3_overview":"#/components/schemas/ReportV3OverviewToolResult","report_v3_section":"#/components/schemas/ReportV3SectionToolResult"}}}},"additionalProperties":false,"type":"object","required":["answer"],"title":"ArtifectReportDetail","description":"Carry the report package's own typed detail answer."},"ArtifectReportDetailQuery":{"properties":{"kind":{"type":"string","const":"AMZ_PRODUCT_REPORT","title":"Kind","default":"AMZ_PRODUCT_REPORT"},"query":{"oneOf":[{"$ref":"#/components/schemas/ReportOverviewQuery"},{"$ref":"#/components/schemas/ReportListingsQuery"},{"$ref":"#/components/schemas/ReportListingQuery"},{"$ref":"#/components/schemas/ReportSectionQuery"},{"$ref":"#/components/schemas/ReportEvidenceQuery"},{"$ref":"#/components/schemas/ReportJudgmentQuery"}],"title":"Query","discriminator":{"propertyName":"object","mapping":{"report_evidence":"#/components/schemas/ReportEvidenceQuery","report_judgment":"#/components/schemas/ReportJudgmentQuery","report_listing":"#/components/schemas/ReportListingQuery","report_listings":"#/components/schemas/ReportListingsQuery","report_overview":"#/components/schemas/ReportOverviewQuery","report_section":"#/components/schemas/ReportSectionQuery"}}}},"additionalProperties":false,"type":"object","required":["query"],"title":"ArtifectReportDetailQuery","description":"Wrap the REPORT package's own detail query for one report artifect."},"ArtifectReportScopeInputPage":{"properties":{"object":{"type":"string","const":"artifect_input_page","title":"Object","default":"artifect_input_page"},"inputKey":{"type":"string","maxLength":256,"minLength":1,"title":"Inputkey"},"ownerRevision":{"type":"integer","minimum":0.0,"title":"Ownerrevision"},"instructions":{"type":"string","maxLength":4000,"minLength":1,"title":"Instructions"},"items":{"items":{"$ref":"#/components/schemas/ReportScopeCandidate"},"type":"array","title":"Items","default":[]},"coveredItemCount":{"type":"integer","minimum":0.0,"title":"Covereditemcount"},"itemCount":{"type":"integer","minimum":0.0,"title":"Itemcount"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"},"deadline":{"type":"string","format":"date-time","title":"Deadline"},"decisionType":{"type":"string","const":"REPORT_SCOPE","title":"Decisiontype","default":"REPORT_SCOPE"}},"additionalProperties":false,"type":"object","required":["inputKey","ownerRevision","instructions","coveredItemCount","itemCount","deadline"],"title":"ArtifectReportScopeInputPage","description":"Input page for REPORT_SCOPE: the offered category candidates."},"ArtifectReportSnapshot":{"properties":{"kind":{"type":"string","const":"AMZ_PRODUCT_REPORT","title":"Kind","default":"AMZ_PRODUCT_REPORT"},"payload":{"$ref":"#/components/schemas/ProgressiveReportSnapshot"}},"additionalProperties":false,"type":"object","required":["payload"],"title":"ArtifectReportSnapshot","description":"Expose one immutable progressive REPORT snapshot from report CRUD."},"ArtifectReportSystemEstimatedPurchaseCost":{"properties":{"source":{"type":"string","const":"SYSTEM_ESTIMATED","title":"Source","default":"SYSTEM_ESTIMATED"},"sellerAgreed":{"type":"boolean","const":true,"title":"Selleragreed","description":"The seller agreed to use Keble's estimate; must be true. A create never assumes this agreement."}},"additionalProperties":false,"type":"object","required":["sellerAgreed"],"title":"ArtifectReportSystemEstimatedPurchaseCost","description":"Carry the seller's explicit agreement to let Keble estimate the cost."},"ArtifectReportUserPurchaseCost":{"properties":{"source":{"type":"string","const":"USER_SUPPLIED","title":"Source","default":"USER_SUPPLIED"},"value":{"$ref":"#/components/schemas/MinorUnitMoney","description":"The seller's own per-unit purchasing cost."},"upperBound":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"Range upper bound; omit it for a single value. When present it must use the same currency as value and be >= value."}},"additionalProperties":false,"type":"object","required":["value"],"title":"ArtifectReportUserPurchaseCost","description":"Carry the seller's own purchasing cost, as one value or a low/high range."},"ArtifectRunItem":{"properties":{"ref":{"$ref":"#/components/schemas/ArtifectRef"},"kind":{"$ref":"#/components/schemas/ArtifectKind"},"stage":{"$ref":"#/components/schemas/TaskStage"},"failureType":{"anyOf":[{"$ref":"#/components/schemas/TaskExceptionType"},{"type":"null"}],"description":"Task failure class, set only while the run has failed."},"failureCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failurecode","description":"Stable failure refinement code for classification only; user interfaces map it to copy."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"storeId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Storeid"},"anchorDay":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Anchorday"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"completedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completedat","description":"When the run's task reached SUCCESS or FAILURE (its success_ts/failure_ts); null otherwise."}},"additionalProperties":false,"type":"object","required":["ref","kind","stage","title","storeId","anchorDay","createdAt"],"title":"ArtifectRunItem","description":"One run the caller's owner started, from any starter (web, agent, MCP)."},"ArtifectRunList":{"properties":{"object":{"type":"string","const":"artifect_run_list","title":"Object","default":"artifect_run_list"},"runs":{"items":{"$ref":"#/components/schemas/ArtifectRunItem"},"type":"array","title":"Runs"},"nextBefore":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Nextbefore"}},"additionalProperties":false,"type":"object","required":["runs"],"title":"ArtifectRunList","description":"One newest-first page; next_before is set only when an older run exists."},"ArtifectRunsRequest":{"properties":{"kind":{"anyOf":[{"$ref":"#/components/schemas/ArtifectKind"},{"type":"null"}]},"storeId":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Storeid"},"limit":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Limit","default":5},"before":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Before"}},"additionalProperties":false,"type":"object","title":"ArtifectRunsRequest","description":"Which of the caller's own Artifect runs to list, newest first."},"ArtifectSampleRelevanceInputPage":{"properties":{"object":{"type":"string","const":"artifect_input_page","title":"Object","default":"artifect_input_page"},"inputKey":{"type":"string","maxLength":256,"minLength":1,"title":"Inputkey"},"ownerRevision":{"type":"integer","minimum":0.0,"title":"Ownerrevision"},"instructions":{"type":"string","maxLength":4000,"minLength":1,"title":"Instructions"},"items":{"items":{"$ref":"#/components/schemas/SampleRelevanceItem"},"type":"array","title":"Items","default":[]},"coveredItemCount":{"type":"integer","minimum":0.0,"title":"Covereditemcount"},"itemCount":{"type":"integer","minimum":0.0,"title":"Itemcount"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"},"deadline":{"type":"string","format":"date-time","title":"Deadline"},"decisionType":{"type":"string","const":"SAMPLE_RELEVANCE","title":"Decisiontype","default":"SAMPLE_RELEVANCE"}},"additionalProperties":false,"type":"object","required":["inputKey","ownerRevision","instructions","coveredItemCount","itemCount","deadline"],"title":"ArtifectSampleRelevanceInputPage","description":"Input page for SAMPLE_RELEVANCE: one page of frozen candidates."},"ArtifectShopifyBlogPostsCreate":{"properties":{"kind":{"type":"string","const":"SHOPIFY_BLOG_POSTS","title":"Kind","default":"SHOPIFY_BLOG_POSTS"},"request":{"$ref":"#/components/schemas/BlogCreate"}},"additionalProperties":false,"type":"object","required":["request"],"title":"ArtifectShopifyBlogPostsCreate","description":"Create one guided Shopify blog post set from the kind's own BlogCreate."},"ArtifectShopifyBlogPostsDecisionType":{"type":"string","enum":["SHOPIFY_BLOG_POSTS_STEP"],"title":"ArtifectShopifyBlogPostsDecisionType","description":"The one blog-posts answer family: the parked guided step's answer."},"ArtifectShopifyBlogPostsEdits":{"properties":{"adjustmentType":{"type":"string","const":"SHOPIFY_BLOG_POSTS_EDITS","title":"Adjustmenttype","default":"SHOPIFY_BLOG_POSTS_EDITS"},"edits":{"items":{"oneOf":[{"$ref":"#/components/schemas/ReplacePost"},{"$ref":"#/components/schemas/DropPost"}],"discriminator":{"propertyName":"edit","mapping":{"DROP_POST":"#/components/schemas/DropPost","REPLACE_POST":"#/components/schemas/ReplacePost"}}},"type":"array","minItems":1,"title":"Edits"}},"additionalProperties":false,"type":"object","required":["edits"],"title":"ArtifectShopifyBlogPostsEdits","description":"Edit a READY blog post set before create-all: replace or drop posts."},"ArtifectShopifyBlogPostsPropose":{"properties":{"adjustmentType":{"type":"string","const":"SHOPIFY_BLOG_POSTS_PROPOSE","title":"Adjustmenttype","default":"SHOPIFY_BLOG_POSTS_PROPOSE"}},"additionalProperties":false,"type":"object","title":"ArtifectShopifyBlogPostsPropose","description":"File create-all for the READY post set at the envelope's base_revision."},"ArtifectShopifyBlogPostsProposeRevert":{"properties":{"adjustmentType":{"type":"string","const":"SHOPIFY_BLOG_POSTS_PROPOSE_REVERT","title":"Adjustmenttype","default":"SHOPIFY_BLOG_POSTS_PROPOSE_REVERT"}},"additionalProperties":false,"type":"object","title":"ArtifectShopifyBlogPostsProposeRevert","description":"File revert-all of the applied create-all's still-live articles at base_revision."},"ArtifectShopifyBlogPostsSnapshot":{"properties":{"kind":{"type":"string","const":"SHOPIFY_BLOG_POSTS","title":"Kind","default":"SHOPIFY_BLOG_POSTS"},"snapshot":{"$ref":"#/components/schemas/BlogSnapshot"}},"additionalProperties":false,"type":"object","required":["snapshot"],"title":"ArtifectShopifyBlogPostsSnapshot","description":"Carry the blog-posts kind's revisioned BlogSnapshot under its kind tag, minus its staged batch."},"ArtifectShopifyBlogPostsStepDecision":{"properties":{"decisionType":{"type":"string","const":"SHOPIFY_BLOG_POSTS_STEP","title":"Decisiontype","default":"SHOPIFY_BLOG_POSTS_STEP"},"answer":{"oneOf":[{"$ref":"#/components/schemas/BlogDirection"},{"$ref":"#/components/schemas/PostPlan"},{"$ref":"#/components/schemas/StyleExamples"},{"$ref":"#/components/schemas/PostDraft"},{"$ref":"#/components/schemas/PostSelfReview"},{"$ref":"#/components/schemas/SampleConfirmation"}],"title":"Answer","discriminator":{"propertyName":"step","mapping":{"DIRECTION":"#/components/schemas/BlogDirection","POST_DRAFTS":"#/components/schemas/PostDraft","POST_PLAN":"#/components/schemas/PostPlan","SAMPLE_CONFIRMATION":"#/components/schemas/SampleConfirmation","SELF_REVIEW":"#/components/schemas/PostSelfReview","STYLE_EXAMPLES":"#/components/schemas/StyleExamples"}}}},"additionalProperties":false,"type":"object","required":["answer"],"title":"ArtifectShopifyBlogPostsStepDecision","description":"Answer the parked guided blog step with that step's own answer model."},"ArtifectShopifyBlogPostsStepInputPage":{"properties":{"object":{"type":"string","const":"artifect_input_page","title":"Object","default":"artifect_input_page"},"inputKey":{"type":"string","maxLength":256,"minLength":1,"title":"Inputkey"},"ownerRevision":{"type":"integer","minimum":0.0,"title":"Ownerrevision"},"instructions":{"type":"string","maxLength":4000,"minLength":1,"title":"Instructions"},"items":{"items":{"$ref":"#/components/schemas/PlannedPost"},"type":"array","title":"Items","default":[]},"coveredItemCount":{"type":"integer","minimum":0.0,"title":"Covereditemcount"},"itemCount":{"type":"integer","minimum":0.0,"title":"Itemcount"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"},"deadline":{"type":"string","format":"date-time","title":"Deadline"},"decisionType":{"type":"string","const":"SHOPIFY_BLOG_POSTS_STEP","title":"Decisiontype","default":"SHOPIFY_BLOG_POSTS_STEP"},"step":{"$ref":"#/components/schemas/BlogStep"}},"additionalProperties":false,"type":"object","required":["inputKey","ownerRevision","instructions","coveredItemCount","itemCount","deadline","step"],"title":"ArtifectShopifyBlogPostsStepInputPage","description":"Input page of the parked guided blog step: its guidance and the posts still uncovered."},"ArtifectShopifyProductCreate":{"properties":{"kind":{"type":"string","const":"SHOPIFY_PRODUCT","title":"Kind","default":"SHOPIFY_PRODUCT"},"request":{"$ref":"#/components/schemas/ProductCreateRequest"}},"additionalProperties":false,"type":"object","required":["request"],"title":"ArtifectShopifyProductCreate","description":"Create one unpublished Shopify product draft from the kind's ProductCreateRequest."},"ArtifectShopifyProductEdit":{"properties":{"adjustmentType":{"type":"string","const":"SHOPIFY_PRODUCT_EDIT","title":"Adjustmenttype","default":"SHOPIFY_PRODUCT_EDIT"},"content":{"$ref":"#/components/schemas/ProductContent"}},"additionalProperties":false,"type":"object","required":["content"],"title":"ArtifectShopifyProductEdit","description":"Replace a Shopify product draft's whole content (pane or agent edit)."},"ArtifectShopifyProductPropose":{"properties":{"adjustmentType":{"type":"string","const":"SHOPIFY_PRODUCT_PROPOSE","title":"Adjustmenttype","default":"SHOPIFY_PRODUCT_PROPOSE"}},"additionalProperties":false,"type":"object","title":"ArtifectShopifyProductPropose","description":"File the draft's one product.create at the envelope's base_revision."},"ArtifectShopifyProductProposeRevert":{"properties":{"adjustmentType":{"type":"string","const":"SHOPIFY_PRODUCT_PROPOSE_REVERT","title":"Adjustmenttype","default":"SHOPIFY_PRODUCT_PROPOSE_REVERT"}},"additionalProperties":false,"type":"object","title":"ArtifectShopifyProductProposeRevert","description":"File one product.delete for the run's single live product, at base_revision."},"ArtifectShopifyProductSnapshot":{"properties":{"kind":{"type":"string","const":"SHOPIFY_PRODUCT","title":"Kind","default":"SHOPIFY_PRODUCT"},"snapshot":{"$ref":"#/components/schemas/ProductSnapshot"}},"additionalProperties":false,"type":"object","required":["snapshot"],"title":"ArtifectShopifyProductSnapshot","description":"Carry the product kind's revisioned ProductSnapshot under its kind tag, minus its staged batch."},"ArtifectShopifyThemeCreate":{"properties":{"kind":{"type":"string","const":"SHOPIFY_THEME_UPDATE","title":"Kind","default":"SHOPIFY_THEME_UPDATE"},"request":{"$ref":"#/components/schemas/ThemeDocumentCreateRequest","description":"Start one theme workspace on a connected store: pages are edited as Keble sections and settings, previewed on an unpublished copy of the theme and published with one approval in To do; the theme's own files are never edited. Use this kind, not raw elta_propose shopify.admin.theme_file writes, to add or change sections on a store page. Omit targetThemeId to target the live theme; a targetThemeId the store does not have is refused with the store's themes (name, role, id). A stale base revision is REVISION_CONFLICT; other refusals carry kindCode: RUN_NOT_FOUND (No such theme run for this account; list the runs to find it.); WRONG_RUN_KIND (Use the commands of this run's kind; read its snapshot first.); STORE_NOT_FOUND (Connect the store first, then create the run.); TARGET_NOT_IN_STORE (Pick one of the store's themes as the target.); REPLAY_KEY_REUSED (Use a new replay key for a different create request.); UNKNOWN_REVISION (Name a revision this run has.); UNKNOWN_PAGE (Add the page for that template first.); UNKNOWN_SECTION (Use a section key from the snapshot.); UNKNOWN_BLOCK (Use a block key of that section from the snapshot.); UNKNOWN_SECTION_KIND (Use one of the library's section kinds.); UNKNOWN_SETTING (Use a setting declared for that section or block kind.); SETTING_OUT_OF_BOUNDS (Keep the value within the setting's type and bounds.); DUPLICATE_KEY (Choose a template, section key or block key not used yet.); BLOCK_NOT_ALLOWED (That section kind takes no blocks of this kind.); TOO_MANY_BLOCKS (Remove a block before adding another.); ANCHOR_NOT_FOUND (Place the section after an entry the page still has.); TEMPLATE_NOT_PLACEABLE (Place sections only on the theme's existing page templates.); THEME_LIBRARY_FULL (The store already holds 20 themes, Shopify's maximum; delete an unused theme in Shopify Admin.); THEME_PROCESSING (Shopify is still creating the preview copy; update the preview again shortly.); PREVIEW_COPY_UNKNOWN (The preview copy may exist; find it in Shopify Admin by its name and remove it.); NO_PREVIEW_COPY (There is no preview copy to discard.); PREVIEW_NOT_READY (Update the preview and wait until the copy shows this revision.); PROPOSAL_PENDING (A request for this step waits in To do; decide it there first.); BASE_CHANGED (The theme changed since it was read; publish again to re-merge.); NOTHING_TO_PROPOSE (The theme already shows this version; there is nothing to change.); PREVIEW_REJECTED (ELTA refused a write before filing, so nothing was filed; resolve its reason (FAMILY_OFF: turn on theme edits for the store), then repeat the step.)"}},"additionalProperties":false,"type":"object","required":["request"],"title":"ArtifectShopifyThemeCreate","description":"Create one Shopify theme document workspace from the theme contract's document request."},"ArtifectShopifyThemeDetail":{"properties":{"kind":{"type":"string","const":"SHOPIFY_THEME_UPDATE","title":"Kind","default":"SHOPIFY_THEME_UPDATE"},"changeSet":{"$ref":"#/components/schemas/ThemeChangeSet"},"proposalStates":{"items":{"$ref":"#/components/schemas/ThemeProposalStateRead"},"type":"array","title":"Proposalstates","default":[]}},"additionalProperties":false,"type":"object","required":["changeSet"],"title":"ArtifectShopifyThemeDetail","description":"FROZEN (D-03): carry a legacy run's typed change-set detail unchanged."},"ArtifectShopifyThemeDetailQuery":{"properties":{"kind":{"type":"string","const":"SHOPIFY_THEME_UPDATE","title":"Kind","default":"SHOPIFY_THEME_UPDATE"},"changeSetId":{"type":"string","title":"Changesetid"}},"additionalProperties":false,"type":"object","required":["changeSetId"],"title":"ArtifectShopifyThemeDetailQuery","description":"FROZEN (D-03): address one change set of a legacy Shopify theme run for a detail read."},"ArtifectShopifyThemeDiscardPreview":{"properties":{"adjustmentType":{"type":"string","const":"SHOPIFY_THEME_UPDATE_DISCARD_PREVIEW","title":"Adjustmenttype","default":"SHOPIFY_THEME_UPDATE_DISCARD_PREVIEW"}},"additionalProperties":false,"type":"object","title":"ArtifectShopifyThemeDiscardPreview","description":"File the delete of the run's one preview copy (explicit only; abandonment never discards)."},"ArtifectShopifyThemeDocumentDetail":{"properties":{"kind":{"type":"string","const":"SHOPIFY_THEME_UPDATE","title":"Kind","default":"SHOPIFY_THEME_UPDATE"},"runKind":{"type":"string","const":"DOCUMENT","title":"Runkind","default":"DOCUMENT"},"answer":{"oneOf":[{"$ref":"#/components/schemas/ArtifectShopifyThemeRevisionAnswer"},{"$ref":"#/components/schemas/ArtifectShopifyThemeTemplatesAnswer"},{"$ref":"#/components/schemas/ArtifectShopifyThemeTemplateOutlineAnswer"}],"title":"Answer","discriminator":{"propertyName":"view","mapping":{"REVISION":"#/components/schemas/ArtifectShopifyThemeRevisionAnswer","TEMPLATES":"#/components/schemas/ArtifectShopifyThemeTemplatesAnswer","TEMPLATE_OUTLINE":"#/components/schemas/ArtifectShopifyThemeTemplateOutlineAnswer"}}}},"additionalProperties":false,"type":"object","required":["answer"],"title":"ArtifectShopifyThemeDocumentDetail","description":"Carry one detail answer of a theme DOCUMENT run (the report/positioning nested-answer pattern)."},"ArtifectShopifyThemeDocumentQuery":{"properties":{"kind":{"type":"string","const":"SHOPIFY_THEME_UPDATE","title":"Kind","default":"SHOPIFY_THEME_UPDATE"},"runKind":{"type":"string","const":"DOCUMENT","title":"Runkind"},"query":{"oneOf":[{"$ref":"#/components/schemas/ArtifectShopifyThemeRevisionQuery"},{"$ref":"#/components/schemas/ArtifectShopifyThemeTemplatesQuery"},{"$ref":"#/components/schemas/ArtifectShopifyThemeTemplateOutlineQuery"}],"title":"Query","discriminator":{"propertyName":"view","mapping":{"REVISION":"#/components/schemas/ArtifectShopifyThemeRevisionQuery","TEMPLATES":"#/components/schemas/ArtifectShopifyThemeTemplatesQuery","TEMPLATE_OUTLINE":"#/components/schemas/ArtifectShopifyThemeTemplateOutlineQuery"}}}},"additionalProperties":false,"type":"object","required":["runKind","query"],"title":"ArtifectShopifyThemeDocumentQuery","description":"Address one detail view of a theme DOCUMENT run (the report/positioning nested-query pattern)."},"ArtifectShopifyThemeDocumentSnapshot":{"properties":{"kind":{"type":"string","const":"SHOPIFY_THEME_UPDATE","title":"Kind","default":"SHOPIFY_THEME_UPDATE"},"runKind":{"type":"string","const":"DOCUMENT","title":"Runkind","default":"DOCUMENT"},"snapshot":{"$ref":"#/components/schemas/ThemeDocumentSnapshot"},"proposalStates":{"items":{"$ref":"#/components/schemas/ThemeDocumentProposalStateRead"},"type":"array","title":"Proposalstates","default":[]}},"additionalProperties":false,"type":"object","required":["snapshot"],"title":"ArtifectShopifyThemeDocumentSnapshot","description":"Expose a theme DOCUMENT run's snapshot: the theme contract's document snapshot plus live states."},"ArtifectShopifyThemeEdit":{"properties":{"adjustmentType":{"type":"string","const":"SHOPIFY_THEME_UPDATE_EDIT","title":"Adjustmenttype","default":"SHOPIFY_THEME_UPDATE_EDIT"},"actions":{"items":{"oneOf":[{"$ref":"#/components/schemas/AddPage"},{"$ref":"#/components/schemas/AddSection"},{"$ref":"#/components/schemas/MoveSection"},{"$ref":"#/components/schemas/RemoveSection"},{"$ref":"#/components/schemas/SetSettings"},{"$ref":"#/components/schemas/AddBlock"},{"$ref":"#/components/schemas/MoveBlock"},{"$ref":"#/components/schemas/RemoveBlock"},{"$ref":"#/components/schemas/ShopifyThemeRestoreRevision"}],"discriminator":{"propertyName":"action","mapping":{"ADD_BLOCK":"#/components/schemas/AddBlock","ADD_PAGE":"#/components/schemas/AddPage","ADD_SECTION":"#/components/schemas/AddSection","MOVE_BLOCK":"#/components/schemas/MoveBlock","MOVE_SECTION":"#/components/schemas/MoveSection","REMOVE_BLOCK":"#/components/schemas/RemoveBlock","REMOVE_SECTION":"#/components/schemas/RemoveSection","RESTORE_REVISION":"#/components/schemas/ShopifyThemeRestoreRevision","SET_SETTINGS":"#/components/schemas/SetSettings"}}},"type":"array","minItems":1,"title":"Actions","description":"Typed page edits committed together as the next revision, or not at all. Pages are JSON templates (INDEX, PRODUCT, COLLECTION, PAGE, BLOG, ARTICLE); a new Keble landing page uses PAGE with a keble- suffix. Section kinds and settings (type, bound): HERO_BANNER: heading TEXT max 120, subheading TEXT max 250, image IMAGE_URL max 2048, button_label TEXT max 40, button_link URL max 2048, alignment SELECT left|center|right, overlay_opacity RANGE 0-90 step 10, text_color COLOR #rrggbb | RICH_TEXT: heading TEXT max 120, text RICHTEXT max 5000, alignment SELECT left|center|right, text_color COLOR #rrggbb | IMAGE_WITH_TEXT: image IMAGE_URL max 2048, image_position SELECT left|right, heading TEXT max 120, text RICHTEXT max 2000, button_label TEXT max 40, button_link URL max 2048, text_color COLOR #rrggbb | FAQ: heading TEXT max 120, text_color COLOR #rrggbb; blocks QUESTION up to 20 (question TEXT max 250, answer RICHTEXT max 2000) | FEATURE_LIST: heading TEXT max 120, columns RANGE 2-4 step 1, text_color COLOR #rrggbb; blocks FEATURE up to 12 (title TEXT max 80, text RICHTEXT max 500, image IMAGE_URL max 2048). Section keys start with keble- and are unique in the document; unset settings inherit the theme, and a null setting value unsets it again. after names the template entry a section follows (entry ids from the TEMPLATE_OUTLINE detail view): \"@start\" places it first, omitting after places it last. RESTORE_REVISION is the only action of its batch."}},"additionalProperties":false,"type":"object","required":["actions"],"title":"ArtifectShopifyThemeEdit","description":"Edit one theme document: the theme contract's own typed page actions, applied as one batch."},"ArtifectShopifyThemeProposeDiscard":{"properties":{"adjustmentType":{"type":"string","const":"SHOPIFY_THEME_UPDATE_PROPOSE_DISCARD","title":"Adjustmenttype","default":"SHOPIFY_THEME_UPDATE_PROPOSE_DISCARD"},"changeSetId":{"type":"string","title":"Changesetid"}},"additionalProperties":false,"type":"object","required":["changeSetId"],"title":"ArtifectShopifyThemeProposeDiscard","description":"FROZEN (D-03): propose deleting one rejected legacy change set's ELTA-created preview copy."},"ArtifectShopifyThemeProposeRevert":{"properties":{"adjustmentType":{"type":"string","const":"SHOPIFY_THEME_UPDATE_PROPOSE_REVERT","title":"Adjustmenttype","default":"SHOPIFY_THEME_UPDATE_PROPOSE_REVERT"},"changeSetId":{"type":"string","title":"Changesetid"}},"additionalProperties":false,"type":"object","required":["changeSetId"],"title":"ArtifectShopifyThemeProposeRevert","description":"FROZEN (D-03): propose ELTA's undo of one accepted change set of a legacy run."},"ArtifectShopifyThemePublish":{"properties":{"adjustmentType":{"type":"string","const":"SHOPIFY_THEME_UPDATE_PUBLISH","title":"Adjustmenttype","default":"SHOPIFY_THEME_UPDATE_PUBLISH"},"revision":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Revision","description":"The revision to publish to the target theme; null publishes the head revision, resolved before filing. A publish always waits for a person in To do. To undo, publish the previously published revision (revision 0 is the empty starting version, so publishing it undoes a first publish): it removes only Keble's placement, so the page is restored and Keble section files stay in the theme, unused. While one publish waits, publishing another revision is refused PROPOSAL_PENDING (publishing the same revision again answers the waiting approval); NOTHING_TO_PROPOSE means the theme already shows that revision."}},"additionalProperties":false,"type":"object","title":"ArtifectShopifyThemePublish","description":"File one publish of a document revision onto the run's target theme."},"ArtifectShopifyThemeQuery":{"oneOf":[{"$ref":"#/components/schemas/ArtifectShopifyThemeDetailQuery"},{"$ref":"#/components/schemas/ArtifectShopifyThemeDocumentQuery"}]},"ArtifectShopifyThemeRevisionAnswer":{"properties":{"view":{"type":"string","const":"REVISION","title":"View","default":"REVISION"},"revision":{"$ref":"#/components/schemas/ThemeRevision"}},"additionalProperties":false,"type":"object","required":["revision"],"title":"ArtifectShopifyThemeRevisionAnswer","description":"Answer the REVISION view: one committed revision of a theme DOCUMENT run, unchanged."},"ArtifectShopifyThemeRevisionQuery":{"properties":{"view":{"type":"string","const":"REVISION","title":"View","default":"REVISION"},"revision":{"type":"integer","minimum":0.0,"title":"Revision"}},"additionalProperties":false,"type":"object","required":["revision"],"title":"ArtifectShopifyThemeRevisionQuery","description":"Ask a theme DOCUMENT run for one committed revision (the REVISION(n) view, ATJ-10)."},"ArtifectShopifyThemeRunDetail":{"oneOf":[{"$ref":"#/components/schemas/ArtifectShopifyThemeDetail"},{"$ref":"#/components/schemas/ArtifectShopifyThemeDocumentDetail"}]},"ArtifectShopifyThemeRunSnapshot":{"oneOf":[{"$ref":"#/components/schemas/ArtifectShopifyThemeSnapshot"},{"$ref":"#/components/schemas/ArtifectShopifyThemeDocumentSnapshot"}]},"ArtifectShopifyThemeSnapshot":{"properties":{"kind":{"type":"string","const":"SHOPIFY_THEME_UPDATE","title":"Kind","default":"SHOPIFY_THEME_UPDATE"},"ledger":{"$ref":"#/components/schemas/ThemeCreateLedger"},"targetTheme":{"anyOf":[{"$ref":"#/components/schemas/ThemeRef"},{"type":"null"}]},"proposalStates":{"items":{"$ref":"#/components/schemas/ThemeProposalStateRead"},"type":"array","title":"Proposalstates","default":[]}},"additionalProperties":false,"type":"object","required":["ledger"],"title":"ArtifectShopifyThemeSnapshot","description":"FROZEN (D-03): expose a legacy run's snapshot: its create ledger beside the target theme."},"ArtifectShopifyThemeTemplateOutlineAnswer":{"properties":{"view":{"type":"string","const":"TEMPLATE_OUTLINE","title":"View","default":"TEMPLATE_OUTLINE"},"source":{"$ref":"#/components/schemas/ThemeFrameSource"},"outline":{"$ref":"#/components/schemas/ThemeTemplateOutline"}},"additionalProperties":false,"type":"object","required":["source","outline"],"title":"ArtifectShopifyThemeTemplateOutlineAnswer","description":"Answer the TEMPLATE_OUTLINE view: one template's merchant entries in order (this run's excluded)."},"ArtifectShopifyThemeTemplateOutlineQuery":{"properties":{"view":{"type":"string","const":"TEMPLATE_OUTLINE","title":"View","default":"TEMPLATE_OUTLINE"},"template":{"$ref":"#/components/schemas/ThemeTemplateRef"},"source":{"$ref":"#/components/schemas/ThemeFrameSource","default":"TARGET"}},"additionalProperties":false,"type":"object","required":["template"],"title":"ArtifectShopifyThemeTemplateOutlineQuery","description":"Ask a theme DOCUMENT run for one template's merchant entries in order (the locked tree, anchors)."},"ArtifectShopifyThemeTemplatesAnswer":{"properties":{"view":{"type":"string","const":"TEMPLATES","title":"View","default":"TEMPLATES"},"source":{"$ref":"#/components/schemas/ThemeFrameSource"},"templates":{"items":{"$ref":"#/components/schemas/ThemeTemplateRef"},"type":"array","title":"Templates","default":[]}},"additionalProperties":false,"type":"object","required":["source"],"title":"ArtifectShopifyThemeTemplatesAnswer","description":"Answer the TEMPLATES view: the placeable JSON page templates the read theme has now."},"ArtifectShopifyThemeTemplatesQuery":{"properties":{"view":{"type":"string","const":"TEMPLATES","title":"View","default":"TEMPLATES"},"source":{"$ref":"#/components/schemas/ThemeFrameSource","default":"TARGET"}},"additionalProperties":false,"type":"object","title":"ArtifectShopifyThemeTemplatesQuery","description":"Ask a theme DOCUMENT run which JSON page templates its target (or copy) has now (the page picker)."},"ArtifectShopifyThemeUpdatePreview":{"properties":{"adjustmentType":{"type":"string","const":"SHOPIFY_THEME_UPDATE_UPDATE_PREVIEW","title":"Adjustmenttype","default":"SHOPIFY_THEME_UPDATE_UPDATE_PREVIEW"}},"additionalProperties":false,"type":"object","title":"ArtifectShopifyThemeUpdatePreview","description":"File one step toward the run's preview copy holding the head revision (G-1: never applied here)."},"ArtifectSnapshot":{"properties":{"object":{"type":"string","const":"artifect_snapshot","title":"Object","default":"artifect_snapshot"},"ref":{"$ref":"#/components/schemas/ArtifectRef"},"payload":{"oneOf":[{"$ref":"#/components/schemas/ArtifectReportSnapshot"},{"$ref":"#/components/schemas/ArtifectPositioningSnapshot"},{"$ref":"#/components/schemas/ArtifectAdsAdviceSnapshot"},{"$ref":"#/components/schemas/ArtifectProductImagesSnapshot"},{"$ref":"#/components/schemas/ArtifectShopifyThemeRunSnapshot"},{"$ref":"#/components/schemas/ArtifectChangeListSnapshot"},{"$ref":"#/components/schemas/ArtifectShopifyBlogPostsSnapshot"},{"$ref":"#/components/schemas/ArtifectShopifyProductSnapshot"},{"$ref":"#/components/schemas/ArtifectAmzListingSnapshot"},{"$ref":"#/components/schemas/ArtifectFbaInboundPlanSnapshot"},{"$ref":"#/components/schemas/ArtifectMonitorSnapshot"}],"title":"Payload","discriminator":{"propertyName":"kind","mapping":{"AMZ_ADS_ADVICE":"#/components/schemas/ArtifectAdsAdviceSnapshot","AMZ_ADS_CHANGES":"#/components/schemas/ArtifectChangeListSnapshot","AMZ_FBA_INBOUND_PLAN":"#/components/schemas/ArtifectFbaInboundPlanSnapshot","AMZ_LISTING":"#/components/schemas/ArtifectAmzListingSnapshot","AMZ_LISTING_CHANGES":"#/components/schemas/ArtifectChangeListSnapshot","AMZ_MCF_ORDER":"#/components/schemas/ArtifectChangeListSnapshot","AMZ_PRODUCT_REPORT":"#/components/schemas/ArtifectReportSnapshot","MONITOR":"#/components/schemas/ArtifectMonitorSnapshot","POSITIONING":"#/components/schemas/ArtifectPositioningSnapshot","PRODUCT_IMAGES":"#/components/schemas/ArtifectProductImagesSnapshot","SHOPIFY_ARTICLE_CHANGES":"#/components/schemas/ArtifectChangeListSnapshot","SHOPIFY_BLOG_POSTS":"#/components/schemas/ArtifectShopifyBlogPostsSnapshot","SHOPIFY_GEO_CHANGES":"#/components/schemas/ArtifectChangeListSnapshot","SHOPIFY_PRODUCT":"#/components/schemas/ArtifectShopifyProductSnapshot","SHOPIFY_SEO_CHANGES":"#/components/schemas/ArtifectChangeListSnapshot","SHOPIFY_THEME_UPDATE":"#/components/schemas/ArtifectShopifyThemeRunSnapshot"}}},"capturedAt":{"type":"string","format":"date-time","title":"Capturedat"}},"additionalProperties":false,"type":"object","required":["ref","payload","capturedAt"],"title":"ArtifectSnapshot","description":"Expose one immutable domain snapshot and optional ephemeral image parts."},"ArtifectSnapshotRequest":{"properties":{"ref":{"$ref":"#/components/schemas/ArtifectRef"},"revision":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Revision"},"focus":{"items":{"type":"string"},"type":"array","title":"Focus","default":[]}},"additionalProperties":false,"type":"object","required":["ref"],"title":"ArtifectSnapshotRequest","description":"Which run, which immutable revision (None is the head) and which board objects to focus."},"ArtifectStanding":{"properties":{"state":{"$ref":"#/components/schemas/StandingState"},"pausedBy":{"anyOf":[{"$ref":"#/components/schemas/StandingPauseBy"},{"type":"null"}]},"pause":{"anyOf":[{"$ref":"#/components/schemas/ArtifectStandingPause"},{"type":"null"}]},"nextRunAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Nextrunat"},"openOccurrence":{"anyOf":[{"$ref":"#/components/schemas/ArtifectStandingOccurrence"},{"type":"null"}]},"lastOccurrence":{"anyOf":[{"$ref":"#/components/schemas/ArtifectStandingOccurrence"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["state","pausedBy","pause","nextRunAt","openOccurrence","lastOccurrence"],"title":"ArtifectStanding","description":"The long-lived part of one status (ArtifectStatus.standing); set exactly for STANDING kinds."},"ArtifectStandingOccurrence":{"properties":{"seq":{"type":"integer","minimum":1.0,"title":"Seq"},"state":{"$ref":"#/components/schemas/ArtifectOccurrenceState"}},"additionalProperties":false,"type":"object","required":["seq","state"],"title":"ArtifectStandingOccurrence","description":"One occurrence of a standing run as its status shows it: its sequence and where it is."},"ArtifectStandingPause":{"properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"message":{"type":"string","title":"Message"}},"additionalProperties":false,"type":"object","required":["code","message"],"title":"ArtifectStandingPause","description":"The stored cause of a standing run's pause by core's gate or by its kind."},"ArtifectStandoutInputPage":{"properties":{"object":{"type":"string","const":"artifect_input_page","title":"Object","default":"artifect_input_page"},"inputKey":{"type":"string","maxLength":256,"minLength":1,"title":"Inputkey"},"ownerRevision":{"type":"integer","minimum":0.0,"title":"Ownerrevision"},"instructions":{"type":"string","maxLength":4000,"minLength":1,"title":"Instructions"},"items":{"items":{"$ref":"#/components/schemas/StandoutItem"},"type":"array","title":"Items","default":[]},"coveredItemCount":{"type":"integer","minimum":0.0,"title":"Covereditemcount"},"itemCount":{"type":"integer","minimum":0.0,"title":"Itemcount"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"},"deadline":{"type":"string","format":"date-time","title":"Deadline"},"decisionType":{"type":"string","const":"STANDOUT_SELECTION","title":"Decisiontype","default":"STANDOUT_SELECTION"}},"additionalProperties":false,"type":"object","required":["inputKey","ownerRevision","instructions","coveredItemCount","itemCount","deadline"],"title":"ArtifectStandoutInputPage","description":"Input page for STANDOUT_SELECTION: the built cohort to choose from."},"ArtifectStatus":{"properties":{"object":{"type":"string","const":"artifect_status","title":"Object","default":"artifect_status"},"ref":{"$ref":"#/components/schemas/ArtifectRef"},"kind":{"$ref":"#/components/schemas/ArtifectKind"},"stage":{"$ref":"#/components/schemas/TaskStage"},"revision":{"type":"integer","minimum":0.0,"title":"Revision"},"pendingInput":{"anyOf":[{"$ref":"#/components/schemas/ArtifectPendingInput"},{"type":"null"}]},"snapshotRef":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshotref"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"},"failureCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failurecode","description":"Stable failure refinement code while failed, when available."},"failureReason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failurereason","description":"Host-authored failure sentence, set only while stage is FAILURE."},"failureType":{"anyOf":[{"$ref":"#/components/schemas/TaskExceptionType"},{"type":"null"}],"description":"keble-task failure class, set only while stage is FAILURE."},"latestAdjustment":{"anyOf":[{"$ref":"#/components/schemas/ArtifectAdjustmentStatus"},{"type":"null"}],"description":"Latest admitted adjustment's own execution state, or None when the Artifect has never been adjusted."},"standing":{"anyOf":[{"$ref":"#/components/schemas/ArtifectStanding"},{"type":"null"}],"description":"Standing state of a long-lived (STANDING) artifect: its state, who paused it and why, its next run, and its open and last occurrence. A STANDING artifect reads SUCCESS once set up; never wait for it to finish. Absent for every other kind."}},"additionalProperties":false,"type":"object","required":["ref","kind","stage","revision","pendingInput","snapshotRef","updatedAt"],"title":"ArtifectStatus","description":"Report the lifecycle projection of one Artifect instance."},"Assess":{"properties":{"type":{"type":"string","const":"ASSESS","title":"Type","default":"ASSESS"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"assessments":{"items":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$"},"type":"array","minItems":1,"title":"Assessments"},"cellKeys":{"anyOf":[{"items":{"type":"string","maxLength":400,"minLength":1},"type":"array"},{"type":"null"}],"title":"Cellkeys"},"missingOnly":{"type":"boolean","title":"Missingonly","default":false}},"additionalProperties":false,"type":"object","required":["actionKey","assessments"],"title":"Assess","description":"Ask the model to judge cells against assessments or criteria (today's criterion and retry)."},"AssessmentDetailValue":{"properties":{"object":{"type":"string","const":"assessment_detail_value","title":"Object","default":"assessment_detail_value"},"kind":{"type":"string","const":"ASSESSMENT","title":"Kind","default":"ASSESSMENT"},"key":{"type":"string","title":"Key"},"assessment":{"anyOf":[{"$ref":"#/components/schemas/AssessmentResult"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["key"],"title":"AssessmentDetailValue","description":"An ASSESSMENT detail row: one stored judgement for the cell."},"AssessmentDisplay":{"type":"string","enum":["TEXT","INTERVAL"],"title":"AssessmentDisplay","description":"How an assessment row is drawn; the frontend owns the visuals."},"AssessmentKind":{"type":"string","enum":["RANGE","FLAG"],"title":"AssessmentKind","description":"What a model returns for one cell: numeric ranges, or yes/no with reasoning."},"AssessmentRange":{"properties":{"label":{"type":"string","maxLength":64,"pattern":"^[a-z][a-z0-9_]*$","title":"Label"},"unit":{"$ref":"#/components/schemas/LocalizedText"}},"additionalProperties":false,"type":"object","required":["label","unit"],"title":"AssessmentRange","description":"One numeric range an assessment returns."},"AssessmentResult":{"properties":{"status":{"$ref":"#/components/schemas/ValueStatus"},"ranges":{"items":{"$ref":"#/components/schemas/RangeValue"},"type":"array","title":"Ranges","default":[]},"flag":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Flag"},"reasoning":{"type":"string","title":"Reasoning","default":""},"references":{"items":{"$ref":"#/components/schemas/SourceReference"},"type":"array","title":"References","default":[]}},"additionalProperties":false,"type":"object","required":["status"],"title":"AssessmentResult","description":"One judgement of one cell: ranges or a flag, with reasoning and references."},"AssessmentRow":{"properties":{"kind":{"type":"string","const":"ASSESSMENT","title":"Kind","default":"ASSESSMENT"},"assessment":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Assessment"},"display":{"$ref":"#/components/schemas/AssessmentDisplay","default":"TEXT"}},"additionalProperties":false,"type":"object","required":["assessment"],"title":"AssessmentRow","description":"A detail row showing one assessment: ranges or flag, its reasoning and references."},"AssetOrigin":{"type":"string","enum":["UPLOAD","CUTOUT_MASK","GENERATED","EXPORT","REFERENCE"],"title":"AssetOrigin","description":"How an asset came to exist (provenance; the fidelity law and check read it)."},"AssetRef":{"properties":{"assetId":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Assetid"},"mediaType":{"$ref":"#/components/schemas/ImageMediaType"},"size":{"$ref":"#/components/schemas/PixelSize"},"byteCount":{"type":"integer","exclusiveMinimum":0.0,"title":"Bytecount"},"origin":{"$ref":"#/components/schemas/AssetOrigin"},"contentBox":{"anyOf":[{"$ref":"#/components/schemas/Box"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["assetId","mediaType","size","byteCount","origin"],"title":"AssetRef","description":"An immutable, content-addressed image owned by one owner (bytes in object storage)."},"Attribute":{"properties":{"key":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Key","description":"Text-column identifier; fact queries use its declared row path."},"title":{"$ref":"#/components/schemas/StoreLocalizedText","description":"Display name of the column, in both languages."}},"additionalProperties":false,"type":"object","required":["key","title"],"title":"Attribute","description":"One declared text column: an identity part, a dimension, or an account attribute."},"AttributeChange":{"properties":{"entity":{"type":"string","title":"Entity","description":"Stored entity key of the row that changed."},"observedAt":{"type":"string","format":"date-time","title":"Observedat","description":"Instant the new value became readable."},"captureId":{"type":"string","minLength":1,"title":"Captureid","description":"The capture that made the new value readable."},"kind":{"type":"string","const":"attribute","title":"Kind","description":"Discriminator marking this as an attribute change.","default":"attribute"},"attributeKey":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Attributekey","description":"The declared attribute whose value changed."},"oldValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Oldvalue","description":"The value before the change; none when there was none."},"newValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Newvalue","description":"The value after the change; none when it was removed."}},"additionalProperties":false,"type":"object","required":["entity","observedAt","captureId","attributeKey"],"title":"AttributeChange","description":"One identity-part or dim text value changed; an absent side is None, never empty text."},"AttributeMatch":{"properties":{"attributeKey":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Attributekey","description":"The declared family attribute this selection restricts."},"values":{"items":{"type":"string","minLength":1},"type":"array","minItems":1,"title":"Values","description":"Values to match; at least one non-empty value."}},"additionalProperties":false,"type":"object","required":["attributeKey","values"],"title":"AttributeMatch","description":"One declared attribute restricted to allowed values: a facts-request view selection."},"Availability":{"type":"string","enum":["AVAILABLE","INCOMPLETE","UNAVAILABLE"],"title":"Availability","description":"What ELTA holds for one account x family x day."},"BackgroundField":{"properties":{"field":{"type":"string","const":"BACKGROUND","title":"Field","default":"BACKGROUND"},"background":{"anyOf":[{"$ref":"#/components/schemas/Color"},{"$ref":"#/components/schemas/BrandColorRef"}],"title":"Background"}},"additionalProperties":false,"type":"object","required":["background"],"title":"BackgroundField","description":"Override value: the variant canvas background."},"BandedDimension":{"properties":{"fact":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Fact"},"label":{"$ref":"#/components/schemas/LocalizedText"}},"additionalProperties":false,"type":"object","required":["fact","label"],"title":"BandedDimension","description":"A dimension core computes by cutting one numeric fact into bands."},"BatchQuote":{"properties":{"newObjects":{"type":"integer","minimum":0.0,"title":"Newobjects"},"paid":{"items":{"$ref":"#/components/schemas/OperationQuote"},"type":"array","title":"Paid","default":[]},"estSeconds":{"type":"integer","minimum":0.0,"title":"Estseconds"},"refusal":{"anyOf":[{"$ref":"#/components/schemas/EditRefusal"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["newObjects","estSeconds"],"title":"BatchQuote","description":"What a batch would add and cost: a dry run of the same check and apply code, with no writes."},"BlendField":{"properties":{"field":{"type":"string","const":"BLEND","title":"Field","default":"BLEND"},"blendMode":{"$ref":"#/components/schemas/BlendMode"}},"additionalProperties":false,"type":"object","required":["blendMode"],"title":"BlendField","description":"Override value: a layer's blend mode (how its pixels mix with what is under it)."},"BlendMode":{"type":"string","enum":["NORMAL","MULTIPLY","SCREEN","OVERLAY","SOFT_LIGHT","COLOR"],"title":"BlendMode","description":"How a layer mixes with pixels under it inside the same image (D-13, VV-3)."},"BlockedLane":{"properties":{"account":{"$ref":"#/components/schemas/AccountRef","description":"The provider account whose lane is blocked."},"datasetKey":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Datasetkey","description":"The dataset whose lane is blocked."},"issue":{"$ref":"#/components/schemas/ProviderIssue","description":"The typed reason the lane is blocked."},"since":{"type":"string","format":"date-time","title":"Since","description":"When the lane became blocked."}},"additionalProperties":false,"type":"object","required":["account","datasetKey","issue","since"],"title":"BlockedLane","description":"One blocked account x dataset lane as served: what is blocked, why, since when."},"BlogCreate":{"properties":{"replayKey":{"type":"string","maxLength":256,"minLength":1,"title":"Replaykey"},"storeId":{"type":"string","minLength":1,"title":"Storeid"},"brief":{"type":"string","minLength":1,"title":"Brief"}},"additionalProperties":false,"type":"object","required":["replayKey","storeId","brief"],"title":"BlogCreate","description":"Create one guided post set pinned to one ELTA store; the blog is chosen at DIRECTION."},"BlogDirection":{"properties":{"step":{"type":"string","const":"DIRECTION","title":"Step","default":"DIRECTION"},"blogId":{"type":"string","minLength":1,"title":"Blogid"},"audience":{"type":"string","minLength":1,"title":"Audience"},"goal":{"type":"string","minLength":1,"title":"Goal"},"structure":{"type":"string","minLength":1,"title":"Structure"}},"additionalProperties":false,"type":"object","required":["blogId","audience","goal","structure"],"title":"BlogDirection","description":"DIRECTION (1.1): what the posts are for and how the set is structured, agreed with the seller."},"BlogSnapshot":{"properties":{"artifectRef":{"$ref":"#/components/schemas/ArtifectRef"},"storeId":{"type":"string","minLength":1,"title":"Storeid"},"account":{"$ref":"#/components/schemas/AccountRef"},"revision":{"type":"integer","minimum":1.0,"title":"Revision"},"postSet":{"$ref":"#/components/schemas/PostSet"},"screening":{"anyOf":[{"$ref":"#/components/schemas/ScreeningResult"},{"type":"null"}]},"proposals":{"items":{"$ref":"#/components/schemas/ProposalFiling"},"type":"array","title":"Proposals","default":[]},"filingIntent":{"anyOf":[{"$ref":"#/components/schemas/StagedProposal"},{"type":"null"}]},"approvals":{"items":{"$ref":"#/components/schemas/ApprovalState"},"type":"array","title":"Approvals","default":[]}},"additionalProperties":false,"type":"object","required":["artifectRef","storeId","account","revision","postSet"],"title":"BlogSnapshot","description":"The owner-visible post set at one revision, with its latest screen result and every filing."},"BlogStep":{"type":"string","enum":["DIRECTION","POST_PLAN","STYLE_EXAMPLES","POST_DRAFTS","SELF_REVIEW","SAMPLE_CONFIRMATION"],"title":"BlogStep","description":"The guided steps the agent is parked on, in order (owner 1.1-1.6)."},"BoardObjectKind":{"type":"string","enum":["IMAGE","PLAN","BRAND_KIT"],"title":"BoardObjectKind","description":"The board object kinds (discriminator of BoardObject)."},"BoardPoint":{"properties":{"x":{"type":"number","maximum":1000000.0,"minimum":-1000000.0,"title":"X"},"y":{"type":"number","maximum":1000000.0,"minimum":-1000000.0,"title":"Y"}},"additionalProperties":false,"type":"object","required":["x","y"],"title":"BoardPoint","description":"Top-left of an object on the board, in board pixels (1 board px = 1 design px at zoom 1)."},"Box":{"properties":{"x":{"type":"number","title":"X"},"y":{"type":"number","title":"Y"},"width":{"type":"number","exclusiveMinimum":0.0,"title":"Width"},"height":{"type":"number","exclusiveMinimum":0.0,"title":"Height"},"rotation":{"type":"number","title":"Rotation","default":0.0}},"additionalProperties":false,"type":"object","required":["x","y","width","height"],"title":"Box","description":"A layer's placement in canvas pixels; rotation in degrees around the box centre."},"BoxField":{"properties":{"field":{"type":"string","const":"BOX","title":"Field","default":"BOX"},"box":{"$ref":"#/components/schemas/Box"}},"additionalProperties":false,"type":"object","required":["box"],"title":"BoxField","description":"Override value: the layer's box."},"Brand":{"properties":{"kind":{"type":"string","const":"BRAND","title":"Kind","description":"Node discriminator; always BRAND.","default":"BRAND"},"key":{"type":"string","title":"Key","description":"The brand's own analyzed key, which is its identity."},"name":{"type":"string","title":"Name","description":"Brand display name."},"productCount":{"type":"integer","title":"Productcount","description":"Number of products carrying this brand; 0 for a brand known only from mentions."}},"type":"object","required":["key","name","productCount"],"title":"Brand","description":"A DP-derived brand label and its existing product count."},"BrandClause":{"properties":{"kind":{"type":"string","const":"BRAND","title":"Kind","default":"BRAND"},"values":{"items":{"type":"string","maxLength":4096,"minLength":1},"type":"array","maxItems":64,"minItems":1,"title":"Values"}},"additionalProperties":false,"type":"object","required":["values"],"title":"BrandClause","description":"Filter a Product-like result by one or more explicit brand values."},"BrandColorRef":{"properties":{"ref":{"type":"string","const":"BRAND","title":"Ref","default":"BRAND"},"kitId":{"type":"string","pattern":"^bk_[A-Za-z0-9_-]{1,60}$","title":"Kitid"},"entryId":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,32}$","title":"Entryid"}},"additionalProperties":false,"type":"object","required":["kitId","entryId"],"title":"BrandColorRef","description":"A colour that follows one kit entry. Swapping kits never re-points it (owner: any number of colours)."},"BrandCorpusRef":{"properties":{"version":{"type":"string","minLength":1,"title":"Version"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Sha256"},"coverageDisclosure":{"type":"string","minLength":1,"title":"Coveragedisclosure"}},"additionalProperties":false,"type":"object","required":["version","sha256","coverageDisclosure"],"title":"BrandCorpusRef","description":"The frozen brand list one result was decided against, with its disclosed coverage."},"BrandFontRef":{"properties":{"ref":{"type":"string","const":"BRAND","title":"Ref","default":"BRAND"},"kitId":{"type":"string","pattern":"^bk_[A-Za-z0-9_-]{1,60}$","title":"Kitid"},"entryId":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,32}$","title":"Entryid"}},"additionalProperties":false,"type":"object","required":["kitId","entryId"],"title":"BrandFontRef","description":"A font family that follows one kit font entry; the weight stays on the layer."},"BrandKit":{"properties":{"kitId":{"type":"string","pattern":"^bk_[A-Za-z0-9_-]{1,60}$","title":"Kitid"},"name":{"type":"string","maxLength":60,"minLength":1,"title":"Name"},"tagline":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Tagline"},"handle":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Handle"},"version":{"type":"integer","minimum":1.0,"title":"Version"},"colors":{"items":{"$ref":"#/components/schemas/KitColor"},"type":"array","title":"Colors","default":[]},"fonts":{"items":{"$ref":"#/components/schemas/KitFont"},"type":"array","title":"Fonts","default":[]},"archivedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archivedat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"}},"additionalProperties":false,"type":"object","required":["kitId","name","version","updatedAt"],"title":"BrandKit","description":"One owner-level kit as the backend serves it (read-only to product-images)."},"Cancel":{"properties":{"type":{"type":"string","const":"CANCEL","title":"Type","default":"CANCEL"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"}},"additionalProperties":false,"type":"object","required":["actionKey"],"title":"Cancel","description":"Drop queued work; an unfinished run ends ABANDONED."},"CapabilityRow":{"properties":{"key":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Key","description":"Key of the lookup, action or dataset this row describes."},"sourceKey":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Sourcekey","description":"Installed source that declares this item."},"accountId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Accountid","description":"Stored account this row applies to; null exactly when state is NOT_CONNECTED."},"state":{"$ref":"#/components/schemas/CapabilityState","description":"What this item can do now."},"issue":{"anyOf":[{"$ref":"#/components/schemas/ProviderIssue"},{"type":"null"}],"description":"Known typed issue behind this state, if any."},"familyKey":{"anyOf":[{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$"},{"type":"null"}],"title":"Familykey","description":"Write family of an action row; null for a lookup or dataset."},"blocked":{"items":{"$ref":"#/components/schemas/BlockedLane"},"type":"array","title":"Blocked","description":"Blocked lanes of a dataset row; empty for a lookup or action.","default":[]}},"additionalProperties":false,"type":"object","required":["key","sourceKey","accountId","state"],"title":"CapabilityRow","description":"One installed lookup, action or dataset, with what this store can do right now."},"CapabilityState":{"type":"string","enum":["READY","GRANT_UNKNOWN","PERMISSION_MISSING","FAMILY_OFF","STORE_PAUSED","NOT_CONNECTED","RECONSENT_REQUIRED","BLOCKED"],"title":"CapabilityState","description":"Whether one lookup, action or dataset of a store can be used now, and what blocks it."},"CaptureStyle":{"oneOf":[{"$ref":"#/components/schemas/WindowCapture"},{"$ref":"#/components/schemas/ChangeCapture"},{"$ref":"#/components/schemas/ListingCapture"}],"discriminator":{"propertyName":"kind","mapping":{"changes":"#/components/schemas/ChangeCapture","listing":"#/components/schemas/ListingCapture","window":"#/components/schemas/WindowCapture"}}},"CatalogAvailability":{"type":"string","enum":["SUPPORTED","EXACT_ID_ONLY","NONE"],"title":"CatalogAvailability","description":"Whether a source or published analyzed rows can answer a cell."},"CatalogCellView":{"properties":{"object":{"type":"string","const":"catalog_cell","title":"Object","description":"Public object discriminator."},"channel":{"$ref":"#/components/schemas/Channel","description":"Channel represented by the cell."},"recordKind":{"$ref":"#/components/schemas/AnalyzedRecordKind","description":"Record family represented."},"nodeKind":{"anyOf":[{"$ref":"#/components/schemas/NodeKind"},{"type":"null"}],"description":"Node family, or null when the cell names no node kind."},"availability":{"$ref":"#/components/schemas/CatalogAvailability","description":"Whether an active source or published rows serve this cell."},"requiresMarket":{"type":"boolean","title":"Requiresmarket","description":"An active source requires a market for this kind.","default":false},"acceptsWindow":{"type":"boolean","title":"Acceptswindow","description":"Published rows of this kind have a windowed metric or feature binding.","default":false},"markets":{"items":{"type":"string","maxLength":2,"minLength":2},"type":"array","title":"Markets","description":"Markets declared by active sources for this channel and kind; empty means market-agnostic.","default":[]},"fields":{"items":{"$ref":"#/components/schemas/ColumnSpec"},"type":"array","title":"Fields","description":"Authorized public columns."}},"type":"object","required":["object","channel","recordKind","nodeKind","availability","fields"],"title":"CatalogCellView","description":"One channel and kind's public capability cell."},"CatalogEdgeView":{"properties":{"object":{"type":"string","const":"catalog_edge","title":"Object","description":"Public object discriminator."},"edgeId":{"type":"string","title":"Edgeid","description":"Stable topology edge id."},"fromKind":{"$ref":"#/components/schemas/NodeKind","description":"Source node family of the hop."},"toKind":{"$ref":"#/components/schemas/NodeKind","description":"Target node family of the hop."},"analyzed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Analyzed","description":"Whether this edge has a stored leg; null means unknown."},"live":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Live","description":"Whether this edge has a live leg; null means unknown."},"relation":{"anyOf":[{"$ref":"#/components/schemas/AnalyzedRelationKind"},{"type":"null"}],"description":"Analyzed relationship followed by this edge; null for edges without a relation."}},"type":"object","required":["object","edgeId","fromKind","toKind"],"title":"CatalogEdgeView","description":"One public catalog edge: an enabled topology hop a caller may use."},"CategoryClause":{"properties":{"kind":{"type":"string","const":"CATEGORY","title":"Kind","default":"CATEGORY"},"values":{"items":{"type":"string","maxLength":4096,"minLength":1},"type":"array","maxItems":64,"minItems":1,"title":"Values"},"op":{"type":"string","enum":["IN","NOT_IN"],"title":"Op","default":"IN"}},"additionalProperties":false,"type":"object","required":["values"],"title":"CategoryClause","description":"THE category carrier: filter by category values or provider category keys (X-2)."},"Cell":{"properties":{"cellKey":{"type":"string","maxLength":400,"minLength":1,"title":"Cellkey"},"options":{"additionalProperties":{"type":"string","maxLength":80,"minLength":1},"propertyNames":{"maxLength":80,"minLength":1},"type":"object","title":"Options"},"groupKeys":{"items":{"type":"string","maxLength":200,"minLength":1},"type":"array","title":"Groupkeys"},"itemCount":{"type":"integer","minimum":0.0,"title":"Itemcount"},"measures":{"patternProperties":{"^[A-Z][A-Z0-9_]*$":{"$ref":"#/components/schemas/MeasureValue"}},"propertyNames":{"maxLength":64},"type":"object","title":"Measures"},"results":{"patternProperties":{"^[A-Z][A-Z0-9_]*$":{"$ref":"#/components/schemas/AssessmentResult"}},"propertyNames":{"maxLength":64},"type":"object","title":"Results"}},"additionalProperties":false,"type":"object","required":["cellKey","options","groupKeys","itemCount","measures","results"],"title":"Cell","description":"One cell of one dimension combination, computed when read."},"CellDetail":{"properties":{"cell":{"$ref":"#/components/schemas/RoomCell"},"criterion":{"anyOf":[{"$ref":"#/components/schemas/AssessmentResult"},{"type":"null"}]},"sections":{"items":{"$ref":"#/components/schemas/DetailSectionRead"},"type":"array","title":"Sections"}},"additionalProperties":false,"type":"object","required":["cell","sections"],"title":"CellDetail","description":"The dialog for one clicked cell: the view's criterion first (if any), then declared sections."},"CellScore":{"properties":{"cellKey":{"type":"string","maxLength":400,"minLength":1,"title":"Cellkey"},"score":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Score"},"tier":{"type":"integer","maximum":9.0,"minimum":0.0,"title":"Tier"},"percentiles":{"patternProperties":{"^[A-Z][A-Z0-9_]*$":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}]}},"propertyNames":{"maxLength":64},"type":"object","title":"Percentiles"}},"additionalProperties":false,"type":"object","required":["cellKey","score","tier","percentiles"],"title":"CellScore","description":"One scored cell: 0-100 score, tier 0-9, and each factor's percentile."},"ChangeCapture":{"properties":{"kind":{"type":"string","const":"changes","title":"Kind","description":"Capture style: changes since the previous sync.","default":"changes"}},"additionalProperties":false,"type":"object","title":"ChangeCapture","description":"A dataset read as one continuous lane over the source's own update time."},"ChangeFieldTitle":{"properties":{"field":{"type":"string","minLength":1,"title":"Field","description":"Top-level change field this title names."},"title":{"$ref":"#/components/schemas/StoreLocalizedText","description":"Bilingual display name of that change field."}},"additionalProperties":false,"type":"object","required":["field","title"],"title":"ChangeFieldTitle","description":"Human title of one top-level field of an action's change, declared by the plugin."},"ChangeList":{"properties":{"kind":{"$ref":"#/components/schemas/ArtifectKind"},"storeId":{"type":"string","title":"Storeid","description":"Keble identity that fences the owner and drives display."},"account":{"$ref":"#/components/schemas/AccountRef","description":"ELTA AccountRef resolved once at create; edits cannot retarget it."},"revision":{"type":"integer","minimum":1.0,"title":"Revision"},"revisedAt":{"type":"string","format":"date-time","title":"Revisedat"},"rows":{"items":{"$ref":"#/components/schemas/ChangeRow"},"type":"array","title":"Rows"},"privateValues":{"items":{"$ref":"#/components/schemas/PrivateValue"},"type":"array","title":"Privatevalues","default":[]},"previewedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Previewedat"},"commandReceipts":{"items":{"$ref":"#/components/schemas/CommandReceipt"},"type":"array","title":"Commandreceipts","default":[]},"filed":{"items":{"$ref":"#/components/schemas/FiledBatch"},"type":"array","title":"Filed","default":[]},"reverts":{"items":{"$ref":"#/components/schemas/FiledBatch"},"type":"array","title":"Reverts","default":[]},"filingIntent":{"anyOf":[{"$ref":"#/components/schemas/FilingIntent"},{"type":"null"}]},"withdrawn":{"items":{"$ref":"#/components/schemas/FiledBatch"},"type":"array","title":"Withdrawn","default":[]}},"additionalProperties":false,"type":"object","required":["kind","storeId","account","revision","revisedAt","rows"],"title":"ChangeList","description":"The persisted, revisioned list of one artifect with a frozen ELTA target."},"ChangeListCreatePremise":{"properties":{"replayKey":{"type":"string","title":"Replaykey"},"storeId":{"type":"string","title":"Storeid","description":"Keble identity that fences the owner and drives display."},"accountId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accountid"},"rows":{"items":{"$ref":"#/components/schemas/NewChangeRow"},"type":"array","minItems":1,"title":"Rows"}},"additionalProperties":false,"type":"object","required":["replayKey","storeId","rows"],"title":"ChangeListCreatePremise","description":"The replayable create body shared by change-list kinds, with an optional account selector."},"ChangeListSnapshot":{"properties":{"ref":{"$ref":"#/components/schemas/ArtifectRef"},"changeList":{"$ref":"#/components/schemas/ChangeList"},"screening":{"anyOf":[{"$ref":"#/components/schemas/ScreeningResult"},{"type":"null"}]},"kindProblems":{"items":{"$ref":"#/components/schemas/KindRuleProblem"},"type":"array","title":"Kindproblems","default":[]},"stage":{"$ref":"#/components/schemas/ChangeListStage"},"guide":{"$ref":"#/components/schemas/StageGuide"},"rowStages":{"items":{"$ref":"#/components/schemas/ChangeRowStageView"},"type":"array","title":"Rowstages"},"approvals":{"items":{"$ref":"#/components/schemas/ApprovalState"},"type":"array","title":"Approvals","default":[]},"reverts":{"items":{"$ref":"#/components/schemas/ApprovalState"},"type":"array","title":"Reverts","default":[]},"leafRules":{"items":{"$ref":"#/components/schemas/LeafRule"},"type":"array","title":"Leafrules","default":[]}},"additionalProperties":false,"type":"object","required":["ref","changeList","screening","stage","guide","rowStages"],"title":"ChangeListSnapshot","description":"What read returns: the public list, screening result, stage and guide."},"ChangeListStage":{"type":"string","enum":["DRAFT","READY","PROPOSED","DECIDED"],"title":"ChangeListStage","description":"The derived stage of a row, and the aggregate used by the kind's guide."},"ChangeRow":{"properties":{"rowKey":{"type":"string","title":"Rowkey"},"action":{"$ref":"#/components/schemas/ProviderAction"},"rationale":{"type":"string","minLength":1,"title":"Rationale"},"status":{"$ref":"#/components/schemas/ChangeRowStatus","default":"KEPT"},"origin":{"$ref":"#/components/schemas/ChangeRowOrigin"},"preview":{"anyOf":[{"$ref":"#/components/schemas/RowPreview"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["rowKey","action","rationale","origin"],"title":"ChangeRow","description":"One proposed write: a bound ELTA action, its rationale and local inclusion state."},"ChangeRowOrigin":{"type":"string","enum":["KIND_CREATE","AGENT_ADD"],"title":"ChangeRowOrigin","description":"Who wrote a row first; set once by the engine and kept through every edit."},"ChangeRowStageView":{"properties":{"rowKey":{"type":"string","title":"Rowkey"},"stage":{"$ref":"#/components/schemas/ChangeListStage"},"inboxItemId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inboxitemid"}},"additionalProperties":false,"type":"object","required":["rowKey","stage","inboxItemId"],"title":"ChangeRowStageView","description":"One row's stage and its live approval join, without duplicating approval state."},"ChangeRowStatus":{"type":"string","enum":["KEPT","DISCARDED"],"title":"ChangeRowStatus","description":"Whether the person keeps a row in the next proposal. Apply/revert state is ELTA's, never here."},"ChangesRequest":{"properties":{"familyKey":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Familykey","description":"The fact family to read."},"days":{"$ref":"#/components/schemas/DayRange","description":"Inclusive reporting days in the account's timezone."},"storeIds":{"items":{"type":"string","minLength":1},"type":"array","title":"Storeids","description":"Stores to include; empty selects the asserted owner's stores.","default":[]},"accountIds":{"items":{"type":"string","minLength":1},"type":"array","title":"Accountids","description":"Accounts to read; empty means every account of the owner.","default":[]},"entities":{"items":{"type":"string"},"type":"array","title":"Entities","description":"Stored entity keys to read; empty means every entity.","default":[]},"attributes":{"items":{"$ref":"#/components/schemas/AttributeMatch"},"type":"array","title":"Attributes","description":"View selections that restrict which rows are returned.","default":[]},"asOf":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Asof","description":"Instant to read as of; set this or capture_id, never both."},"captureId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Captureid","description":"Committed capture to read as of; set this or as_of, never both."},"page":{"$ref":"#/components/schemas/PageRequest","description":"Row limit and cursor for this read.","default":{"limit":200}}},"additionalProperties":false,"type":"object","required":["familyKey","days"],"title":"ChangesRequest","description":"A serving read of derived fact changes for one owner: the fact read's own selection."},"Channel":{"type":"string","enum":["AMAZON","TIKTOK","SHOPIFY","ALIBABA_1688","YOUTUBE","INSTAGRAM","REDDIT"],"title":"Channel","description":"Identify a source channel without exposing its provider implementation."},"ClaimEmotion":{"type":"string","enum":["STRONGLY_NEGATIVE","NEGATIVE","NEUTRAL","POSITIVE","STRONGLY_POSITIVE"],"title":"ClaimEmotion","description":"How the item feels about the claimed entity, on a 5-level scale."},"ClaimStance":{"type":"string","enum":["RECOMMENDS","NEUTRAL","CRITICIZES","COMPARES_AGAINST"],"title":"ClaimStance","description":"The stance one claim's supporting text shows toward the entity."},"ClarificationAnswer":{"properties":{"queryKey":{"type":"string","title":"Querykey","description":"Key of the stored partial query this choice binds into."},"choice":{"type":"string","title":"Choice","description":"The caller's chosen answer among the offered choices."}},"type":"object","required":["queryKey","choice"],"title":"ClarificationAnswer","description":"The console's reply to one CLARIFY: the stored partial query the choice binds into, and the choice itself."},"Classify":{"properties":{"type":{"type":"string","const":"CLASSIFY","title":"Type","default":"CLASSIFY"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"dimensionKeys":{"items":{"type":"string","maxLength":80,"minLength":1},"type":"array","minItems":1,"title":"Dimensionkeys"},"itemKeys":{"anyOf":[{"items":{"type":"string","maxLength":200,"minLength":1},"type":"array"},{"type":"null"}],"title":"Itemkeys"}},"additionalProperties":false,"type":"object","required":["actionKey","dimensionKeys"],"title":"Classify","description":"Ask the model to place groups into the named dimensions (all relevant groups when None)."},"Color":{"properties":{"hex":{"type":"string","pattern":"^#[0-9a-f]{8}$","title":"Hex"}},"additionalProperties":false,"type":"object","required":["hex"],"title":"Color","description":"An sRGB colour with alpha, stored as #rrggbbaa."},"ColorField":{"properties":{"field":{"type":"string","const":"COLOR","title":"Field","default":"COLOR"},"color":{"anyOf":[{"$ref":"#/components/schemas/Color"},{"$ref":"#/components/schemas/BrandColorRef"}],"title":"Color"}},"additionalProperties":false,"type":"object","required":["color"],"title":"ColorField","description":"Override value: a text layer's colour."},"ColorRemap":{"properties":{"source":{"anyOf":[{"$ref":"#/components/schemas/Color"},{"$ref":"#/components/schemas/BrandColorRef"}],"title":"Source"},"target":{"anyOf":[{"$ref":"#/components/schemas/Color"},{"$ref":"#/components/schemas/BrandColorRef"}],"title":"Target"}},"additionalProperties":false,"type":"object","required":["source","target"],"title":"ColorRemap","description":"Replace one authored colour value (hex or kit ref) with another, by exact match, before kit lookup (A7)."},"ColumnSpec":{"properties":{"name":{"type":"string","title":"Name","description":"Field code of this result column."},"valueType":{"type":"string","enum":["STR","INT","FLOAT","BOOL","TIMESTAMP","DECIMAL","NULL"],"title":"Valuetype","description":"Scalar type the column's values carry; DECIMAL is a major-unit number carried as a JSON string."},"unit":{"anyOf":[{"$ref":"#/components/schemas/MetricUnit"},{"type":"null"}],"description":"Metric unit of the cell's values; null when the column declares none."},"currencyColumn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currencycolumn","description":"Sibling column carrying the currency; set iff unit is MONEY."}},"type":"object","required":["name","valueType"],"title":"ColumnSpec","description":"One public result column: its field code, scalar type and, for a money cell, its unit and the column carrying the paired currency (K-31, S-24)."},"Combine":{"oneOf":[{"$ref":"#/components/schemas/SumCombine"},{"$ref":"#/components/schemas/LastCombine"},{"$ref":"#/components/schemas/RatioCombine"}],"discriminator":{"propertyName":"kind","mapping":{"last":"#/components/schemas/LastCombine","ratio":"#/components/schemas/RatioCombine","sum":"#/components/schemas/SumCombine"}}},"CommandReceipt":{"properties":{"replayKey":{"type":"string","title":"Replaykey"},"bodySha256":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Bodysha256"},"revision":{"type":"integer","minimum":1.0,"title":"Revision"}},"additionalProperties":false,"type":"object","required":["replayKey","bodySha256","revision"],"title":"CommandReceipt","description":"Record one successful caller command for bounded replay and conflict detection."},"Comment":{"properties":{"externalId":{"type":"string","maxLength":1024,"minLength":1,"title":"Externalid"},"parentExternalId":{"anyOf":[{"type":"string","maxLength":1024,"minLength":1},{"type":"null"}],"title":"Parentexternalid"},"authorName":{"anyOf":[{"type":"string","maxLength":1024,"minLength":1},{"type":"null"}],"title":"Authorname"},"authorHandle":{"anyOf":[{"type":"string","maxLength":512,"minLength":1},{"type":"null"}],"title":"Authorhandle"},"authorRef":{"anyOf":[{"$ref":"#/components/schemas/SourceSubject"},{"type":"null"}]},"body":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Body"},"publishedAt":{"anyOf":[{"type":"string","maxLength":44,"format":"date-time"},{"type":"null"}],"title":"Publishedat"},"depth":{"type":"integer","maximum":9.223372036854776e+18,"minimum":0.0,"title":"Depth","default":0},"metrics":{"items":{"$ref":"#/components/schemas/MetricObservation"},"type":"array","maxItems":32,"title":"Metrics","default":[]}},"additionalProperties":false,"type":"object","required":["externalId"],"title":"Comment","description":"Represent one comment nested beneath its Content item."},"ComposedPost":{"properties":{"title":{"type":"string","maxLength":255,"minLength":1,"title":"Title"},"handleStem":{"type":"string","minLength":1,"pattern":"^[a-z0-9]+(-[a-z0-9]+)*$","title":"Handlestem"},"featuredImage":{"anyOf":[{"$ref":"#/components/schemas/ExistingShopifyFile"},{"$ref":"#/components/schemas/ShopifyRemoteImage"},{"$ref":"#/components/schemas/PostExportedImage"},{"type":"null"}],"title":"Featuredimage"},"blocks":{"items":{"oneOf":[{"$ref":"#/components/schemas/HeadingBlock"},{"$ref":"#/components/schemas/ParagraphBlock"},{"$ref":"#/components/schemas/ListBlock"},{"$ref":"#/components/schemas/ImageBlock"},{"$ref":"#/components/schemas/QuoteBlock"}],"discriminator":{"propertyName":"kind","mapping":{"HEADING":"#/components/schemas/HeadingBlock","IMAGE":"#/components/schemas/ImageBlock","LIST":"#/components/schemas/ListBlock","PARAGRAPH":"#/components/schemas/ParagraphBlock","QUOTE":"#/components/schemas/QuoteBlock"}}},"type":"array","minItems":1,"title":"Blocks"},"summary":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Summary"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"author":{"type":"string","maxLength":255,"minLength":1,"title":"Author"}},"additionalProperties":false,"type":"object","required":["title","handleStem","blocks","author"],"title":"ComposedPost","description":"One post as the composer edits and renders it: title, featured image, ordered blocks, metadata."},"Concept":{"properties":{"kind":{"type":"string","const":"CONCEPT","title":"Kind","description":"Node discriminator; always CONCEPT.","default":"CONCEPT"},"conceptKind":{"$ref":"#/components/schemas/ConceptKind","description":"Which kind of concept this is."},"key":{"type":"string","title":"Key","description":"Per-item concept identity, 'revision:label'."},"label":{"type":"string","title":"Label","description":"Normalized label text of the concept."},"subjectRefs":{"items":{"$ref":"#/components/schemas/NodeRef"},"type":"array","title":"Subjectrefs","description":"Scoped references to the source records this concept was extracted from."},"itemCount":{"type":"integer","title":"Itemcount","description":"Number of source items carrying this concept."}},"type":"object","required":["conceptKind","key","label","subjectRefs","itemCount"],"title":"Concept","description":"An extracted concept attached to one scoped source record."},"ConceptKind":{"type":"string","enum":["CATEGORY","ATTRIBUTE","PROBLEM","USER_NEED","MECHANISM","INDUSTRY","HOOK","FORMAT","SELLING_POINT","SCENE","VISUAL","LOGO","ICON","PATTERN"],"title":"ConceptKind","description":"Concept records the extract capability yields, in two families."},"ConceptRef":{"properties":{"label":{"type":"string","title":"Label","description":"Normalized label of the concept."},"kind":{"$ref":"#/components/schemas/ConceptKind","description":"Which kind of concept the label names."}},"type":"object","required":["label","kind"],"title":"ConceptRef","description":"ONE CONCEPT A RECORD WAS FOUND TO BE ABOUT: the label the extract capability normalized, TOGETHER WITH which kind of concept it is."},"ConclusionDetailValue":{"properties":{"object":{"type":"string","const":"conclusion_detail_value","title":"Object","default":"conclusion_detail_value"},"kind":{"type":"string","const":"CONCLUSION","title":"Kind","default":"CONCLUSION"},"key":{"type":"string","title":"Key"},"conclusion":{"$ref":"#/components/schemas/ConclusionStatus"},"assessment":{"anyOf":[{"$ref":"#/components/schemas/AssessmentResult"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["key","conclusion"],"title":"ConclusionDetailValue","description":"A CONCLUSION detail row: the cell's status and, when a signal is raised, its prose."},"ConclusionRow":{"properties":{"kind":{"type":"string","const":"CONCLUSION","title":"Kind","default":"CONCLUSION"},"signals":{"items":{"$ref":"#/components/schemas/ConclusionSignal"},"type":"array","minItems":1,"title":"Signals"}},"additionalProperties":false,"type":"object","required":["signals"],"title":"ConclusionRow","description":"The cell's tinted conclusion: the first raised signal wins, else NEUTRAL."},"ConclusionSignal":{"properties":{"assessment":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Assessment"},"tone":{"$ref":"#/components/schemas/Tone"}},"additionalProperties":false,"type":"object","required":["assessment","tone"],"title":"ConclusionSignal","description":"One FLAG assessment that, when raised, sets the conclusion's tone."},"ConclusionStatus":{"type":"string","enum":["OPPORTUNITY","CAUTION","NEUTRAL","UNAVAILABLE"],"title":"ConclusionStatus","description":"A cell's conclusion (today's detail status values)."},"ConnectStyle":{"type":"string","enum":["CONSENT","CREDENTIALS"],"title":"ConnectStyle","description":"How an owner binds a source: a consent redirect, or credentials they enter."},"ConnectionRecord":{"properties":{"object":{"type":"string","const":"connection_record","title":"Object","description":"Document type: connector record.","default":"connection_record"},"connectionId":{"type":"string","minLength":1,"title":"Connectionid","description":"Connector identifier within the asserted owner scope."},"storeId":{"type":"string","minLength":1,"title":"Storeid","description":"Store this connector belongs to."},"sourceKey":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Sourcekey","description":"Catalog source authorized by this connector."},"status":{"$ref":"#/components/schemas/ConnectionStatus","description":"Current authorization state."},"accounts":{"items":{"$ref":"#/components/schemas/DiscoveredAccount"},"type":"array","title":"Accounts","description":"Accounts reached by this connector.","default":[]},"regions":{"items":{"$ref":"#/components/schemas/ProviderRegion"},"type":"array","title":"Regions","description":"Sales regions reached by the discovered accounts.","default":[]},"boundAt":{"type":"string","format":"date-time","title":"Boundat","description":"When the connector was first bound."},"consentedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Consentedat","description":"Latest successful consent instant; null when no consent was recorded."},"lastSyncedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Lastsyncedat","description":"When this connection last synced successfully."},"syncedThrough":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Syncedthrough","description":"Provider data instant this connection synced through."},"boundWith":{"$ref":"#/components/schemas/ConnectStyle","description":"The way the current grant was bound."},"reconsentDueAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reconsentdueat","description":"When the owner must renew this connection's grant (rotate an expiring credential, or consent again), if a declared lifetime makes it known; null when nothing expires."},"issue":{"anyOf":[{"$ref":"#/components/schemas/ProviderIssue"},{"type":"null"}],"description":"Invalid-access reason requiring renewed consent, if present."}},"additionalProperties":false,"type":"object","required":["connectionId","storeId","sourceKey","status","boundAt","boundWith"],"title":"ConnectionRecord","description":"One owner's grant for one plugin source, and the accounts it reaches."},"ConnectionStatus":{"type":"string","enum":["PENDING","ACTIVE","RECONSENT_REQUIRED"],"title":"ConnectionStatus","description":"Where one bound connection stands (mirror of the core enum)."},"Contact":{"properties":{"kind":{"type":"string","const":"CONTACT","title":"Kind","default":"CONTACT"},"channel":{"$ref":"#/components/schemas/Channel"},"externalId":{"type":"string","maxLength":1024,"minLength":1,"title":"Externalid"},"creatorRef":{"$ref":"#/components/schemas/SourceSubject"},"email":{"anyOf":[{"type":"string","maxLength":1024,"minLength":1},{"type":"null"}],"title":"Email"},"whatsapp":{"anyOf":[{"type":"string","maxLength":512,"minLength":1},{"type":"null"}],"title":"Whatsapp"},"instagram":{"anyOf":[{"type":"string","maxLength":4096,"minLength":1},{"type":"null"}],"title":"Instagram"},"observedAt":{"type":"string","maxLength":44,"format":"date-time","title":"Observedat"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"additionalProperties":false,"type":"object","required":["channel","externalId","creatorRef","observedAt","provenance"],"title":"Contact","description":"Represent one creator-linked contact record with optional contact facts."},"ContactClause":{"properties":{"kind":{"type":"string","const":"CONTACT","title":"Kind"},"present":{"items":{"type":"string"},"type":"array","minItems":1,"uniqueItems":true,"title":"Present","description":"CONTACT field codes that must all be present and non-empty on one stored contact of the creator."}},"type":"object","required":["kind","present"],"title":"ContactClause","description":"T8 (D9: \"okay, should be optional\"): the CREATOR result has a stored CONTACT carrying every named contact fact."},"Content":{"properties":{"kind":{"type":"string","const":"CONTENT","title":"Kind","default":"CONTENT"},"channel":{"$ref":"#/components/schemas/Channel"},"externalId":{"type":"string","maxLength":1024,"minLength":1,"title":"Externalid"},"contentType":{"$ref":"#/components/schemas/ContentType"},"title":{"anyOf":[{"type":"string","maxLength":4096},{"type":"null"}],"title":"Title"},"body":{"anyOf":[{"type":"string","maxLength":1000000},{"type":"null"}],"title":"Body"},"hashtags":{"items":{"type":"string","maxLength":512},"type":"array","maxItems":256,"title":"Hashtags","default":[]},"creatorRef":{"anyOf":[{"$ref":"#/components/schemas/SourceSubject"},{"type":"null"}]},"creatorName":{"anyOf":[{"type":"string","maxLength":1024,"minLength":1},{"type":"null"}],"title":"Creatorname"},"creatorHandle":{"anyOf":[{"type":"string","maxLength":512,"minLength":1},{"type":"null"}],"title":"Creatorhandle"},"community":{"anyOf":[{"type":"string","maxLength":1024,"minLength":1},{"type":"null"}],"title":"Community"},"publishedAt":{"anyOf":[{"type":"string","maxLength":44,"format":"date-time"},{"type":"null"}],"title":"Publishedat"},"metrics":{"items":{"$ref":"#/components/schemas/MetricObservation"},"type":"array","maxItems":128,"title":"Metrics","default":[]},"media":{"items":{"$ref":"#/components/schemas/MediaRef"},"type":"array","maxItems":256,"title":"Media","default":[]},"productRefs":{"items":{"$ref":"#/components/schemas/SourceSubject"},"type":"array","maxItems":256,"title":"Productrefs","default":[]},"language":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Language"},"mentionedRefs":{"items":{"$ref":"#/components/schemas/SourceSubject"},"type":"array","maxItems":256,"title":"Mentionedrefs","default":[]},"sponsorship":{"$ref":"#/components/schemas/ContentSponsorship","default":"UNKNOWN"},"textTracks":{"items":{"$ref":"#/components/schemas/SocialTextTrack"},"type":"array","maxItems":8,"title":"Texttracks","default":[]},"comments":{"items":{"$ref":"#/components/schemas/Comment"},"type":"array","maxItems":200,"title":"Comments","default":[]},"status":{"$ref":"#/components/schemas/ContentStatus","default":"AVAILABLE"},"observedAt":{"type":"string","maxLength":44,"format":"date-time","title":"Observedat"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"additionalProperties":false,"type":"object","required":["channel","externalId","contentType","observedAt","provenance"],"title":"Content","description":"Represent one published item with typed creator/product references."},"ContentRef":{"properties":{"store":{"$ref":"#/components/schemas/StoreOwner"},"objectKey":{"type":"string","maxLength":1024,"minLength":72,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9._/-]+$","title":"Objectkey"},"sha256":{"type":"string","maxLength":64,"minLength":64,"pattern":"^[a-f0-9]{64}$","title":"Sha256"},"byteCount":{"type":"integer","maximum":1099511627776.0,"minimum":0.0,"title":"Bytecount"},"mediaType":{"type":"string","maxLength":128,"minLength":3,"title":"Mediatype"}},"additionalProperties":false,"type":"object","required":["store","objectKey","sha256","byteCount","mediaType"],"title":"ContentRef","description":"THE single content-addressed reference. Object key ends in the sha256 — content-addressing holds by construction. Bytes are read only through the owner's bytes protocol, never a storage credential."},"ContentSource":{"type":"string","enum":["OWN","VARIANT"],"title":"ContentSource","description":"Whether an image owns its canvas or resolves from an OWN parent (discriminator of ImageContent)."},"ContentSponsorship":{"type":"string","enum":["ORGANIC","PAID_AD","PAID_PARTNERSHIP","UNKNOWN"],"title":"ContentSponsorship","description":"What the platform itself declares about payment for one Content item (K-06, D-33)."},"ContentStatus":{"type":"string","enum":["AVAILABLE","DELETED_BY_AUTHOR","REMOVED_BY_MODERATOR","UNKNOWN"],"title":"ContentStatus","description":"Describe whether one Content item remains available."},"ContentType":{"type":"string","enum":["VIDEO","IMAGE","TEXT","THREAD"],"title":"ContentType","description":"Describe the provider-neutral presentation form of one Content item."},"Continue":{"properties":{"type":{"type":"string","const":"CONTINUE","title":"Type","default":"CONTINUE"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"after":{"$ref":"#/components/schemas/RunStep"}},"additionalProperties":false,"type":"object","required":["actionKey","after"],"title":"Continue","description":"Accept the reviewed step's current result (as edited) and let the run go on."},"ContinueRequest":{"properties":{"cursor":{"type":"string","title":"Cursor","description":"Opaque signed continuation token."},"maxRows":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":1.0},{"type":"null"}],"title":"Maxrows","description":"Optional row ceiling for this call; the next cursor follows the last returned row. Omission preserves the normal page size."}},"type":"object","required":["cursor"],"title":"ContinueRequest","description":"A signed continuation request with an optional per-call row ceiling."},"CostProfile":{"properties":{"len1":{"type":"number","exclusiveMinimum":0.0,"title":"Len1"},"len2":{"type":"number","exclusiveMinimum":0.0,"title":"Len2"},"len3":{"type":"number","exclusiveMinimum":0.0,"title":"Len3"},"lenUnit":{"type":"string","enum":["cm","m","inch"],"title":"Lenunit"},"marketplace":{"$ref":"#/components/schemas/AmazonMarketplace"},"weight":{"type":"number","exclusiveMinimum":0.0,"title":"Weight"},"weightUnit":{"type":"string","enum":["pound","ounce","kg","g"],"title":"Weightunit"},"expectedAdsCostRatio":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Expectedadscostratio"},"expectedCustomerReturnedRatio":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Expectedcustomerreturnedratio","default":0.025},"expectedPurchasingCost":{"$ref":"#/components/schemas/MinorUnitMoney"},"expectedAverageDailyInventoryVolume":{"type":"integer","minimum":0.0,"title":"Expectedaveragedailyinventoryvolume"},"expectedAverageDailyShippedVolume":{"type":"integer","minimum":0.0,"title":"Expectedaveragedailyshippedvolume"},"isApparel":{"type":"boolean","title":"Isapparel"},"isDangerousGoods":{"type":"boolean","title":"Isdangerousgoods"},"isBattery":{"type":"boolean","title":"Isbattery"},"feeCategoryString":{"type":"string","title":"Feecategorystring"},"exchangeRates":{"items":{"$ref":"#/components/schemas/ExchangeRateInUsd"},"type":"array","title":"Exchangerates"},"price":{"$ref":"#/components/schemas/MinorUnitMoney"}},"additionalProperties":false,"type":"object","required":["len1","len2","len3","lenUnit","marketplace","weight","weightUnit","expectedAdsCostRatio","expectedPurchasingCost","expectedAverageDailyInventoryVolume","expectedAverageDailyShippedVolume","isApparel","isDangerousGoods","isBattery","feeCategoryString","exchangeRates","price"],"title":"CostProfile","description":"Canonical calculator input with currency-aware Money observations."},"CoverageNote":{"properties":{"kind":{"$ref":"#/components/schemas/GapKind","description":"Non-empty-cause gap this note discloses."},"count":{"type":"integer","title":"Count","description":"Distinct records the gap covers: for MISSING_OBSERVATIONS the searched result-kind records whose series has no observation in the resolved window, in the freshness unit (records, not versions); for UNLINKED_CLAIMS the distinct claims, not result records; for UNHYDRATED_ENDPOINTS the distinct linked endpoint records with no stored profile."},"detail":{"type":"string","title":"Detail","description":"Plain description of the gap."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"Distinct records of the searched kind in scope; absent when the gap has no record population."}},"type":"object","required":["kind","count","detail"],"title":"CoverageNote","description":"ONE disclosed gap in the world the page was computed over (owner decision D10). UNLINKED_CLAIMS: claims touching a relation the query used with no accepted edge. UNHYDRATED_ENDPOINTS: linked endpoint records with no stored profile (including key-only stores/categories), not a short page. MISSING_OBSERVATIONS: rows whose metric series has no observation in the resolved window."},"CreateResult":{"properties":{"object":{"type":"string","const":"create_result","title":"Object","default":"create_result"},"item":{"oneOf":[{"$ref":"#/components/schemas/TodoItem"},{"$ref":"#/components/schemas/AlertItem"},{"$ref":"#/components/schemas/ApprovalItem"},{"$ref":"#/components/schemas/NotificationItem"}],"title":"Item","discriminator":{"propertyName":"kind","mapping":{"ALERT":"#/components/schemas/AlertItem","APPROVAL":"#/components/schemas/ApprovalItem","NOTIFICATION":"#/components/schemas/NotificationItem","TODO":"#/components/schemas/TodoItem"}}},"created":{"type":"boolean","title":"Created"}},"additionalProperties":false,"type":"object","required":["item","created"],"title":"CreateResult","description":"Stored item and whether the call admitted a new row."},"CreateVariants":{"properties":{"action":{"type":"string","const":"CREATE_VARIANTS","title":"Action","default":"CREATE_VARIANTS"},"sourceId":{"type":"string","title":"Sourceid"},"variants":{"items":{"$ref":"#/components/schemas/VariantSpec"},"type":"array","minItems":1,"title":"Variants"}},"additionalProperties":false,"type":"object","required":["sourceId","variants"],"title":"CreateVariants","description":"Create variants of one OWN image; free unless a spec carries a scene prompt (each its own paid step)."},"Creator":{"properties":{"kind":{"type":"string","const":"CREATOR","title":"Kind","default":"CREATOR"},"channel":{"$ref":"#/components/schemas/Channel"},"externalId":{"type":"string","maxLength":1024,"minLength":1,"title":"Externalid"},"name":{"type":"string","maxLength":2048,"minLength":1,"title":"Name"},"handle":{"anyOf":[{"type":"string","maxLength":512,"minLength":1},{"type":"null"}],"title":"Handle"},"biography":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Biography"},"market":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"title":"Market"},"links":{"items":{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},"type":"array","maxItems":64,"title":"Links","default":[]},"verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Verified"},"metrics":{"items":{"$ref":"#/components/schemas/MetricObservation"},"type":"array","maxItems":128,"title":"Metrics","default":[]},"media":{"items":{"$ref":"#/components/schemas/MediaRef"},"type":"array","maxItems":256,"title":"Media","default":[]},"observedAt":{"type":"string","maxLength":44,"format":"date-time","title":"Observedat"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"additionalProperties":false,"type":"object","required":["channel","externalId","name","observedAt","provenance"],"title":"Creator","description":"Represent one publishing account without inferring a real-world person."},"CreatorHandleSuggestion":{"properties":{"kind":{"type":"string","const":"CREATOR_HANDLE","title":"Kind","description":"Handle-prefill suggestion discriminator.","default":"CREATOR_HANDLE"},"channel":{"$ref":"#/components/schemas/Channel","description":"Channel of the creator handle to enter."}},"type":"object","required":["channel"],"title":"CreatorHandleSuggestion","description":"Prefill a creator handle input; this suggestion never runs a search."},"Credential":{"properties":{"key":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Key","description":"Credential field identifier."},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Label for an owner-entered credential field."},"entered":{"type":"boolean","title":"Entered","description":"Whether the owner enters this value when connecting.","default":false},"secret":{"type":"boolean","title":"Secret","description":"Whether this value must be hidden when displayed.","default":true},"updatable":{"type":"boolean","title":"Updatable","description":"Whether the owner may replace this entered value alone on the held connection.","default":false},"required":{"type":"boolean","title":"Required","description":"Whether the binding form requires this entered value.","default":true},"lifetimeDays":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Lifetimedays","description":"Days after entry the value stops working, when the provider forces a renewal."},"renewHint":{"anyOf":[{"$ref":"#/components/schemas/StoreLocalizedText"},{"type":"null"}],"description":"Where the owner gets a new value once this one expires, in both languages."}},"additionalProperties":false,"type":"object","required":["key"],"title":"Credential","description":"One piece of grant material the source declares, entered by the owner or returned."},"CriterionRecord":{"properties":{"key":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Key"},"label":{"$ref":"#/components/schemas/LocalizedText"},"prompt":{"type":"string","maxLength":2000,"minLength":1,"title":"Prompt"}},"additionalProperties":false,"type":"object","required":["key","label","prompt"],"title":"CriterionRecord","description":"A FLAG assessment a person or agent made after create (today's custom mask)."},"CropField":{"properties":{"field":{"type":"string","const":"CROP","title":"Field","default":"CROP"},"crop":{"anyOf":[{"$ref":"#/components/schemas/Box"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["crop"],"title":"CropField","description":"Override value: an image layer's crop (None = uncropped)."},"Currency":{"type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BYN","BYR","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JEP","JMD","JOD","JPY","KES","KGS","KHR","KID","KMF","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VEF","VES","VND","VUV","WST","XAF","XCD","XOF","XPF","XXX","YER","ZAR","ZMW"],"title":"Currency","description":"Currencies full list: https://en.wikipedia.org/wiki/ISO_4217#Active_codes"},"CurrencyBasis":{"type":"string","enum":["STATED","ASSUMED"],"title":"CurrencyBasis","description":"State how a MONEY value's currency is known (K-08, S-21)."},"CustomerArtifectCreateResponse":{"oneOf":[{"$ref":"#/components/schemas/ArtifectRef"},{"$ref":"#/components/schemas/ArtifectAccountRequired"},{"$ref":"#/components/schemas/ArtifectFailure"}],"title":"CustomerArtifectCreateResponse","description":"Expose an Artifect reference or sanitized Artifect failure.","discriminator":{"propertyName":"object","mapping":{"artifect_account_required":"#/components/schemas/ArtifectAccountRequired","artifect_failure":"#/components/schemas/ArtifectFailure","artifect_ref":"#/components/schemas/ArtifectRef"}}},"CustomerArtifectDecisionResponse":{"oneOf":[{"$ref":"#/components/schemas/ArtifectStatus"},{"$ref":"#/components/schemas/ArtifectDecisionRejection"},{"$ref":"#/components/schemas/ArtifectFailure"},{"$ref":"#/components/schemas/ArtifectProductImagesQuote"}],"title":"CustomerArtifectDecisionResponse","description":"Expose an Artifect decision status, rejection or sanitized failure.","discriminator":{"propertyName":"object","mapping":{"artifect_failure":"#/components/schemas/ArtifectFailure","artifect_quote":"#/components/schemas/ArtifectProductImagesQuote","artifect_rejection":"#/components/schemas/ArtifectDecisionRejection","artifect_status":"#/components/schemas/ArtifectStatus"}}},"CustomerArtifectDetailResponse":{"oneOf":[{"$ref":"#/components/schemas/ArtifectDetail"},{"$ref":"#/components/schemas/ArtifectFailure"}],"title":"CustomerArtifectDetailResponse","description":"Expose one kind-typed Artifect detail answer or sanitized failure (AWPD D-4).","discriminator":{"propertyName":"object","mapping":{"artifect_detail":"#/components/schemas/ArtifectDetail","artifect_failure":"#/components/schemas/ArtifectFailure"}}},"CustomerArtifectInputPage":{"oneOf":[{"$ref":"#/components/schemas/ArtifectReportScopeInputPage"},{"$ref":"#/components/schemas/ArtifectSampleRelevanceInputPage"},{"$ref":"#/components/schemas/ArtifectMaterialFactsInputPage"},{"$ref":"#/components/schemas/ArtifectStandoutInputPage"},{"$ref":"#/components/schemas/ArtifectJudgmentInputPage"},{"$ref":"#/components/schemas/ArtifectPositioningStepInputPage"},{"$ref":"#/components/schemas/ArtifectAdsRowAuditInputPage"},{"$ref":"#/components/schemas/ArtifectShopifyBlogPostsStepInputPage"},{"$ref":"#/components/schemas/ArtifectMonitorSetupInputPage"},{"$ref":"#/components/schemas/ArtifectMonitorConfirmInputPage"}],"discriminator":{"propertyName":"decisionType","mapping":{"ADS_ROW_AUDIT":"#/components/schemas/ArtifectAdsRowAuditInputPage","JUDGMENT":"#/components/schemas/ArtifectJudgmentInputPage","MATERIAL_FACTS":"#/components/schemas/ArtifectMaterialFactsInputPage","MONITOR_CONFIRM":"#/components/schemas/ArtifectMonitorConfirmInputPage","MONITOR_SETUP":"#/components/schemas/ArtifectMonitorSetupInputPage","POSITIONING_STEP":"#/components/schemas/ArtifectPositioningStepInputPage","REPORT_SCOPE":"#/components/schemas/ArtifectReportScopeInputPage","SAMPLE_RELEVANCE":"#/components/schemas/ArtifectSampleRelevanceInputPage","SHOPIFY_BLOG_POSTS_STEP":"#/components/schemas/ArtifectShopifyBlogPostsStepInputPage","STANDOUT_SELECTION":"#/components/schemas/ArtifectStandoutInputPage"}}},"CustomerArtifectInputResponse":{"oneOf":[{"$ref":"#/components/schemas/CustomerArtifectInputPage"},{"$ref":"#/components/schemas/ArtifectDecisionRejection"},{"$ref":"#/components/schemas/ArtifectFailure"}],"title":"CustomerArtifectInputResponse","description":"Expose an Artifect input page, a terminal-run rejection or a sanitized failure.","discriminator":{"propertyName":"object","mapping":{"artifect_failure":"#/components/schemas/ArtifectFailure","artifect_input_page":"#/components/schemas/CustomerArtifectInputPage","artifect_rejection":"#/components/schemas/ArtifectDecisionRejection"}}},"CustomerArtifectPluginListResponse":{"properties":{"object":{"type":"string","const":"artifect_plugin_list","title":"Object","default":"artifect_plugin_list"},"plugins":{"items":{"$ref":"#/components/schemas/RoomPublicDeclaration"},"type":"array","title":"Plugins"}},"additionalProperties":false,"type":"object","required":["plugins"],"title":"CustomerArtifectPluginListResponse","description":"Expose the installed positioning plugins in a JSON-object envelope."},"CustomerArtifectSnapshotResponse":{"oneOf":[{"$ref":"#/components/schemas/ArtifectSnapshot"},{"$ref":"#/components/schemas/ArtifectFailure"}],"title":"CustomerArtifectSnapshotResponse","description":"Expose an Artifect snapshot or sanitized failure.","discriminator":{"propertyName":"object","mapping":{"artifect_failure":"#/components/schemas/ArtifectFailure","artifect_snapshot":"#/components/schemas/ArtifectSnapshot"}}},"CustomerArtifectStatusResponse":{"oneOf":[{"$ref":"#/components/schemas/ArtifectStatus"},{"$ref":"#/components/schemas/ArtifectFailure"}],"title":"CustomerArtifectStatusResponse","description":"Expose an Artifect lifecycle status or sanitized failure.","discriminator":{"propertyName":"object","mapping":{"artifect_failure":"#/components/schemas/ArtifectFailure","artifect_status":"#/components/schemas/ArtifectStatus"}}},"CustomerDpCatalogResponse":{"oneOf":[{"$ref":"#/components/schemas/CapabilityCatalog"},{"$ref":"#/components/schemas/SearchRefused"}],"title":"CustomerDpCatalogResponse","description":"Expose the DP catalog or its typed refusal as one customer root schema.","discriminator":{"propertyName":"object","mapping":{"catalog":"#/components/schemas/CapabilityCatalog","refused":"#/components/schemas/SearchRefused"}}},"CustomerDpContinueResponse":{"oneOf":[{"$ref":"#/components/schemas/SearchPage"},{"$ref":"#/components/schemas/EntityPage"},{"$ref":"#/components/schemas/SearchPending"},{"$ref":"#/components/schemas/SearchRefused"}],"title":"CustomerDpContinueResponse","description":"Expose one discriminated DP continuation answer.","discriminator":{"propertyName":"object","mapping":{"entity_page":"#/components/schemas/EntityPage","refused":"#/components/schemas/SearchRefused","search_page":"#/components/schemas/SearchPage","search_pending":"#/components/schemas/SearchPending"}}},"CustomerDpFreshnessResponse":{"oneOf":[{"$ref":"#/components/schemas/Freshness"},{"$ref":"#/components/schemas/SearchRefused"}],"title":"CustomerDpFreshnessResponse","description":"Expose the DP freshness projection or its typed refusal.","discriminator":{"propertyName":"object","mapping":{"freshness":"#/components/schemas/Freshness","refused":"#/components/schemas/SearchRefused"}}},"CustomerDpMotifsResponse":{"oneOf":[{"$ref":"#/components/schemas/EntityPage"},{"$ref":"#/components/schemas/SearchPending"},{"$ref":"#/components/schemas/SearchRefused"}],"title":"CustomerDpMotifsResponse","description":"Expose one DP motif page, its pending variant or a typed refusal.","discriminator":{"propertyName":"object","mapping":{"entity_page":"#/components/schemas/EntityPage","refused":"#/components/schemas/SearchRefused","search_pending":"#/components/schemas/SearchPending"}}},"CustomerDpRecordResponse":{"oneOf":[{"$ref":"#/components/schemas/RecordDetail"},{"$ref":"#/components/schemas/SearchRefused"}],"title":"CustomerDpRecordResponse","description":"Expose one DP record detail or its typed refusal.","discriminator":{"propertyName":"object","mapping":{"record_detail":"#/components/schemas/RecordDetail","refused":"#/components/schemas/SearchRefused"}}},"CustomerDpSearchResponse":{"oneOf":[{"$ref":"#/components/schemas/SearchPage"},{"$ref":"#/components/schemas/EntityPage"},{"$ref":"#/components/schemas/SearchPending"},{"$ref":"#/components/schemas/SearchClarify"},{"$ref":"#/components/schemas/SearchAnswer"},{"$ref":"#/components/schemas/SearchRefused"}],"title":"CustomerDpSearchResponse","description":"Expose the full discriminated DP search answer without copying DP fields.","discriminator":{"propertyName":"object","mapping":{"answer":"#/components/schemas/SearchAnswer","clarify":"#/components/schemas/SearchClarify","entity_page":"#/components/schemas/EntityPage","refused":"#/components/schemas/SearchRefused","search_page":"#/components/schemas/SearchPage","search_pending":"#/components/schemas/SearchPending"}}},"CustomerInboxItemResponse":{"oneOf":[{"$ref":"#/components/schemas/TodoItem"},{"$ref":"#/components/schemas/AlertItem"},{"$ref":"#/components/schemas/ApprovalItem"},{"$ref":"#/components/schemas/NotificationItem"}],"title":"CustomerInboxItemResponse","description":"Expose the inbox owner's todo/approval union without copying either item model.","discriminator":{"propertyName":"kind","mapping":{"ALERT":"#/components/schemas/AlertItem","APPROVAL":"#/components/schemas/ApprovalItem","NOTIFICATION":"#/components/schemas/NotificationItem","TODO":"#/components/schemas/TodoItem"}}},"CutOutProduct":{"properties":{"action":{"type":"string","const":"CUT_OUT_PRODUCT","title":"Action","default":"CUT_OUT_PRODUCT"},"designId":{"type":"string","title":"Designid"},"layerId":{"type":"string","title":"Layerid"}},"additionalProperties":false,"type":"object","required":["designId","layerId"],"title":"CutOutProduct","description":"Paid: cut the product out of a PRODUCT layer's photo."},"Dataset":{"properties":{"key":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Key","description":"Captured dataset identifier."},"families":{"items":{"$ref":"#/components/schemas/Family"},"type":"array","minItems":1,"title":"Families","description":"Fact families produced by this dataset."},"capture":{"$ref":"#/components/schemas/CaptureStyle","description":"How this dataset is captured and scheduled."},"backfillDays":{"type":"integer","minimum":0.0,"title":"Backfilldays","description":"Historical days initially captured within source retention."},"requires":{"items":{"$ref":"#/components/schemas/Permission"},"type":"array","title":"Requires","description":"Permissions needed to capture this dataset.","default":[]},"unverified":{"type":"boolean","title":"Unverified","description":"Whether equality with source-reported totals remains unverified.","default":false}},"additionalProperties":false,"type":"object","required":["key","families","capture","backfillDays"],"title":"Dataset","description":"One captured dataset, including the visible provider-number parity label."},"DateClause":{"properties":{"kind":{"type":"string","const":"DATE","title":"Kind","default":"DATE"},"field":{"type":"string","enum":["released_at","published_at","first_tracked_at"],"title":"Field"},"op":{"type":"string","enum":["GTE","LTE"],"title":"Op"},"value":{"type":"string","maxLength":44,"format":"date-time","title":"Value"}},"additionalProperties":false,"type":"object","required":["field","op","value"],"title":"DateClause","description":"Bound one K-04 launch instant from below or above (P5 C-7, X-7)."},"DateWindow":{"properties":{"start":{"type":"string","maxLength":10,"format":"date","title":"Start"},"end":{"type":"string","maxLength":10,"format":"date","title":"End"}},"additionalProperties":false,"type":"object","required":["start","end"],"title":"DateWindow","description":"Bound one explicit inclusive calendar window for keyword trend reads."},"DayCoverage":{"properties":{"account":{"$ref":"#/components/schemas/AccountRef","description":"The provider account this coverage is for."},"familyKey":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Familykey","description":"The fact family this coverage is for."},"day":{"type":"string","format":"date","title":"Day","description":"The reporting day this coverage is for."},"availability":{"$ref":"#/components/schemas/Availability","description":"What is held for this account, family and day."},"maturity":{"$ref":"#/components/schemas/Maturity","description":"Whether the value may still be restated by the source."},"capturedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Capturedat","description":"Newest capture that confirmed this day; none when unconfirmed."}},"additionalProperties":false,"type":"object","required":["account","familyKey","day","availability","maturity"],"title":"DayCoverage","description":"What ELTA holds for one account x family x day, and whether it is settled."},"DayRange":{"properties":{"startsOn":{"type":"string","format":"date","title":"Startson","description":"First reporting day, inclusive."},"endsOn":{"type":"string","format":"date","title":"Endson","description":"Last reporting day, inclusive."}},"additionalProperties":false,"type":"object","required":["startsOn","endsOn"],"title":"DayRange","description":"Inclusive reporting days in one account's timezone."},"Decide":{"properties":{"type":{"type":"string","const":"DECIDE","title":"Type","default":"DECIDE"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"}},"additionalProperties":false,"type":"object","required":["actionKey"],"title":"Decide","description":"Start one decision over the current scorecard (explicit intent; part of the run, never a separate run). The host owns settlement."},"Decider":{"type":"string","enum":["MODEL","CALLER"],"title":"Decider","description":"Who decides a step's result before the run moves on."},"DecisionPick":{"properties":{"cellKey":{"type":"string","maxLength":400,"minLength":1,"title":"Cellkey"},"score":{"type":"integer","title":"Score"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"prose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prose"}},"additionalProperties":false,"type":"object","required":["cellKey","score"],"title":"DecisionPick","description":"One recommended cell with its score, headline and the model's explanation (when written)."},"DecisionRecord":{"properties":{"decisionId":{"type":"string","title":"Decisionid"},"status":{"$ref":"#/components/schemas/DecisionStatus"},"picks":{"items":{"$ref":"#/components/schemas/DecisionPick"},"type":"array","title":"Picks","default":[]}},"additionalProperties":false,"type":"object","required":["decisionId","status"],"title":"DecisionRecord","description":"The latest decision over the scorecard; headline and prose may be unavailable while picks stand."},"DecisionRefusal":{"type":"string","enum":["NO_EVIDENCE","RUN_IN_FLIGHT","TABLE_NOT_READY"],"title":"DecisionRefusal","description":"Why core cannot offer a decision run now (existing wire tokens; the frontend maps copy)."},"DecisionStatus":{"type":"string","enum":["RUNNING","SUCCEEDED","FAILED"],"title":"DecisionStatus","description":"A decision run is one explicit intent; only one runs at a time (existing ruling)."},"DeleteCriterion":{"properties":{"type":{"type":"string","const":"DELETE_CRITERION","title":"Type","default":"DELETE_CRITERION"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"key":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Key"}},"additionalProperties":false,"type":"object","required":["actionKey","key"],"title":"DeleteCriterion","description":"Delete one criterion and its results; views naming it show no criterion."},"DeleteDimension":{"properties":{"type":{"type":"string","const":"DELETE_DIMENSION","title":"Type","default":"DELETE_DIMENSION"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"dimensionKey":{"type":"string","maxLength":80,"minLength":1,"title":"Dimensionkey"}},"additionalProperties":false,"type":"object","required":["actionKey","dimensionKey"],"title":"DeleteDimension","description":"Delete one dimension and its placements; views naming it fall back to their other axes."},"DeleteView":{"properties":{"type":{"type":"string","const":"DELETE_VIEW","title":"Type","default":"DELETE_VIEW"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"viewer":{"$ref":"#/components/schemas/ViewerRef"},"expectedRevision":{"type":"integer","minimum":0.0,"title":"Expectedrevision"},"viewId":{"type":"string","title":"Viewid"}},"additionalProperties":false,"type":"object","required":["actionKey","viewer","expectedRevision","viewId"],"title":"DeleteView","description":"Delete one saved view from the viewer's viewport (the first definition cannot be deleted)."},"DetachVariant":{"properties":{"action":{"type":"string","const":"DETACH_VARIANT","title":"Action","default":"DETACH_VARIANT"},"objectId":{"type":"string","title":"Objectid"}},"additionalProperties":false,"type":"object","required":["objectId"],"title":"DetachVariant","description":"Freeze a variant's resolved design into OWN content (kit refs stay refs); it stops following its parent."},"DetailSection":{"properties":{"key":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Key"},"title":{"$ref":"#/components/schemas/LocalizedText"},"rows":{"items":{"oneOf":[{"$ref":"#/components/schemas/MeasureRow"},{"$ref":"#/components/schemas/AssessmentRow"},{"$ref":"#/components/schemas/ConclusionRow"},{"$ref":"#/components/schemas/ItemsRow"},{"$ref":"#/components/schemas/ReferencesRow"}],"discriminator":{"propertyName":"kind","mapping":{"ASSESSMENT":"#/components/schemas/AssessmentRow","CONCLUSION":"#/components/schemas/ConclusionRow","ITEMS":"#/components/schemas/ItemsRow","MEASURE":"#/components/schemas/MeasureRow","REFERENCES":"#/components/schemas/ReferencesRow"}}},"type":"array","minItems":1,"title":"Rows"}},"additionalProperties":false,"type":"object","required":["key","title","rows"],"title":"DetailSection","description":"One section of the dialog a person opens by clicking a cell."},"DetailSectionRead":{"properties":{"section":{"$ref":"#/components/schemas/DetailSection"},"values":{"items":{"oneOf":[{"$ref":"#/components/schemas/MeasureDetailValue"},{"$ref":"#/components/schemas/AssessmentDetailValue"},{"$ref":"#/components/schemas/ConclusionDetailValue"},{"$ref":"#/components/schemas/ItemsDetailValue"},{"$ref":"#/components/schemas/ReferencesDetailValue"}],"discriminator":{"propertyName":"kind","mapping":{"ASSESSMENT":"#/components/schemas/AssessmentDetailValue","CONCLUSION":"#/components/schemas/ConclusionDetailValue","ITEMS":"#/components/schemas/ItemsDetailValue","MEASURE":"#/components/schemas/MeasureDetailValue","REFERENCES":"#/components/schemas/ReferencesDetailValue"}}},"type":"array","title":"Values"}},"additionalProperties":false,"type":"object","required":["section","values"],"title":"DetailSectionRead","description":"One declared section with its rows filled for one cell."},"DiffLine":{"properties":{"kind":{"$ref":"#/components/schemas/DiffLineKind","description":"Diff-line operation and display color."},"field":{"type":"string","minLength":1,"title":"Field","description":"Changed field name or quote JSON pointer."},"before":{"anyOf":[{"$ref":"#/components/schemas/JsonValue"},{"type":"null"}],"description":"Previous field value, when present."},"after":{"anyOf":[{"$ref":"#/components/schemas/JsonValue"},{"type":"null"}],"description":"Requested value or estimate, when present."},"private":{"type":"boolean","title":"Private","description":"Whether this line contains owner-only data.","default":false},"textHunks":{"items":{"$ref":"#/components/schemas/TextHunk"},"type":"array","title":"Texthunks","description":"Raw line operations for a text-file diff.","default":[]}},"additionalProperties":false,"type":"object","required":["kind","field"],"title":"DiffLine","description":"One mutation or estimate line, optionally private or a raw text hunk."},"DiffLineKind":{"type":"string","enum":["ADDED","CHANGED","REMOVED","ESTIMATE"],"title":"DiffLineKind","description":"Meaning and display treatment of one requested change or provider estimate."},"DimensionOrigin":{"type":"string","enum":["COMPUTED","CLASSIFIED"],"title":"DimensionOrigin","description":"Where a dimension's placements come from: cut from a fact, or judged (model or caller)."},"DimensionRecord":{"properties":{"key":{"type":"string","maxLength":80,"minLength":1,"title":"Key"},"label":{"$ref":"#/components/schemas/LocalizedText"},"origin":{"$ref":"#/components/schemas/DimensionOrigin"},"fact":{"anyOf":[{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$"},{"type":"null"}],"title":"Fact"},"options":{"items":{"$ref":"#/components/schemas/OptionRecord"},"type":"array","minItems":1,"title":"Options"}},"additionalProperties":false,"type":"object","required":["key","label","origin","options"],"title":"DimensionRecord","description":"One dimension of a positioning and its ordered options."},"DiscardRow":{"properties":{"op":{"type":"string","const":"DISCARD_ROW","title":"Op","default":"DISCARD_ROW"},"rowKey":{"type":"string","title":"Rowkey"}},"additionalProperties":false,"type":"object","required":["rowKey"],"title":"DiscardRow","description":"Leave one row out of the next proposal; it stays visible and restorable."},"DiscoveredAccount":{"properties":{"accountId":{"type":"string","minLength":1,"title":"Accountid","description":"Account identifier within the source."},"title":{"type":"string","minLength":1,"title":"Title","description":"Account display name."},"timezone":{"type":"string","maxLength":64,"minLength":1,"title":"Timezone","description":"Account's reporting timezone."},"currency":{"anyOf":[{"type":"string","pattern":"^[A-Z]{3}$"},{"type":"null"}],"title":"Currency","description":"Account currency; null when no money is reported."},"region":{"anyOf":[{"$ref":"#/components/schemas/ProviderRegion"},{"type":"null"}],"description":"Sales region reached by this account; null for sources without regional accounts."},"attributes":{"patternProperties":{"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$":{"type":"string"}},"propertyNames":{"maxLength":120},"type":"object","title":"Attributes","description":"Account metadata keyed by the source's declared attributes.","default":{}},"granted":{"anyOf":[{"items":{"$ref":"#/components/schemas/Permission"},"type":"array","uniqueItems":true},{"type":"null"}],"title":"Granted","description":"Permissions reported for this account; null when they cannot be listed."}},"additionalProperties":false,"type":"object","required":["accountId","title","timezone"],"title":"DiscoveredAccount","description":"An account a binding reaches, as the plugin reports it at discovery."},"DocumentOutline":{"properties":{"status":{"$ref":"#/components/schemas/SetStatus"},"revision":{"type":"integer","minimum":0.0,"title":"Revision"},"title":{"type":"string","title":"Title"},"kits":{"items":{"$ref":"#/components/schemas/BrandKit"},"type":"array","title":"Kits"},"photos":{"items":{"$ref":"#/components/schemas/OwnedPhotoRef"},"type":"array","title":"Photos"},"objects":{"items":{"$ref":"#/components/schemas/ObjectOutline"},"type":"array","title":"Objects"},"focus":{"items":{"type":"string"},"type":"array","title":"Focus","default":[]},"latestEdit":{"anyOf":[{"$ref":"#/components/schemas/EditSummary"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["status","revision","title","kits","photos","objects"],"title":"DocumentOutline","description":"The artifect snapshot the chat agent reads before each turn; pixels travel separately (previews)."},"DriftPolicy":{"type":"string","enum":["APPLY_ANYWAY","REFUSE"],"title":"DriftPolicy","description":"Whether a write may proceed after its target changed since preview."},"DropPost":{"properties":{"edit":{"type":"string","const":"DROP_POST","title":"Edit","default":"DROP_POST"},"postKey":{"type":"string","minLength":1,"title":"Postkey"}},"additionalProperties":false,"type":"object","required":["postKey"],"title":"DropPost","description":"Leave one post out of create-all."},"DropShadow":{"properties":{"color":{"anyOf":[{"$ref":"#/components/schemas/Color"},{"$ref":"#/components/schemas/BrandColorRef"}],"title":"Color"},"blur":{"type":"number","minimum":0.0,"title":"Blur"},"offsetX":{"type":"number","title":"Offsetx","default":0.0},"offsetY":{"type":"number","title":"Offsety","default":0.0}},"additionalProperties":false,"type":"object","required":["color","blur"],"title":"DropShadow","description":"A rendered shadow under any leaf layer (procedural, deterministic, free; D-13, VV-4)."},"EditActionKind":{"type":"string","enum":["ADD_DESIGN","REMOVE_DESIGN","ORDER_DESIGNS","RESIZE_DESIGN","SET_BACKGROUND","APPLY_TEMPLATE","ADD_LAYER","REMOVE_LAYERS","ORDER_LAYER","SET_BOX","SET_LAYER_FLAGS","SET_TEXT","SET_TEXT_STYLE","SET_SHAPE_STYLE","SET_SHADOW","GROUP_LAYERS","UNGROUP_LAYER","CUT_OUT_PRODUCT","GENERATE_SCENE","RESTORE_REVISION","SET_OBJECT_FRAME","SET_OBJECT_LOCK","CREATE_VARIANTS","SET_VARIANT_RECIPE","DETACH_VARIANT","ADD_PLAN","SET_PLAN","GENERATE_FROM_PLAN","PLACE_BRAND_KIT","SET_IMAGE_TRANSFORM","GENERATE_DECOR","SET_BOARD_TITLE"],"title":"EditActionKind","description":"Every edit the agent or the editor can make (discriminator of EditAction)."},"EditRefusal":{"properties":{"outcome":{"type":"string","const":"REFUSED","title":"Outcome","default":"REFUSED"},"code":{"$ref":"#/components/schemas/EditRefusalCode"},"actionIndex":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Actionindex"},"layerId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Layerid"},"objectId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Objectid"},"changedObjects":{"items":{"type":"string"},"type":"array","title":"Changedobjects","default":[]},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},"additionalProperties":false,"type":"object","required":["code"],"title":"EditRefusal","description":"A refused batch or step, pointing at the first offending action so the agent can fix and resubmit."},"EditRefusalCode":{"type":"string","enum":["STALE_REVISION","UNKNOWN_DESIGN","UNKNOWN_LAYER","UNKNOWN_REVISION","UNKNOWN_ASSET","DUPLICATE_ID","WRONG_LAYER_KIND","WRONG_ROLE","LAYER_LOCKED","TEMPLATE_PRESET_MISMATCH","MISSING_FILL","MISSING_MASK","AI_PAUSED","PAYMENT_REFUSED","INVALID_ACTION_BATCH","OBJECT_LOCKED","OBJECT_BUSY","PARENT_IS_VARIANT","DETACH_REQUIRED","HAS_VARIANTS","UNKNOWN_PLAN_ROW","UNKNOWN_BRAND_KIT","BOARD_FULL","BATCH_TOO_LARGE","INVALID_SIZE"],"title":"EditRefusalCode","description":"Why a batch (or a paid step on re-check) was not applied; the head is unchanged in every case."},"EditRow":{"properties":{"op":{"type":"string","const":"EDIT_ROW","title":"Op","default":"EDIT_ROW"},"rowKey":{"type":"string","title":"Rowkey"},"action":{"$ref":"#/components/schemas/UnboundAction"},"rationale":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Rationale"}},"additionalProperties":false,"type":"object","required":["rowKey","action"],"title":"EditRow","description":"Replace one row's account-free action without changing key, type or target."},"EditSummary":{"properties":{"revision":{"type":"integer","minimum":1.0,"title":"Revision"},"actor":{"$ref":"#/components/schemas/ProductImagesActorKind"},"actionTypes":{"items":{"$ref":"#/components/schemas/EditActionKind"},"type":"array","title":"Actiontypes"},"changedObjects":{"items":{"type":"string"},"type":"array","title":"Changedobjects"},"committedAt":{"type":"string","format":"date-time","title":"Committedat"},"batchKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Batchkey"}},"additionalProperties":false,"type":"object","required":["revision","actor","actionTypes","changedObjects","committedAt"],"title":"EditSummary","description":"One recorded edit summary for the agent's last-change card and the editor's version history."},"EllipseGeometry":{"properties":{"kind":{"type":"string","const":"ELLIPSE","title":"Kind","default":"ELLIPSE"}},"additionalProperties":false,"type":"object","title":"EllipseGeometry","description":"An ellipse inscribed in the box (callout dots, circular badges)."},"EntityLevel":{"properties":{"key":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Key","description":"Level key carried by every value."},"title":{"$ref":"#/components/schemas/StoreLocalizedText","description":"Display name of the level, in both languages."},"parent":{"anyOf":[{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$"},{"type":"null"}],"title":"Parent","description":"Level whose entity scopes this one; never itself parented."}},"additionalProperties":false,"type":"object","required":["key","title"],"title":"EntityLevel","description":"One catalog-declared entity level: its key, bilingual title and one-hop parent (4.0.0)."},"EntityPage":{"properties":{"object":{"type":"string","const":"entity_page","title":"Object","description":"Public object discriminator."},"items":{"items":{"$ref":"#/components/schemas/NodeHit"},"type":"array","title":"Items","description":"Final typed node hits in page order."},"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor","description":"Opaque signed short token for continuation; null when complete."},"progress":{"$ref":"#/components/schemas/PageProgress","description":"Requested count and progress per step."},"coverage":{"items":{"$ref":"#/components/schemas/CoverageNote"},"type":"array","title":"Coverage","description":"Disclosed gaps in the world this page searched.","default":[]},"unapplied":{"items":{"type":"string"},"type":"array","maxItems":8,"title":"Unapplied","description":"At most eight request parts that this page did not apply.","default":[]},"families":{"items":{"$ref":"#/components/schemas/FamilySummary"},"type":"array","title":"Families","description":"Product families represented by this page's listings.","default":[]},"window":{"anyOf":[{"$ref":"#/components/schemas/ResolvedWindow"},{"type":"null"}],"description":"Time axis and inclusive span read; null when none."},"market":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"title":"Market","description":"Resolved market this page read; null when unknown or unset."}},"type":"object","required":["object","items","cursor","progress"],"title":"EntityPage","description":"One customer page with honest progress and an opaque continuation."},"EntityRef":{"properties":{"level":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Level","description":"Granularity of the entity: a catalog level key."},"entity":{"type":"string","minLength":1,"title":"Entity","description":"Identifier at the declared granularity."},"parent":{"anyOf":[{"$ref":"#/components/schemas/EntityRef"},{"type":"null"}]},"label":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Label","description":"Display title only, never identity; excluded from proposal hashes and target keys."}},"additionalProperties":false,"type":"object","required":["level","entity"],"title":"EntityRef","description":"One provider entity at a declared level, optionally scoped by its typed parent."},"EstimateSource":{"type":"string","enum":["AMAZON_OBSERVED","USER_SUPPLIED","COHORT_INFERRED","PUBLIC_WEB_RESEARCH","UNRESOLVED"],"title":"EstimateSource","description":"Provenance of one economic input used by a profit breakdown line."},"EstimationStatus":{"type":"string","enum":["UNKNOWN","ACTUAL","ESTIMATED"],"title":"EstimationStatus","description":"State whether a reported metric is actual, estimated, or unknown."},"EvidenceBasis":{"type":"string","enum":["RECORDED","MENTIONED","SIMILAR"],"title":"EvidenceBasis","description":"HOW STRONGLY a fact supports a hit (K-25, D-15, S-26)."},"ExchangeRateInUsd":{"properties":{"currency":{"$ref":"#/components/schemas/Currency"},"exchangeRate":{"$ref":"#/components/schemas/StdMoneyAmount"}},"type":"object","required":["currency","exchangeRate"],"title":"ExchangeRateInUsd","description":"Legacy fixed-two quote expressing currency major units per one USD."},"ExcludeAsinsAdjustment":{"properties":{"adjustmentType":{"type":"string","const":"EXCLUDE_ASINS","title":"Adjustmenttype","default":"EXCLUDE_ASINS"},"asins":{"items":{"type":"string","pattern":"^[A-Z0-9]{10}$"},"type":"array","minItems":1,"title":"Asins","description":"ASINs removed from the analysis."}},"additionalProperties":false,"type":"object","required":["asins"],"title":"ExcludeAsinsAdjustment","description":"Remove ASINs from the analysis and recompute dependent sections."},"ExistingShopifyFile":{"properties":{"file_id":{"type":"string","minLength":1,"title":"File Id"},"alt_text":{"type":"string","title":"Alt Text","default":""}},"additionalProperties":false,"type":"object","required":["file_id"],"title":"ExistingShopifyFile","description":"An image body segment that refers to a file already in this Shopify store."},"ExportOptions":{"properties":{"format":{"anyOf":[{"$ref":"#/components/schemas/RenderFormat"},{"type":"null"}]},"scale":{"type":"number","title":"Scale","default":1.0},"objectIds":{"anyOf":[{"items":{"type":"string"},"type":"array","minItems":1},{"type":"null"}],"title":"Objectids"},"layerId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Layerid"}},"additionalProperties":false,"type":"object","title":"ExportOptions","description":"How an export renders: format, scale, which images, or one layer alone (stated once per export)."},"ExportSet":{"properties":{"exportId":{"type":"string","title":"Exportid"},"setId":{"type":"string","title":"Setid"},"revision":{"type":"integer","minimum":1.0,"title":"Revision"},"options":{"$ref":"#/components/schemas/ExportOptions"},"images":{"items":{"$ref":"#/components/schemas/ExportedImage"},"type":"array","minItems":1,"title":"Images"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"additionalProperties":false,"type":"object","required":["exportId","setId","revision","images","createdAt"],"title":"ExportSet","description":"An immutable, ordered group of rendered images pinned to one revision: what the listing artifect consumes."},"ExternalIdentity":{"properties":{"kind":{"$ref":"#/components/schemas/ExternalIdentityKind"},"value":{"type":"string","maxLength":1024,"minLength":1,"title":"Value"},"market":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"title":"Market"}},"additionalProperties":false,"type":"object","required":["kind","value"],"title":"ExternalIdentity","description":"Retain a universal product alias without provider attribution."},"ExternalIdentityKind":{"type":"string","enum":["GTIN","EAN","UPC","SKU","MODEL_NUMBER"],"title":"ExternalIdentityKind","description":"Name provider-neutral product aliases that are safe for consumer data."},"FactChange":{"oneOf":[{"$ref":"#/components/schemas/AttributeChange"},{"$ref":"#/components/schemas/MeasureChange"}],"discriminator":{"propertyName":"kind","mapping":{"attribute":"#/components/schemas/AttributeChange","measure":"#/components/schemas/MeasureChange"}}},"FactChangePage":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/FactChange"},"type":"array","title":"Rows","description":"Rows in this page."},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor","description":"Continuation cursor; null on the last page."},"totalRows":{"type":"integer","minimum":0.0,"title":"Totalrows","description":"Rows matching the whole read, across all pages."},"emptyReason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emptyreason","description":"Why this page is empty and what selection or source to check."}},"additionalProperties":false,"type":"object","required":["rows","totalRows"],"title":"FactChangePage","description":"One bounded page of derived fact changes; total_rows counts every change matched."},"FactHistoryResponse":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/FactVersion"},"type":"array","title":"Rows","description":"Rows in this page."},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor","description":"Continuation cursor; null on the last page."},"totalRows":{"type":"integer","minimum":0.0,"title":"Totalrows","description":"Rows matching the whole read, across all pages."},"emptyReason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emptyreason","description":"Why this page is empty and what selection or source to check."},"object":{"type":"string","const":"fact_history_response","title":"Object","description":"Fixed tag marking this object as a fact history page.","default":"fact_history_response"}},"additionalProperties":false,"type":"object","required":["rows","totalRows"],"title":"FactHistoryResponse","description":"One bounded page of every stored version, superseded ones included."},"FactPage":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/FactRow"},"type":"array","title":"Rows","description":"Rows in this page."},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor","description":"Continuation cursor; null on the last page."},"totalRows":{"type":"integer","minimum":0.0,"title":"Totalrows","description":"Rows matching the whole read, across all pages."},"emptyReason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emptyreason","description":"Why this page is empty and what selection or source to check."},"object":{"type":"string","const":"fact_page","title":"Object","description":"Fixed tag marking this object as a fact page.","default":"fact_page"},"coverage":{"items":{"$ref":"#/components/schemas/DayCoverage"},"type":"array","title":"Coverage","description":"Coverage of every requested account, family and day."},"readAsOf":{"type":"string","format":"date-time","title":"Readasof","description":"The single instant all rows were read at."},"blocked":{"items":{"$ref":"#/components/schemas/BlockedLane"},"type":"array","title":"Blocked","description":"Blocked lanes with their reason and fix.","default":[]}},"additionalProperties":false,"type":"object","required":["rows","totalRows","coverage","readAsOf"],"title":"FactPage","description":"One bounded page of fact rows plus the coverage of every requested day."},"FactRow":{"properties":{"account":{"$ref":"#/components/schemas/AccountRef","description":"The provider account this row belongs to."},"familyKey":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Familykey","description":"The fact family this row belongs to."},"identity":{"items":{"type":"string","minLength":1},"type":"array","minItems":1,"title":"Identity","description":"One value per family identity attribute, in declared order."},"parents":{"items":{"$ref":"#/components/schemas/EntityRef"},"type":"array","title":"Parents","default":[]},"day":{"type":"string","format":"date","title":"Day","description":"The reporting day this value is for."},"occurredAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Occurredat","description":"When the event happened; only for event-style families."},"measures":{"patternProperties":{"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}]}},"propertyNames":{"maxLength":120},"type":"object","title":"Measures","description":"Measure values keyed by declared measure key; absent is unknown.","default":{}},"dims":{"patternProperties":{"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$":{"type":"string"}},"propertyNames":{"maxLength":120},"type":"object","title":"Dims","description":"Attribute values keyed by declared attribute key.","default":{}}},"additionalProperties":false,"type":"object","required":["account","familyKey","identity","day"],"title":"FactRow","description":"One stored fact value: identity values, day, typed cells."},"FactSpec":{"properties":{"key":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Key"},"label":{"$ref":"#/components/schemas/LocalizedText"},"kind":{"$ref":"#/components/schemas/FactValueKind"}},"additionalProperties":false,"type":"object","required":["key","label","kind"],"title":"FactSpec","description":"One fact every item of this plugin may carry."},"FactVersion":{"properties":{"row":{"$ref":"#/components/schemas/FactRow","description":"The stored fact row this version belongs to."},"captureId":{"type":"string","minLength":1,"title":"Captureid","description":"The capture whose processing made this version readable."},"contentHash":{"type":"string","minLength":1,"title":"Contenthash","description":"Hash of the row content used to detect a new version."},"observedAt":{"type":"string","format":"date-time","title":"Observedat","description":"Instant this version became readable."},"supersededAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Supersededat","description":"Instant a newer version replaced this one; none while current."}},"additionalProperties":false,"type":"object","required":["row","captureId","contentHash","observedAt"],"title":"FactVersion","description":"One stored version of one fact row (change-only history)."},"FactsRequest":{"properties":{"familyKey":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Familykey","description":"The fact family to read."},"days":{"$ref":"#/components/schemas/DayRange","description":"Inclusive reporting days in the account's timezone."},"storeIds":{"items":{"type":"string","minLength":1},"type":"array","title":"Storeids","description":"Stores to include; empty selects the asserted owner's stores.","default":[]},"accountIds":{"items":{"type":"string","minLength":1},"type":"array","title":"Accountids","description":"Accounts to read; empty means every account of the owner.","default":[]},"entities":{"items":{"type":"string"},"type":"array","title":"Entities","description":"Stored entity keys to read; empty means every entity.","default":[]},"attributes":{"items":{"$ref":"#/components/schemas/AttributeMatch"},"type":"array","title":"Attributes","description":"View selections that restrict which rows are returned.","default":[]},"asOf":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Asof","description":"Instant to read as of; set this or capture_id, never both."},"captureId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Captureid","description":"Committed capture to read as of; set this or as_of, never both."},"page":{"$ref":"#/components/schemas/PageRequest","description":"Row limit and cursor for this read.","default":{"limit":200}}},"additionalProperties":false,"type":"object","required":["familyKey","days"],"title":"FactsRequest","description":"A serving read of stored facts for one owner: family, days, selection and pin."},"FailureRef":{"properties":{"kind":{"$ref":"#/components/schemas/FailureRefKind","description":"Store the referenced durable record lives in."},"id":{"type":"string","minLength":1,"title":"Id","description":"Durable record id in that store."}},"type":"object","required":["kind","id"],"title":"FailureRef","description":"A typed, self-describing reference to one durable failure record (Q9)."},"FailureRefKind":{"type":"string","enum":["PUBLIC_REQUEST"],"title":"FailureRefKind","description":"What kind of durable record a public failure reference names (Q9)."},"Family":{"properties":{"key":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Key","description":"Fact-family identifier."},"kind":{"$ref":"#/components/schemas/TemporalFactKind","description":"How these facts are placed in time."},"level":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Level","description":"Granularity of each fact row: a catalog level key."},"identity":{"items":{"$ref":"#/components/schemas/Attribute"},"type":"array","minItems":1,"title":"Identity","description":"Ordered text columns identifying a fact."},"dims":{"items":{"$ref":"#/components/schemas/Attribute"},"type":"array","title":"Dims","description":"Additional descriptive text columns.","default":[]},"measures":{"items":{"$ref":"#/components/schemas/Measure"},"type":"array","title":"Measures","description":"Numeric columns reported by this family."},"settlesAfterDays":{"type":"integer","minimum":0.0,"title":"Settlesafterdays","description":"Days after reporting before a value is final; zero means final on capture."},"absence":{"$ref":"#/components/schemas/AbsencePolicy","description":"Meaning of an entity missing from a confirmed day."}},"additionalProperties":false,"type":"object","required":["key","kind","level","identity","measures","settlesAfterDays","absence"],"title":"Family","description":"One family of facts: identity, time placement, columns and settle window."},"FamilySummary":{"properties":{"familyKey":{"type":"string","title":"Familykey","description":"Stable family key, matching NodeHit.family_key."},"label":{"type":"string","title":"Label","description":"Readable family label."},"memberCount":{"type":"integer","minimum":0.0,"title":"Membercount","description":"Listings in this family."},"priceCurrency":{"anyOf":[{"$ref":"#/components/schemas/Currency"},{"type":"null"}],"description":"Currency of min_price and max_price."},"minPrice":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Minprice","description":"Lowest member price in major units."},"maxPrice":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Maxprice","description":"Highest member price in major units."}},"type":"object","required":["familyKey","label","memberCount"],"title":"FamilySummary","description":"One product family on a page: its label, size and price range (K-30, D-32)."},"FbaInboundPlanStatus":{"type":"string","enum":["ACTIVE","VOIDED","CLOSED"],"title":"FbaInboundPlanStatus","description":"The live plan state, read through ELTA's amazon.seller.fba_inbound_plan_status lookup."},"FbaInboundStage":{"type":"string","enum":["DRAFT","CREATE_PENDING","CREATE_UNKNOWN","PACKING_DRAFT","PACKING_PENDING","PACKED","CANCELLED"],"title":"FbaInboundStage","description":"Where one FBA inbound plan is; the kind's pure stage(...) derives it on every read."},"FeatureValue":{"properties":{"featureCode":{"type":"string","title":"Featurecode","description":"Code of the analyzed feature this value measures."},"windowDays":{"type":"integer","title":"Windowdays","description":"Length in days of the window the value was computed over."},"value":{"type":"number","title":"Value","description":"The feature's value inside this window."},"velocity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Velocity","description":"Change of the value against the previous window; null when none was measured."},"rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rank","description":"Position inside the compared cohort; null when no cohort applies."}},"type":"object","required":["featureCode","windowDays","value"],"title":"FeatureValue","description":"One windowed analyzed metric, distinct from label adoption counts."},"FieldProblem":{"properties":{"field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field","description":"JSON pointer into the change, when known."},"code":{"type":"string","minLength":1,"title":"Code","description":"Provider or contract field-problem code."},"message":{"type":"string","minLength":1,"title":"Message","description":"Provider explanation and repair guidance."}},"additionalProperties":false,"type":"object","required":["code","message"],"title":"FieldProblem","description":"One provider validation detail attached to a submitted field or whole action row."},"FiledBatch":{"properties":{"proposalId":{"type":"string","title":"Proposalid"},"inboxItemId":{"type":"string","title":"Inboxitemid"},"revision":{"type":"integer","minimum":1.0,"title":"Revision"},"rowKeys":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Rowkeys","description":"Forward selection, or a revert's source-row bound. ELTA revert links and outcomes define touched coverage."}},"additionalProperties":false,"type":"object","required":["proposalId","inboxItemId","revision","rowKeys"],"title":"FiledBatch","description":"Pointers and selected row keys for one filing; no copy of ELTA or inbox state."},"FilingIntent":{"properties":{"request":{"anyOf":[{"$ref":"#/components/schemas/ActionBatch"},{"$ref":"#/components/schemas/RevertRequest"}],"title":"Request"},"replayKey":{"type":"string","title":"Replaykey"},"commandReceipt":{"anyOf":[{"$ref":"#/components/schemas/CommandReceipt"},{"type":"null"}]},"revision":{"type":"integer","minimum":1.0,"title":"Revision"}},"additionalProperties":false,"type":"object","required":["request","replayKey","revision"],"title":"FilingIntent","description":"Persist one exact proposal or revert request before filing it through approvals."},"FillField":{"properties":{"field":{"type":"string","const":"FILL","title":"Field","default":"FILL"},"fill":{"anyOf":[{"$ref":"#/components/schemas/Color"},{"$ref":"#/components/schemas/BrandColorRef"},{"$ref":"#/components/schemas/LinearGradient"},{"$ref":"#/components/schemas/RadialGradient"},{"type":"null"}],"title":"Fill"}},"additionalProperties":false,"type":"object","required":["fill"],"title":"FillField","description":"Override value: a shape layer's fill, solid or gradient (None = no fill)."},"FirstLegLineDetail":{"properties":{"shippingMode":{"$ref":"#/components/schemas/ShippingMode"},"billableWeightKg":{"type":"number","title":"Billableweightkg"},"ratePerKg":{"$ref":"#/components/schemas/MinorUnitMoney"}},"type":"object","required":["shippingMode","billableWeightKg","ratePerKg"],"title":"FirstLegLineDetail","description":"Transport composition of the first-leg shipping breakdown line."},"FlipField":{"properties":{"field":{"type":"string","const":"FLIP","title":"Field","default":"FLIP"},"flipX":{"type":"boolean","title":"Flipx"},"flipY":{"type":"boolean","title":"Flipy"}},"additionalProperties":false,"type":"object","required":["flipX","flipY"],"title":"FlipField","description":"Override value: an image layer's mirror flags."},"FontField":{"properties":{"field":{"type":"string","const":"FONT","title":"Field","default":"FONT"},"font":{"anyOf":[{"type":"string","enum":["inter","montserrat","noto_sans_sc","noto_serif_sc","playfair_display"]},{"$ref":"#/components/schemas/BrandFontRef"}],"title":"Font"}},"additionalProperties":false,"type":"object","required":["font"],"title":"FontField","description":"Override value: a text layer's font."},"FontSizeField":{"properties":{"field":{"type":"string","const":"FONT_SIZE","title":"Field","default":"FONT_SIZE"},"size":{"type":"number","exclusiveMinimum":0.0,"title":"Size"}},"additionalProperties":false,"type":"object","required":["size"],"title":"FontSizeField","description":"Override value: a text layer's font size in canvas pixels."},"FontWeight":{"type":"string","enum":["REGULAR","MEDIUM","BOLD"],"title":"FontWeight","description":"The static weights available in the hosted, licence-cleared font manifest."},"FontWeightField":{"properties":{"field":{"type":"string","const":"FONT_WEIGHT","title":"Field","default":"FONT_WEIGHT"},"weight":{"$ref":"#/components/schemas/FontWeight"}},"additionalProperties":false,"type":"object","required":["weight"],"title":"FontWeightField","description":"Override value: a text layer's font weight."},"FrameEvidence":{"properties":{"kind":{"type":"string","const":"FRAME","title":"Kind","description":"Evidence discriminator; always FRAME.","default":"FRAME"},"frame":{"$ref":"#/components/schemas/ContentRef","description":"Content reference of the retained frame this element cites."},"timestampMs":{"type":"integer","minimum":0.0,"title":"Timestampms","description":"Publication-relative offset of the cited frame in milliseconds."}},"type":"object","required":["frame","timestampMs"],"title":"FrameEvidence","description":"The frame ONE element cites as its evidence (T1)."},"Freshness":{"properties":{"object":{"type":"string","const":"freshness","title":"Object","description":"Public object discriminator."},"rows":{"items":{"$ref":"#/components/schemas/FreshnessRow"},"type":"array","title":"Rows","description":"One freshness aggregate per channel and kind."},"activationEpoch":{"type":"integer","title":"Activationepoch","description":"Visible activation epoch."},"activatedAt":{"type":"string","format":"date-time","title":"Activatedat","description":"Activation timestamp of the epoch."},"asOf":{"type":"string","format":"date-time","title":"Asof","description":"Timestamp at which the report was computed."},"ingestPending":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Ingestpending","description":"Jobs waiting in this scope's DP ingest queue; null means not measured."}},"type":"object","required":["object","rows","activationEpoch","activatedAt","asOf"],"title":"Freshness","description":"Cached freshness rows and one scope-level pending-ingest count."},"FreshnessRow":{"properties":{"channel":{"anyOf":[{"$ref":"#/components/schemas/Channel"},{"type":"null"}],"description":"Channel this row counts; null for channel-agnostic rows."},"nodeKind":{"anyOf":[{"$ref":"#/components/schemas/NodeKind"},{"$ref":"#/components/schemas/ConceptKind"}],"title":"Nodekind","description":"Node or concept kind this row counts."},"records":{"type":"integer","title":"Records","description":"Number of cached records for this (channel, kind) coordinate."},"latestObservedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Latestobservedat","description":"Newest known source observation time; null when all are unknown."}},"type":"object","required":["channel","nodeKind","records","latestObservedAt"],"title":"FreshnessRow","description":"One freshness aggregate identified by (channel, node_kind)."},"FromObject":{"properties":{"kind":{"$ref":"#/components/schemas/NodeKind","description":"Node kind the path starts from."},"channel":{"anyOf":[{"$ref":"#/components/schemas/Channel"},{"type":"null"}],"description":"Source channel the source records live in; null for derived kinds."},"sourceIds":{"items":{"$ref":"#/components/schemas/NodeRef"},"type":"array","title":"Sourceids","description":"Exact source records the path starts from.","default":[]},"descriptions":{"items":{"$ref":"#/components/schemas/KeywordTerm"},"type":"array","title":"Descriptions","description":"Descriptive facts (title, brand, handle and similar) hydrated from the source.","default":[]},"identities":{"items":{"$ref":"#/components/schemas/ExternalIdentity"},"type":"array","title":"Identities","description":"Universal product aliases (GTIN, EAN, UPC, SKU, model number) carried by the source.","default":[]},"handles":{"items":{"type":"string"},"type":"array","title":"Handles","description":"Creator or store handles supplied as source facts.","default":[]},"conceptKind":{"anyOf":[{"$ref":"#/components/schemas/ConceptKind"},{"type":"null"}],"description":"Concept kind to start from when the source kind is CONCEPT."},"market":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"title":"Market","description":"Market the source records belong to."},"dateWindow":{"anyOf":[{"$ref":"#/components/schemas/DateWindow"},{"type":"null"}],"description":"Inclusive publication-date span of source topic videos; null means unbounded."}},"type":"object","required":["kind"],"title":"FromObject","description":"The source object or source facts from which a path begins (R34)."},"GapKind":{"type":"string","enum":["UNLINKED_CLAIMS","UNHYDRATED_ENDPOINTS","MISSING_OBSERVATIONS","CELL_EMPTY","NO_MATCH","NO_INPUT","UPSTREAM_EMPTY"],"title":"GapKind","description":"ONE gap vocabulary for coverage notes and empty step causes (K-28)."},"GatewayError":{"properties":{"object":{"type":"string","const":"error","title":"Object","default":"error"},"code":{"$ref":"#/components/schemas/GatewayErrorCode"},"message":{"type":"string","minLength":1,"title":"Message"},"fields":{"items":{"type":"string"},"type":"array","title":"Fields","default":[]},"failureRef":{"anyOf":[{"$ref":"#/components/schemas/FailureRef"},{"type":"null"}],"description":"Upstream failure reference for operator lookup."},"operationId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Operationid","description":"The call's operation id (also the X-Keble-Operation-Id header); quote it to support."},"redeemRefusalReason":{"anyOf":[{"$ref":"#/components/schemas/RedeemCodeRefusalReason"},{"type":"null"}],"description":"Finite redeem-refusal reason; set only on a redeem-code refusal."},"retryAfterSeconds":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Retryafterseconds","description":"Seconds until a retry may succeed (the request window reset); null when unknown."}},"additionalProperties":false,"type":"object","required":["code","message"],"title":"GatewayError","description":"The one customer error body: a stable code, a localized message and the offending fields."},"GatewayErrorCode":{"type":"string","enum":["INVALID_API_KEY","SIGNED_IN_ONLY","ACCOUNT_DISABLED","LAST_ORG_OWNER","ORG_DELETE_BLOCKED","IDENTITY_VERIFICATION_REQUIRED","INVALID_REQUEST","NOT_FOUND","RATE_LIMITED","INSUFFICIENT_BALANCE","FEATURE_UNAVAILABLE","STORE_PLAN_REQUIRED","STORE_SLOT_LIMIT","STORE_TOP_UP_REQUIRED","STORE_CHANGE_IN_PROGRESS","APPROVAL_EXPIRED","UPGRADE_REQUIRED","LEGACY_PLAN","TRYOUT_LIMIT_REACHED","FREE_ALLOWANCE_UNAVAILABLE","UPSTREAM_UNAVAILABLE","UPSTREAM_FAILED","TIMED_OUT"],"title":"GatewayErrorCode","description":"Every customer/admin refusal code on REST, MCP and the V3 feature routes."},"GenerateDecor":{"properties":{"action":{"type":"string","const":"GENERATE_DECOR","title":"Action","default":"GENERATE_DECOR"},"objectId":{"type":"string","title":"Objectid"},"prompt":{"type":"string","minLength":1,"title":"Prompt"},"newLayerId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Newlayerid"},"box":{"anyOf":[{"$ref":"#/components/schemas/Box"},{"type":"null"}]},"replaces":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Replaces"}},"additionalProperties":false,"type":"object","required":["objectId","prompt"],"title":"GenerateDecor","description":"Paid: paint one decoration on transparency (§6)."},"GenerateFromPlan":{"properties":{"action":{"type":"string","const":"GENERATE_FROM_PLAN","title":"Action","default":"GENERATE_FROM_PLAN"},"planId":{"type":"string","title":"Planid"},"rowIds":{"anyOf":[{"items":{"type":"string"},"type":"array","minItems":1},{"type":"null"}],"title":"Rowids"}},"additionalProperties":false,"type":"object","required":["planId"],"title":"GenerateFromPlan","description":"Create one variant per plan row that has none (id {plan_id}-{row_id}); row_ids=None = every such row."},"GenerateScene":{"properties":{"action":{"type":"string","const":"GENERATE_SCENE","title":"Action","default":"GENERATE_SCENE"},"designId":{"type":"string","title":"Designid"},"layerId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Layerid"},"newLayerId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Newlayerid"},"replaces":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Replaces"},"prompt":{"type":"string","minLength":1,"title":"Prompt"},"styleReferences":{"items":{"$ref":"#/components/schemas/AssetRef"},"type":"array","title":"Stylereferences","default":[]}},"additionalProperties":false,"type":"object","required":["designId","layerId","prompt"],"title":"GenerateScene","description":"Paid: generate a BACKGROUND under the product layer, or across the whole canvas, from a prompt."},"GeometryField":{"properties":{"field":{"type":"string","const":"GEOMETRY","title":"Field","default":"GEOMETRY"},"geometry":{"oneOf":[{"$ref":"#/components/schemas/RectGeometry"},{"$ref":"#/components/schemas/EllipseGeometry"},{"$ref":"#/components/schemas/LineGeometry"},{"$ref":"#/components/schemas/PolygonGeometry"},{"$ref":"#/components/schemas/PathGeometry"}],"title":"Geometry","discriminator":{"propertyName":"kind","mapping":{"ELLIPSE":"#/components/schemas/EllipseGeometry","LINE":"#/components/schemas/LineGeometry","PATH":"#/components/schemas/PathGeometry","POLYGON":"#/components/schemas/PolygonGeometry","RECT":"#/components/schemas/RectGeometry"}}}},"additionalProperties":false,"type":"object","required":["geometry"],"title":"GeometryField","description":"Override value: a shape layer's whole geometry (a variant may round a panel or swap a badge outline)."},"GradientStop":{"properties":{"offset":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Offset"},"color":{"anyOf":[{"$ref":"#/components/schemas/Color"},{"$ref":"#/components/schemas/BrandColorRef"}],"title":"Color"}},"additionalProperties":false,"type":"object","required":["offset","color"],"title":"GradientStop","description":"One colour at offset 0–1, following a kit or literal colour (D-13, VV-2)."},"GrantedBy":{"type":"string","enum":["OWNER","APP"],"title":"GrantedBy","description":"Who can grant a permission, which decides who must act when it is missing."},"GridSpec":{"properties":{"sizeMeasures":{"items":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$"},"type":"array","minItems":1,"title":"Sizemeasures"},"numberMeasures":{"items":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$"},"type":"array","minItems":1,"title":"Numbermeasures"},"defaultSize":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Defaultsize"},"defaultNumber":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Defaultnumber"},"cellAssessments":{"items":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$"},"type":"array","title":"Cellassessments","default":[]}},"additionalProperties":false,"type":"object","required":["sizeMeasures","numberMeasures","defaultSize","defaultNumber"],"title":"GridSpec","description":"Which measures may size the circle and be printed in it."},"GroupLayer":{"properties":{"layerId":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,64}$","title":"Layerid"},"name":{"type":"string","minLength":1,"title":"Name"},"opacity":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Opacity","default":1.0},"blendMode":{"$ref":"#/components/schemas/BlendMode","default":"NORMAL"},"visible":{"type":"boolean","title":"Visible","default":true},"locked":{"type":"boolean","title":"Locked","default":false},"kind":{"type":"string","const":"GROUP","title":"Kind","default":"GROUP"},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/ImageLayer"},{"$ref":"#/components/schemas/TextLayer"},{"$ref":"#/components/schemas/ShapeLayer"},{"$ref":"#/components/schemas/GroupLayer"}],"discriminator":{"propertyName":"kind","mapping":{"GROUP":"#/components/schemas/GroupLayer","IMAGE":"#/components/schemas/ImageLayer","SHAPE":"#/components/schemas/ShapeLayer","TEXT":"#/components/schemas/TextLayer"}}},"type":"array","minItems":1,"title":"Children"}},"additionalProperties":false,"type":"object","required":["layerId","name","children"],"title":"GroupLayer","description":"Layers moved and hidden together; children are placed in canvas coordinates and the box is derived."},"GroupLayers":{"properties":{"action":{"type":"string","const":"GROUP_LAYERS","title":"Action","default":"GROUP_LAYERS"},"designId":{"type":"string","title":"Designid"},"layerIds":{"items":{"type":"string"},"type":"array","minItems":2,"title":"Layerids"},"groupId":{"type":"string","title":"Groupid"},"name":{"type":"string","minLength":1,"title":"Name"}},"additionalProperties":false,"type":"object","required":["designId","layerIds","groupId","name"],"title":"GroupLayers","description":"Wrap sibling layers into a new group (caller-minted id); its box is derived from them."},"GuardedFetchRefusalCode":{"type":"string","enum":["NOT_HTTPS","BLOCKED_ADDRESS","TOO_MANY_REDIRECTS","BAD_STATUS","CONTENT_TYPE_NOT_ALLOWED","TOO_LARGE","TIMEOUT"],"title":"GuardedFetchRefusalCode","description":"Why a guarded fetch was refused; each is a policy decision, never a transport fault."},"HeadingBlock":{"properties":{"kind":{"type":"string","const":"HEADING","title":"Kind","default":"HEADING"},"level":{"type":"integer","enum":[2,3],"title":"Level"},"text":{"type":"string","minLength":1,"title":"Text"}},"additionalProperties":false,"type":"object","required":["level","text"],"title":"HeadingBlock","description":"One section heading (h2/h3); the post title is the h1 and is not a block."},"HopProgress":{"properties":{"edgeId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Edgeid","description":"Public catalog edge id; null when unavailable (direct searches or older records)."},"toKind":{"$ref":"#/components/schemas/NodeKind","description":"Node kind this step reads."},"read":{"type":"integer","minimum":0.0,"title":"Read","description":"Rows this step read so far."},"fetched":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Fetched","description":"Rows this step fetched before a post-fetch filter removed some; null when no rows were removed after fetching."},"exhausted":{"type":"boolean","title":"Exhausted","description":"True when this step has no further rows."},"emptyCause":{"anyOf":[{"$ref":"#/components/schemas/GapKind"},{"type":"null"}],"description":"Why this step read zero rows; null unless read is 0."}},"type":"object","required":["toKind","read","exhausted"],"title":"HopProgress","description":"ONE public step entry: how far a page's step got (K-28, S-30)."},"HostedImage":{"properties":{"designId":{"type":"string","title":"Designid"},"asset":{"$ref":"#/components/schemas/AssetRef"},"url":{"type":"string","pattern":"^https://","title":"Url"},"expiresAt":{"type":"string","format":"date-time","title":"Expiresat"},"findings":{"items":{"$ref":"#/components/schemas/SlotFinding"},"type":"array","title":"Findings"}},"additionalProperties":false,"type":"object","required":["designId","asset","url","expiresAt","findings"],"title":"HostedImage","description":"One exact exported design with its private-storage signed GET URL and its slot findings."},"HtmlSegment":{"properties":{"html":{"type":"string","title":"Html"}},"additionalProperties":false,"type":"object","required":["html"],"title":"HtmlSegment","description":"One literal HTML fragment in the ordered body sent to Shopify."},"HttpsImageUrl":{"properties":{"url":{"type":"string","pattern":"^https://\\S+$","title":"Url"}},"additionalProperties":false,"type":"object","required":["url"],"title":"HttpsImageUrl","description":"An image the owner already hosts (their own cloud link); Amazon fetches it at apply."},"ImageBlock":{"properties":{"kind":{"type":"string","const":"IMAGE","title":"Kind","default":"IMAGE"},"image":{"anyOf":[{"$ref":"#/components/schemas/ExistingShopifyFile"},{"$ref":"#/components/schemas/ShopifyRemoteImage"},{"$ref":"#/components/schemas/PostExportedImage"}],"title":"Image"},"caption":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Caption"}},"additionalProperties":false,"type":"object","required":["image"],"title":"ImageBlock","description":"One shape-selected image placed between paragraphs, with an optional caption."},"ImageExportRef":{"properties":{"imageSetId":{"type":"string","title":"Imagesetid"},"exportId":{"type":"string","title":"Exportid"},"designId":{"type":"string","title":"Designid"}},"additionalProperties":false,"type":"object","required":["imageSetId","exportId","designId"],"title":"ImageExportRef","description":"The consumer-held reference to one exported design: set, immutable export, design."},"ImageFill":{"properties":{"placeholder":{"type":"string","enum":["body","callout_1","callout_2","callout_3","headline","product_photo"],"title":"Placeholder"},"asset":{"$ref":"#/components/schemas/AssetRef"}},"additionalProperties":false,"type":"object","required":["placeholder","asset"],"title":"ImageFill","description":"Fill an image placeholder with an asset (the product photo, a logo); never a found REFERENCE."},"ImageFinding":{"properties":{"pointer":{"type":"string","pattern":"^/(main_image|other_images/[0-7])$","title":"Pointer"},"finding":{"$ref":"#/components/schemas/SlotFinding"}},"additionalProperties":false,"type":"object","required":["pointer","finding"],"title":"ImageFinding","description":"One W3.1 slot-rule result placed on one image of the draft; a hint, never a refusal."},"ImageLayer":{"properties":{"layerId":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,64}$","title":"Layerid"},"name":{"type":"string","minLength":1,"title":"Name"},"opacity":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Opacity","default":1.0},"blendMode":{"$ref":"#/components/schemas/BlendMode","default":"NORMAL"},"visible":{"type":"boolean","title":"Visible","default":true},"locked":{"type":"boolean","title":"Locked","default":false},"box":{"$ref":"#/components/schemas/Box"},"shadow":{"anyOf":[{"$ref":"#/components/schemas/DropShadow"},{"type":"null"}]},"kind":{"type":"string","const":"IMAGE","title":"Kind","default":"IMAGE"},"role":{"$ref":"#/components/schemas/ImageRole"},"asset":{"$ref":"#/components/schemas/AssetRef"},"mask":{"anyOf":[{"$ref":"#/components/schemas/AssetRef"},{"type":"null"}]},"flipX":{"type":"boolean","title":"Flipx","default":false},"flipY":{"type":"boolean","title":"Flipy","default":false},"crop":{"anyOf":[{"$ref":"#/components/schemas/Box"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["layerId","name","box","role","asset"],"title":"ImageLayer","description":"A placed image; mask is a cut-out alpha matte applied to asset's own pixels."},"ImageMediaType":{"type":"string","enum":["image/png","image/jpeg","image/webp"],"title":"ImageMediaType","description":"Accepted and produced image encodings."},"ImageOperation":{"type":"string","enum":["CUT_OUT","SCENE","DECOR"],"title":"ImageOperation","description":"The paid image-model operations; each is one OperationSpec in library.OPERATIONS."},"ImageRole":{"type":"string","enum":["PRODUCT","BACKGROUND","DECORATION","LOGO"],"title":"ImageRole","description":"What an image layer shows; the fidelity law and the slot checks read it."},"InboxItemRef":{"properties":{"itemId":{"type":"string","minLength":1,"title":"Itemid"}},"additionalProperties":false,"type":"object","required":["itemId"],"title":"InboxItemRef","description":"Which inbox item a read or completion names (one tool/route input)."},"InboxPendingRequest":{"properties":{"cursor":{"anyOf":[{"type":"string","pattern":"^[01]_\\d{15}_\\d{15}_[0-9a-f]{32}$"},{"type":"null"}],"title":"Cursor"},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","default":20}},"additionalProperties":false,"type":"object","title":"InboxPendingRequest","description":"One pending page: an opaque cursor and a bounded size (one tool/route input)."},"IntakeFinding":{"properties":{"code":{"$ref":"#/components/schemas/IntakeFindingCode"},"uploadIndex":{"type":"integer","minimum":0.0,"title":"Uploadindex"}},"additionalProperties":false,"type":"object","required":["code","uploadIndex"],"title":"IntakeFinding","description":"One hint on one accepted upload (index into the uploads tuple)."},"IntakeFindingCode":{"type":"string","enum":["TOO_SMALL"],"title":"IntakeFindingCode","description":"A hint about an accepted upload; the owner decides whether it suits their slot."},"IntakeRefusal":{"properties":{"code":{"$ref":"#/components/schemas/IntakeRefusalCode"},"uploadIndex":{"type":"integer","minimum":0.0,"title":"Uploadindex"},"maxUploadBytes":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Maxuploadbytes"},"maxPixels":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Maxpixels"}},"additionalProperties":false,"type":"object","required":["code","uploadIndex"],"title":"IntakeRefusal","description":"An upload the intake refused (index into the uploads tuple), with the limits in force on TOO_LARGE."},"IntakeRefusalCode":{"type":"string","enum":["NOT_AN_IMAGE","TOO_LARGE"],"title":"IntakeRefusalCode","description":"Why an upload was not accepted: only bytes that cannot be an image or cannot be stored."},"IssueKind":{"type":"string","enum":["AUTH_INVALID","PERMISSION_MISSING","ACCOUNT_UNAVAILABLE","RATE_LIMITED","PROVIDER_UNAVAILABLE","REQUEST_REJECTED","NOT_FOUND"],"title":"IssueKind","description":"Why a provider refused or failed one call, in the terms ELTA acts on."},"ItemAction":{"properties":{"key":{"type":"string","minLength":1,"title":"Key"},"ref":{"type":"string","minLength":1,"title":"Ref"}},"additionalProperties":false,"type":"object","required":["key","ref"],"title":"ItemAction","description":"Host-defined alert remedy, such as a store reason and its store identity."},"ItemCardSpec":{"properties":{"titleFact":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Titlefact"},"imageFact":{"anyOf":[{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$"},{"type":"null"}],"title":"Imagefact"},"facts":{"items":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$"},"type":"array","title":"Facts","default":[]},"pivotFacts":{"items":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$"},"type":"array","title":"Pivotfacts","default":[]}},"additionalProperties":false,"type":"object","required":["titleFact"],"title":"ItemCardSpec","description":"How one item group is shown in the item list and approval step."},"ItemContent":{"properties":{"title":{"type":"string","minLength":1,"title":"Title"},"description":{"type":"string","title":"Description","default":""},"priority":{"$ref":"#/components/schemas/Priority","default":"NORMAL"},"assignee":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignee"}},"additionalProperties":false,"type":"object","required":["title"],"title":"ItemContent","description":"Human-visible and editable todo/alert/approval content."},"ItemPrompt":{"properties":{"text":{"type":"string","maxLength":4000,"minLength":1,"title":"Text"},"imageUrls":{"items":{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},"type":"array","title":"Imageurls","default":[]}},"additionalProperties":false,"type":"object","required":["text"],"title":"ItemPrompt","description":"What the models see of one item, as typed parts."},"ItemRead":{"properties":{"record":{"$ref":"#/components/schemas/ItemRecord"},"placements":{"additionalProperties":{"type":"string","maxLength":80,"minLength":1},"propertyNames":{"maxLength":80,"minLength":1},"type":"object","title":"Placements"}},"additionalProperties":false,"type":"object","required":["record","placements"],"title":"ItemRead","description":"One item with its relevance and its group's placements (what the SOURCE and PLACE reviews show)."},"ItemRecord":{"properties":{"item":{"$ref":"#/components/schemas/SourcedItem"},"relevant":{"type":"boolean","title":"Relevant"}},"additionalProperties":false,"type":"object","required":["item","relevant"],"title":"ItemRecord","description":"One stored item, as the plugin sourced it or a caller added it, with its relevance."},"ItemUpdate":{"properties":{"key":{"type":"string","maxLength":200,"minLength":1,"title":"Key"},"name":{"anyOf":[{"type":"string","maxLength":500,"minLength":1},{"type":"null"}],"title":"Name"},"facts":{"patternProperties":{"^[A-Z][A-Z0-9_]*$":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"string","format":"date"},{"$ref":"#/components/schemas/DecimalMoney"}]}},"propertyNames":{"maxLength":64},"type":"object","title":"Facts"},"relevant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Relevant"}},"additionalProperties":false,"type":"object","required":["key"],"title":"ItemUpdate","description":"One item's changed fields; an omitted field is unchanged, a named fact is replaced."},"ItemsDetailValue":{"properties":{"object":{"type":"string","const":"items_detail_value","title":"Object","default":"items_detail_value"},"kind":{"type":"string","const":"ITEMS","title":"Kind","default":"ITEMS"},"key":{"type":"string","title":"Key"},"items":{"items":{"patternProperties":{"^[A-Z][A-Z0-9_]*$":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"string","format":"date"},{"$ref":"#/components/schemas/DecimalMoney"}]}},"propertyNames":{"maxLength":64},"type":"object"},"type":"array","title":"Items","default":[]}},"additionalProperties":false,"type":"object","required":["key"],"title":"ItemsDetailValue","description":"An ITEMS detail row: the cell's sample items projected to the declared facts."},"ItemsRow":{"properties":{"kind":{"type":"string","const":"ITEMS","title":"Kind","default":"ITEMS"},"facts":{"items":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$"},"type":"array","minItems":1,"title":"Facts"}},"additionalProperties":false,"type":"object","required":["facts"],"title":"ItemsRow","description":"A detail row listing the cell's sample items with the named facts."},"JsonValue":{},"JudgmentAdjustment":{"properties":{"adjustmentType":{"type":"string","const":"JUDGMENT","title":"Adjustmenttype","default":"JUDGMENT"},"verdict":{"anyOf":[{"$ref":"#/components/schemas/ReportJudgmentVerdict"},{"type":"null"}],"description":"Replacement verdict, when given."},"sections":{"items":{"$ref":"#/components/schemas/ReportJudgmentSection"},"type":"array","title":"Sections","description":"Replacement slot texts, each slot at most once.","default":[]},"overview":{"anyOf":[{"$ref":"#/components/schemas/ReportOverviewEvidence"},{"type":"null"}],"description":"Replacement overview, when given."}},"additionalProperties":false,"type":"object","title":"JudgmentAdjustment","description":"Rewrite the conclusion text of the head revision; numbers untouched, 0 model calls."},"JudgmentQuestion":{"properties":{"decisionType":{"type":"string","const":"JUDGMENT","title":"Decisiontype","default":"JUDGMENT"},"language":{"$ref":"#/components/schemas/Language","description":"Reader language of every text."},"verdictOpen":{"type":"boolean","title":"Verdictopen","description":"False: a policy pre-check already fixed the verdict."},"fixedReasonCode":{"anyOf":[{"$ref":"#/components/schemas/ReportReasonCode"},{"type":"null"}],"description":"Set iff the verdict is not open."},"materialInputUnresolvedAdmissible":{"type":"boolean","title":"Materialinputunresolvedadmissible","description":"Whether MATERIAL_INPUT_UNRESOLVED may be the reason."},"ruleLines":{"items":{"type":"string"},"type":"array","title":"Rulelines","description":"Policy rules the verdict must follow.","default":[]},"sectionKinds":{"items":{"$ref":"#/components/schemas/ReportNarrativeSectionKind"},"type":"array","title":"Sectionkinds","description":"The section slots to write, once each."},"items":{"items":{"$ref":"#/components/schemas/ReportJudgmentEvidenceItem"},"type":"array","title":"Items","description":"Citable accepted artifacts.","default":[]}},"additionalProperties":false,"type":"object","required":["language","verdictOpen","materialInputUnresolvedAdmissible","sectionKinds"],"title":"JudgmentQuestion","description":"Write the conclusion for the committed numbers of one revision."},"KebleBlockKind":{"type":"string","enum":["QUESTION","FEATURE"],"title":"KebleBlockKind","description":"The block kinds a Keble section may repeat: one FAQ question, one feature of a feature list."},"KebleSectionKind":{"type":"string","enum":["HERO_BANNER","RICH_TEXT","IMAGE_WITH_TEXT","FAQ","FEATURE_LIST"],"title":"KebleSectionKind","description":"The v1 Keble section library; every member has exactly one SectionSpec (totality test)."},"Keyword":{"properties":{"kind":{"type":"string","const":"KEYWORD","title":"Kind","default":"KEYWORD"},"channel":{"$ref":"#/components/schemas/Channel"},"externalId":{"type":"string","maxLength":1024,"minLength":1,"title":"Externalid"},"text":{"type":"string","maxLength":4096,"minLength":1,"title":"Text"},"keywordType":{"$ref":"#/components/schemas/KeywordType","default":"SEARCH_TERM"},"market":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"title":"Market"},"metrics":{"items":{"$ref":"#/components/schemas/MetricObservation"},"type":"array","maxItems":128,"title":"Metrics","default":[]},"brands":{"items":{"type":"string","maxLength":512},"type":"array","maxItems":256,"title":"Brands","default":[]},"categories":{"items":{"type":"string","maxLength":512},"type":"array","maxItems":256,"title":"Categories","default":[]},"observedAt":{"type":"string","maxLength":44,"format":"date-time","title":"Observedat"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"additionalProperties":false,"type":"object","required":["channel","externalId","text","observedAt","provenance"],"title":"Keyword","description":"Represent a market-scoped source term without embedding product relations."},"KeywordCandidate":{"properties":{"term":{"type":"string","title":"Term"},"evidence":{"items":{"oneOf":[{"$ref":"#/components/schemas/MeasuredKeywordEvidence"},{"$ref":"#/components/schemas/SuggestedKeywordEvidence"}],"discriminator":{"propertyName":"kind","mapping":{"MEASURED":"#/components/schemas/MeasuredKeywordEvidence","SUGGESTED":"#/components/schemas/SuggestedKeywordEvidence"}}},"type":"array","minItems":1,"title":"Evidence"}},"additionalProperties":false,"type":"object","required":["term","evidence"],"title":"KeywordCandidate","description":"One caller term with the evidence the server attached (the core's one converter builds it)."},"KeywordTerm":{"properties":{"value":{"type":"string","title":"Value","description":"The normalized description text."},"termType":{"$ref":"#/components/schemas/SourceDescriptionKind","description":"Which descriptive source field the text came from."}},"type":"object","required":["value","termType"],"title":"KeywordTerm","description":"A normalized description carried from a source into ONE named builder (R40)."},"KeywordType":{"type":"string","enum":["SEARCH_TERM","HASHTAG","TAG"],"title":"KeywordType","description":"Describe a source term without selecting its eventual query operation."},"KindRuleProblem":{"properties":{"rowKey":{"type":"string","title":"Rowkey"},"pointer":{"type":"string","title":"Pointer"},"rule":{"type":"string","minLength":1,"title":"Rule"},"message":{"type":"string","minLength":1,"title":"Message"}},"additionalProperties":false,"type":"object","required":["rowKey","pointer","rule","message"],"title":"KindRuleProblem","description":"One kind-owned rule a row's action breaks, located by JSON Pointer in action.change."},"KitColor":{"properties":{"entryId":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,32}$","title":"Entryid"},"name":{"type":"string","maxLength":40,"minLength":1,"title":"Name"},"color":{"$ref":"#/components/schemas/Color"},"replacedBy":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9_-]{1,32}$"},{"type":"null"}],"title":"Replacedby"}},"additionalProperties":false,"type":"object","required":["entryId","name","color"],"title":"KitColor","description":"One named kit colour."},"KitFont":{"properties":{"entryId":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,32}$","title":"Entryid"},"name":{"type":"string","maxLength":40,"minLength":1,"title":"Name"},"font":{"type":"string","enum":["inter","montserrat","noto_sans_sc","noto_serif_sc","playfair_display"],"title":"Font"}},"additionalProperties":false,"type":"object","required":["entryId","name","font"],"title":"KitFont","description":"One named kit font with its usage label, e.g. Anton for HEADLINES (demo 4). Weight stays on the layer."},"Language":{"type":"string","enum":["ENGLISH","SIMPLIFIED_CHINESE","GERMAN","FRENCH","ITALIAN","SPANISH","DUTCH","PORTUGUESE","JAPANESE","TURKISH","POLISH","SWEDISH","ARABIC","HINDI","THAI","KOREAN","VIETNAMESE","INDONESIAN","HEBREW","NORWEGIAN","DANISH","FINNISH"],"title":"Language"},"LastCombine":{"properties":{"kind":{"type":"string","const":"last","title":"Kind","description":"Range combination: last day with a value.","default":"last"}},"additionalProperties":false,"type":"object","title":"LastCombine","description":"Range value = the value of the last day that has one."},"LayerClippedRule":{"properties":{"kind":{"type":"string","const":"LAYER_CLIPPED","title":"Kind","default":"LAYER_CLIPPED"}},"additionalProperties":false,"type":"object","title":"LayerClippedRule","description":"No visible layer extends past the canvas edge (advisory, Leg-2 P3)."},"LayerField":{"type":"string","enum":["BOX","TEXT","COLOR","FONT","FONT_SIZE","FONT_WEIGHT","ALIGN","LINE_HEIGHT","LETTER_SPACING","FILL","STROKE","GEOMETRY","SHADOW","OPACITY","BLEND","VISIBLE","FLIP","CROP","BACKGROUND"],"title":"LayerField","description":"One editable field of a layer or of the canvas."},"LayerOverride":{"properties":{"layerId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Layerid"},"value":{"oneOf":[{"$ref":"#/components/schemas/BoxField"},{"$ref":"#/components/schemas/TextField"},{"$ref":"#/components/schemas/ColorField"},{"$ref":"#/components/schemas/FontField"},{"$ref":"#/components/schemas/FontSizeField"},{"$ref":"#/components/schemas/FontWeightField"},{"$ref":"#/components/schemas/AlignField"},{"$ref":"#/components/schemas/LineHeightField"},{"$ref":"#/components/schemas/LetterSpacingField"},{"$ref":"#/components/schemas/FillField"},{"$ref":"#/components/schemas/StrokeField"},{"$ref":"#/components/schemas/GeometryField"},{"$ref":"#/components/schemas/BlendField"},{"$ref":"#/components/schemas/ShadowField"},{"$ref":"#/components/schemas/OpacityField"},{"$ref":"#/components/schemas/VisibleField"},{"$ref":"#/components/schemas/FlipField"},{"$ref":"#/components/schemas/CropField"},{"$ref":"#/components/schemas/BackgroundField"}],"title":"Value","discriminator":{"propertyName":"field","mapping":{"ALIGN":"#/components/schemas/AlignField","BACKGROUND":"#/components/schemas/BackgroundField","BLEND":"#/components/schemas/BlendField","BOX":"#/components/schemas/BoxField","COLOR":"#/components/schemas/ColorField","CROP":"#/components/schemas/CropField","FILL":"#/components/schemas/FillField","FLIP":"#/components/schemas/FlipField","FONT":"#/components/schemas/FontField","FONT_SIZE":"#/components/schemas/FontSizeField","FONT_WEIGHT":"#/components/schemas/FontWeightField","GEOMETRY":"#/components/schemas/GeometryField","LETTER_SPACING":"#/components/schemas/LetterSpacingField","LINE_HEIGHT":"#/components/schemas/LineHeightField","OPACITY":"#/components/schemas/OpacityField","SHADOW":"#/components/schemas/ShadowField","STROKE":"#/components/schemas/StrokeField","TEXT":"#/components/schemas/TextField","VISIBLE":"#/components/schemas/VisibleField"}}},"atRevision":{"type":"integer","minimum":1.0,"title":"Atrevision"}},"additionalProperties":false,"type":"object","required":["layerId","value","atRevision"],"title":"LayerOverride","description":"One field of one variant layer that differs from the parent; latest write per (layer_id, field) wins."},"LeafEditability":{"type":"string","enum":["NOT_EDITABLE","EDITABLE","PRIVATE_WRITE_ONLY"],"title":"LeafEditability","description":"How a page or agent may change one leaf of a row's change; derived from ELTA facts."},"LeafRule":{"properties":{"actionTypeKey":{"type":"string","title":"Actiontypekey"},"pointer":{"type":"string","title":"Pointer"},"editability":{"$ref":"#/components/schemas/LeafEditability"}},"additionalProperties":false,"type":"object","required":["actionTypeKey","pointer","editability"],"title":"LeafRule","description":"One editability fact for one action type at one JSON Pointer into change."},"LetterSpacingField":{"properties":{"field":{"type":"string","const":"LETTER_SPACING","title":"Field","default":"LETTER_SPACING"},"letterSpacing":{"type":"number","title":"Letterspacing"}},"additionalProperties":false,"type":"object","required":["letterSpacing"],"title":"LetterSpacingField","description":"Override value: a text layer's letter spacing."},"LineGeometry":{"properties":{"kind":{"type":"string","const":"LINE","title":"Kind","default":"LINE"},"diagonal":{"type":"boolean","title":"Diagonal","default":false}},"additionalProperties":false,"type":"object","title":"LineGeometry","description":"A line across the box diagonal or midline (callout leader lines)."},"LineHeightField":{"properties":{"field":{"type":"string","const":"LINE_HEIGHT","title":"Field","default":"LINE_HEIGHT"},"lineHeight":{"type":"number","exclusiveMinimum":0.0,"title":"Lineheight"}},"additionalProperties":false,"type":"object","required":["lineHeight"],"title":"LineHeightField","description":"Override value: a text layer's line height."},"LinearGradient":{"properties":{"stops":{"items":{"$ref":"#/components/schemas/GradientStop"},"type":"array","maxItems":4,"minItems":2,"title":"Stops"},"gradient":{"type":"string","const":"LINEAR","title":"Gradient","default":"LINEAR"},"angle":{"type":"number","exclusiveMaximum":360.0,"minimum":0.0,"title":"Angle","default":90.0}},"additionalProperties":false,"type":"object","required":["stops"],"title":"LinearGradient","description":"A fill across the box: angle 0 left-to-right, 90 top-to-bottom; rotates with the box."},"ListBlock":{"properties":{"kind":{"type":"string","const":"LIST","title":"Kind","default":"LIST"},"ordered":{"type":"boolean","title":"Ordered"},"items":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Items"}},"additionalProperties":false,"type":"object","required":["ordered","items"],"title":"ListBlock","description":"One bulleted or numbered list; items use the paragraph's inline subset."},"ListingCapture":{"properties":{"kind":{"type":"string","const":"listing","title":"Kind","description":"Capture style: full current list.","default":"listing"}},"additionalProperties":false,"type":"object","title":"ListingCapture","description":"A dataset read as the full current list on every run."},"ListingContent":{"properties":{"sellerSku":{"type":"string","maxLength":40,"minLength":1,"title":"Sellersku"},"attributes":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"type":"object","title":"Attributes"},"ourPrice":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,10}|(?=[\\d.]{1,13}0*$)\\d{0,10}\\.\\d{0,2}0*$)"},{"type":"null"}],"title":"Ourprice"},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords","default":[]},"mainImage":{"anyOf":[{"$ref":"#/components/schemas/ImageExportRef"},{"$ref":"#/components/schemas/OwnedPhotoRef"},{"$ref":"#/components/schemas/HttpsImageUrl"},{"type":"null"}],"title":"Mainimage"},"otherImages":{"items":{"anyOf":[{"$ref":"#/components/schemas/ImageExportRef"},{"$ref":"#/components/schemas/OwnedPhotoRef"},{"$ref":"#/components/schemas/HttpsImageUrl"}]},"type":"array","maxItems":8,"title":"Otherimages","default":[]}},"additionalProperties":false,"type":"object","required":["sellerSku"],"title":"ListingContent","description":"The seller-editable draft: PTD attributes, price, keyword terms and ordered images."},"ListingCreate":{"properties":{"replayKey":{"type":"string","maxLength":256,"minLength":1,"title":"Replaykey"},"target":{"$ref":"#/components/schemas/ListingTarget"},"content":{"$ref":"#/components/schemas/ListingContent"}},"additionalProperties":false,"type":"object","required":["replayKey","target","content"],"title":"ListingCreate","description":"Create one owner-fenced draft for one target; the body never carries an account."},"ListingOutcome":{"type":"string","enum":["NOT_FILED","AWAITING_APPROVAL","REJECTED","UNKNOWN","NOT_YET_LISTED","LISTED","REVERT_PENDING","REMOVED"],"title":"ListingOutcome","description":"What happened to the draft's ADD, derived on every read from the live approval and ELTA reads."},"ListingReadBack":{"properties":{"sellerSku":{"type":"string","title":"Sellersku"},"present":{"type":"boolean","title":"Present"},"asin":{"anyOf":[{"type":"string","maxLength":10,"minLength":10},{"type":"null"}],"title":"Asin"}},"additionalProperties":false,"type":"object","required":["sellerSku","present"],"title":"ListingReadBack","description":"ELTA's live read of the exact seller SKU after an applied ADD."},"ListingSnapshot":{"properties":{"artifectRef":{"$ref":"#/components/schemas/ArtifectRef"},"revision":{"type":"integer","minimum":1.0,"title":"Revision"},"account":{"$ref":"#/components/schemas/AccountRef"},"productTypeSchema":{"$ref":"#/components/schemas/ProductTypeSchema"},"content":{"$ref":"#/components/schemas/ListingContent"},"keywordCandidates":{"items":{"$ref":"#/components/schemas/KeywordCandidate"},"type":"array","title":"Keywordcandidates","default":[]},"screening":{"$ref":"#/components/schemas/ScreeningResult"},"imageFindings":{"items":{"$ref":"#/components/schemas/ImageFinding"},"type":"array","title":"Imagefindings","default":[]},"preview":{"anyOf":[{"$ref":"#/components/schemas/RowPreview"},{"type":"null"}]},"stage":{"$ref":"#/components/schemas/ChangeListStage"},"guide":{"$ref":"#/components/schemas/StageGuide"},"outcome":{"$ref":"#/components/schemas/ListingOutcome"},"approval":{"anyOf":[{"$ref":"#/components/schemas/ApprovalState"},{"type":"null"}]},"revertApproval":{"anyOf":[{"$ref":"#/components/schemas/ApprovalState"},{"type":"null"}]},"readBack":{"anyOf":[{"$ref":"#/components/schemas/ListingReadBack"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["artifectRef","revision","account","productTypeSchema","content","screening","stage","guide","outcome"],"title":"ListingSnapshot","description":"The owner-visible draft at one revision with its pins, evidence, checks and live outcome."},"ListingStatus":{"type":"string","enum":["ACTIVE","UNPUBLISHED","REMOVED","UNKNOWN"],"title":"ListingStatus","description":"Name the known availability states of one Product listing."},"ListingTarget":{"properties":{"storeId":{"type":"string","minLength":1,"title":"Storeid"},"marketplaceId":{"type":"string","minLength":1,"title":"Marketplaceid"},"productType":{"type":"string","minLength":1,"title":"Producttype"}},"additionalProperties":false,"type":"object","required":["storeId","marketplaceId","productType"],"title":"ListingTarget","description":"The ELTA store, its selected marketplace account and the product type of one draft."},"LlmProductDiversity":{"type":"string","enum":["STANDARDIZED_WITH_STRICT_PROTOCOLS","FUNCTION_PRIORITIZED_OVER_DESIGN_AND_DESIGN_DOES_NOT_AFFECT_PURCHASE_DECISION","FUNCTION_PRIORITIZED_OVER_DESIGN_BUT_DESIGN_AFFECT_PURCHASE_DECISION","DESIGN_IMPORTANCE_TO_CONSUMERS"],"title":"LlmProductDiversity"},"Lookup":{"properties":{"key":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Key","description":"Live lookup identifier."},"title":{"type":"string","minLength":1,"title":"Title","description":"Display name of this live lookup."},"querySchema":{"$ref":"#/components/schemas/JsonValue","description":"JSON Schema of the lookup input."},"resultSchema":{"$ref":"#/components/schemas/JsonValue","description":"JSON Schema of a lookup result."},"requires":{"items":{"$ref":"#/components/schemas/Permission"},"type":"array","title":"Requires","description":"Permissions needed to run this lookup.","default":[]}},"additionalProperties":false,"type":"object","required":["key","title","querySchema","resultSchema"],"title":"Lookup","description":"One live provider read a source supports: answered on request, never stored."},"LookupPage":{"properties":{"object":{"type":"string","const":"lookup_page","title":"Object","description":"Fixed tag marking this object as a lookup page.","default":"lookup_page"},"rows":{"items":{"$ref":"#/components/schemas/JsonValue"},"type":"array","title":"Rows","description":"The result rows in the lookup's own shape."},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor","description":"Cursor continuing to the next page; none on the last page."}},"additionalProperties":false,"type":"object","required":["rows"],"title":"LookupPage","description":"One bounded page of live results; next_cursor is the provider's page token."},"LookupRequest":{"properties":{"storeId":{"type":"string","minLength":1,"title":"Storeid","description":"Owner-visible store to read."},"lookupKey":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Lookupkey","description":"The declared lookup to run."},"accountId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Accountid","description":"Stored account to read; required when the source has several."},"query":{"$ref":"#/components/schemas/JsonValue","description":"The lookup's own query payload."},"page":{"$ref":"#/components/schemas/PageRequest","description":"Row limit and cursor for this read.","default":{"limit":200}}},"additionalProperties":false,"type":"object","required":["storeId","lookupKey","query"],"title":"LookupRequest","description":"One live read pinned to an owner-visible store and optional stored account."},"MatchedFact":{"properties":{"clauseIndex":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Clauseindex","description":"Index of the query clause this fact satisfies; null when the fact carries no clause position."},"basis":{"$ref":"#/components/schemas/EvidenceBasis","description":"Evidence basis of this fact: RECORDED, MENTIONED or SIMILAR."},"fieldOrCode":{"type":"string","title":"Fieldorcode","description":"Field or feature code the fact was read from."},"value":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"boolean"}],"title":"Value","description":"The stored value that matched the clause; money is an exact major-unit decimal."},"observedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Observedat","description":"When the fact was observed; null when unknown."},"measure":{"anyOf":[{"type":"string","enum":["VALUE","VELOCITY","RANK"]},{"type":"null"}],"title":"Measure","description":"Trend column the fact read: VALUE, VELOCITY or RANK; null when the fact is not a feature."},"path":{"items":{"$ref":"#/components/schemas/RelationHop"},"type":"array","title":"Path","description":"Relation hops that connect the result to the fact; empty when the match needed none.","default":[]},"window":{"anyOf":[{"$ref":"#/components/schemas/ResolvedWindow"},{"type":"null"}],"description":"The resolved window this fact was read in; null when the fact carries none."},"currencyBasis":{"anyOf":[{"$ref":"#/components/schemas/CurrencyBasis"},{"type":"null"}],"description":"How a monetary fact's currency is known (STATED or ASSUMED); null for a non-monetary fact."},"estimation":{"anyOf":[{"$ref":"#/components/schemas/EstimationStatus"},{"type":"null"}],"description":"Whether a monetary fact's value is estimated; null for a non-monetary fact."}},"type":"object","required":["basis","fieldOrCode","value","observedAt"],"title":"MatchedFact","description":"WHY THIS ROW MATCHED THIS CLAUSE: the stored fact, when it was observed, and the relation path if a hop was involved. One fact per field, one MatchedFact per clause."},"MaterialFactEstimate":{"properties":{"choiceType":{"type":"string","const":"ESTIMATE","title":"Choicetype","default":"ESTIMATE"},"questionKey":{"type":"string","minLength":1,"title":"Questionkey","description":"Question settled by system estimation."}},"additionalProperties":false,"type":"object","required":["questionKey"],"title":"MaterialFactEstimate","description":"Use the system calculation for one key, without claiming seller authority."},"MaterialFactResolution":{"properties":{"choiceType":{"type":"string","const":"RESOLUTION","title":"Choicetype","default":"RESOLUTION"},"questionKey":{"type":"string","minLength":1,"title":"Questionkey","description":"Answered question identity."},"resolution":{"$ref":"#/components/schemas/ReportMaterialResolution","description":"Typed seller facts."}},"additionalProperties":false,"type":"object","required":["questionKey","resolution"],"title":"MaterialFactResolution","description":"One seller-fact choice for one committed material question."},"MaterialFactsAnswer":{"properties":{"decisionType":{"type":"string","const":"MATERIAL_FACTS","title":"Decisiontype","default":"MATERIAL_FACTS"},"resolutions":{"items":{"oneOf":[{"$ref":"#/components/schemas/MaterialFactResolution"},{"$ref":"#/components/schemas/MaterialFactEstimate"}],"discriminator":{"propertyName":"choiceType","mapping":{"ESTIMATE":"#/components/schemas/MaterialFactEstimate","RESOLUTION":"#/components/schemas/MaterialFactResolution"}}},"type":"array","minItems":1,"title":"Resolutions","description":"One resolution or estimate choice per offered key."}},"additionalProperties":false,"type":"object","required":["resolutions"],"title":"MaterialFactsAnswer","description":"Settle offered material keys in one non-empty, typed request."},"Maturity":{"type":"string","enum":["PROVISIONAL","FINAL"],"title":"Maturity","description":"Whether a day's value may still be restated by the source."},"MaxLongestSideRule":{"properties":{"kind":{"type":"string","const":"MAX_LONGEST_SIDE","title":"Kind","default":"MAX_LONGEST_SIDE"},"pixels":{"type":"integer","exclusiveMinimum":0.0,"title":"Pixels"}},"additionalProperties":false,"type":"object","required":["pixels"],"title":"MaxLongestSideRule","description":"The longest side is at most pixels (Shopify 5000, Amazon 10000)."},"Measure":{"properties":{"key":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Key","description":"Numeric-column identifier; fact queries use its declared row path."},"unit":{"$ref":"#/components/schemas/Unit","description":"Physical unit of values in this column."},"title":{"$ref":"#/components/schemas/StoreLocalizedText","description":"Display name of the column, in both languages."}},"additionalProperties":false,"type":"object","required":["key","unit","title"],"title":"Measure","description":"One declared numeric column, its unit and its display name."},"MeasureChange":{"properties":{"entity":{"type":"string","title":"Entity","description":"Stored entity key of the row that changed."},"observedAt":{"type":"string","format":"date-time","title":"Observedat","description":"Instant the new value became readable."},"captureId":{"type":"string","minLength":1,"title":"Captureid","description":"The capture that made the new value readable."},"kind":{"type":"string","const":"measure","title":"Kind","description":"Discriminator marking this as a measure change.","default":"measure"},"measureKey":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Measurekey","description":"The declared measure whose value changed."},"oldValue":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Oldvalue","description":"The value before the change; none when there was none."},"newValue":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Newvalue","description":"The value after the change; none when there was none."}},"additionalProperties":false,"type":"object","required":["entity","observedAt","captureId","measureKey"],"title":"MeasureChange","description":"One measure changed; values stay Decimal and an absent side is None, never 0."},"MeasureCoverage":{"properties":{"counted":{"type":"integer","minimum":0.0,"title":"Counted"},"total":{"type":"integer","minimum":0.0,"title":"Total"}},"additionalProperties":false,"type":"object","required":["counted","total"],"title":"MeasureCoverage","description":"How many of the cell's groups (or items) carried the measured fact."},"MeasureDetailValue":{"properties":{"object":{"type":"string","const":"measure_detail_value","title":"Object","default":"measure_detail_value"},"kind":{"type":"string","const":"MEASURE","title":"Kind","default":"MEASURE"},"key":{"type":"string","title":"Key"},"measure":{"anyOf":[{"$ref":"#/components/schemas/MeasureValue"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["key"],"title":"MeasureDetailValue","description":"A MEASURE detail row: one declared measure's computed value for the cell."},"MeasureFormat":{"type":"string","enum":["INTEGER","DECIMAL","MONEY","PERCENT"],"title":"MeasureFormat","description":"How the frontend prints a measure value."},"MeasureRow":{"properties":{"kind":{"type":"string","const":"MEASURE","title":"Kind","default":"MEASURE"},"measure":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Measure"}},"additionalProperties":false,"type":"object","required":["measure"],"title":"MeasureRow","description":"A detail row showing one measure's value."},"MeasureValue":{"properties":{"status":{"$ref":"#/components/schemas/ValueStatus"},"value":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Value"},"currency":{"anyOf":[{"type":"string","pattern":"^[A-Z]{3}$"},{"type":"null"}],"title":"Currency"},"coverage":{"anyOf":[{"$ref":"#/components/schemas/MeasureCoverage"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["status"],"title":"MeasureValue","description":"One measure's value in one cell; coverage is set for DISTINCT and fact-based rules."},"MeasuredKeywordEvidence":{"properties":{"kind":{"type":"string","const":"MEASURED","title":"Kind","default":"MEASURED"},"familyKey":{"type":"string","minLength":1,"title":"Familykey"},"accountId":{"type":"string","minLength":1,"title":"Accountid"},"day":{"type":"string","format":"date","title":"Day"},"sourceRowId":{"type":"string","minLength":1,"title":"Sourcerowid"},"sourceRowSha256":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Sourcerowsha256"},"measureKey":{"type":"string","minLength":1,"title":"Measurekey"},"value":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Value"}},"additionalProperties":false,"type":"object","required":["familyKey","accountId","day","sourceRowId","sourceRowSha256","measureKey","value"],"title":"MeasuredKeywordEvidence","description":"One ELTA fact row the server read for this term: family, account, day, row identity, metric."},"MediaKind":{"type":"string","enum":["IMAGE","VIDEO"],"title":"MediaKind","description":"Name the common image or video media forms carried by entities."},"MediaRef":{"properties":{"kind":{"$ref":"#/components/schemas/MediaKind"},"sourceUrl":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Sourceurl"},"thumbnailUrl":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Thumbnailurl"},"width":{"anyOf":[{"type":"integer","maximum":9.223372036854776e+18,"minimum":0.0},{"type":"null"}],"title":"Width"},"height":{"anyOf":[{"type":"integer","maximum":9.223372036854776e+18,"minimum":0.0},{"type":"null"}],"title":"Height"},"durationSeconds":{"anyOf":[{"type":"number","maximum":1.7976931348623157e+308,"minimum":0.0},{"type":"null"}],"title":"Durationseconds"}},"additionalProperties":false,"type":"object","required":["kind","sourceUrl"],"title":"MediaRef","description":"Reference one public media URL without carrying its bytes."},"Metric":{"properties":{"key":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Key","description":"Calculated metric identifier."},"unit":{"$ref":"#/components/schemas/Unit","description":"Physical unit of the metric's values."},"levels":{"items":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$"},"type":"array","minItems":1,"title":"Levels","description":"Granularities where this metric is available."},"meaning":{"type":"string","minLength":1,"title":"Meaning","description":"Business meaning of this metric."},"combine":{"$ref":"#/components/schemas/Combine","description":"How daily values combine across a reporting range."}},"additionalProperties":false,"type":"object","required":["key","unit","levels","meaning","combine"],"title":"Metric","description":"One metric the plugin calculates per day, and how ELTA combines its days."},"MetricClause":{"properties":{"kind":{"type":"string","const":"METRIC","title":"Kind","default":"METRIC"},"metric":{"$ref":"#/components/schemas/MetricKind"},"op":{"type":"string","enum":["GTE","LTE"],"title":"Op"},"value":{"anyOf":[{"type":"integer","maximum":9.223372036854776e+18,"minimum":-9.223372036854776e+18},{"type":"number","maximum":1.7976931348623157e+308,"minimum":-1.7976931348623157e+308},{"$ref":"#/components/schemas/MinorUnitMoney"}],"title":"Value"}},"additionalProperties":false,"type":"object","required":["metric","op","value"],"title":"MetricClause","description":"Compare one typed metric against an integer, finite number, or Money."},"MetricCoverage":{"type":"string","enum":["POINT","INTERVAL","CUMULATIVE","BOARD","UNKNOWN"],"title":"MetricCoverage","description":"Describe whether a metric is a point, interval, cumulative, or board fact."},"MetricGap":{"type":"string","enum":["NOT_CAPTURED","SOURCE_BLOCKED","INCOMPLETE","NOT_MEASURABLE","MIXED_CURRENCY","MIXED_TIMEZONE","RECALCULATING"],"title":"MetricGap","description":"Why a range value is missing or qualified (mirror of the core enum)."},"MetricKind":{"type":"string","enum":["sales_quantity","gmv","order_count","rating","review_count","rank","video_count","follower_count","creator_count","view_count","like_count","comment_count","share_count","save_count","score","upvote_ratio","following_count","post_count","reply_count","product_count","estimated_visits","price","list_price","offer_count","organic_traffic_score","advertising_traffic_score","total_traffic_score","organic_search_term_count","advertising_search_term_count","search_volume","competitive_difficulty","organic_rotation_rate","click_conversion_rate","cost_per_click","search_frequency_rank","organic_traffic","advertising_traffic","total_traffic","organic_traffic_acquisition_rate","advertising_traffic_acquisition_rate","total_traffic_acquisition_rate","traffic_ratio","click_share","conversion_share","keyword_intersections","avg_search_position"],"title":"MetricKind","description":"Name entity and product-keyword measurements with stable units and periods."},"MetricObservation":{"properties":{"metric":{"$ref":"#/components/schemas/MetricKind"},"unit":{"$ref":"#/components/schemas/MetricUnit"},"period":{"$ref":"#/components/schemas/MetricPeriod"},"intValue":{"anyOf":[{"type":"integer","maximum":9.223372036854776e+18,"minimum":-9.223372036854776e+18},{"type":"null"}],"title":"Intvalue"},"floatValue":{"anyOf":[{"type":"number","maximum":1.7976931348623157e+308,"minimum":-1.7976931348623157e+308},{"type":"null"}],"title":"Floatvalue"},"moneyValue":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}]},"currencyBasis":{"anyOf":[{"$ref":"#/components/schemas/CurrencyBasis"},{"type":"null"}]},"market":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"title":"Market"},"measuredAt":{"anyOf":[{"type":"string","maxLength":44,"format":"date-time"},{"type":"null"}],"title":"Measuredat"},"periodStart":{"anyOf":[{"type":"string","maxLength":44,"format":"date-time"},{"type":"null"}],"title":"Periodstart"},"periodEnd":{"anyOf":[{"type":"string","maxLength":44,"format":"date-time"},{"type":"null"}],"title":"Periodend"},"coverage":{"$ref":"#/components/schemas/MetricCoverage","default":"UNKNOWN"},"estimationStatus":{"$ref":"#/components/schemas/EstimationStatus","default":"UNKNOWN"},"confidence":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Confidence"},"origin":{"$ref":"#/components/schemas/ObservationOrigin","default":"CAPTURED"},"change":{"type":"boolean","title":"Change","default":false}},"additionalProperties":false,"type":"object","required":["metric","unit","period"],"title":"MetricObservation","description":"Represent one typed measurement without source/provider attribution."},"MetricPage":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/MetricRangeValue"},"type":"array","title":"Rows","description":"Rows in this page."},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor","description":"Continuation cursor; null on the last page."},"totalRows":{"type":"integer","minimum":0.0,"title":"Totalrows","description":"Rows matching the whole read, across all pages."},"emptyReason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emptyreason","description":"Why this page is empty and what selection or source to check."},"object":{"type":"string","const":"metric_page","title":"Object","description":"Fixed tag marking this object as a metric page.","default":"metric_page"}},"additionalProperties":false,"type":"object","required":["rows","totalRows"],"title":"MetricPage","description":"One bounded page of combined range values: the /v2/metrics/query response."},"MetricPeriod":{"type":"string","enum":["CURRENT","D7","D30","LIFETIME","WEEK","MONTH"],"title":"MetricPeriod","description":"Name the temporal coverage of a metric observation."},"MetricRangeValue":{"properties":{"metricKey":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Metrickey","description":"The metric this value is for."},"entity":{"type":"string","minLength":1,"title":"Entity","description":"The entity these days were combined for."},"value":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Value","description":"The combined value; none means no value, not zero."},"availability":{"$ref":"#/components/schemas/Availability","description":"What is held for this metric, entity and range."},"maturity":{"$ref":"#/components/schemas/Maturity","description":"Whether the combined days may still be restated."},"currency":{"anyOf":[{"type":"string","pattern":"^[A-Z]{3}$"},{"type":"null"}],"title":"Currency","description":"Currency of the value when it is money; none otherwise."},"timezone":{"anyOf":[{"type":"string","maxLength":64,"minLength":1},{"type":"null"}],"title":"Timezone","description":"Timezone the days were read in, when combining needs it."},"accountId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Accountid","description":"Set only when the value could not be combined across accounts."},"gaps":{"items":{"$ref":"#/components/schemas/MetricGap"},"type":"array","title":"Gaps","description":"Reasons the value is missing or qualified.","default":[]},"provisionalDays":{"items":{"type":"string","format":"date"},"type":"array","title":"Provisionaldays","description":"Days in the range that may still be restated.","default":[]},"blocked":{"items":{"$ref":"#/components/schemas/BlockedLane"},"type":"array","title":"Blocked","description":"Lanes named with a source-blocked gap: which and why.","default":[]}},"additionalProperties":false,"type":"object","required":["metricKey","entity","value","availability","maturity"],"title":"MetricRangeValue","description":"One metric for one entity over the requested days, combined by its declared rule."},"MetricUnit":{"type":"string","enum":["COUNT","MONEY","RATIO","RATING","SCORE","DURATION_MS"],"title":"MetricUnit","description":"THE one unit vocabulary for metric values; DPC imports it (K-08)."},"MetricsRequest":{"properties":{"metricKeys":{"items":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$"},"type":"array","minItems":1,"title":"Metrickeys","description":"Metrics to read; at least one."},"level":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Level","description":"The entity level key the caller wants values at."},"days":{"$ref":"#/components/schemas/DayRange","description":"Inclusive reporting days in the account's timezone."},"storeIds":{"items":{"type":"string","minLength":1},"type":"array","title":"Storeids","description":"Stores to include; empty selects the asserted owner's stores.","default":[]},"accountIds":{"items":{"type":"string","minLength":1},"type":"array","title":"Accountids","description":"Accounts to read; empty means every account of the owner.","default":[]},"entities":{"items":{"type":"string"},"type":"array","title":"Entities","description":"Stored entity keys to read; empty means every entity.","default":[]},"page":{"$ref":"#/components/schemas/PageRequest","description":"Row limit and cursor for this read.","default":{"limit":200}}},"additionalProperties":false,"type":"object","required":["metricKeys","level","days"],"title":"MetricsRequest","description":"A serving read of one or more metrics over a date range, current values only."},"MinLongestSideRule":{"properties":{"kind":{"type":"string","const":"MIN_LONGEST_SIDE","title":"Kind","default":"MIN_LONGEST_SIDE"},"pixels":{"type":"integer","exclusiveMinimum":0.0,"title":"Pixels"}},"additionalProperties":false,"type":"object","required":["pixels"],"title":"MinLongestSideRule","description":"The longest side is at least pixels (Amazon: 1000 enables zoom)."},"Monitor":{"properties":{"monitorId":{"type":"string","minLength":1,"title":"Monitorid"},"owner":{"$ref":"#/components/schemas/MonitorOwnerScope"},"confirmedBy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confirmedby"},"title":{"type":"string","maxLength":200,"minLength":1,"title":"Title"},"language":{"$ref":"#/components/schemas/Language","default":"ENGLISH"},"status":{"$ref":"#/components/schemas/MonitorStatus"},"pauseReason":{"anyOf":[{"$ref":"#/components/schemas/MonitorPauseReason"},{"type":"null"}]},"specRevision":{"type":"integer","minimum":0.0,"title":"Specrevision"},"watches":{"items":{"$ref":"#/components/schemas/MonitorWatch"},"type":"array","title":"Watches","default":[]},"cadence":{"anyOf":[{"$ref":"#/components/schemas/MonitorCadence"},{"type":"null"}]},"delivery":{"$ref":"#/components/schemas/MonitorDelivery","default":{"chat":true,"email":false}},"agent":{"$ref":"#/components/schemas/MonitorAgentBinding"},"nextDueAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Nextdueat"}},"additionalProperties":false,"type":"object","required":["monitorId","owner","title","status","specRevision","agent"],"title":"Monitor","description":"One user-owned standing question with its watches, schedule and delivery."},"MonitorCadence":{"properties":{"unit":{"$ref":"#/components/schemas/MonitorCadenceUnit"},"every":{"type":"integer","minimum":1.0,"title":"Every"},"at":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"At"},"weekday":{"anyOf":[{"type":"integer","maximum":6.0,"minimum":0.0},{"type":"null"}],"title":"Weekday"},"dayOfMonth":{"anyOf":[{"type":"integer","maximum":28.0,"minimum":1.0},{"type":"null"}],"title":"Dayofmonth"},"timezone":{"type":"string","title":"Timezone"}},"additionalProperties":false,"type":"object","required":["unit","every","timezone"],"title":"MonitorCadence","description":"One schedule; next_due is the only schedule math in the estate."},"MonitorConfirmPage":{"properties":{"page":{"type":"string","const":"CONFIRM","title":"Page","default":"CONFIRM"},"monitor":{"$ref":"#/components/schemas/Monitor"},"nextRunAt":{"type":"string","format":"date-time","title":"Nextrunat"},"checksPerDay":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Checksperday"},"requestsPerDay":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Requestsperday"},"expiresAt":{"type":"string","format":"date-time","title":"Expiresat"}},"additionalProperties":false,"type":"object","required":["monitor","nextRunAt","checksPerDay","requestsPerDay","expiresAt"],"title":"MonitorConfirmPage","description":"The confirm input page, \"What we'll monitor\": watches, schedule, next run and the request estimate."},"MonitorCycle":{"properties":{"monitorId":{"type":"string","minLength":1,"title":"Monitorid"},"seq":{"type":"integer","minimum":1.0,"title":"Seq"},"specRevision":{"type":"integer","minimum":0.0,"title":"Specrevision"},"dueAt":{"type":"string","format":"date-time","title":"Dueat"},"state":{"$ref":"#/components/schemas/MonitorCycleState"},"watches":{"items":{"$ref":"#/components/schemas/MonitorWatchCycle"},"type":"array","title":"Watches"},"baseline":{"type":"boolean","title":"Baseline"},"startedAt":{"type":"string","format":"date-time","title":"Startedat"},"finishedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finishedat"},"deliveries":{"items":{"$ref":"#/components/schemas/MonitorChannelDelivery"},"type":"array","title":"Deliveries","default":[]}},"additionalProperties":false,"type":"object","required":["monitorId","seq","specRevision","dueAt","state","watches","baseline","startedAt"],"title":"MonitorCycle","description":"One scheduled check of one monitor, running the frozen spec_revision (P22)."},"MonitorDelivery":{"properties":{"chat":{"type":"boolean","title":"Chat","default":true},"email":{"type":"boolean","title":"Email","default":false}},"additionalProperties":false,"type":"object","title":"MonitorDelivery","description":"Per-monitor channel toggles (P23); the inbox notification is always filed for a reported cycle."},"MonitorFinding":{"properties":{"findingKey":{"$ref":"#/components/schemas/MonitorFindingKey"},"item":{"$ref":"#/components/schemas/MonitorFindingItem"},"change":{"oneOf":[{"$ref":"#/components/schemas/MonitorNewItem"},{"$ref":"#/components/schemas/MonitorValueChange"},{"$ref":"#/components/schemas/MonitorRankMove"}],"title":"Change","discriminator":{"propertyName":"kind","mapping":{"NEW_ITEM":"#/components/schemas/MonitorNewItem","RANK_MOVE":"#/components/schemas/MonitorRankMove","VALUE_CHANGE":"#/components/schemas/MonitorValueChange"}}}},"additionalProperties":false,"type":"object","required":["findingKey","item","change"],"title":"MonitorFinding","description":"One reported item of one cycle: the item as seen, and what changed."},"MonitorSetupPage":{"properties":{"page":{"type":"string","const":"SETUP","title":"Page","default":"SETUP"},"monitor":{"$ref":"#/components/schemas/Monitor"},"offers":{"items":{"$ref":"#/components/schemas/MonitorCapabilityOffer"},"type":"array","title":"Offers"},"minInterval":{"type":"string","format":"duration","title":"Mininterval"},"expiresAt":{"type":"string","format":"date-time","title":"Expiresat"}},"additionalProperties":false,"type":"object","required":["monitor","offers","minInterval","expiresAt"],"title":"MonitorSetupPage","description":"The setup input page: the capability catalog frozen at create, and the cadence floor."},"MonitorSnapshot":{"properties":{"monitor":{"$ref":"#/components/schemas/Monitor"},"openCycle":{"anyOf":[{"$ref":"#/components/schemas/MonitorCycle"},{"type":"null"}]},"lastCycle":{"anyOf":[{"$ref":"#/components/schemas/MonitorCycle"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["monitor"],"title":"MonitorSnapshot","description":"What the host reads to show a monitor and derive its artifect stage (from status + open cycle only)."},"MonitorStatus":{"type":"string","enum":["SETTING_UP","AWAITING_CONFIRM","ACTIVE","PAUSED","STOPPED"],"title":"MonitorStatus","description":"Lifecycle of one monitor; the artifect stage is derived from it and the open cycle, never stored."},"MonitorWatch":{"properties":{"title":{"type":"string","minLength":1,"title":"Title"},"channelLabel":{"type":"string","minLength":1,"title":"Channellabel"},"subjectLabel":{"type":"string","minLength":1,"title":"Subjectlabel"},"policy":{"$ref":"#/components/schemas/MonitorFindingPolicy"},"sourceKey":{"type":"string","minLength":1,"title":"Sourcekey"},"fetches":{"type":"boolean","title":"Fetches"},"minInterval":{"type":"string","format":"duration","title":"Mininterval"},"readsPerCheck":{"type":"integer","minimum":0.0,"title":"Readspercheck"},"dataAsOf":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Dataasof"},"watchKey":{"type":"string","minLength":1,"title":"Watchkey"},"request":{"$ref":"#/components/schemas/MonitorWatchRequest"}},"additionalProperties":false,"type":"object","required":["title","channelLabel","subjectLabel","policy","sourceKey","fetches","minInterval","readsPerCheck","watchKey","request"],"title":"MonitorWatch","description":"One stored watch: the compiled spec under the core's stable watch_key, with the request it came from."},"MonthlyStorageFee":{"properties":{"month":{"type":"integer","title":"Month"},"isDangerousGoods":{"type":"boolean","title":"Isdangerousgoods"},"productSizeTier":{"type":"string","title":"Productsizetier"},"feeCategory":{"type":"string","title":"Feecategory"},"volumeCubic":{"type":"number","title":"Volumecubic"},"cubicUnit":{"type":"string","enum":["ft","m"],"title":"Cubicunit"},"perCubicStorageFee":{"type":"number","title":"Percubicstoragefee"},"storageFee":{"type":"number","title":"Storagefee"}},"type":"object","required":["month","isDangerousGoods","productSizeTier","feeCategory","volumeCubic","cubicUnit","perCubicStorageFee","storageFee"],"title":"MonthlyStorageFee"},"Motif":{"properties":{"kind":{"type":"string","const":"MOTIF","title":"Kind","description":"Node discriminator; always MOTIF.","default":"MOTIF"},"key":{"type":"string","title":"Key","description":"Identity key 'motif:{first member element key}'; a merge keeps the older key."},"name":{"type":"string","title":"Name","description":"Display name of the motif."},"elementKind":{"$ref":"#/components/schemas/ConceptKind","description":"Concept kind of the elements this motif groups."},"sections":{"items":{"$ref":"#/components/schemas/MotifSection"},"type":"array","title":"Sections","description":"Named sections this motif belongs to; empty when it belongs to none."},"features":{"items":{"$ref":"#/components/schemas/FeatureValue"},"type":"array","title":"Features","description":"Windowed motif figures (creators, posts, quality) with velocity and rank."},"trend":{"anyOf":[{"$ref":"#/components/schemas/MotifTrend"},{"type":"null"}],"description":"Read-time trending reading over the reader's own window; null when the read names no trending window."},"dailyPosts":{"items":{"type":"integer"},"type":"array","title":"Dailyposts","description":"Posts per day across the requested window, oldest first, ending at the window end day; length equals the window's days."},"products":{"items":{"$ref":"#/components/schemas/RelationRef"},"type":"array","title":"Products","description":"Distinct products featured by the motif's member content.","default":[]},"membersTotal":{"type":"integer","minimum":1.0,"title":"Memberstotal","description":"Number of member elements grouped by this motif."},"examples":{"items":{"$ref":"#/components/schemas/MotifMember"},"type":"array","maxItems":5,"title":"Examples","description":"Newest-first member examples, at most five.","default":[]}},"type":"object","required":["key","name","elementKind","sections","features","dailyPosts","membersTotal"],"title":"Motif","description":"ONE MOTIF NODE — a group of elements several creators independently did (T1; replacing the R54 one-record motif)."},"MotifMember":{"properties":{"elementKey":{"type":"string","title":"Elementkey","description":"Key of the member element inside the motif."},"contentRef":{"$ref":"#/components/schemas/NodeRef","description":"Scoped reference to the content the element was extracted from."},"creatorRef":{"anyOf":[{"$ref":"#/components/schemas/NodeRef"},{"type":"null"}],"description":"Scoped reference to the content's creator; null when it has no author."},"pattern":{"type":"string","title":"Pattern","description":"Generic pattern label of the element, without brand or product names."},"appearance":{"type":"string","title":"Appearance","description":"How the element appears: subject, action, framing and on-screen text."},"instance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instance","description":"This content's brand or product specifics for the pattern; null when none."},"evidence":{"items":{"oneOf":[{"$ref":"#/components/schemas/FrameEvidence"},{"$ref":"#/components/schemas/SpanEvidence"}],"discriminator":{"propertyName":"kind","mapping":{"CAPTION":"#/components/schemas/SpanEvidence","FRAME":"#/components/schemas/FrameEvidence","TRANSCRIPT":"#/components/schemas/SpanEvidence"}}},"type":"array","title":"Evidence","description":"Frame or transcript citations that support this member."},"publishedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Publishedat","description":"Publication time of the member content; null when unknown."},"creatorHandle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Creatorhandle","description":"Handle of the member content's creator, when known."},"views":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Views","description":"Latest view count of the member content, when known."}},"type":"object","required":["elementKey","contentRef","creatorRef","pattern","appearance","instance","evidence","publishedAt"],"title":"MotifMember","description":"ONE member element shown on a motif card (T1)."},"MotifQuery":{"properties":{"days":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Days","description":"Length in days of the current window; null when start/end state the span."},"start":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start","description":"Inclusive first day of an explicit span."},"end":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End","description":"Inclusive last day of the current window; null uses the newest member publication day in scope."},"section":{"$ref":"#/components/schemas/MotifSection"},"terms":{"items":{"type":"string"},"type":"array","maxItems":8,"title":"Terms","description":"Word-match terms tested against each member's label or instance, or the member content's searchable fields; at most eight.","default":[]},"maxRows":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":1.0},{"type":"null"}],"title":"Maxrows","description":"Optional row ceiling for this motif page; the smaller of this and the normal page size is returned. Omission preserves the normal page size."}},"additionalProperties":false,"type":"object","required":["section"],"title":"MotifQuery","description":"One named motif section and window with an optional row ceiling."},"MotifSection":{"type":"string","enum":["SPREADING","EARLY"],"title":"MotifSection","description":"THE TWO NAMED MOTIF QUESTIONS the platform asks of itself on every page load, as a closed vocabulary rather than free text."},"MotifTrend":{"properties":{"score":{"type":"number","minimum":0.0,"title":"Score","description":"Trending score: creators x growth x buzz x freshness."},"growth":{"type":"number","exclusiveMinimum":0.0,"title":"Growth","description":"Current creators over previous creators, plus one each; the previous count is 0 when nothing published in the previous window."},"buzz":{"type":"number","minimum":0.0,"title":"Buzz","description":"Log10(1 + likes + 2 x comments) over the current window."},"freshness":{"type":"number","maximum":1.0,"exclusiveMinimum":0.0,"title":"Freshness","description":"Recency decay of the newest member publication, in (0, 1]."},"ageDays":{"type":"integer","minimum":0.0,"title":"Agedays","description":"Days from the window's end day back to the newest in-window member publication."},"newestPublishedAt":{"type":"string","format":"date-time","title":"Newestpublishedat","description":"Publication time of the newest member inside the current window."},"current":{"$ref":"#/components/schemas/MotifWindowFigures","description":"Member figures of the current window."},"previous":{"anyOf":[{"$ref":"#/components/schemas/MotifWindowFigures"},{"type":"null"}],"description":"Member figures of the equally long previous window; null when nothing published in it."}},"type":"object","required":["score","growth","buzz","freshness","ageDays","newestPublishedAt","current"],"title":"MotifTrend","description":"ONE MOTIF'S TRENDING READING for the resolved window and the equally long window immediately before it (T2, owner rulings Q6 and Q9 of 2026-09-26)."},"MotifWindow":{"properties":{"days":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Days","description":"Length in days of the current window; null when start/end state the span."},"start":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start","description":"Inclusive first day of an explicit span."},"end":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End","description":"Inclusive last day of the current window; null uses the newest member publication day in scope."}},"type":"object","title":"MotifWindow","description":"WHICH CALENDAR DAYS one motif trending read compares (T2, owner rulings Q2 and Q9 of 2026-09-26)."},"MotifWindowFigures":{"properties":{"creators":{"type":"integer","minimum":0.0,"title":"Creators","description":"Distinct member creators who published inside the window."},"posts":{"type":"integer","minimum":0.0,"title":"Posts","description":"Distinct member contents published inside the window."},"likes":{"type":"integer","minimum":0.0,"title":"Likes","description":"Likes summed over the window's member contents; a missing count is 0."},"comments":{"type":"integer","minimum":0.0,"title":"Comments","description":"Comments summed over the window's member contents; a missing count is 0."},"views":{"type":"integer","minimum":0.0,"title":"Views","description":"Views summed over the window's member contents; a missing count is 0."}},"type":"object","required":["creators","posts","likes","comments","views"],"title":"MotifWindowFigures","description":"ONE MOTIF'S MEMBER TOTALS INSIDE ONE WINDOW (T2, 2026-09-26)."},"MoveBlock":{"properties":{"action":{"type":"string","const":"MOVE_BLOCK","title":"Action","default":"MOVE_BLOCK"},"sectionKey":{"type":"string","pattern":"^keble-[a-z0-9][a-z0-9-]{0,56}$","title":"Sectionkey"},"blockKey":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,62}$","title":"Blockkey"},"after":{"anyOf":[{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,62}$"},{"type":"null"}],"title":"After"}},"additionalProperties":false,"type":"object","required":["sectionKey","blockKey"],"title":"MoveBlock","description":"Move one block within its section to after another block (None: to the end)."},"MoveSection":{"properties":{"action":{"type":"string","const":"MOVE_SECTION","title":"Action","default":"MOVE_SECTION"},"sectionKey":{"type":"string","pattern":"^keble-[a-z0-9][a-z0-9-]{0,56}$","title":"Sectionkey"},"after":{"anyOf":[{"type":"string","pattern":"^(?:@start|[A-Za-z0-9_-]{1,64})$"},{"type":"null"}],"title":"After"}},"additionalProperties":false,"type":"object","required":["sectionKey"],"title":"MoveSection","description":"Move one section within its page to after another entry (None: to the end)."},"NewChangeRow":{"properties":{"action":{"$ref":"#/components/schemas/UnboundAction"},"rationale":{"type":"string","minLength":1,"title":"Rationale"}},"additionalProperties":false,"type":"object","required":["action","rationale"],"title":"NewChangeRow","description":"A new account-free row action and the one-sentence rationale shown to the person."},"NewKeblePage":{"properties":{"title":{"type":"string","maxLength":250,"minLength":1,"title":"Title"},"handle":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,254}$","title":"Handle"}},"additionalProperties":false,"type":"object","required":["title","handle"],"title":"NewKeblePage","description":"The store page Keble creates at publish for a Keble landing-page template (CD-2: unpublished)."},"NewThemePage":{"properties":{"title":{"type":"string","maxLength":250,"minLength":1,"title":"Title"},"handle":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,254}$","title":"Handle"},"templateSuffix":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,62}$","title":"Templatesuffix"},"body":{"items":{"anyOf":[{"$ref":"#/components/schemas/HtmlSegment"},{"$ref":"#/components/schemas/ExistingShopifyFile"},{"$ref":"#/components/schemas/ShopifyRemoteImage"}]},"type":"array","minItems":1,"title":"Body"}},"additionalProperties":false,"type":"object","required":["title","handle","templateSuffix","body"],"title":"NewThemePage","description":"FROZEN (D-03): removed in the first theme release after SEO and GEO migrate."},"NoArguments":{"properties":{},"additionalProperties":false,"type":"object","title":"NoArguments","description":"The request of an operation that takes nothing but its caller (a catalog, a freshness report)."},"NoBadgeClaimsRule":{"properties":{"kind":{"type":"string","const":"NO_BADGE_CLAIMS","title":"Kind","default":"NO_BADGE_CLAIMS"}},"additionalProperties":false,"type":"object","title":"NoBadgeClaimsRule","description":"No visible text layer carries a badge or claim word from the package's fixed zh/en lexicon (hint, D-07)."},"NoEdgeCropRule":{"properties":{"kind":{"type":"string","const":"NO_EDGE_CROP","title":"Kind","default":"NO_EDGE_CROP"},"maxHiddenRatio":{"type":"number","exclusiveMaximum":1.0,"minimum":0.0,"title":"Maxhiddenratio"}},"additionalProperties":false,"type":"object","required":["maxHiddenRatio"],"title":"NoEdgeCropRule","description":"At most max_hidden_ratio of the product's content box is hidden by the canvas edge or a crop (hint, D-07)."},"NoGraphicsRule":{"properties":{"kind":{"type":"string","const":"NO_GRAPHICS","title":"Kind","default":"NO_GRAPHICS"}},"additionalProperties":false,"type":"object","title":"NoGraphicsRule","description":"Only product image layers over the background: no shapes, logos or decorations (Amazon main)."},"NoTextRule":{"properties":{"kind":{"type":"string","const":"NO_TEXT","title":"Kind","default":"NO_TEXT"}},"additionalProperties":false,"type":"object","title":"NoTextRule","description":"The design has no visible text layer (Amazon main image: no text or pricing)."},"NodeHit":{"properties":{"item":{"oneOf":[{"$ref":"#/components/schemas/Product"},{"$ref":"#/components/schemas/Store"},{"$ref":"#/components/schemas/Creator"},{"$ref":"#/components/schemas/Content"},{"$ref":"#/components/schemas/Keyword"},{"$ref":"#/components/schemas/Contact"},{"$ref":"#/components/schemas/PlatformDefinedCategory"},{"$ref":"#/components/schemas/Brand"},{"$ref":"#/components/schemas/ProductFamily"},{"$ref":"#/components/schemas/Motif"},{"$ref":"#/components/schemas/Concept"}],"title":"Item","description":"The returned node, either a source entity or a declared derived kind.","discriminator":{"propertyName":"kind","mapping":{"BRAND":"#/components/schemas/Brand","CONCEPT":"#/components/schemas/Concept","CONTACT":"#/components/schemas/Contact","CONTENT":"#/components/schemas/Content","CREATOR":"#/components/schemas/Creator","KEYWORD":"#/components/schemas/Keyword","MOTIF":"#/components/schemas/Motif","PLATFORM_DEFINED_CATEGORY":"#/components/schemas/PlatformDefinedCategory","PRODUCT":"#/components/schemas/Product","PRODUCT_FAMILY":"#/components/schemas/ProductFamily","STORE":"#/components/schemas/Store"}}},"via":{"items":{"$ref":"#/components/schemas/NodeRef"},"type":"array","title":"Via","description":"Scoped source references that led to this node.","default":[]},"analysis":{"anyOf":[{"$ref":"#/components/schemas/Analysis"},{"type":"null"}],"description":"Analyzed facts attached when the analyzed store has them; null otherwise."},"recordKey":{"type":"string","title":"Recordkey","description":"The stored row's key, else stable_key_of over the subject claim."},"familyKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Familykey","description":"Product family key shared by this row's siblings; null when the row belongs to no family."},"evidence":{"items":{"$ref":"#/components/schemas/MatchedFact"},"type":"array","maxItems":8,"title":"Evidence","description":"Matched facts explaining why this hit is here; at most 8.","default":[]},"promoted":{"type":"boolean","title":"Promoted","description":"Whether this hit is promoted: a recorded promotional link, or explicit paid sponsorship. When the hit's claim about the matched entity carries a stance, paid sponsorship counts only if that claim recommends the entity as the item's main subject; a hit with no stance-bearing claim keeps the plain paid verdict. Computed once by is_promoted, never re-derived by a renderer.","default":false}},"type":"object","required":["item","recordKey"],"title":"NodeHit","description":"A returned typed node and the source refs that led to it."},"NodeKind":{"type":"string","enum":["PRODUCT","STORE","CREATOR","CONTENT","KEYWORD","CONTACT","PLATFORM_DEFINED_CATEGORY","BRAND","PRODUCT_FAMILY","MOTIF","CONCEPT"],"title":"NodeKind","description":"Every node kind one DP search can start from or ask for (R42)."},"NodeRef":{"properties":{"kind":{"$ref":"#/components/schemas/NodeKind","description":"Node kind that defines the key namespace."},"channel":{"anyOf":[{"$ref":"#/components/schemas/Channel"},{"type":"null"}],"description":"Source channel the referenced record lives in; null for a derived node's own scope."},"key":{"type":"string","title":"Key","description":"Kind- and scope-qualified key of the referenced node."}},"type":"object","required":["kind","key"],"title":"NodeRef","description":"One kind- and channel-scoped reference used in DP, never a bare ID list."},"NotificationCreate":{"properties":{"kind":{"type":"string","const":"NOTIFICATION","title":"Kind","default":"NOTIFICATION"},"content":{"$ref":"#/components/schemas/ItemContent"},"key":{"type":"string","minLength":1,"title":"Key"},"ref":{"type":"string","minLength":1,"title":"Ref"}},"additionalProperties":false,"type":"object","required":["content","key","ref"],"title":"NotificationCreate","description":"Immutable generic producer-filed note that people read per source event."},"NotificationItem":{"properties":{"id":{"type":"string","minLength":1,"title":"Id"},"owner":{"$ref":"#/components/schemas/OwnerRef"},"current":{"$ref":"#/components/schemas/ItemContent"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"revision":{"type":"integer","minimum":0.0,"title":"Revision"},"created_by":{"anyOf":[{"$ref":"#/components/schemas/ActorRef"},{"type":"null"}]},"kind":{"type":"string","const":"NOTIFICATION","title":"Kind","default":"NOTIFICATION"},"object":{"type":"string","const":"notification_item","title":"Object","default":"notification_item"},"creation":{"$ref":"#/components/schemas/NotificationCreate"}},"additionalProperties":false,"type":"object","required":["id","owner","current","created_at","revision","creation"],"title":"NotificationItem","description":"A stored note with no shared status; who read it lives in per-person receipts."},"ObjectKind":{"type":"string","enum":["PRODUCT","STORE","CREATOR","CONTENT","KEYWORD","CONTACT","PLATFORM_DEFINED_CATEGORY"],"title":"ObjectKind","description":"Name the seven source entity kinds returned by Data Infra."},"ObjectOutline":{"properties":{"objectId":{"type":"string","title":"Objectid"},"kind":{"$ref":"#/components/schemas/BoardObjectKind"},"name":{"type":"string","title":"Name"},"position":{"$ref":"#/components/schemas/BoardPoint"},"state":{"$ref":"#/components/schemas/ObjectState"},"changedAtRevision":{"type":"integer","minimum":0.0,"title":"Changedatrevision"},"source":{"anyOf":[{"$ref":"#/components/schemas/ContentSource"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentid"},"recipe":{"anyOf":[{"$ref":"#/components/schemas/VariantRecipe"},{"type":"null"}]},"preset":{"anyOf":[{"type":"string","enum":["amazon.aplus.banner","amazon.aplus.comparison","amazon.aplus.four_image","amazon.aplus.header","amazon.aplus.logo","amazon.aplus.quadrant","amazon.aplus.single","amazon.aplus_premium.full_width","amazon.brand_story.background","amazon.brand_story.card","amazon.main","amazon.secondary","custom","shopify.blog_featured","shopify.collection","shopify.product"]},{"type":"null"}],"title":"Preset"},"size":{"anyOf":[{"$ref":"#/components/schemas/PixelSize"},{"type":"null"}]},"background":{"anyOf":[{"$ref":"#/components/schemas/Color"},{"type":"null"}]},"layers":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/ImageLayer"},{"$ref":"#/components/schemas/TextLayer"},{"$ref":"#/components/schemas/ShapeLayer"},{"$ref":"#/components/schemas/GroupLayer"}],"discriminator":{"propertyName":"kind","mapping":{"GROUP":"#/components/schemas/GroupLayer","IMAGE":"#/components/schemas/ImageLayer","SHAPE":"#/components/schemas/ShapeLayer","TEXT":"#/components/schemas/TextLayer"}}},"type":"array"},{"type":"null"}],"title":"Layers"},"overrides":{"anyOf":[{"items":{"$ref":"#/components/schemas/LayerOverride"},"type":"array"},{"type":"null"}],"title":"Overrides"},"staleParts":{"items":{"$ref":"#/components/schemas/StalePart"},"type":"array","title":"Staleparts","default":[]},"unresolved":{"items":{"$ref":"#/components/schemas/UnresolvedBrandRef"},"type":"array","title":"Unresolved","default":[]},"findings":{"items":{"$ref":"#/components/schemas/SlotFinding"},"type":"array","title":"Findings","default":[]},"columns":{"anyOf":[{"items":{"$ref":"#/components/schemas/PlanColumn"},"type":"array"},{"type":"null"}],"title":"Columns"},"rows":{"anyOf":[{"items":{"$ref":"#/components/schemas/PlanRow"},"type":"array"},{"type":"null"}],"title":"Rows"},"kitId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kitid"}},"additionalProperties":false,"type":"object","required":["objectId","kind","name","position","state","changedAtRevision"],"title":"ObjectOutline","description":"One object as the agent reads it; focus objects carry their resolved layers and overrides."},"ObjectState":{"type":"string","enum":["GENERATING","QUEUED","BROKEN","FAILED","STALE","LOCKED","READY"],"title":"ObjectState","description":"The one badge an object shows; derived, never stored. Precedence top to bottom."},"ObjectStatus":{"properties":{"objectId":{"type":"string","title":"Objectid"},"state":{"$ref":"#/components/schemas/ObjectState"},"locked":{"type":"boolean","title":"Locked"},"stepIds":{"items":{"type":"string"},"type":"array","title":"Stepids","default":[]}},"additionalProperties":false,"type":"object","required":["objectId","state","locked"],"title":"ObjectStatus","description":"One non-READY object's badge, lock and the steps behind it (SetStatus.objects)."},"ObservationOrigin":{"type":"string","enum":["SOURCE_REPORTED","CAPTURED"],"title":"ObservationOrigin","description":"Label who measured one metric value (K-09, S-03)."},"OpacityField":{"properties":{"field":{"type":"string","const":"OPACITY","title":"Field","default":"OPACITY"},"opacity":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Opacity"}},"additionalProperties":false,"type":"object","required":["opacity"],"title":"OpacityField","description":"Override value: a layer's opacity."},"OperationQuote":{"properties":{"operation":{"$ref":"#/components/schemas/ImageOperation"},"steps":{"type":"integer","minimum":0.0,"title":"Steps"}},"additionalProperties":false,"type":"object","required":["operation","steps"],"title":"OperationQuote","description":"How many paid steps of one operation a batch would admit."},"OptionRecord":{"properties":{"key":{"type":"string","maxLength":80,"minLength":1,"title":"Key"},"label":{"$ref":"#/components/schemas/LocalizedText"},"low":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Low"},"high":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"High"},"catchAll":{"type":"boolean","title":"Catchall","default":false}},"additionalProperties":false,"type":"object","required":["key","label"],"title":"OptionRecord","description":"One option of a dimension; banded options keep their bounds."},"OrderDesigns":{"properties":{"action":{"type":"string","const":"ORDER_DESIGNS","title":"Action","default":"ORDER_DESIGNS"},"objectId":{"type":"string","title":"Objectid"},"above":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Above"}},"additionalProperties":false,"type":"object","required":["objectId","above"],"title":"OrderDesigns","description":"Move one object in the board order (z-order and LAYERS tree): directly above above, or to the bottom."},"OrderLayer":{"properties":{"action":{"type":"string","const":"ORDER_LAYER","title":"Action","default":"ORDER_LAYER"},"designId":{"type":"string","title":"Designid"},"layerId":{"type":"string","title":"Layerid"},"above":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Above"}},"additionalProperties":false,"type":"object","required":["designId","layerId","above"],"title":"OrderLayer","description":"Move one layer in the stack: directly above above, or to the bottom when None."},"OwnedPhotoRef":{"properties":{"asset":{"$ref":"#/components/schemas/AssetRef"}},"additionalProperties":false,"type":"object","required":["asset"],"title":"OwnedPhotoRef","description":"The consumer-held reference to one photo the owner uploaded through add_photos."},"OwnerKind":{"type":"string","enum":["USER","ORG"],"title":"OwnerKind","description":"The two supported item-list owners."},"OwnerRef":{"properties":{"kind":{"$ref":"#/components/schemas/OwnerKind"},"id":{"type":"string","minLength":1,"title":"Id"}},"additionalProperties":false,"type":"object","required":["kind","id"],"title":"OwnerRef","description":"One user or organization list selected by the authenticated host."},"OwnerType":{"type":"string","enum":["USER","ORG","ROOT"],"title":"OwnerType"},"PageProgress":{"properties":{"requested":{"type":"integer","minimum":0.0,"title":"Requested","description":"Rows the caller asked for."},"hops":{"items":{"$ref":"#/components/schemas/HopProgress"},"type":"array","title":"Hops","description":"One entry per executed step, in plan order.","default":[]}},"type":"object","required":["requested"],"title":"PageProgress","description":"How far one page got against what the caller asked for (K-27)."},"PageRequest":{"properties":{"limit":{"type":"integer","maximum":500.0,"minimum":1.0,"title":"Limit","description":"Maximum rows in this page.","default":200},"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor","description":"Opaque cursor from the previous page."}},"additionalProperties":false,"type":"object","title":"PageRequest","description":"How one bounded read pages: a row limit and the opaque cursor that continues it."},"PaidStepState":{"type":"string","enum":["RESERVED","QUEUED","RUNNING","SUCCEEDED","APPLIED","SKIPPED","FAILED","UNKNOWN","CANCELLED"],"title":"PaidStepState","description":"Lifecycle of one paid step (one attempt): admitted in the request, run by the worker, landed alone."},"PaidStepView":{"properties":{"attemptId":{"type":"string","title":"Attemptid"},"action":{"oneOf":[{"$ref":"#/components/schemas/CutOutProduct"},{"$ref":"#/components/schemas/GenerateScene"},{"$ref":"#/components/schemas/GenerateDecor"}],"title":"Action","discriminator":{"propertyName":"action","mapping":{"CUT_OUT_PRODUCT":"#/components/schemas/CutOutProduct","GENERATE_DECOR":"#/components/schemas/GenerateDecor","GENERATE_SCENE":"#/components/schemas/GenerateScene"}}},"state":{"$ref":"#/components/schemas/PaidStepState"},"refusal":{"anyOf":[{"$ref":"#/components/schemas/EditRefusalCode"},{"type":"null"}]},"failure":{"anyOf":[{"$ref":"#/components/schemas/ProviderFailureCode"},{"type":"null"}]},"revision":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revision"},"queuedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Queuedat"},"waitingForUnlock":{"type":"boolean","title":"Waitingforunlock","default":false}},"additionalProperties":false,"type":"object","required":["attemptId","action","state"],"title":"PaidStepView","description":"One paid step as the agent and the editor see it."},"ParagraphBlock":{"properties":{"kind":{"type":"string","const":"PARAGRAPH","title":"Kind","default":"PARAGRAPH"},"text":{"type":"string","minLength":1,"title":"Text"}},"additionalProperties":false,"type":"object","required":["text"],"title":"ParagraphBlock","description":"One paragraph of plain text with inline **strong**, *em* and [label](https://...)."},"PathGeometry":{"properties":{"kind":{"type":"string","const":"PATH","title":"Kind","default":"PATH"},"path":{"$ref":"#/components/schemas/PathKey"}},"additionalProperties":false,"type":"object","required":["path"],"title":"PathGeometry","description":"A library outline filling the box, stretched/rotated by it; no free-form path data (VV-1)."},"PathKey":{"type":"string","enum":["SEAL_SCALLOP","RIBBON_BANNER","SPEECH_BUBBLE","PRICE_TAG","TORN_BAND","BRUSH_BAND","BRUSH_SWIRL","BRUSH_STROKE","BRUSH_UNDERLINE","SPLASH","BLOB_SOFT","BLOB_WAVE","WAVE_EDGE","FLAME","LEAF","DROP","HEART","CHECK","ARROW","SPARKLE"],"title":"PathKey","description":"One immutable curated outline from the keble-core 1000-unit square path library (VV-1)."},"PeerIntent":{"type":"string","enum":["COMPETITORS","LOOKALIKES"],"title":"PeerIntent","description":"What a same-kind search means when it asks for peers (K-37)."},"Permission":{"properties":{"key":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Key","description":"The declared permission key."},"title":{"type":"string","minLength":1,"title":"Title","description":"Short label of the permission."},"grantedBy":{"$ref":"#/components/schemas/GrantedBy","description":"Who can grant it, which decides who must act."},"grantHint":{"$ref":"#/components/schemas/StoreLocalizedText","description":"What the grantor must change and where, in both languages."}},"additionalProperties":false,"type":"object","required":["key","title","grantedBy","grantHint"],"title":"Permission","description":"One provider-side permission a read or write needs, as the plugin declares it."},"Phase":{"type":"string","enum":["SCOPE","ITEMS","DIMENSIONS","ANALYSIS"],"title":"Phase","description":"The four user-visible phases (the existing stepper), subject-neutral."},"PhaseStatus":{"type":"string","enum":["WORKING","WAITING_FOR_USER","COMPLETE","FAILED"],"title":"PhaseStatus","description":"WAITING_FOR_USER is distinct from WORKING: busy is not idle (existing ruling)."},"PhotoLinkProblem":{"properties":{"url":{"type":"string","title":"Url"},"code":{"anyOf":[{"$ref":"#/components/schemas/GuardedFetchRefusalCode"},{"$ref":"#/components/schemas/PhotoLinkTransportCode"}],"title":"Code"},"detail":{"type":"string","title":"Detail"}},"type":"object","required":["url","code","detail"],"title":"PhotoLinkProblem","description":"Why one owner photo link produced no photo; the same shape for every code."},"PhotoLinkTransportCode":{"type":"string","enum":["UNREACHABLE"],"title":"PhotoLinkTransportCode","description":"A link's transport fault that is not a policy refusal (owned here; keble-helpers stays raise-only)."},"PhotoLinksAdded":{"properties":{"intake":{"anyOf":[{"$ref":"#/components/schemas/PhotosAdded"},{"$ref":"#/components/schemas/IntakeRefusal"}],"title":"Intake"},"problems":{"items":{"$ref":"#/components/schemas/PhotoLinkProblem"},"type":"array","title":"Problems","default":[]}},"additionalProperties":false,"type":"object","required":["intake"],"title":"PhotoLinksAdded","description":"The one owner-scoped intake result plus one typed problem per link that produced no photo."},"PhotoLinksRequest":{"properties":{"urls":{"items":{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},"type":"array","minItems":1,"title":"Urls"},"origin":{"type":"string","enum":["UPLOAD","REFERENCE"],"title":"Origin","default":"UPLOAD"}},"additionalProperties":false,"type":"object","required":["urls"],"title":"PhotoLinksRequest","description":"HTTPS images stored as owner photos or scene-only references in one bounded intake."},"PhotosAdded":{"properties":{"photos":{"items":{"$ref":"#/components/schemas/OwnedPhotoRef"},"type":"array","title":"Photos"},"references":{"items":{"$ref":"#/components/schemas/AssetRef"},"type":"array","title":"References","default":[]},"findings":{"items":{"$ref":"#/components/schemas/IntakeFinding"},"type":"array","title":"Findings","default":[]},"defaultStarterPaidSteps":{"type":"integer","minimum":0.0,"title":"Defaultstarterpaidsteps"}},"additionalProperties":false,"type":"object","required":["photos","defaultStarterPaidSteps"],"title":"PhotosAdded","description":"The accepted uploads, in upload order, and their hints."},"PixelSize":{"properties":{"width":{"type":"integer","exclusiveMinimum":0.0,"title":"Width"},"height":{"type":"integer","exclusiveMinimum":0.0,"title":"Height"}},"additionalProperties":false,"type":"object","required":["width","height"],"title":"PixelSize","description":"A raster size in pixels."},"PlaceBrandKit":{"properties":{"action":{"type":"string","const":"PLACE_BRAND_KIT","title":"Action","default":"PLACE_BRAND_KIT"},"objectId":{"type":"string","title":"Objectid"},"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"kitId":{"type":"string","title":"Kitid"},"position":{"anyOf":[{"$ref":"#/components/schemas/BoardPoint"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["objectId","name","kitId"],"title":"PlaceBrandKit","description":"Add a card showing one owner kit (UNKNOWN_BRAND_KIT for an unknown or foreign kit)."},"PlaceholderBinding":{"properties":{"binding":{"type":"string","const":"PLACEHOLDER","title":"Binding","default":"PLACEHOLDER"},"placeholder":{"type":"string","enum":["body","callout_1","callout_2","callout_3","headline","product_photo"],"title":"Placeholder"}},"additionalProperties":false,"type":"object","required":["placeholder"],"title":"PlaceholderBinding","description":"A plan column whose cell text replaces every source text layer carrying this placeholder."},"PlanColumn":{"properties":{"columnId":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,32}$","title":"Columnid"},"title":{"type":"string","maxLength":60,"minLength":1,"title":"Title"},"binding":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/TextLayerBinding"},{"$ref":"#/components/schemas/PlaceholderBinding"},{"$ref":"#/components/schemas/SceneCueBinding"}],"discriminator":{"propertyName":"binding","mapping":{"PLACEHOLDER":"#/components/schemas/PlaceholderBinding","SCENE_CUE":"#/components/schemas/SceneCueBinding","TEXT_LAYER":"#/components/schemas/TextLayerBinding"}}},{"type":"null"}],"title":"Binding"}},"additionalProperties":false,"type":"object","required":["columnId","title"],"title":"PlanColumn","description":"One plan column; binding=None is a note column the agent reads (angle, audience)."},"PlanRow":{"properties":{"rowId":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,32}$","title":"Rowid"},"cells":{"additionalProperties":{"type":"string"},"type":"object","title":"Cells"},"name":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Name"}},"additionalProperties":false,"type":"object","required":["rowId"],"title":"PlanRow","description":"One plan row: cells maps a column id to its text; name names the generated image."},"PlanRowRef":{"properties":{"planId":{"type":"string","title":"Planid"},"rowId":{"type":"string","title":"Rowid"}},"additionalProperties":false,"type":"object","required":["planId","rowId"],"title":"PlanRowRef","description":"One row of one plan; held by the variant that row produced (the only row -> image link)."},"PlannedPost":{"properties":{"postKey":{"type":"string","minLength":1,"title":"Postkey"},"topic":{"type":"string","minLength":1,"title":"Topic"},"abstract":{"type":"string","minLength":1,"title":"Abstract"},"toneKey":{"type":"string","minLength":1,"title":"Tonekey"},"targetWords":{"type":"integer","minimum":1.0,"title":"Targetwords"},"imagePlan":{"type":"string","minLength":1,"title":"Imageplan"}},"additionalProperties":false,"type":"object","required":["postKey","topic","abstract","toneKey","targetWords","imagePlan"],"title":"PlannedPost","description":"One row of the post plan (1.2): topic, abstract, tone, length and intended images."},"PlatformDefinedCategory":{"properties":{"kind":{"type":"string","const":"PLATFORM_DEFINED_CATEGORY","title":"Kind","default":"PLATFORM_DEFINED_CATEGORY"},"channel":{"$ref":"#/components/schemas/Channel"},"externalId":{"type":"string","maxLength":1024,"minLength":1,"title":"Externalid"},"name":{"type":"string","maxLength":2048,"minLength":1,"title":"Name"},"parentRef":{"anyOf":[{"$ref":"#/components/schemas/SourceSubject"},{"type":"null"}]},"path":{"items":{"type":"string","maxLength":512},"type":"array","maxItems":64,"title":"Path","default":[]},"market":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"title":"Market"},"metrics":{"items":{"$ref":"#/components/schemas/MetricObservation"},"type":"array","maxItems":128,"title":"Metrics","default":[]},"observedAt":{"type":"string","maxLength":44,"format":"date-time","title":"Observedat"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"additionalProperties":false,"type":"object","required":["channel","externalId","name","observedAt","provenance"],"title":"PlatformDefinedCategory","description":"Represent one catalog category node that a platform itself defines."},"PluginDeclaration":{"properties":{"key":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Key","description":"Catalog plugin identifier."},"title":{"type":"string","minLength":1,"title":"Title","description":"Display name of this plugin."},"sources":{"items":{"$ref":"#/components/schemas/Source"},"type":"array","minItems":1,"title":"Sources","description":"Sources this plugin can connect."},"metrics":{"items":{"$ref":"#/components/schemas/Metric"},"type":"array","title":"Metrics","description":"Metrics this plugin calculates; empty for live-read-only plugins.","default":[]},"actionFamilies":{"items":{"$ref":"#/components/schemas/ActionFamily"},"type":"array","title":"Actionfamilies","description":"Unique owner-facing families used by this plugin's actions.","default":[]}},"additionalProperties":false,"type":"object","required":["key","title","sources"],"title":"PluginDeclaration","description":"Everything one plugin package declares: sources, metrics and write-family switches."},"PolicyCitation":{"properties":{"policyUrl":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Policyurl"},"section":{"type":"string","minLength":1,"title":"Section"},"capturedOn":{"type":"string","format":"date","title":"Capturedon"},"snapshotSha256":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Snapshotsha256"}},"additionalProperties":false,"type":"object","required":["policyUrl","section","capturedOn","snapshotSha256"],"title":"PolicyCitation","description":"The captured official source passage behind one rule."},"PolygonGeometry":{"properties":{"kind":{"type":"string","const":"POLYGON","title":"Kind","default":"POLYGON"},"corners":{"type":"integer","maximum":32.0,"minimum":3.0,"title":"Corners"},"innerRatio":{"type":"number","maximum":1.0,"minimum":0.2,"title":"Innerratio","default":1.0}},"additionalProperties":false,"type":"object","required":["corners"],"title":"PolygonGeometry","description":"A polygon (inner_ratio=1) or star inscribed in the box, first corner up (D-13, VV-1)."},"PositioningCellQuery":{"properties":{"object":{"type":"string","const":"positioning_cell","title":"Object","default":"positioning_cell"},"cellKey":{"type":"string","maxLength":400,"minLength":1,"title":"Cellkey"},"viewId":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Viewid"}},"additionalProperties":false,"type":"object","required":["cellKey"],"title":"PositioningCellQuery","description":"Ask for one cell's detail dialog, the reading client's cell read."},"PositioningDetail":{"properties":{"object":{"type":"string","const":"positioning_detail","title":"Object","default":"positioning_detail"},"answer":{"anyOf":[{"$ref":"#/components/schemas/CellDetail"},{"$ref":"#/components/schemas/PositioningItemPage"}],"title":"Answer"},"labels":{"$ref":"#/components/schemas/PositioningDetailLabels"}},"additionalProperties":false,"type":"object","required":["answer","labels"],"title":"PositioningDetail","description":"One answered detail query: the reading client's answer plus the labels it uses."},"PositioningDetailLabels":{"properties":{"object":{"type":"string","const":"positioning_detail_labels","title":"Object","default":"positioning_detail_labels"},"itemNoun":{"$ref":"#/components/schemas/LocalizedText"},"dimensions":{"items":{"$ref":"#/components/schemas/DimensionRecord"},"type":"array","title":"Dimensions","default":[]},"measures":{"items":{"$ref":"#/components/schemas/RoomPublicMeasure"},"type":"array","title":"Measures","default":[]},"assessments":{"items":{"$ref":"#/components/schemas/RoomPublicAssessment"},"type":"array","title":"Assessments","default":[]},"facts":{"items":{"$ref":"#/components/schemas/FactSpec"},"type":"array","title":"Facts","default":[]},"criterion":{"anyOf":[{"$ref":"#/components/schemas/LocalizedText"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["itemNoun"],"title":"PositioningDetailLabels","description":"The labels one detail answer needs to be read by a person, and nothing more."},"PositioningItemsQuery":{"properties":{"object":{"type":"string","const":"positioning_items","title":"Object","default":"positioning_items"},"cellKey":{"anyOf":[{"type":"string","maxLength":400,"minLength":1},{"type":"null"}],"title":"Cellkey"},"cursor":{"anyOf":[{"type":"string","maxLength":400,"minLength":1},{"type":"null"}],"title":"Cursor"}},"additionalProperties":false,"type":"object","title":"PositioningItemsQuery","description":"Ask for one page of items, the reading client's items read."},"PositioningRecord":{"properties":{"ref":{"$ref":"#/components/schemas/PositioningRef"},"positioningId":{"type":"string","minLength":1,"title":"Positioningid"},"gridId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gridid"},"pluginId":{"type":"string","maxLength":80,"pattern":"^[a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*$","title":"Pluginid"},"language":{"$ref":"#/components/schemas/Language","description":"The language every model-written, user-visible positioning text must use.","default":"ENGLISH"},"brief":{"type":"string","maxLength":4000,"title":"Brief"},"ownerNote":{"type":"string","maxLength":4000,"title":"Ownernote","default":""},"setup":{"anyOf":[{"patternProperties":{"^[A-Z][A-Z0-9_]*$":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"string"},{"items":{"type":"string"},"type":"array"}]}},"propertyNames":{"maxLength":64},"type":"object"},{"type":"null"}],"title":"Setup"},"review":{"additionalProperties":{"$ref":"#/components/schemas/Decider"},"propertyNames":{"$ref":"#/components/schemas/RunStep"},"type":"object","title":"Review"},"phase":{"$ref":"#/components/schemas/Phase"},"status":{"$ref":"#/components/schemas/PhaseStatus"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"additionalProperties":false,"type":"object","required":["ref","positioningId","pluginId","brief","phase","status","createdAt"],"title":"PositioningRecord","description":"One positioning: its one plugin, its setup, its review setting, and its stepper."},"PositioningRef":{"properties":{"owner":{"$ref":"#/components/schemas/OwnerScope"},"taskId":{"type":"string","maxLength":64,"minLength":1,"title":"Taskid"}},"additionalProperties":false,"type":"object","required":["owner","taskId"],"title":"PositioningRef","description":"One positioning, addressed by its owner and the host task that holds it."},"PostDraft":{"properties":{"step":{"type":"string","const":"POST_DRAFTS","title":"Step","default":"POST_DRAFTS"},"postKey":{"type":"string","minLength":1,"title":"Postkey"},"post":{"$ref":"#/components/schemas/ComposedPost"}},"additionalProperties":false,"type":"object","required":["postKey","post"],"title":"PostDraft","description":"POST_DRAFTS (1.4): one planned post written in its tone with text and images mixed."},"PostEntry":{"properties":{"plan":{"$ref":"#/components/schemas/PlannedPost"},"post":{"anyOf":[{"$ref":"#/components/schemas/ComposedPost"},{"type":"null"}]},"reviewNotes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewnotes"}},"additionalProperties":false,"type":"object","required":["plan"],"title":"PostEntry","description":"One planned post and its latest content; post is empty until its draft lands."},"PostPlan":{"properties":{"step":{"type":"string","const":"POST_PLAN","title":"Step","default":"POST_PLAN"},"tones":{"items":{"$ref":"#/components/schemas/ToneSpec"},"type":"array","minItems":1,"title":"Tones"},"posts":{"items":{"$ref":"#/components/schemas/PlannedPost"},"type":"array","minItems":1,"title":"Posts"}},"additionalProperties":false,"type":"object","required":["tones","posts"],"title":"PostPlan","description":"POST_PLAN (1.2): the tones, then how many posts in which order; the count bound is a Setting."},"PostSelfReview":{"properties":{"step":{"type":"string","const":"SELF_REVIEW","title":"Step","default":"SELF_REVIEW"},"postKey":{"type":"string","minLength":1,"title":"Postkey"},"reviewNotes":{"type":"string","minLength":1,"title":"Reviewnotes"},"post":{"$ref":"#/components/schemas/ComposedPost"}},"additionalProperties":false,"type":"object","required":["postKey","reviewNotes","post"],"title":"PostSelfReview","description":"SELF_REVIEW (1.5): the agent's own pass for a natural, human tone, and the revised post."},"PostSet":{"properties":{"status":{"$ref":"#/components/schemas/PostSetStatus"},"parkedStep":{"anyOf":[{"$ref":"#/components/schemas/BlogStep"},{"type":"null"}]},"direction":{"anyOf":[{"$ref":"#/components/schemas/BlogDirection"},{"type":"null"}]},"tones":{"items":{"$ref":"#/components/schemas/ToneSpec"},"type":"array","title":"Tones","default":[]},"posts":{"items":{"$ref":"#/components/schemas/PostEntry"},"type":"array","title":"Posts","default":[]},"styleExamples":{"items":{"$ref":"#/components/schemas/StyleExample"},"type":"array","title":"Styleexamples","default":[]},"sample":{"anyOf":[{"$ref":"#/components/schemas/SampleConfirmation"},{"type":"null"}]},"reviewRound":{"type":"integer","minimum":0.0,"title":"Reviewround","default":0}},"additionalProperties":false,"type":"object","required":["status","parkedStep"],"title":"PostSet","description":"The whole guided state: direction, plan with tones and posts, style examples, the parked step."},"PostSetStatus":{"type":"string","enum":["WAITING_FOR_AGENT","READY"],"title":"PostSetStatus","description":"Where the post set stands."},"PreviewSession":{"properties":{"copyThemeId":{"type":"string","pattern":"^gid://shopify/OnlineStoreTheme/[0-9]+$","title":"Copythemeid"},"createdFromThemeId":{"type":"string","pattern":"^gid://shopify/OnlineStoreTheme/[0-9]+$","title":"Createdfromthemeid"},"documentRevisionOnCopy":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Documentrevisiononcopy"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"additionalProperties":false,"type":"object","required":["copyThemeId","createdFromThemeId","createdAt"],"title":"PreviewSession","description":"The run's one preview copy: which theme, copied from which target, and which revision it holds."},"PreviewView":{"properties":{"batch":{"$ref":"#/components/schemas/ActionBatch","description":"Requested action batch; nothing is persisted by preview."},"previews":{"items":{"$ref":"#/components/schemas/ActionOutcome"},"type":"array","title":"Previews","description":"One live outcome per action, in order."},"diffs":{"items":{"$ref":"#/components/schemas/ActionDiff"},"type":"array","title":"Diffs","description":"One derived diff per action, in order."}},"additionalProperties":false,"type":"object","required":["batch","previews","diffs"],"title":"PreviewView","description":"Stateless answer to a preview request, with outcomes and diffs aligned to its batch."},"PriceClause":{"properties":{"kind":{"type":"string","const":"PRICE","title":"Kind","default":"PRICE"},"op":{"type":"string","enum":["GTE","LTE"],"title":"Op"},"value":{"$ref":"#/components/schemas/MinorUnitMoney"},"metric":{"type":"string","enum":["price","list_price"],"title":"Metric","default":"price"},"averageDays":{"anyOf":[{"type":"integer","enum":[1,7,30,90,180]},{"type":"null"}],"title":"Averagedays"}},"additionalProperties":false,"type":"object","required":["op","value"],"title":"PriceClause","description":"Apply a typed monetary bound without binary-float price values."},"Priority":{"type":"string","enum":["NORMAL","CRITICAL"],"title":"Priority","description":"The initial human-attention levels."},"PrivateValue":{"properties":{"rowKey":{"type":"string","title":"Rowkey"},"pointer":{"type":"string","title":"Pointer"},"value":{"$ref":"#/components/schemas/JsonValue"}},"additionalProperties":false,"type":"object","required":["rowKey","pointer","value"],"title":"PrivateValue","description":"One private leaf held outside its row; never returned by any read (W3.5 G3)."},"Product":{"properties":{"kind":{"type":"string","const":"PRODUCT","title":"Kind","default":"PRODUCT"},"channel":{"$ref":"#/components/schemas/Channel"},"externalId":{"type":"string","maxLength":1024,"minLength":1,"title":"Externalid"},"title":{"anyOf":[{"type":"string","maxLength":4096,"minLength":1},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string","maxLength":32768},{"type":"null"}],"title":"Description"},"brand":{"anyOf":[{"type":"string","maxLength":1024,"minLength":1},{"type":"null"}],"title":"Brand"},"manufacturer":{"anyOf":[{"type":"string","maxLength":1024,"minLength":1},{"type":"null"}],"title":"Manufacturer"},"modelNumber":{"anyOf":[{"type":"string","maxLength":512,"minLength":1},{"type":"null"}],"title":"Modelnumber"},"category":{"anyOf":[{"type":"string","maxLength":2048,"minLength":1},{"type":"null"}],"title":"Category"},"categoryPath":{"items":{"type":"string","maxLength":512},"type":"array","maxItems":64,"title":"Categorypath","default":[]},"tags":{"items":{"type":"string","maxLength":512},"type":"array","maxItems":256,"title":"Tags","default":[]},"market":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"title":"Market"},"url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Url"},"features":{"items":{"type":"string","maxLength":2000},"type":"array","maxItems":64,"title":"Features","default":[]},"attributes":{"items":{"$ref":"#/components/schemas/ProductOption"},"type":"array","maxItems":256,"title":"Attributes","default":[]},"publishedAt":{"anyOf":[{"type":"string","maxLength":44,"format":"date-time"},{"type":"null"}],"title":"Publishedat"},"releasedAt":{"anyOf":[{"type":"string","maxLength":44,"format":"date-time"},{"type":"null"}],"title":"Releasedat"},"firstTrackedAt":{"anyOf":[{"type":"string","maxLength":44,"format":"date-time"},{"type":"null"}],"title":"Firsttrackedat"},"storeRef":{"anyOf":[{"$ref":"#/components/schemas/SourceSubject"},{"type":"null"}]},"storeName":{"anyOf":[{"type":"string","maxLength":1024,"minLength":1},{"type":"null"}],"title":"Storename"},"identities":{"items":{"$ref":"#/components/schemas/ExternalIdentity"},"type":"array","maxItems":256,"title":"Identities","default":[]},"variants":{"items":{"$ref":"#/components/schemas/ProductVariant"},"type":"array","maxItems":256,"title":"Variants","default":[]},"metrics":{"items":{"$ref":"#/components/schemas/MetricObservation"},"type":"array","maxItems":128,"title":"Metrics","default":[]},"media":{"items":{"$ref":"#/components/schemas/MediaRef"},"type":"array","maxItems":256,"title":"Media","default":[]},"status":{"$ref":"#/components/schemas/ListingStatus","default":"ACTIVE"},"observedAt":{"type":"string","maxLength":44,"format":"date-time","title":"Observedat"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"additionalProperties":false,"type":"object","required":["channel","externalId","observedAt","provenance"],"title":"Product","description":"Represent one provider-neutral sellable item."},"ProductContent":{"properties":{"title":{"type":"string","minLength":1,"title":"Title"},"handleStem":{"type":"string","minLength":1,"pattern":"^[a-z0-9]+(-[a-z0-9]+)*$","title":"Handlestem"},"descriptionHtml":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Descriptionhtml"},"vendor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Vendor"},"productType":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Producttype"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"options":{"items":{"$ref":"#/components/schemas/ShopifyProductOption"},"type":"array","title":"Options","default":[]},"variants":{"items":{"$ref":"#/components/schemas/ProductVariantFields"},"type":"array","minItems":1,"title":"Variants"},"images":{"items":{"anyOf":[{"$ref":"#/components/schemas/ExistingShopifyFile"},{"$ref":"#/components/schemas/ShopifyRemoteImage"},{"$ref":"#/components/schemas/PostExportedImage"}]},"type":"array","title":"Images","default":[]}},"additionalProperties":false,"type":"object","required":["title","handleStem","variants"],"title":"ProductContent","description":"The editable unpublished product draft; the whole value becomes one product.create."},"ProductCreateRequest":{"properties":{"replayKey":{"type":"string","maxLength":256,"minLength":1,"title":"Replaykey"},"storeId":{"type":"string","minLength":1,"title":"Storeid"},"content":{"$ref":"#/components/schemas/ProductContent"}},"additionalProperties":false,"type":"object","required":["replayKey","storeId","content"],"title":"ProductCreateRequest","description":"Create one draft pinned to exactly one ELTA store; it carries only store_id."},"ProductFamily":{"properties":{"kind":{"type":"string","const":"PRODUCT_FAMILY","title":"Kind","description":"Node discriminator; always PRODUCT_FAMILY.","default":"PRODUCT_FAMILY"},"key":{"type":"string","title":"Key","description":"The product family's own analyzed key."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Display title of the family; null when the source states none."},"memberCount":{"type":"integer","title":"Membercount","description":"Number of products in this family."}},"type":"object","required":["key","title","memberCount"],"title":"ProductFamily","description":"A DP-derived product family with its count; members are resolved through the `VARIANT_OF` relation, never through an unscoped array."},"ProductFillRule":{"properties":{"kind":{"type":"string","const":"PRODUCT_FILL","title":"Kind","default":"PRODUCT_FILL"},"minRatio":{"type":"number","maximum":1.0,"exclusiveMinimum":0.0,"title":"Minratio"}},"additionalProperties":false,"type":"object","required":["minRatio"],"title":"ProductFillRule","description":"The product's visible pixels span at least min_ratio of the frame's longer side (Amazon ~85%)."},"ProductImagesDetailView":{"type":"string","enum":["EXPORTS"],"title":"ProductImagesDetailView","description":"What may be read in detail about one image set."},"ProductOptionValue":{"properties":{"optionName":{"type":"string","minLength":1,"title":"Optionname"},"value":{"type":"string","minLength":1,"title":"Value"}},"additionalProperties":false,"type":"object","required":["optionName","value"],"title":"ProductOptionValue","description":"One option name/value pair that places a variant in the product's options."},"ProductProposalFiling":{"properties":{"proposalId":{"type":"string","minLength":1,"title":"Proposalid"},"inboxItemId":{"type":"string","minLength":1,"title":"Inboxitemid"},"actionTypeKey":{"type":"string","minLength":1,"title":"Actiontypekey"}},"additionalProperties":false,"type":"object","required":["proposalId","inboxItemId","actionTypeKey"],"title":"ProductProposalFiling","description":"The ids of one FiledApproval this artifect keeps, and which ELTA action type it filed."},"ProductReleasedType":{"type":"string","enum":["UNIDENTIFIABLE","OLD_RELEASED","NEW_RELEASED","NEW_RELEASED_ON_OLD_ASIN"],"title":"ProductReleasedType"},"ProductSimilarType":{"type":"string","enum":["SAME_MODEL","SAME_PRODUCT_SUBCATEGORY","SAME_PRODUCT_CATEGORY_BUT_DIFFERENT_SUBCATEGORY","DIFFERENT_PRODUCT_CATEGORY"],"title":"ProductSimilarType"},"ProductSnapshot":{"properties":{"artifectRef":{"$ref":"#/components/schemas/ArtifectRef"},"storeId":{"type":"string","minLength":1,"title":"Storeid"},"account":{"$ref":"#/components/schemas/AccountRef"},"revision":{"type":"integer","minimum":1.0,"title":"Revision"},"content":{"$ref":"#/components/schemas/ProductContent"},"screening":{"$ref":"#/components/schemas/ScreeningResult"},"proposals":{"items":{"$ref":"#/components/schemas/ProductProposalFiling"},"type":"array","title":"Proposals","default":[]},"filingIntent":{"anyOf":[{"$ref":"#/components/schemas/StagedProposal"},{"type":"null"}]},"approvals":{"items":{"$ref":"#/components/schemas/ApprovalState"},"type":"array","title":"Approvals","default":[]}},"additionalProperties":false,"type":"object","required":["artifectRef","storeId","account","revision","content","screening"],"title":"ProductSnapshot","description":"The owner-visible draft at one revision, with its screen result and every filed proposal."},"ProductTypeSchema":{"properties":{"reference":{"$ref":"#/components/schemas/ProductTypeSchemaRef"},"schemaDocument":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"type":"object","title":"Schemadocument"}},"additionalProperties":false,"type":"object","required":["reference","schemaDocument"],"title":"ProductTypeSchema","description":"A resolved seller-specific definition with the pin that identifies its bytes."},"ProductTypeSchemaRef":{"properties":{"target":{"$ref":"#/components/schemas/ListingTarget"},"version":{"type":"string","minLength":1,"title":"Version"},"schemaSha256":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Schemasha256"}},"additionalProperties":false,"type":"object","required":["target","version","schemaSha256"],"title":"ProductTypeSchemaRef","description":"Pin one target to the exact seller-specific Product Type Definition version and bytes."},"ProductVariant":{"properties":{"sku":{"anyOf":[{"type":"string","maxLength":512,"minLength":1},{"type":"null"}],"title":"Sku"},"modelNumber":{"anyOf":[{"type":"string","maxLength":512,"minLength":1},{"type":"null"}],"title":"Modelnumber"},"options":{"items":{"$ref":"#/components/schemas/ProductOption"},"type":"array","maxItems":32,"title":"Options","default":[]},"ref":{"anyOf":[{"$ref":"#/components/schemas/SourceSubject"},{"type":"null"}]},"price":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}]},"available":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Available"}},"additionalProperties":false,"type":"object","title":"ProductVariant","description":"Retain the observed SKU, model number, and options of one Product variant."},"ProductVariantFields":{"properties":{"optionValues":{"items":{"$ref":"#/components/schemas/ProductOptionValue"},"type":"array","title":"Optionvalues","default":[]},"price":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Price"},"sku":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Sku"},"barcode":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Barcode"}},"additionalProperties":false,"type":"object","required":["price"],"title":"ProductVariantFields","description":"One variant sent in the same productSet call: option values, price, SKU and barcode."},"ProfileInputsAdjustment":{"properties":{"suggestedPurchasingCost":{"anyOf":[{"$ref":"#/components/schemas/SuggestedPurchasingCost"},{"type":"null"}],"description":"The seller's own purchasing cost for one benchmark ASIN; never a Keble estimate."},"acosLowerbound":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Acoslowerbound","description":"ACOS lower bound, whole percent."},"acosUpperbound":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Acosupperbound","description":"ACOS upper bound, whole percent."},"fixedLength":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Fixedlength","description":"Fixed length."},"fixedWidth":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Fixedwidth","description":"Fixed width."},"fixedHeight":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Fixedheight","description":"Fixed height."},"fixedLengthUnit":{"anyOf":[{"type":"string","enum":["cm","m","inch"]},{"type":"null"}],"title":"Fixedlengthunit","description":"Unit of the fixed size; None means cm."},"fixedWeight":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Fixedweight","description":"Fixed weight."},"fixedWeightUnit":{"anyOf":[{"type":"string","enum":["pound","ounce","kg","g"]},{"type":"null"}],"title":"Fixedweightunit","description":"Unit of the fixed weight; None means g."},"investmentDifficultyAmountThreshold":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"Entry-budget threshold."},"adjustmentType":{"type":"string","const":"PROFILE_INPUTS","title":"Adjustmenttype","default":"PROFILE_INPUTS"}},"additionalProperties":false,"type":"object","title":"ProfileInputsAdjustment","description":"Patch the seller's setup after finishing, then re-price the cohort."},"ProfitBreakdown":{"properties":{"scenarioKey":{"type":"string","title":"Scenariokey"},"role":{"$ref":"#/components/schemas/ScenarioRole"},"shippingMode":{"$ref":"#/components/schemas/ShippingMode"},"isPeakPeriod":{"type":"boolean","title":"Ispeakperiod"},"sellingPrice":{"$ref":"#/components/schemas/MinorUnitMoney"},"lines":{"items":{"$ref":"#/components/schemas/ProfitBreakdownLine"},"type":"array","title":"Lines"},"profit":{"$ref":"#/components/schemas/MinorUnitMoney"},"margin":{"type":"number","title":"Margin"},"sizing":{"$ref":"#/components/schemas/SizingDetail"}},"type":"object","required":["scenarioKey","role","shippingMode","isPeakPeriod","sellingPrice","lines","profit","margin","sizing"],"title":"ProfitBreakdown","description":"One coherent scenario's exact selling-price-to-profit waterfall."},"ProfitBreakdownLine":{"properties":{"kind":{"$ref":"#/components/schemas/ProfitLineKind"},"amount":{"$ref":"#/components/schemas/MinorUnitMoney"},"shareOfPrice":{"type":"number","title":"Shareofprice"},"source":{"$ref":"#/components/schemas/EstimateSource"},"ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ratio"},"storageDetail":{"anyOf":[{"$ref":"#/components/schemas/StorageLineDetail"},{"type":"null"}]},"firstLegDetail":{"anyOf":[{"$ref":"#/components/schemas/FirstLegLineDetail"},{"type":"null"}]}},"type":"object","required":["kind","amount","shareOfPrice","source"],"title":"ProfitBreakdownLine","description":"One settled deduction between selling price and unit profit."},"ProfitEnvelope":{"properties":{"expected":{"$ref":"#/components/schemas/ProfitBreakdown"},"optimistic":{"$ref":"#/components/schemas/ProfitBreakdown"},"pessimistic":{"$ref":"#/components/schemas/ProfitBreakdown"},"tierProbes":{"items":{"$ref":"#/components/schemas/ProfitBreakdown"},"type":"array","title":"Tierprobes"},"marginLower":{"type":"number","title":"Marginlower"},"marginUpper":{"type":"number","title":"Marginupper"},"marginBoundScenarioKeys":{"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array","maxItems":2,"minItems":2,"title":"Marginboundscenariokeys"},"profitBoundScenarioKeys":{"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array","maxItems":2,"minItems":2,"title":"Profitboundscenariokeys"}},"type":"object","required":["expected","optimistic","pessimistic","tierProbes","marginLower","marginUpper","marginBoundScenarioKeys","profitBoundScenarioKeys"],"title":"ProfitEnvelope","description":"Margin range produced by evaluating every coherent scenario."},"ProfitInputOverride":{"properties":{"asins":{"items":{"type":"string","pattern":"^[A-Z0-9]{10}$"},"type":"array","minItems":1,"title":"Asins","description":"ASINs this override applies to."},"dimensions":{"anyOf":[{"$ref":"#/components/schemas/ReportMaterialDimensionsAnswer"},{"type":"null"}],"description":"Replacement three-axis dimensions."},"weight":{"anyOf":[{"$ref":"#/components/schemas/ReportMaterialWeightAnswer"},{"type":"null"}],"description":"Replacement weight."},"unitCost":{"anyOf":[{"$ref":"#/components/schemas/ReportMaterialCostAnswer"},{"type":"null"}],"description":"Replacement purchasing unit cost bounds."}},"additionalProperties":false,"type":"object","required":["asins"],"title":"ProfitInputOverride","description":"Named ASINs whose physical or purchasing inputs are replaced."},"ProfitInputsAdjustment":{"properties":{"adjustmentType":{"type":"string","const":"PROFIT_INPUTS","title":"Adjustmenttype","default":"PROFIT_INPUTS"},"overrides":{"items":{"$ref":"#/components/schemas/ProfitInputOverride"},"type":"array","minItems":1,"title":"Overrides","description":"One override group per target ASIN set."}},"additionalProperties":false,"type":"object","required":["overrides"],"title":"ProfitInputsAdjustment","description":"Replace profit-calculator inputs, then recompute the whole report."},"ProfitLineKind":{"type":"string","enum":["PURCHASING_COST","FIRST_LEG_SHIPPING","FBA_FULFILLMENT","STORAGE","REFERRAL","VAT","ADS","RETURNS"],"title":"ProfitLineKind","description":"One deductible economic line between selling price and unit profit."},"ProgressTaskStage":{"type":"string","enum":["PENDING","SUCCESS","FAILURE"],"title":"ProgressTaskStage"},"ProgressiveReportSnapshot":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"formatVersion":{"type":"string","const":"3.0.0","title":"Formatversion","description":"Frozen V3 read-model format identity.","default":"3.0.0"},"rootTaskId":{"type":"string","title":"Roottaskid","description":"Owning keble-task identity."},"reportRevision":{"type":"integer","minimum":0.0,"title":"Reportrevision","description":"Revision this snapshot reads."},"amazonMarketplace":{"$ref":"#/components/schemas/AmazonMarketplace","description":"PRODUCT market this report actually analysed."},"completeness":{"$ref":"#/components/schemas/ReportCompleteness","description":"Completeness right now."},"taskStage":{"$ref":"#/components/schemas/ProgressTaskStage","description":"Owning task stage."},"readyUnits":{"items":{"$ref":"#/components/schemas/ReportUnitDescriptor"},"type":"array","title":"Readyunits","description":"Phases with an accepted artifact.","default":[]},"missingUnits":{"items":{"$ref":"#/components/schemas/ReportGapDescriptor"},"type":"array","title":"Missingunits","description":"Phases with an explicit typed gap.","default":[]},"conclusion":{"anyOf":[{"$ref":"#/components/schemas/ReportConclusion"},{"type":"null"}],"description":"Business verdict, when one was reached."},"terminalState":{"anyOf":[{"$ref":"#/components/schemas/ReportTerminalState"},{"type":"null"}],"description":"Operational stop state, when the run stopped."},"listings":{"anyOf":[{"$ref":"#/components/schemas/ReportListingPage"},{"type":"null"}],"description":"First cursor page of listing summaries."},"listingSummaries":{"anyOf":[{"items":{"$ref":"#/components/schemas/ReportListingSummaryView"},"type":"array"},{"type":"null"}],"title":"Listingsummaries","description":"Optional UNSLICED listing summaries for the whole committed LISTING_BUILD cohort; None on the Keble-line read."},"estimationMethodology":{"anyOf":[{"$ref":"#/components/schemas/ReportEstimationMethodologyView"},{"type":"null"}],"description":"How every material verdict was reached."},"openMaterialQuestions":{"items":{"$ref":"#/components/schemas/ReportMaterialQuestion"},"type":"array","title":"Openmaterialquestions","description":"Typed material questions awaiting an owner answer.","default":[]},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat","description":"Instant the read revision was committed."},"seoIndexable":{"type":"boolean","title":"Seoindexable","description":"Backend-owned crawlability decision.","default":false}},"type":"object","required":["rootTaskId","reportRevision","amazonMarketplace","completeness","taskStage","updatedAt"],"title":"ProgressiveReportSnapshot","description":"Everything a reader needs about a V3 report at one committed revision."},"ProposalAttribution":{"properties":{"originKind":{"type":"string","maxLength":100,"minLength":1,"title":"Originkind","description":"Opaque origin label, such as an Artifect kind."},"originRef":{"type":"string","maxLength":256,"minLength":1,"title":"Originref","description":"Origin reference, such as an Artifect id."},"reason":{"anyOf":[{"type":"string","maxLength":500,"minLength":1},{"type":"null"}],"title":"Reason","description":"Short display reason, if any."}},"additionalProperties":false,"type":"object","required":["originKind","originRef"],"title":"ProposalAttribution","description":"Why a proposal exists and which origin asked for it; display data that grants no authority."},"ProposalDecline":{"properties":{"actor":{"$ref":"#/components/schemas/StoreActorRef","description":"Verified actor that declined the proposal."},"declinedAt":{"type":"string","format":"date-time","title":"Declinedat","description":"Instant the proposal was declined."},"reason":{"anyOf":[{"type":"string","maxLength":500,"minLength":1},{"type":"null"}],"title":"Reason","description":"Display reason for declining."}},"additionalProperties":false,"type":"object","required":["actor","declinedAt"],"title":"ProposalDecline","description":"Who declined an open proposal, when, and their optional display reason."},"ProposalFiled":{"properties":{"proposal":{"$ref":"#/components/schemas/ProposalView"},"item":{"$ref":"#/components/schemas/ApprovalItem"}},"additionalProperties":false,"type":"object","required":["proposal","item"],"title":"ProposalFiled","description":"The result of filing an ELTA proposal and its SYSTEM-created approval."},"ProposalFiling":{"properties":{"proposalId":{"type":"string","minLength":1,"title":"Proposalid"},"inboxItemId":{"type":"string","minLength":1,"title":"Inboxitemid"}},"additionalProperties":false,"type":"object","required":["proposalId","inboxItemId"],"title":"ProposalFiling","description":"The two ids of one FiledApproval an artifect keeps: what to view and what to revert."},"ProposalRef":{"properties":{"source":{"type":"string","minLength":1,"title":"Source"},"id":{"type":"string","minLength":1,"title":"Id"}},"additionalProperties":false,"type":"object","required":["source","id"],"title":"ProposalRef","description":"Reference to the exact immutable proposal preview shown to a human."},"ProposalState":{"type":"string","enum":["PROPOSED","APPLYING","APPLIED","EXPIRED","DECLINED"],"title":"ProposalState","description":"Where a proposal stands in its one-time approval and apply lifecycle."},"ProposalTarget":{"type":"string","enum":["SCOPE","DIMENSIONS"],"title":"ProposalTarget","description":"What a model proposal is asked for."},"ProposalView":{"properties":{"proposal":{"$ref":"#/components/schemas/ActionProposal","description":"Stored proposal, preview or applied result."},"diffs":{"items":{"$ref":"#/components/schemas/ActionDiff"},"type":"array","title":"Diffs","description":"One derived diff per action, in batch order."}},"additionalProperties":false,"type":"object","required":["proposal","diffs"],"title":"ProposalView","description":"The response shared by every proposal route: stored proposal plus derived action diffs."},"Propose":{"properties":{"type":{"type":"string","const":"PROPOSE","title":"Type","default":"PROPOSE"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"target":{"$ref":"#/components/schemas/ProposalTarget"},"note":{"type":"string","maxLength":2000,"title":"Note","default":""}},"additionalProperties":false,"type":"object","required":["actionKey","target"],"title":"Propose","description":"Ask the model for a new proposal, steered by a note (today's REFINE answer, and add-dimension)."},"Provenance":{"properties":{"capturedAt":{"type":"string","maxLength":44,"format":"date-time","title":"Capturedat"},"sourceRequestId":{"anyOf":[{"type":"string","maxLength":1024,"minLength":1},{"type":"null"}],"title":"Sourcerequestid"},"artifactIds":{"items":{"type":"string","maxLength":512},"type":"array","maxItems":64,"title":"Artifactids","default":[]},"estimated":{"type":"boolean","title":"Estimated","default":false},"confidence":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Confidence"},"readFields":{"anyOf":[{"items":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z_]{1,64}$"},"type":"array","maxItems":128,"uniqueItems":true},{"type":"null"}],"title":"Readfields"}},"additionalProperties":false,"type":"object","required":["capturedAt"],"title":"Provenance","description":"Record non-provider-identifying capture facts attached to an entity."},"ProviderAction":{"properties":{"actionKey":{"type":"string","minLength":1,"title":"Actionkey","description":"Caller-owned key aligning outcomes with this action."},"actionTypeKey":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Actiontypekey","description":"The declared action type to perform."},"account":{"$ref":"#/components/schemas/AccountRef","description":"Provider account the change targets."},"target":{"$ref":"#/components/schemas/EntityRef"},"change":{"$ref":"#/components/schemas/JsonValue","description":"The requested change payload."},"baseVersion":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Baseversion","description":"Live token the caller based this draft on."}},"additionalProperties":false,"type":"object","required":["actionKey","actionTypeKey","account","target","change"],"title":"ProviderAction","description":"One requested provider change; its live before-value is read at apply time, not previewed."},"ProviderFailureCode":{"type":"string","enum":["INVALID_INPUT","INVALID_OUTPUT","CONTENT_REFUSED","RATE_LIMITED","UNAVAILABLE","OUTCOME_UNKNOWN","NOT_CONFIGURED"],"title":"ProviderFailureCode","description":"The finite, sanitized provider failure vocabulary (consumers never parse provider text)."},"ProviderIssue":{"properties":{"object":{"type":"string","const":"provider_issue","title":"Object","description":"Fixed tag marking this object as a provider issue.","default":"provider_issue"},"kind":{"$ref":"#/components/schemas/IssueKind","description":"Why the provider refused or failed the call."},"permission":{"anyOf":[{"$ref":"#/components/schemas/Permission"},{"type":"null"}],"description":"The missing permission; only for a permission-missing issue."},"credential":{"anyOf":[{"$ref":"#/components/schemas/Credential"},{"type":"null"}],"description":"The updatable value to renew; only for an auth-invalid issue that names one."},"retryAfter":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Retryafter","description":"When to retry a wait-style issue; none uses the default back-off."},"providerCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Providercode","description":"The provider's own code, kept for support."},"providerMessage":{"type":"string","title":"Providermessage","description":"The provider's text, kept for support; never a secret.","default":""},"resolution":{"$ref":"#/components/schemas/Resolution","description":"Who must resolve it; derived from kind and permission."}},"additionalProperties":false,"type":"object","required":["kind"],"title":"ProviderIssue","description":"A provider refusal or failure, carried as data instead of raised as an error."},"ProviderRegion":{"type":"string","enum":["NA","EU","FE"],"title":"ProviderRegion","description":"Sales region chosen before consent, mirrored by the plugin contract."},"QueryPage":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/QueryRow"},"type":"array","title":"Rows","description":"Rows in this page."},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor","description":"Continuation cursor; null on the last page."},"totalRows":{"type":"integer","minimum":0.0,"title":"Totalrows","description":"Rows matching the whole read, across all pages."},"emptyReason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emptyreason","description":"Why this page is empty and what selection or source to check."},"object":{"type":"string","const":"query_page","title":"Object","description":"Document type: aggregation query page.","default":"query_page"}},"additionalProperties":false,"type":"object","required":["rows","totalRows"],"title":"QueryPage","description":"One bounded aggregation result page, reusing the shared cursor/total contract."},"QueryRequest":{"properties":{"target":{"$ref":"#/components/schemas/QueryTarget","description":"Catalog fact family to read, or METRIC_DAYS for calculated daily values."},"storeIds":{"items":{"type":"string","minLength":1},"type":"array","title":"Storeids","description":"Stores to include; empty selects the asserted owner's stores.","default":[]},"accountIds":{"items":{"type":"string","minLength":1},"type":"array","title":"Accountids","description":"Accounts to include within those stores; empty selects all their accounts.","default":[]},"pipeline":{"items":{"$ref":"#/components/schemas/QueryStage"},"type":"array","title":"Pipeline","description":"Read-only aggregation stages over the selected logical rows."},"page":{"$ref":"#/components/schemas/PageRequest","description":"Page size and continuation cursor for this exact read.","default":{"limit":200}}},"additionalProperties":false,"type":"object","required":["target","pipeline"],"title":"QueryRequest","description":"Select a logical target and optionally narrow the authenticated owner's stores/accounts."},"QueryRow":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"type":"object"},"QueryStage":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"type":"object"},"QueryTarget":{"anyOf":[{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$"},{"type":"string","const":"METRIC_DAYS"}]},"QuoteBlock":{"properties":{"kind":{"type":"string","const":"QUOTE","title":"Kind","default":"QUOTE"},"text":{"type":"string","minLength":1,"title":"Text"}},"additionalProperties":false,"type":"object","required":["text"],"title":"QuoteBlock","description":"One pull quote or customer quote the merchant supplied."},"RadialGradient":{"properties":{"stops":{"items":{"$ref":"#/components/schemas/GradientStop"},"type":"array","maxItems":4,"minItems":2,"title":"Stops"},"gradient":{"type":"string","const":"RADIAL","title":"Gradient","default":"RADIAL"}},"additionalProperties":false,"type":"object","required":["stops"],"title":"RadialGradient","description":"A fill from the box centre to its farthest corner for a vignette or spotlight."},"RangeValue":{"properties":{"label":{"type":"string","maxLength":64,"pattern":"^[a-z][a-z0-9_]*$","title":"Label"},"low":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Low"},"high":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"High"},"evidence":{"type":"string","title":"Evidence","default":""},"references":{"items":{"$ref":"#/components/schemas/SourceReference"},"type":"array","title":"References","default":[]}},"additionalProperties":false,"type":"object","required":["label","low","high"],"title":"RangeValue","description":"One range an assessment produced for a cell, with its own evidence and references."},"RankingWindow":{"properties":{"windowType":{"$ref":"#/components/schemas/RankingWindowType"},"windowValue":{"type":"string","maxLength":10,"minLength":7,"pattern":"^\\d{4}-\\d{2}(?:-\\d{2})?$","title":"Windowvalue"}},"additionalProperties":false,"type":"object","required":["windowType","windowValue"],"title":"RankingWindow","description":"Identify one calendar ranking-board edition without a trend date span."},"RankingWindowType":{"type":"string","enum":["DAY","WEEK","MONTH"],"title":"RankingWindowType","description":"Name calendar editions for provider ranking boards, not metric periods."},"RatioCombine":{"properties":{"kind":{"type":"string","const":"ratio","title":"Kind","description":"Range combination: ratio of summed operands.","default":"ratio"},"numerator":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Numerator","description":"Metric summed for the ratio's numerator."},"denominator":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Denominator","description":"Metric summed for the ratio's denominator."}},"additionalProperties":false,"type":"object","required":["numerator","denominator"],"title":"RatioCombine","description":"Range value = sum(numerator) / sum(denominator) over the same days and entity."},"RecordAddress":{"properties":{"kind":{"$ref":"#/components/schemas/AnalyzedRecordKind"},"recordKey":{"type":"string","minLength":1,"title":"Recordkey"},"seriesWindow":{"anyOf":[{"$ref":"#/components/schemas/DateWindow"},{"type":"null"}],"description":"Inclusive date window for an opt-in record-level metric series; null requests no series."}},"additionalProperties":false,"type":"object","required":["kind","recordKey"],"title":"RecordAddress","description":"The ONE public record address: one analyzed record's kind and key."},"RecordDetail":{"properties":{"object":{"type":"string","const":"record_detail","title":"Object","description":"Public object discriminator."},"recordKind":{"$ref":"#/components/schemas/AnalyzedRecordKind","description":"Record family."},"recordKey":{"type":"string","title":"Recordkey","description":"Stable record key."},"channel":{"anyOf":[{"$ref":"#/components/schemas/Channel"},{"type":"null"}],"description":"Source channel, when applicable."},"externalId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Externalid","description":"Channel-native id of the source subject (the ASIN of an Amazon product), when stored."},"market":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"title":"Market","description":"ISO 3166-1 alpha-2 market of the source subject, when stored."},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Readable display label, when known."},"relations":{"items":{"$ref":"#/components/schemas/RelationRef"},"type":"array","title":"Relations","description":"Observed relations to other served nodes.","default":[]},"unlinkedMentions":{"items":{"$ref":"#/components/schemas/UnlinkedMention"},"type":"array","maxItems":16,"title":"Unlinkedmentions","description":"Claims of the record that name an entity no held record matched; at most 16.","default":[]},"fields":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"}]},"type":"object","title":"Fields","description":"Authorized record scalar fields."},"concepts":{"items":{"$ref":"#/components/schemas/ConceptRef"},"type":"array","title":"Concepts","description":"Concepts attached to the record."},"metrics":{"items":{"$ref":"#/components/schemas/MetricObservation"},"type":"array","maxItems":128,"title":"Metrics","description":"Latest typed observation heads for this record; at most 128.","default":[]},"series":{"items":{"$ref":"#/components/schemas/MetricObservation"},"type":"array","maxItems":32,"title":"Series","description":"Opt-in dated observations for the requested window; at most 32 points.","default":[]}},"type":"object","required":["object","recordKind","recordKey","channel","fields","concepts"],"title":"RecordDetail","description":"A public detail object for one analyzed record."},"RectGeometry":{"properties":{"kind":{"type":"string","const":"RECT","title":"Kind","default":"RECT"},"cornerRadius":{"type":"number","minimum":0.0,"title":"Cornerradius","default":0.0}},"additionalProperties":false,"type":"object","title":"RectGeometry","description":"A rectangle filling the box; corner_radius in pixels (badges, panels)."},"RedeemCodeRefusalReason":{"type":"string","enum":["INVALID_CODE","LEGACY_TOKEN","DISABLED","UPDATE_LOCKED","MAX_CONSUME","ACTOR_LIMIT","IDENTITY_CONFLICT","RELEASED","GRANT_CHANGED","TRIAL_NOT_ELIGIBLE"],"title":"RedeemCodeRefusalReason","description":"Finite refusal facts for code updates, redemption and trial application."},"ReferencesDetailValue":{"properties":{"object":{"type":"string","const":"references_detail_value","title":"Object","default":"references_detail_value"},"kind":{"type":"string","const":"REFERENCES","title":"Kind","default":"REFERENCES"},"key":{"type":"string","title":"Key"},"references":{"items":{"$ref":"#/components/schemas/SourceReference"},"type":"array","title":"References","default":[]}},"additionalProperties":false,"type":"object","required":["key"],"title":"ReferencesDetailValue","description":"A REFERENCES detail row: the cell's deduplicated source references."},"ReferencesRow":{"properties":{"kind":{"type":"string","const":"REFERENCES","title":"Kind","default":"REFERENCES"}},"additionalProperties":false,"type":"object","title":"ReferencesRow","description":"Every source reference of the cell's assessments and items, deduplicated."},"Refusal":{"properties":{"code":{"$ref":"#/components/schemas/RefusalCode","description":"Stable refusal code."},"field":{"anyOf":[{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z_]{1,64}$"},{"type":"string","const":"recordKey"},{"type":"null"}],"title":"Field","description":"Request field the refusal concerns; null when it concerns the whole request."},"detail":{"type":"string","title":"Detail","description":"Safe explanation of the refusal."}},"type":"object","required":["code","detail"],"title":"Refusal","description":"One typed refusal: the code, the request field it concerns, and one DP-worded sentence (K-26, P5 C-3)."},"RefusalCode":{"type":"string","enum":["EDGE_MISSING","EDGE_DISABLED","GROW_KIND_MISMATCH","ANALYZED_BELOW_LIVE","DERIVED_KIND_NEEDS_ANALYZED","WINDOW_CATEGORY_REQUIRED","MOTIF_PRESET_INVALID","EXCLUDE_KIND_MISMATCH","TEXT_FROM_UNSUPPORTED","PUBLISHED_TARGET_IDS_SET","BOUND_OUT_OF_RANGE","PLAN_TOO_LARGE","UNBUILDABLE_QUERY","PUBLISHED_PRESET_SET","CHANNEL_REQUIRED","LEG_UNAVAILABLE","INVALID_REFERENCE","SOURCE_REJECTED_REQUEST","UNSUPPORTED_QUESTION","VALIDATION_EXHAUSTED","DATA_CHANGED","INVALID_CURSOR","NOT_AVAILABLE"],"title":"RefusalCode","description":"THE ONE refusal vocabulary (K-26, S-29, D-07): every way DP declines to serve a request or a plan as asked, in a code an agent can act on."},"RelationHop":{"properties":{"relation":{"$ref":"#/components/schemas/AnalyzedRelationKind","description":"The relation this hop traverses."},"fromKey":{"type":"string","title":"Fromkey","description":"Analyzed key of the hop's subject node."},"toKey":{"type":"string","title":"Tokey","description":"Analyzed key of the hop's object node."}},"type":"object","required":["relation","fromKey","toKey"],"title":"RelationHop","description":"ONE typed step of a relation path, so an answer can say HOW two records were connected instead of asserting that they are."},"RelationRef":{"properties":{"stance":{"anyOf":[{"$ref":"#/components/schemas/ClaimStance"},{"type":"null"}],"description":"What the source item does toward the named entity in the cited claim; null when no claim is cited, the claim predates mention capture, or (on a relation) the edge's basis is SIMILAR (its claim names no such record)."},"mainSubject":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Mainsubject","description":"Whether the cited claim names what the source item mainly promotes or is about; null when stance is null."},"emotion":{"anyOf":[{"$ref":"#/components/schemas/ClaimEmotion"},{"type":"null"}],"description":"How the source item feels about the named entity in the cited claim, STRONGLY_NEGATIVE to STRONGLY_POSITIVE; null when stance is null."},"phrase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phrase","description":"The source item's own words showing how it brings the named entity up, from the cited claim; null when not found verbatim, visual only, captured before mention capture, (on a relation) the basis is SIMILAR, or no claim is cited."},"relation":{"$ref":"#/components/schemas/AnalyzedRelationKind","description":"Canonical relation joining the record to its other end."},"direction":{"type":"string","enum":["OUT","IN"],"title":"Direction","description":"Direction of the relation relative to the record: OUT or IN."},"other":{"$ref":"#/components/schemas/NodeRef","description":"Scoped reference to the node at the relation's other end."},"otherLabel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Otherlabel","description":"Readable label of the related node, when known."},"otherRecordKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Otherrecordkey","description":"Analyzed record key of the related node when served."},"evidence":{"type":"string","title":"Evidence","description":"Stored citation that supports the relation."},"basis":{"$ref":"#/components/schemas/EvidenceBasis","description":"Evidence basis of this relation: RECORDED, MENTIONED or SIMILAR."},"placements":{"items":{"$ref":"#/components/schemas/SearchPlacement"},"type":"array","maxItems":64,"title":"Placements","description":"Display placements carried by a RANKED_FOR relation; empty otherwise.","default":[]},"metrics":{"items":{"$ref":"#/components/schemas/MetricObservation"},"type":"array","maxItems":128,"title":"Metrics","description":"Metric observations carried by any relation kind (S-08).","default":[]}},"type":"object","required":["relation","direction","other","evidence","basis"],"title":"RelationRef","description":"One typed relation shared by analyzed details and public node results."},"RelativeTargetBidChange":{"properties":{"kind":{"type":"string","const":"target_bid_adjustment","title":"Kind","default":"target_bid_adjustment"},"percentChange":{"anyOf":[{"type":"number","exclusiveMinimum":-100.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Percentchange"}},"additionalProperties":false,"type":"object","required":["percentChange"],"title":"RelativeTargetBidChange","description":"A percentage change of the row's observed keyword, target or default bid."},"RemoveBlock":{"properties":{"action":{"type":"string","const":"REMOVE_BLOCK","title":"Action","default":"REMOVE_BLOCK"},"sectionKey":{"type":"string","pattern":"^keble-[a-z0-9][a-z0-9-]{0,56}$","title":"Sectionkey"},"blockKey":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,62}$","title":"Blockkey"}},"additionalProperties":false,"type":"object","required":["sectionKey","blockKey"],"title":"RemoveBlock","description":"Remove one block from a section."},"RemoveDesign":{"properties":{"action":{"type":"string","const":"REMOVE_DESIGN","title":"Action","default":"REMOVE_DESIGN"},"designId":{"type":"string","title":"Designid"}},"additionalProperties":false,"type":"object","required":["designId"],"title":"RemoveDesign","description":"Remove any board object; HAS_VARIANTS while a variant or plan still names it."},"RemoveItems":{"properties":{"type":{"type":"string","const":"REMOVE_ITEMS","title":"Type","default":"REMOVE_ITEMS"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"keys":{"items":{"type":"string","maxLength":200,"minLength":1},"type":"array","minItems":1,"title":"Keys"}},"additionalProperties":false,"type":"object","required":["actionKey","keys"],"title":"RemoveItems","description":"Delete items; their placements go with them (a placement of a missing item reads as nothing)."},"RemoveLayers":{"properties":{"action":{"type":"string","const":"REMOVE_LAYERS","title":"Action","default":"REMOVE_LAYERS"},"designId":{"type":"string","title":"Designid"},"layerIds":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Layerids"}},"additionalProperties":false,"type":"object","required":["designId","layerIds"],"title":"RemoveLayers","description":"Remove layers (and a group's children with it)."},"RemoveScope":{"type":"string","enum":["ELTA_CREATED","ANY_WITH_SNAPSHOT"],"title":"RemoveScope","description":"The targets a REMOVE action is declared to be allowed to delete."},"RemoveSection":{"properties":{"action":{"type":"string","const":"REMOVE_SECTION","title":"Action","default":"REMOVE_SECTION"},"sectionKey":{"type":"string","pattern":"^keble-[a-z0-9][a-z0-9-]{0,56}$","title":"Sectionkey"}},"additionalProperties":false,"type":"object","required":["sectionKey"],"title":"RemoveSection","description":"Remove one section from the document; publish then removes its placement (D-02)."},"RenderFormat":{"type":"string","enum":["JPEG","PNG","WEBP"],"title":"RenderFormat","description":"Export encodings the stores accept and we produce (WEBP: agent previews and owner downloads)."},"ReorderViews":{"properties":{"type":{"type":"string","const":"REORDER_VIEWS","title":"Type","default":"REORDER_VIEWS"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"viewer":{"$ref":"#/components/schemas/ViewerRef"},"expectedRevision":{"type":"integer","minimum":0.0,"title":"Expectedrevision"},"viewIds":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Viewids"}},"additionalProperties":false,"type":"object","required":["actionKey","viewer","expectedRevision","viewIds"],"title":"ReorderViews","description":"Put the viewer's saved views in a new order (every existing view id, once)."},"ReplacePost":{"properties":{"edit":{"type":"string","const":"REPLACE_POST","title":"Edit","default":"REPLACE_POST"},"postKey":{"type":"string","minLength":1,"title":"Postkey"},"post":{"$ref":"#/components/schemas/ComposedPost"}},"additionalProperties":false,"type":"object","required":["postKey","post"],"title":"ReplacePost","description":"Replace one post's composed content."},"ReportAdjudication":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"candidate":{"$ref":"#/components/schemas/ReportAdjudicationCandidate","description":"The single outcome chosen from the closed candidate set."},"reasonCode":{"anyOf":[{"$ref":"#/components/schemas/ReportReasonCode"},{"type":"null"}],"description":"Closed-set reason for a concluding candidate; None for CONTINUE or CONCLUDE_SUITABLE."},"userReasoning":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Userreasoning","description":"Reader-facing justification of the choice."},"evidenceRefs":{"items":{"$ref":"#/components/schemas/ReportEvidenceRef"},"type":"array","title":"Evidencerefs","description":"Citations into accepted artifacts.","default":[]},"overruledDissent":{"type":"string","title":"Overruleddissent","description":"What the losing analysis argued and why it was overruled.","default":""},"proseWithheld":{"type":"boolean","title":"Prosewithheld","description":"True only where a public read withheld this adjudication's prose.","default":false}},"type":"object","required":["candidate","userReasoning"],"title":"ReportAdjudication","description":"The adjudicator's structured choice between the two analyses."},"ReportAdjudicationCandidate":{"type":"string","enum":["CONTINUE","CONCLUDE_SUITABLE","CONCLUDE_NOT_SUITABLE","CONCLUDE_NOT_DETERMINABLE"],"title":"ReportAdjudicationCandidate","description":"The closed set of outcomes an adjudicator may choose."},"ReportAnalystFinding":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"headline":{"type":"string","minLength":1,"title":"Headline","description":"Short headline of the finding."},"reasoning":{"type":"string","minLength":1,"title":"Reasoning","description":"Why the cited evidence produces this finding."},"evidenceRefs":{"items":{"$ref":"#/components/schemas/ReportEvidenceRef"},"type":"array","title":"Evidencerefs","description":"Citations into accepted artifacts.","default":[]}},"type":"object","required":["headline","reasoning"],"title":"ReportAnalystFinding","description":"One structured finding from a risk or opportunity analyst."},"ReportAnalystRole":{"type":"string","enum":["RISK","OPPORTUNITY","ADJUDICATOR"],"title":"ReportAnalystRole","description":"Which independently prompted role produced a structured analysis."},"ReportClosureKind":{"type":"string","enum":["EARLY","FINAL"],"title":"ReportClosureKind","description":"Whether the report closed before or after every required phase ran."},"ReportCohortBandCount":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"band":{"$ref":"#/components/schemas/ReportCohortMarginBand","description":"The margin band."},"count":{"type":"integer","minimum":0.0,"title":"Count","description":"Members in the band."}},"type":"object","required":["band","count"],"title":"ReportCohortBandCount","description":"How many members fall into ONE margin band."},"ReportCohortBrandAge":{"type":"string","enum":["NEW","OLD","UNKNOWN"],"title":"ReportCohortBrandAge","description":"Whether a brand entered the analysed market recently."},"ReportCohortBrandRow":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"brand":{"type":"string","minLength":1,"title":"Brand","description":"Provider brand."},"brandAge":{"$ref":"#/components/schemas/ReportCohortBrandAge","description":"NEW, OLD or UNKNOWN."},"enteredAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Enteredat","description":"Earliest population release of the brand."},"memberCount":{"type":"integer","minimum":1.0,"title":"Membercount"},"newReleaseCount":{"type":"integer","minimum":0.0,"title":"Newreleasecount"},"profitableNewReleaseCount":{"type":"integer","minimum":0.0,"title":"Profitablenewreleasecount"},"lead":{"$ref":"#/components/schemas/ReportCohortMemberRow","description":"Member with the highest monthly units (None last, then ASIN)."}},"type":"object","required":["brand","brandAge","memberCount","newReleaseCount","profitableNewReleaseCount","lead"],"title":"ReportCohortBrandRow","description":"ONE brand of the population with its lead product."},"ReportCohortBrandScope":{"type":"string","enum":["ALL","NEW_BRANDS","OLD_BRANDS"],"title":"ReportCohortBrandScope","description":"Which brands one brand-scope summary covers."},"ReportCohortBrandScopeView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"scope":{"$ref":"#/components/schemas/ReportCohortBrandScope","description":"Which brands are covered."},"brandCount":{"type":"integer","minimum":0.0,"title":"Brandcount"},"brandNames":{"items":{"type":"string"},"type":"array","title":"Brandnames","default":[]},"brandsWithNewReleaseCount":{"type":"integer","minimum":0.0,"title":"Brandswithnewreleasecount"},"newReleaseCount":{"type":"integer","minimum":0.0,"title":"Newreleasecount"},"profitableNewReleaseCount":{"type":"integer","minimum":0.0,"title":"Profitablenewreleasecount"},"notProfitableNewReleaseCount":{"type":"integer","minimum":0.0,"title":"Notprofitablenewreleasecount"},"unresolvedNewReleaseCount":{"type":"integer","minimum":0.0,"title":"Unresolvednewreleasecount"},"profitableNewReleasedCount":{"type":"integer","minimum":0.0,"title":"Profitablenewreleasedcount"},"profitableNewReleasedOnOldAsinCount":{"type":"integer","minimum":0.0,"title":"Profitablenewreleasedonoldasincount"},"newReleaseSuccessRate":{"$ref":"#/components/schemas/ReportSuccessRate","description":"Profitable / determinate new releases."},"newReleaseFailureRate":{"$ref":"#/components/schemas/ReportSuccessRate","description":"Not profitable / determinate new releases."},"profitableBrandNames":{"items":{"type":"string"},"type":"array","title":"Profitablebrandnames","description":"Brands with at least one profitable new release.","default":[]},"notProfitableBrandNames":{"items":{"type":"string"},"type":"array","title":"Notprofitablebrandnames","description":"Brands with at least one not-profitable new release.","default":[]},"successByBrand":{"items":{"$ref":"#/components/schemas/ReportCohortBrandSlice"},"type":"array","title":"Successbybrand","description":"Profitable new releases: top brands, then OTHER.","default":[]},"failureByBrand":{"items":{"$ref":"#/components/schemas/ReportCohortBrandSlice"},"type":"array","title":"Failurebybrand","description":"Not-profitable new releases: top brands, then OTHER.","default":[]}},"type":"object","required":["scope","brandCount","brandsWithNewReleaseCount","newReleaseCount","profitableNewReleaseCount","notProfitableNewReleaseCount","unresolvedNewReleaseCount","profitableNewReleasedCount","profitableNewReleasedOnOldAsinCount","newReleaseSuccessRate","newReleaseFailureRate"],"title":"ReportCohortBrandScopeView","description":"New-release outcomes of the brands in ONE brand scope."},"ReportCohortBrandSlice":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"brand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand","description":"Brand; None = OTHER."},"count":{"type":"integer","minimum":0.0,"title":"Count","description":"New releases in the slice."},"otherBrands":{"items":{"type":"string"},"type":"array","title":"Otherbrands","description":"Brands folded into the OTHER slice.","default":[]}},"type":"object","required":["count"],"title":"ReportCohortBrandSlice","description":"One donut slice of new releases by brand."},"ReportCohortMarginBand":{"type":"string","enum":["BELOW_MINUS_10","MINUS_10_TO_0","ZERO_TO_10","TEN_TO_20","TWENTY_TO_30","THIRTY_TO_40","FORTY_PLUS","OTHER"],"title":"ReportCohortMarginBand","description":"One [gte, lt) band of the expected-scenario margin ratio, or OTHER."},"ReportCohortMarginDistribution":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"populationCount":{"type":"integer","minimum":0.0,"title":"Populationcount","description":"Members partitioned."},"byResolvedSales":{"items":{"$ref":"#/components/schemas/ReportCohortBandCount"},"type":"array","title":"Byresolvedsales","description":"OTHER = no margin OR an unresolved sale; 8 bands in order."},"byKnownMargin":{"items":{"$ref":"#/components/schemas/ReportCohortBandCount"},"type":"array","title":"Byknownmargin","description":"OTHER = no margin only; 8 bands in order."}},"type":"object","required":["populationCount","byResolvedSales","byKnownMargin"],"title":"ReportCohortMarginDistribution","description":"The margin-band histogram of one member population, under two rules."},"ReportCohortMemberRow":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"economicListingKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Economiclistingkey","description":"Internal listing identity; owner reads only."},"publicListingHandle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publiclistinghandle","description":"Opaque public listing handle; public reads only."},"asin":{"type":"string","minLength":1,"title":"Asin","description":"DISPLAY ONLY provider ASIN."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Provider title."},"brand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand","description":"Provider brand."},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Imageurl","description":"Primary image."},"ratingInt":{"anyOf":[{"type":"integer","maximum":50.0,"minimum":0.0},{"type":"null"}],"title":"Ratingint","description":"Star rating in tenths (0-50)."},"reviewCount":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Reviewcount","description":"Provider review count."},"releasedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Releasedat","description":"Credible observed release instant."},"releasedType":{"anyOf":[{"$ref":"#/components/schemas/ProductReleasedType"},{"type":"null"}],"description":"Retained lifecycle classification."},"isProfitable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isprofitable","description":"The report's profitable flag; None unresolved."},"sellingPrice":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"Expected-scenario selling price."},"monthlySold":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Monthlysold","description":"Latest observed monthly units."},"monthlyRevenue":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"Selling price x monthly units."},"expectedProfit":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"Expected-scenario unit profit."},"monthlyProfit":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"Expected unit profit x monthly units."},"margin":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Margin","description":"Expected-scenario margin ratio."},"profitableCostBasis":{"anyOf":[{"$ref":"#/components/schemas/ReportPurchasingCostProvenance"},{"type":"null"}],"description":"Purchase-cost provenance the profitable flag was priced with."},"economicsCostBasis":{"anyOf":[{"$ref":"#/components/schemas/ReportPurchasingCostProvenance"},{"type":"null"}],"description":"Purchase-cost provenance the expected scenario used."},"profitWithheld":{"type":"boolean","title":"Profitwithheld","description":"True only where a public read withholds per-row profit.","default":false}},"type":"object","required":["asin"],"title":"ReportCohortMemberRow","description":"ONE competitor as every cohort table, card and brand lead shows it."},"ReportCohortPeriodCount":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"periodStart":{"type":"string","format":"date-time","title":"Periodstart","description":"Inclusive UTC period start."},"periodEnd":{"type":"string","format":"date-time","title":"Periodend","description":"Exclusive UTC period end."},"newProfitable":{"type":"integer","minimum":0.0,"title":"Newprofitable"},"newNotProfitable":{"type":"integer","minimum":0.0,"title":"Newnotprofitable"},"newUnresolved":{"type":"integer","minimum":0.0,"title":"Newunresolved"},"newOnOldProfitable":{"type":"integer","minimum":0.0,"title":"Newonoldprofitable"},"newOnOldNotProfitable":{"type":"integer","minimum":0.0,"title":"Newonoldnotprofitable"},"newOnOldUnresolved":{"type":"integer","minimum":0.0,"title":"Newonoldunresolved"},"marginBands":{"items":{"$ref":"#/components/schemas/ReportCohortBandCount"},"type":"array","title":"Marginbands","description":"Resolved-sales bands; empty before economics.","default":[]}},"type":"object","required":["periodStart","periodEnd","newProfitable","newNotProfitable","newUnresolved","newOnOldProfitable","newOnOldNotProfitable","newOnOldUnresolved"],"title":"ReportCohortPeriodCount","description":"New releases released in ONE UTC calendar period, by type and outcome."},"ReportCohortRankTable":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"key":{"$ref":"#/components/schemas/ReportCohortRankTableKey","description":"Which ranking this is."},"populationCount":{"type":"integer","minimum":0.0,"title":"Populationcount","description":"Full filtered population."},"rows":{"items":{"$ref":"#/components/schemas/ReportCohortMemberRow"},"type":"array","title":"Rows","description":"Ranked rows with a known monthly profit.","default":[]},"profitWithheld":{"type":"boolean","title":"Profitwithheld","description":"True only where a public read withheld this table's rows.","default":false}},"type":"object","required":["key","populationCount"],"title":"ReportCohortRankTable","description":"One profit ranking: the top rows plus the size of the ranked population."},"ReportCohortRankTableKey":{"type":"string","enum":["PROFITABLE_ALL","NOT_PROFITABLE_ALL","PROFITABLE_NEW","NOT_PROFITABLE_NEW"],"title":"ReportCohortRankTableKey","description":"Which profit ranking one rank table is."},"ReportCohortStandoutCase":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"row":{"$ref":"#/components/schemas/ReportCohortMemberRow","description":"The pick's listing representative."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Why this product stands out; None on owner-costed public reads."}},"type":"object","required":["row","reason"],"title":"ReportCohortStandoutCase","description":"ONE STANDOUT pick as a case card: its listing row plus the agent's reason."},"ReportCohortSubjectDisplay":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"asin":{"type":"string","minLength":1,"title":"Asin","description":"DISPLAY ONLY subject ASIN."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Provider title."},"brand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand","description":"Provider brand."},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Imageurl","description":"Primary image."},"ratingInt":{"anyOf":[{"type":"integer","maximum":50.0,"minimum":0.0},{"type":"null"}],"title":"Ratingint","description":"Star rating in tenths (0-50)."},"reviewCount":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Reviewcount","description":"Provider review count."}},"type":"object","required":["asin"],"title":"ReportCohortSubjectDisplay","description":"How the report's OWN product looks on the cover: display facts only (F10)."},"ReportCompactAbsence":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"section":{"$ref":"#/components/schemas/ReportCompactSection","description":"Section that is unavailable."},"reason":{"$ref":"#/components/schemas/ReportCompactAbsenceReason","description":"Typed reason it is absent."},"detail":{"type":"string","title":"Detail","description":"Reader-facing explanation, safe to display."}},"type":"object","required":["section","reason","detail"],"title":"ReportCompactAbsence","description":"One requested section that is explicitly unavailable, with its reason."},"ReportCompactAbsenceReason":{"type":"string","enum":["NOT_BUILT_YET","WAITING_FOR_INPUT","FAILED","NOT_SUPPORTED_BY_FORMAT"],"title":"ReportCompactAbsenceReason","description":"Why a requested section is not available as data."},"ReportCompactAnalysis":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"role":{"$ref":"#/components/schemas/ReportAnalystRole","description":"Which analyst produced this."},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary","description":"One-paragraph summary; None only when prose_withheld."},"proseWithheld":{"type":"boolean","title":"Prosewithheld","description":"True only where a public owner-costed read withheld this prose.","default":false},"findings":{"items":{"$ref":"#/components/schemas/ReportCompactFinding"},"type":"array","title":"Findings","description":"Structured findings, strongest first.","default":[]},"missingEvidence":{"items":{"type":"string"},"type":"array","title":"Missingevidence","description":"Evidence this analyst says it lacked.","default":[]}},"type":"object","required":["role","summary"],"title":"ReportCompactAnalysis","description":"One independently prompted analyst's structured output."},"ReportCompactCitation":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"phase":{"$ref":"#/components/schemas/ReportPhase","description":"Phase whose accepted artifact is cited."},"claim":{"type":"string","title":"Claim","description":"The statement the artifact is cited for."},"strength":{"$ref":"#/components/schemas/ReportEvidenceStrength","description":"How strongly it supports."}},"type":"object","required":["phase","claim","strength"],"title":"ReportCompactCitation","description":"One citation into an accepted artifact, without its artifact key."},"ReportCompactConclusion":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"verdict":{"$ref":"#/components/schemas/ReportVerdict","description":"The business verdict reached."},"reasonCode":{"anyOf":[{"$ref":"#/components/schemas/ReportReasonCode"},{"type":"null"}],"description":"Closed-set reason; None only for SUITABLE."},"checkpoint":{"$ref":"#/components/schemas/ReportPhase","description":"Phase the verdict was reached at."},"policyRevision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Policyrevision","description":"Frozen policy revision; owner reads only, never public."},"userReasoning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Userreasoning","description":"Reader-facing explanation; None only when prose_withheld."},"proseWithheld":{"type":"boolean","title":"Prosewithheld","description":"The adjudication's D-3 flag: True only where a public read of an owner-costed report withheld its prose.","default":false},"isPartial":{"type":"boolean","title":"Ispartial","description":"Whether the report closed before every phase ran."}},"type":"object","required":["verdict","checkpoint","userReasoning","isPartial"],"title":"ReportCompactConclusion","description":"The report's verdict in the smallest form a tool can reason over."},"ReportCompactCorroboration":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"kind":{"$ref":"#/components/schemas/ReportCorroborationKind","description":"Which evidence class this is."},"statement":{"type":"string","title":"Statement","description":"The concrete claim being made."},"sourceRef":{"type":"string","title":"Sourceref","description":"Where the claim was observed."},"observedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Observedat","description":"Instant the claim was observed, when known."}},"type":"object","required":["kind","statement","sourceRef"],"title":"ReportCompactCorroboration","description":"One piece of evidence supporting or extending the lifecycle window."},"ReportCompactEconomics":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"determinateListingCount":{"type":"integer","minimum":0.0,"title":"Determinatelistingcount","description":"Listings with a defensible profit envelope."},"profitableListingCount":{"type":"integer","minimum":0.0,"title":"Profitablelistingcount","description":"Listings whose expected profit is positive."},"unresolvedListingCount":{"type":"integer","minimum":0.0,"title":"Unresolvedlistingcount","description":"Listings that could not be costed."},"successRates":{"anyOf":[{"$ref":"#/components/schemas/ReportSuccessRateProjection"},{"type":"null"}],"description":"Three-denominator market success rates."}},"type":"object","required":["determinateListingCount","profitableListingCount","unresolvedListingCount"],"title":"ReportCompactEconomics","description":"Market-level economics as a tool sees it."},"ReportCompactEstimation":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"verdictCounts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Verdictcounts","description":"EstimateSource value -> member count."},"unresolvedCount":{"type":"integer","minimum":0.0,"title":"Unresolvedcount","description":"Members with unresolved inputs."},"policyFingerprint":{"type":"string","title":"Policyfingerprint","description":"Digest of thresholds plus policies."}},"type":"object","required":["unresolvedCount","policyFingerprint"],"title":"ReportCompactEstimation","description":"How the report's material inputs were resolved."},"ReportCompactFinding":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"headline":{"type":"string","title":"Headline","description":"Short headline of the finding."},"reasoning":{"type":"string","title":"Reasoning","description":"Reader-facing reasoning for the finding."},"citations":{"items":{"$ref":"#/components/schemas/ReportCompactCitation"},"type":"array","title":"Citations","description":"Citations supporting this finding.","default":[]}},"type":"object","required":["headline","reasoning"],"title":"ReportCompactFinding","description":"One analyst finding with the citations it rests on."},"ReportCompactGap":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"phase":{"$ref":"#/components/schemas/ReportPhase","description":"Phase with no accepted artifact."},"kind":{"$ref":"#/components/schemas/ReportGapKind","description":"Typed reason this phase is missing."},"detail":{"type":"string","title":"Detail","description":"Reader-facing explanation."},"resumePhase":{"anyOf":[{"$ref":"#/components/schemas/ReportPhase"},{"type":"null"}],"description":"Phase a resumable gap restarts from."}},"type":"object","required":["phase","kind","detail"],"title":"ReportCompactGap","description":"One explicit hole a tool must report rather than fill in."},"ReportCompactLifecycle":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"verdict":{"$ref":"#/components/schemas/ReportLifecycleVerdict","description":"Lifecycle position verdict."},"windowMonths":{"type":"integer","minimum":1.0,"title":"Windowmonths","description":"Frozen lifecycle window in months."},"earliestEntryAgeMonths":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Earliestentryagemonths","description":"Whole months since the earliest entry."},"corroborationCount":{"type":"integer","minimum":0.0,"title":"Corroborationcount","description":"Valid corroboration items supporting an extension."},"reasoning":{"type":"string","title":"Reasoning","description":"Deterministic explanation of the verdict."}},"type":"object","required":["verdict","windowMonths","corroborationCount","reasoning"],"title":"ReportCompactLifecycle","description":"The market's lifecycle position as a tool sees it."},"ReportCompactListing":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"economicListingKey":{"type":"string","title":"Economiclistingkey","description":"Operational listing identity."},"representativeAsin":{"type":"string","title":"Representativeasin","description":"DISPLAY ONLY provider ASIN."},"memberAsins":{"items":{"type":"string"},"type":"array","title":"Memberasins","description":"DISPLAY ONLY member ASINs, for external lookup.","default":[]},"outcome":{"$ref":"#/components/schemas/ReportListingOutcome","description":"Listing-level verdict."},"memberCount":{"type":"integer","minimum":1.0,"title":"Membercount","description":"Members in the listing."},"familyEntryAgeMonths":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Familyentryagemonths","description":"Whole months since the family entered."},"expectedProfit":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"Expected profit; None when not costed."},"marginLow":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Marginlow","description":"Lower margin bound; None when not costed."},"marginHigh":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Marginhigh","description":"Upper margin bound; None when not costed."}},"type":"object","required":["economicListingKey","representativeAsin","outcome","memberCount"],"title":"ReportCompactListing","description":"One comparable product as a tool sees it."},"ReportCompactMaterialGap":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"memberKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Memberkey","description":"Member the gap belongs to, when member-scoped."},"economicListingKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Economiclistingkey","description":"Listing the gap belongs to, when listing-scoped."},"reason":{"type":"string","title":"Reason","description":"Typed upstream gap reason."},"detail":{"type":"string","title":"Detail","description":"Reader-facing explanation."}},"type":"object","required":["reason","detail"],"title":"ReportCompactMaterialGap","description":"One member whose material inputs could not be resolved, and why."},"ReportCompactQuestion":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"economicListingKey":{"type":"string","title":"Economiclistingkey","description":"Listing the question is about."},"fields":{"items":{"$ref":"#/components/schemas/ReportMaterialField"},"type":"array","title":"Fields","description":"Which material inputs are being asked for.","default":[]},"reason":{"type":"string","title":"Reason","description":"Why the answer is needed."}},"type":"object","required":["economicListingKey","reason"],"title":"ReportCompactQuestion","description":"One material question this revision is waiting on an owner to answer."},"ReportCompactSection":{"type":"string","enum":["CONCLUSION","LISTINGS","LIFECYCLE","ESTIMATION","ECONOMICS","GAPS"],"title":"ReportCompactSection","description":"The sections an agent query tool may ask a report for."},"ReportCompactView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"version":{"$ref":"#/components/schemas/ReportVersion","description":"STORED report format identity."},"rootTaskId":{"type":"string","title":"Roottaskid","description":"Owning keble-task identity."},"revision":{"type":"integer","minimum":0.0,"title":"Revision","description":"Revision read; 0 for a V2 report."},"completeness":{"$ref":"#/components/schemas/ReportCompleteness","description":"Completeness at read time."},"amazonMarketplace":{"anyOf":[{"$ref":"#/components/schemas/AmazonMarketplace"},{"type":"null"}],"description":"Product-market the report analysed."},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updatedat","description":"Instant the read revision was committed."},"conclusion":{"anyOf":[{"$ref":"#/components/schemas/ReportCompactConclusion"},{"type":"null"}],"description":"Verdict, when one was reached."},"listings":{"items":{"$ref":"#/components/schemas/ReportCompactListing"},"type":"array","title":"Listings","description":"Comparable products the report covered.","default":[]},"lifecycle":{"anyOf":[{"$ref":"#/components/schemas/ReportCompactLifecycle"},{"type":"null"}],"description":"Market lifecycle position, when built."},"estimation":{"anyOf":[{"$ref":"#/components/schemas/ReportCompactEstimation"},{"type":"null"}],"description":"Material-input resolution, when built."},"economics":{"anyOf":[{"$ref":"#/components/schemas/ReportCompactEconomics"},{"type":"null"}],"description":"Market economics, when built."},"gaps":{"items":{"$ref":"#/components/schemas/ReportCompactGap"},"type":"array","title":"Gaps","description":"Explicit holes still open in the report.","default":[]},"absences":{"items":{"$ref":"#/components/schemas/ReportCompactAbsence"},"type":"array","title":"Absences","description":"Sections that are explicitly unavailable.","default":[]}},"type":"object","required":["version","rootTaskId","revision","completeness"],"title":"ReportCompactView","description":"Everything an agent query tool may read about one report."},"ReportCompleteness":{"type":"string","enum":["PROCESSING","WAITING_FOR_INPUT","PARTIAL_CONCLUDED","FULL","CANCELLED","FAILED_PARTIAL"],"title":"ReportCompleteness","description":"How complete the report is RIGHT NOW, as an explicit persisted fact."},"ReportConclusion":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"verdict":{"$ref":"#/components/schemas/ReportVerdict","description":"The business verdict reached."},"checkpoint":{"$ref":"#/components/schemas/ReportPhase","description":"Phase at which the verdict was reached."},"closure":{"$ref":"#/components/schemas/ReportClosureKind","description":"Whether this closure happened before the final phase."},"policyRevision":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Policyrevision","description":"Frozen policy revision; owner reads only, never public."},"reasonCode":{"anyOf":[{"$ref":"#/components/schemas/ReportReasonCode"},{"type":"null"}],"description":"Closed-set reason; None only for SUITABLE."},"userReasoning":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Userreasoning","description":"Reader-facing explanation of the verdict; None only when the adjudication's prose_withheld is True (owner-costed public read)."},"evidenceRefs":{"items":{"$ref":"#/components/schemas/ReportEvidenceRef"},"type":"array","title":"Evidencerefs","description":"Citations into accepted artifacts.","default":[]},"riskAnalysis":{"$ref":"#/components/schemas/ReportRiskAnalysis","description":"Independent risk analysis that fed the adjudication."},"opportunityAnalysis":{"$ref":"#/components/schemas/ReportOpportunityAnalysis","description":"Independent opportunity analysis that fed the adjudication."},"adjudication":{"$ref":"#/components/schemas/ReportAdjudication","description":"Structured adjudication that chose this outcome."}},"type":"object","required":["verdict","checkpoint","closure","userReasoning","riskAnalysis","opportunityAnalysis","adjudication"],"title":"ReportConclusion","description":"The report's BUSINESS verdict with its full, auditable justification."},"ReportConclusionEvidenceView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"conclusion":{"$ref":"#/components/schemas/ReportCompactConclusion","description":"The verdict reached."},"citations":{"items":{"$ref":"#/components/schemas/ReportCompactCitation"},"type":"array","title":"Citations","description":"Citations the adjudicated verdict rests on.","default":[]},"analyses":{"items":{"$ref":"#/components/schemas/ReportCompactAnalysis"},"type":"array","title":"Analyses","description":"Risk and opportunity analyses, in that order.","default":[]},"riskBlocksSuitability":{"type":"boolean","title":"Riskblockssuitability","description":"Whether the risk analyst blocked a SUITABLE verdict."},"opportunitySupportsContinuation":{"type":"boolean","title":"Opportunitysupportscontinuation","description":"Whether the opportunity analyst supported continuing."},"adjudicationCandidate":{"$ref":"#/components/schemas/ReportAdjudicationCandidate","description":"Outcome the adjudicator chose."},"overruledDissent":{"type":"string","title":"Overruleddissent","description":"What the adjudicator overruled; empty when none."}},"type":"object","required":["conclusion","riskBlocksSuitability","opportunitySupportsContinuation","adjudicationCandidate","overruledDissent"],"title":"ReportConclusionEvidenceView","description":"The verdict PLUS the reasoning chain that produced it."},"ReportCorroborationKind":{"type":"string","enum":["REPEATED_USER_PAIN","INNOVATION_ADDRESSES_PAIN"],"title":"ReportCorroborationKind","description":"The two independent evidence classes that may extend an older market."},"ReportDecisionType":{"type":"string","enum":["REPORT_SCOPE","SAMPLE_RELEVANCE","MATERIAL_FACTS","STANDOUT_SELECTION","JUDGMENT"],"title":"ReportDecisionType","description":"One question the report may park on for a typed agent answer."},"ReportEstimateConfidence":{"type":"string","enum":["HIGH","MEDIUM","LOW","UNRESOLVED"],"title":"ReportEstimateConfidence","description":"Confidence attached to one member's effective material range."},"ReportEstimationEvidenceView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"estimation":{"$ref":"#/components/schemas/ReportCompactEstimation","description":"Resolution counts."},"unresolvedMemberKeys":{"items":{"type":"string"},"type":"array","title":"Unresolvedmemberkeys","description":"Members whose material inputs stayed unresolved.","default":[]},"excludedMemberKeys":{"items":{"type":"string"},"type":"array","title":"Excludedmemberkeys","description":"Members excluded as mismatched.","default":[]},"completenessGaps":{"items":{"$ref":"#/components/schemas/ReportCompactMaterialGap"},"type":"array","title":"Completenessgaps","description":"Typed holes in the material evidence.","default":[]},"openQuestions":{"items":{"$ref":"#/components/schemas/ReportCompactQuestion"},"type":"array","title":"Openquestions","description":"Material questions awaiting an owner answer.","default":[]}},"type":"object","required":["estimation"],"title":"ReportEstimationEvidenceView","description":"How the report resolved its material inputs, and what stayed open."},"ReportEstimationMethodologyView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"verdictCounts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Verdictcounts","description":"EstimateSource value -> member count."},"excludedMismatchedMemberKeys":{"items":{"type":"string"},"type":"array","title":"Excludedmismatchedmemberkeys","description":"Internal member keys excluded as mismatched; owner reads only.","default":[]},"completenessGaps":{"items":{"$ref":"#/components/schemas/ReportMaterialGapView"},"type":"array","title":"Completenessgaps","description":"Explicit unresolved holes.","default":[]},"provenance":{"anyOf":[{"$ref":"#/components/schemas/ReportEstimationProvenance"},{"type":"null"}],"description":"Replay identity; owner reads only, never public."}},"type":"object","title":"ReportEstimationMethodologyView","description":"Report-level record of how every material verdict was reached."},"ReportEstimationProvenance":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"policyFingerprint":{"type":"string","title":"Policyfingerprint","description":"Digest of thresholds plus policies."},"researchFingerprint":{"type":"string","title":"Researchfingerprint","description":"Digest of the research selection."},"evidenceFingerprint":{"type":"string","title":"Evidencefingerprint","description":"Digest of every evidence key used."},"completenessFingerprint":{"type":"string","title":"Completenessfingerprint","description":"Digest of the completeness gaps."},"researchPolicyRevision":{"type":"string","title":"Researchpolicyrevision","description":"Frozen MaterialResearchSelectionPolicy revision."},"ownerResolutionFingerprint":{"type":"string","title":"Ownerresolutionfingerprint","description":"Digest of the owner answers applied to this revision.","default":""}},"type":"object","required":["policyFingerprint","researchFingerprint","evidenceFingerprint","completenessFingerprint","researchPolicyRevision"],"title":"ReportEstimationProvenance","description":"The REPLAY identity of one estimation revision — never reader content."},"ReportEvidenceQuery":{"properties":{"object":{"type":"string","const":"report_evidence","title":"Object","default":"report_evidence"},"topic":{"type":"string","enum":["CONCLUSION","LIFECYCLE","ESTIMATION"],"title":"Topic"}},"additionalProperties":false,"type":"object","required":["topic"],"title":"ReportEvidenceQuery","description":"Ask for the evidence behind the verdict, the lifecycle or the estimation."},"ReportEvidenceRef":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"phase":{"$ref":"#/components/schemas/ReportPhase","description":"Phase whose accepted artifact is cited."},"artifactKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Artifactkey","description":"Immutable artifact key; owner reads only, never public."},"claim":{"type":"string","minLength":1,"title":"Claim","description":"The concrete claim this artifact supports."},"strength":{"$ref":"#/components/schemas/ReportEvidenceStrength","description":"How strongly the cited artifact supports the claim."}},"type":"object","required":["phase","claim","strength"],"title":"ReportEvidenceRef","description":"A citation into ONE accepted artifact of this report."},"ReportEvidenceStrength":{"type":"string","enum":["WEAK","MODERATE","STRONG"],"title":"ReportEvidenceStrength","description":"How strongly one cited artifact supports the statement that cites it."},"ReportExcludedGroup":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"reason":{"type":"string","minLength":1,"title":"Reason","description":"Policy reason for the exclusion."},"count":{"type":"integer","minimum":0.0,"title":"Count","description":"Listings removed for this reason."},"economicListingKeys":{"items":{"type":"string"},"type":"array","title":"Economiclistingkeys","description":"Operational identities of the removed listings.","default":[]}},"type":"object","required":["reason","count"],"title":"ReportExcludedGroup","description":"One group of listings removed from the rate cohort, and why."},"ReportFamilyEntrySource":{"type":"string","enum":["MEMBER_RELEASE","PARENT_RELATION","ABSENT"],"title":"ReportFamilyEntrySource","description":"Which observation class supplied a family's earliest credible entry."},"ReportFinalOverviewSectionView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"kind":{"type":"string","const":"FINAL_OVERVIEW","title":"Kind","default":"FINAL_OVERVIEW"},"headline":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Headline","description":"Reader-facing headline; None only when withheld."},"summary":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Summary","description":"Reader-facing closing summary; None only when withheld."},"proseWithheld":{"type":"boolean","title":"Prosewithheld","description":"True only where a public read withheld the overview prose.","default":false}},"type":"object","required":["headline","summary"],"title":"ReportFinalOverviewSectionView","description":"The closing headline and summary of a fully built report."},"ReportGapDescriptor":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"phase":{"$ref":"#/components/schemas/ReportPhase","description":"Phase with no accepted artifact."},"kind":{"$ref":"#/components/schemas/ReportGapKind","description":"Typed reason this phase is missing."},"detail":{"type":"string","title":"Detail","description":"Reviewer-visible explanation of the gap."},"awaitingInputKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Awaitinginputkey","description":"Stable key of the input this gap waits on."},"resumePhase":{"anyOf":[{"$ref":"#/components/schemas/ReportPhase"},{"type":"null"}],"description":"Phase the backend should run to continue."}},"type":"object","required":["phase","kind","detail"],"title":"ReportGapDescriptor","description":"One EXPLICIT hole in the report, with the reason it is a hole."},"ReportGapKind":{"type":"string","enum":["PENDING","WAITING_FOR_INPUT","SKIPPED","FAILED","CONTINUABLE"],"title":"ReportGapKind","description":"Why one phase has no accepted artifact yet."},"ReportJudgmentAnswer":{"properties":{"decisionType":{"type":"string","const":"JUDGMENT","title":"Decisiontype","default":"JUDGMENT"},"verdict":{"anyOf":[{"$ref":"#/components/schemas/ReportJudgmentVerdict"},{"type":"null"}],"description":"Required iff the question's verdict is open."},"sections":{"items":{"$ref":"#/components/schemas/ReportJudgmentSection"},"type":"array","title":"Sections","description":"Exactly the question's section kinds, once each."},"overview":{"$ref":"#/components/schemas/ReportOverviewEvidence","description":"Headline and summary."}},"additionalProperties":false,"type":"object","required":["sections","overview"],"title":"ReportJudgmentAnswer","description":"The create-time conclusion for one revision (07a §2.1)."},"ReportJudgmentEvidenceItem":{"properties":{"itemKey":{"type":"string","minLength":1,"title":"Itemkey","description":"The artifact_key a ReportEvidenceRef cites."},"phase":{"$ref":"#/components/schemas/ReportPhase","description":"Phase of the cited artifact."},"evidence":{"type":"string","title":"Evidence","description":"Rendered evidence block."}},"additionalProperties":false,"type":"object","required":["itemKey","phase","evidence"],"title":"ReportJudgmentEvidenceItem","description":"One citable accepted artifact: its block from build_evidence_digest."},"ReportJudgmentQuery":{"properties":{"object":{"type":"string","const":"report_judgment","title":"Object","default":"report_judgment"}},"additionalProperties":false,"type":"object","title":"ReportJudgmentQuery","description":"Ask for the HEAD revision's conclusion question, so an agent can cite it."},"ReportJudgmentSection":{"properties":{"sectionKind":{"$ref":"#/components/schemas/ReportNarrativeSectionKind","description":"Old-page slot."},"body":{"type":"string","maxLength":1500,"minLength":1,"title":"Body","description":"Number-free reader text."}},"additionalProperties":false,"type":"object","required":["sectionKind","body"],"title":"ReportJudgmentSection","description":"One old-page interpretation slot's text; number-free (R-D1)."},"ReportJudgmentVerdict":{"properties":{"riskAnalysis":{"$ref":"#/components/schemas/ReportRiskAnalysis","description":"Risk analysis."},"opportunityAnalysis":{"$ref":"#/components/schemas/ReportOpportunityAnalysis","description":"Opportunity analysis."},"adjudication":{"$ref":"#/components/schemas/ReportAdjudication","description":"Candidate, reason code and citations."}},"additionalProperties":false,"type":"object","required":["riskAnalysis","opportunityAnalysis","adjudication"],"title":"ReportJudgmentVerdict","description":"The three analyses one agent now writes (disclosed in README, grill A-4)."},"ReportLengthUnit":{"type":"string","enum":["CENTIMETRE","INCH"],"title":"ReportLengthUnit","description":"The length units a material question may be asked and answered in."},"ReportLifecycleEvidenceView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"lifecycle":{"$ref":"#/components/schemas/ReportCompactLifecycle","description":"Lifecycle position."},"evaluatedAt":{"type":"string","format":"date-time","title":"Evaluatedat","description":"Frozen instant ages were measured at."},"earliestEntryAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Earliestentryat","description":"Earliest credible family entry, when known."},"contributingListingKeys":{"items":{"type":"string"},"type":"array","title":"Contributinglistingkeys","description":"Listings that fixed the earliest entry.","default":[]},"corroboration":{"items":{"$ref":"#/components/schemas/ReportCompactCorroboration"},"type":"array","title":"Corroboration","description":"Evidence supporting or extending the window.","default":[]},"droppedCorroborationCount":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Droppedcorroborationcount","description":"Search results not retained; None for historical artifacts."}},"type":"object","required":["lifecycle","evaluatedAt"],"title":"ReportLifecycleEvidenceView","description":"The market's lifecycle position PLUS the evidence behind the verdict."},"ReportLifecycleVerdict":{"type":"string","enum":["WITHIN_WINDOW","BEYOND_WINDOW_CORROBORATED","BEYOND_WINDOW_UNCORROBORATED","ENTRY_UNKNOWN"],"title":"ReportLifecycleVerdict","description":"Where the market sits against the frozen lifecycle window."},"ReportListingCohortSectionView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"kind":{"type":"string","const":"LISTING_BUILD","title":"Kind","default":"LISTING_BUILD"},"evaluatedAt":{"type":"string","format":"date-time","title":"Evaluatedat","description":"Frozen INPUT_FREEZE evaluation instant."},"memberCount":{"type":"integer","minimum":0.0,"title":"Membercount","description":"Population ASIN members."},"excludedMemberCount":{"type":"integer","minimum":0.0,"title":"Excludedmembercount","description":"Loaded market members excluded by policy."},"newReleaseCount":{"type":"integer","minimum":0.0,"title":"Newreleasecount","description":"Population new releases."},"economicsReady":{"type":"boolean","title":"Economicsready","description":"Whether LISTING_ECONOMICS is accepted."},"marginAll":{"anyOf":[{"$ref":"#/components/schemas/ReportCohortMarginDistribution"},{"type":"null"}],"description":"Every population member; by_resolved_sales puts an unresolved sale in OTHER, by_known_margin only a missing margin."},"marginNew":{"anyOf":[{"$ref":"#/components/schemas/ReportCohortMarginDistribution"},{"type":"null"}],"description":"Population new releases; by_resolved_sales puts an unresolved sale in OTHER, by_known_margin only a missing margin."},"rankTables":{"items":{"$ref":"#/components/schemas/ReportCohortRankTable"},"type":"array","title":"Ranktables","description":"Four profit rankings in key order.","default":[]},"timelineYearly":{"items":{"$ref":"#/components/schemas/ReportCohortPeriodCount"},"type":"array","title":"Timelineyearly","description":"New releases per UTC calendar year, oldest first.","default":[]},"timelineMonthly":{"items":{"$ref":"#/components/schemas/ReportCohortPeriodCount"},"type":"array","title":"Timelinemonthly","description":"New releases per UTC calendar month, oldest first.","default":[]},"brandScopes":{"items":{"$ref":"#/components/schemas/ReportCohortBrandScopeView"},"type":"array","title":"Brandscopes","description":"ALL, NEW_BRANDS and OLD_BRANDS, in that order.","default":[]},"oldBrandNewReleaseShare":{"$ref":"#/components/schemas/ReportSuccessRate","description":"OLD_BRANDS new releases / ALL new releases."},"brands":{"items":{"$ref":"#/components/schemas/ReportCohortBrandRow"},"type":"array","title":"Brands","description":"Brands by member count desc, then name.","default":[]},"standoutCases":{"anyOf":[{"items":{"$ref":"#/components/schemas/ReportCohortStandoutCase"},"type":"array"},{"type":"null"}],"title":"Standoutcases","description":"None = no STANDOUT artifact; () = ran with no picks."},"subject":{"anyOf":[{"$ref":"#/components/schemas/ReportCohortSubjectDisplay"},{"type":"null"}],"description":"Subject product display facts; None when not loaded."}},"type":"object","required":["evaluatedAt","memberCount","excludedMemberCount","newReleaseCount","economicsReady","oldBrandNewReleaseShare"],"title":"ReportListingCohortSectionView","description":"The competitor cohort of ONE revision, ready for the old-report layout."},"ReportListingDetailView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"summary":{"$ref":"#/components/schemas/ReportListingSummaryView","description":"The paged summary view."},"members":{"items":{"$ref":"#/components/schemas/ReportListingMemberView"},"type":"array","title":"Members","description":"Every projected member of this listing."},"outcomeReasoning":{"type":"string","title":"Outcomereasoning","description":"Deterministic explanation of the listing verdict."},"groupingEvidenceCount":{"type":"integer","minimum":0.0,"title":"Groupingevidencecount","description":"Number of retained pair-scoring evidence records."},"economics":{"anyOf":[{"$ref":"#/components/schemas/ReportListingEconomicsView"},{"type":"null"}],"description":"Listing economics when the phase produced them."}},"type":"object","required":["summary","members","outcomeReasoning","groupingEvidenceCount"],"title":"ReportListingDetailView","description":"One listing with its members, evidence counts, and economics."},"ReportListingEconomicsView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"economicListingKey":{"type":"string","title":"Economiclistingkey","description":"Operational listing identity."},"sellingPrice":{"anyOf":[{"$ref":"#/components/schemas/ReportMoneyPoint"},{"type":"null"}],"description":"Observed selling price of the representative."},"profit":{"anyOf":[{"$ref":"#/components/schemas/ReportMoneyEnvelope"},{"type":"null"}],"description":"Profit envelope; None when inputs are unresolved."},"purchasingCost":{"anyOf":[{"$ref":"#/components/schemas/ReportPurchasingCostView"},{"type":"null"}],"description":"Effective purchasing cost with its authorisation."},"margin":{"anyOf":[{"$ref":"#/components/schemas/ReportRatioRange"},{"type":"null"}],"description":"Margin range with its explicit range kind."},"scenarios":{"anyOf":[{"$ref":"#/components/schemas/ProfitEnvelope"},{"type":"null"}],"description":"Every coherent scenario waterfall, verbatim."},"sizing":{"anyOf":[{"$ref":"#/components/schemas/ReportListingSizingView"},{"type":"null"}],"description":"Physical size and fee tier behind the scenarios."},"unresolvedDetail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unresolveddetail","description":"Why this listing has no economics, when it has none."}},"type":"object","required":["economicListingKey"],"title":"ReportListingEconomicsView","description":"The economics of ONE listing, with scenario ranges kept honest."},"ReportListingMemberKind":{"type":"string","enum":["LOADED","PLACEHOLDER"],"title":"ReportListingMemberKind","description":"Whether a projected member was actually loaded from the provider."},"ReportListingMemberView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"memberKey":{"type":"string","title":"Memberkey","description":"Operational member identity."},"asin":{"type":"string","title":"Asin","description":"DISPLAY ONLY provider ASIN."},"kind":{"$ref":"#/components/schemas/ReportListingMemberKind","description":"LOADED or PLACEHOLDER."},"isRepresentative":{"type":"boolean","title":"Isrepresentative","description":"Whether this member is the listing's representative."},"excludedReason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Excludedreason","description":"Policy exclusion reason, when excluded."},"excludedDetail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Excludeddetail","description":"Reviewer-visible exclusion explanation."},"releasedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Releasedat","description":"Credible observed release instant."},"ageMonths":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Agemonths","description":"Whole months since this member's release."}},"type":"object","required":["memberKey","asin","kind","isRepresentative"],"title":"ReportListingMemberView","description":"One member of an economic listing, projected for display and citation."},"ReportListingOutcome":{"type":"string","enum":["SUCCESS","NEW_RELEASE_FAILED","NOT_DETERMINABLE"],"title":"ReportListingOutcome","description":"Whether a listing proves success, proves a failed launch, or neither."},"ReportListingPage":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"items":{"items":{"$ref":"#/components/schemas/ReportListingSummaryView"},"type":"array","title":"Items","description":"Ordered listing summaries in this page."},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor","description":"Opaque cursor for the next page; None at the end."},"totalKnown":{"type":"integer","minimum":0.0,"title":"Totalknown","description":"Total listings known at the read revision."}},"type":"object","required":["items","totalKnown"],"title":"ReportListingPage","description":"One cursor page of listing summaries."},"ReportListingQuery":{"properties":{"object":{"type":"string","const":"report_listing","title":"Object","default":"report_listing"},"asin":{"type":"string","maxLength":32,"minLength":1,"title":"Asin","description":"Any member ASIN."}},"additionalProperties":false,"type":"object","required":["asin"],"title":"ReportListingQuery","description":"Ask for the one listing that CONTAINS an Amazon ASIN."},"ReportListingSizingView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"accepted":{"$ref":"#/components/schemas/SizingDetail","description":"Sizing the expected scenario used."},"materialBounds":{"anyOf":[{"$ref":"#/components/schemas/ReportMaterialBoundsView"},{"type":"null"}],"description":"Accepted low/high physical correction range."},"materialSource":{"anyOf":[{"$ref":"#/components/schemas/EstimateSource"},{"type":"null"}],"description":"Provenance of the accepted correction."},"materialConfidence":{"anyOf":[{"$ref":"#/components/schemas/ReportEstimateConfidence"},{"type":"null"}],"description":"Confidence of the accepted correction."},"anomalyHeadlines":{"items":{"type":"string"},"type":"array","title":"Anomalyheadlines","description":"Typed anomaly labels observed for this listing.","default":[]},"tierProbeSizeTiers":{"items":{"type":"string"},"type":"array","title":"Tierprobesizetiers","description":"Size tiers of the retained fee-tier probes.","default":[]},"reasoning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning","description":"Deterministic explanation of the accepted size."}},"type":"object","required":["accepted"],"title":"ReportListingSizingView","description":"What the report shows about ONE listing's physical size and fee tier."},"ReportListingSummaryView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"economicListingKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Economiclistingkey","description":"Internal listing identity; owner reads only, never public."},"publicListingHandle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publiclistinghandle","description":"Opaque public listing reference; public reads only."},"representativeMemberKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Representativememberkey","description":"Internal member identity; owner reads only, never public."},"representativeAsin":{"type":"string","title":"Representativeasin","description":"DISPLAY ONLY provider ASIN."},"representativeQuality":{"$ref":"#/components/schemas/ReportRepresentativeQuality","description":"Whether a real sales signal chose the representative."},"marketplace":{"anyOf":[{"$ref":"#/components/schemas/AmazonMarketplace"},{"type":"null"}],"description":"Product marketplace this listing was analysed in."},"outcome":{"$ref":"#/components/schemas/ReportListingOutcome","description":"Listing-level success verdict."},"memberCount":{"type":"integer","minimum":1.0,"title":"Membercount","description":"All members of the listing."},"loadedMemberCount":{"type":"integer","minimum":0.0,"title":"Loadedmembercount","description":"Members loaded from provider."},"excludedMemberCount":{"type":"integer","minimum":0.0,"title":"Excludedmembercount","description":"Members excluded by policy."},"familyEntryAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Familyentryat","description":"Earliest credible family entry instant."},"familyEntryAgeMonths":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Familyentryagemonths","description":"Whole months since the family entered."},"familyEntrySource":{"$ref":"#/components/schemas/ReportFamilyEntrySource","description":"Which observation supplied the family entry."},"sellingPrice":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"Expected-scenario selling price; None until costed."},"monthlySold":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Monthlysold","description":"Representative member's latest observed monthly units."},"expectedProfit":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"Expected-scenario profit; None until costed."},"margin":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Margin","description":"Expected-scenario margin ratio; None until costed."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Representative member's provider title, read-time."},"brand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand","description":"Representative member's provider brand, read-time."},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Imageurl","description":"Representative member's primary image; None before 2.62.0."},"profitableCostBasis":{"anyOf":[{"$ref":"#/components/schemas/ReportPurchasingCostProvenance"},{"type":"null"}],"description":"Purchase-cost provenance the profitable flag was priced with; stored at LISTING_BUILD, None before 2.62.0."},"economicsCostBasis":{"anyOf":[{"$ref":"#/components/schemas/ReportPurchasingCostProvenance"},{"type":"null"}],"description":"Purchase-cost provenance the expected scenario used, owner answers included; read-time, None without economics."},"profitWithheld":{"type":"boolean","title":"Profitwithheld","description":"True only on a public owner-costed read, where per-row profit and margin are withheld rather than absent.","default":false}},"type":"object","required":["representativeAsin","representativeQuality","outcome","memberCount","loadedMemberCount","excludedMemberCount","familyEntrySource"],"title":"ReportListingSummaryView","description":"A listing as it appears in a paged list, for ONE audience at a time."},"ReportListingsQuery":{"properties":{"object":{"type":"string","const":"report_listings","title":"Object","default":"report_listings"},"cursor":{"anyOf":[{"type":"string","maxLength":256,"minLength":1},{"type":"null"}],"title":"Cursor","description":"Previous page's next cursor."}},"additionalProperties":false,"type":"object","title":"ReportListingsQuery","description":"Ask for one cursor page of the report's comparable listings."},"ReportMarketSectionView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"kind":{"type":"string","const":"MARKET_SUCCESS_INVESTMENT","title":"Kind","default":"MARKET_SUCCESS_INVESTMENT"},"successRates":{"$ref":"#/components/schemas/ReportSuccessRateProjection","description":"Three-denominator market success rates."},"entryInvestment":{"anyOf":[{"$ref":"#/components/schemas/ReportMoneyPoint"},{"type":"null"}],"description":"Entry investment point plus peer benchmark."},"marginBenchmark":{"anyOf":[{"$ref":"#/components/schemas/ReportRatioRange"},{"type":"null"}],"description":"Peer margin benchmark for the covered cohort."}},"type":"object","required":["successRates"],"title":"ReportMarketSectionView","description":"The market's success rates and the capital needed to enter it."},"ReportMassUnit":{"type":"string","enum":["GRAM","KILOGRAM"],"title":"ReportMassUnit","description":"The mass units a material question may be asked and answered in."},"ReportMaterialBoundsView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"lowLengthCm":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lowlengthcm","description":"Lower length bound."},"lowWidthCm":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lowwidthcm","description":"Lower width bound."},"lowHeightCm":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lowheightcm","description":"Lower height bound."},"lowWeightG":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lowweightg","description":"Lower weight bound."},"highLengthCm":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Highlengthcm","description":"Upper length bound."},"highWidthCm":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Highwidthcm","description":"Upper width bound."},"highHeightCm":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Highheightcm","description":"Upper height bound."},"highWeightG":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Highweightg","description":"Upper weight bound."},"lowUnitCost":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"Lower purchasing unit cost bound."},"highUnitCost":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"Upper purchasing unit cost bound."}},"type":"object","title":"ReportMaterialBoundsView","description":"The effective low/high physical and purchasing-cost bounds of a member."},"ReportMaterialCostAnswer":{"properties":{"low":{"$ref":"#/components/schemas/MinorUnitMoney","description":"Lower purchasing unit cost bound."},"high":{"$ref":"#/components/schemas/MinorUnitMoney","description":"Upper purchasing unit cost bound."}},"type":"object","required":["low","high"],"title":"ReportMaterialCostAnswer","description":"One purchasing unit cost, as a point or an inclusive range."},"ReportMaterialDimensionsAnswer":{"properties":{"unit":{"$ref":"#/components/schemas/ReportLengthUnit","description":"Unit the three axes are given in."},"length":{"type":"number","exclusiveMinimum":0.0,"title":"Length","description":"Longest axis, in unit."},"width":{"type":"number","exclusiveMinimum":0.0,"title":"Width","description":"Second axis, in unit."},"height":{"type":"number","exclusiveMinimum":0.0,"title":"Height","description":"Third axis, in unit."}},"type":"object","required":["unit","length","width","height"],"title":"ReportMaterialDimensionsAnswer","description":"The three physical axes of one product, with the unit they are in."},"ReportMaterialEstimateView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"estimateKey":{"type":"string","title":"Estimatekey","description":"Stable identity of the upstream estimate."},"memberKey":{"type":"string","title":"Memberkey","description":"Operational member identity."},"economicListingKey":{"type":"string","title":"Economiclistingkey","description":"Operational listing identity."},"source":{"$ref":"#/components/schemas/EstimateSource","description":"Where the effective range came from."},"confidence":{"$ref":"#/components/schemas/ReportEstimateConfidence","description":"Confidence in the range."},"unitCostSource":{"anyOf":[{"$ref":"#/components/schemas/EstimateSource"},{"type":"null"}],"description":"Where the purchasing cost came from, if judged."},"unitCostConfidence":{"anyOf":[{"$ref":"#/components/schemas/ReportEstimateConfidence"},{"type":"null"}],"description":"Confidence in the purchasing cost, if judged."},"bounds":{"$ref":"#/components/schemas/ReportMaterialBoundsView","description":"Effective low/high bounds."},"anomalyHeadlines":{"items":{"type":"string"},"type":"array","title":"Anomalyheadlines","description":"Typed anomaly labels observed for this member.","default":[]},"reasoning":{"type":"string","title":"Reasoning","description":"Deterministic explanation of the verdict."}},"type":"object","required":["estimateKey","memberKey","economicListingKey","source","confidence","bounds","reasoning"],"title":"ReportMaterialEstimateView","description":"One member's effective material range with its provenance."},"ReportMaterialField":{"type":"string","enum":["LENGTH","WIDTH","HEIGHT","WEIGHT","UNIT_COST"],"title":"ReportMaterialField","description":"One physical or cost input a report may have to ask its owner about."},"ReportMaterialGapView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"memberKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Memberkey","description":"Internal member identity; owner reads only, never public."},"economicListingKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Economiclistingkey","description":"Internal listing identity; owner reads only, never public."},"reason":{"type":"string","minLength":1,"title":"Reason","description":"Typed upstream gap reason."},"detail":{"type":"string","title":"Detail","description":"Inputs still unmeasured and excluded from profit figures."}},"type":"object","required":["reason","detail"],"title":"ReportMaterialGapView","description":"One explicitly reported hole in the material picture."},"ReportMaterialQuestion":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"questionKey":{"type":"string","minLength":1,"title":"Questionkey","description":"Stable question identity."},"economicListingKey":{"type":"string","title":"Economiclistingkey","description":"Operational listing identity."},"fields":{"items":{"$ref":"#/components/schemas/ReportMaterialField"},"type":"array","minItems":1,"title":"Fields","description":"Inputs the answer must supply."},"lengthUnit":{"$ref":"#/components/schemas/ReportLengthUnit","description":"Unit a dimensions answer must be given in.","default":"CENTIMETRE"},"massUnit":{"$ref":"#/components/schemas/ReportMassUnit","description":"Unit a weight answer must be given in.","default":"GRAM"},"currency":{"anyOf":[{"$ref":"#/components/schemas/Currency"},{"type":"null"}],"description":"Currency a cost answer must be given in."},"observed":{"anyOf":[{"$ref":"#/components/schemas/ReportMaterialEstimateView"},{"type":"null"}],"description":"The estimate that is missing these inputs."},"analysed":{"anyOf":[{"$ref":"#/components/schemas/ReportMaterialBoundsView"},{"type":"null"}],"description":"The analysis's own low/high bounds for a disputed input; None when the analysis never established a range."},"suggestedResolutions":{"items":{"$ref":"#/components/schemas/ReportMaterialResolution"},"type":"array","title":"Suggestedresolutions","description":"Server suggestions the owner may pick.","default":[]},"reason":{"type":"string","title":"Reason","description":"Reviewer-visible reason the answer is needed."}},"type":"object","required":["questionKey","economicListingKey","fields","reason"],"title":"ReportMaterialQuestion","description":"One economic listing's unresolved material facts and safe choices."},"ReportMaterialResolution":{"properties":{"source":{"$ref":"#/components/schemas/ReportMaterialResolutionSource","description":"Whether the owner picked a suggestion or typed values."},"suggestionKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suggestionkey","description":"Stable key of the picked server suggestion."},"dimensions":{"anyOf":[{"$ref":"#/components/schemas/ReportMaterialDimensionsAnswer"},{"type":"null"}],"description":"Typed three-axis answer, when supplied."},"weight":{"anyOf":[{"$ref":"#/components/schemas/ReportMaterialWeightAnswer"},{"type":"null"}],"description":"Typed weight answer, when supplied."},"unitCost":{"anyOf":[{"$ref":"#/components/schemas/ReportMaterialCostAnswer"},{"type":"null"}],"description":"Typed purchasing unit cost answer, when supplied."}},"type":"object","required":["source"],"title":"ReportMaterialResolution","description":"ONE typed answer to ONE material question."},"ReportMaterialResolutionSource":{"type":"string","enum":["SERVER_SUGGESTION","OWNER_ENTERED"],"title":"ReportMaterialResolutionSource","description":"Where one owner answer came from."},"ReportMaterialWeightAnswer":{"properties":{"unit":{"$ref":"#/components/schemas/ReportMassUnit","description":"Unit the weight is given in."},"weight":{"type":"number","exclusiveMinimum":0.0,"title":"Weight","description":"Product weight, in unit."}},"type":"object","required":["unit","weight"],"title":"ReportMaterialWeightAnswer","description":"One product's weight, with the unit it is expressed in."},"ReportMoneyEnvelope":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"expected":{"$ref":"#/components/schemas/MinorUnitMoney","description":"Expected-scenario value."},"bounds":{"$ref":"#/components/schemas/ReportMoneyRange","description":"Pessimistic/optimistic bounds."},"boundScenarioKeys":{"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array","maxItems":2,"minItems":2,"title":"Boundscenariokeys","description":"Frozen scenario keys that produced the low and high bounds."}},"type":"object","required":["expected","bounds","boundScenarioKeys"],"title":"ReportMoneyEnvelope","description":"An expected value with a DEFENSIBLE scenario range around it."},"ReportMoneyPoint":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"value":{"$ref":"#/components/schemas/MinorUnitMoney","description":"The single defensible value."},"benchmark":{"anyOf":[{"$ref":"#/components/schemas/ReportMoneyRange"},{"type":"null"}],"description":"Separately labelled peer comparison range."}},"type":"object","required":["value"],"title":"ReportMoneyPoint","description":"One money value, optionally accompanied by a LABELLED peer benchmark."},"ReportMoneyRange":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"low":{"$ref":"#/components/schemas/MinorUnitMoney","description":"Lower bound."},"high":{"$ref":"#/components/schemas/MinorUnitMoney","description":"Upper bound."},"kind":{"$ref":"#/components/schemas/ReportRangeKind","description":"Scenario bound or cohort benchmark."},"cohortLabel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cohortlabel","description":"Peer cohort described; required for a benchmark."},"cohortSize":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Cohortsize","description":"Peer cohort size; required for a benchmark."}},"type":"object","required":["low","high","kind"],"title":"ReportMoneyRange","description":"A money low/high pair that always states what kind of range it is."},"ReportNarrativeSection":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"sectionKey":{"type":"string","minLength":1,"title":"Sectionkey","description":"Stable section identity."},"sourcePhase":{"$ref":"#/components/schemas/ReportPhase","description":"Phase whose artifact it explains."},"body":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Body","description":"Reader-facing prose; None only when prose_withheld."},"proseWithheld":{"type":"boolean","title":"Prosewithheld","description":"True only where a public read withheld this section's prose.","default":false}},"type":"object","required":["sectionKey","sourcePhase","body"],"title":"ReportNarrativeSection","description":"One rendered narrative section keyed by the phase it explains."},"ReportNarrativeSectionKind":{"type":"string","enum":["INVESTMENT_BUDGET","INVESTMENT_BRANDS","PROFIT_RATIOS","MARKET_NEW_PRODUCTS","MARKET_ENTRY_TIMING"],"title":"ReportNarrativeSectionKind","description":"The FIVE old-page interpretation slots the report's prose fills (07a §2.3)."},"ReportNarrativeSectionView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"kind":{"type":"string","const":"NARRATIVE","title":"Kind","default":"NARRATIVE"},"sections":{"items":{"$ref":"#/components/schemas/ReportNarrativeSection"},"type":"array","title":"Sections","description":"Rendered narrative sections in display order."}},"type":"object","required":["sections"],"title":"ReportNarrativeSectionView","description":"The rendered prose sections in display order."},"ReportOpportunityAnalysis":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"findings":{"items":{"$ref":"#/components/schemas/ReportAnalystFinding"},"type":"array","title":"Findings","description":"Concrete opportunities, each with citations.","default":[]},"missingEvidence":{"items":{"type":"string"},"type":"array","title":"Missingevidence","description":"Evidence the analyst needed but did not find in the artifacts.","default":[]},"supportsContinuation":{"type":"boolean","title":"Supportscontinuation","description":"Whether the opportunities justify continuing the analysis."},"summary":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Summary","description":"One-paragraph opportunity summary."},"proseWithheld":{"type":"boolean","title":"Prosewithheld","description":"True only where a public read withheld this analysis' prose.","default":false}},"type":"object","required":["supportsContinuation","summary"],"title":"ReportOpportunityAnalysis","description":"Independent OPPORTUNITY analysis of the accepted artifacts."},"ReportOverviewEvidence":{"properties":{"headline":{"type":"string","minLength":1,"title":"Headline","description":"Reader-facing headline."},"summary":{"type":"string","minLength":1,"title":"Summary","description":"Reader-facing closing summary."}},"type":"object","required":["headline","summary"],"title":"ReportOverviewEvidence","description":"Closing headline and summary for the FINAL_OVERVIEW phase."},"ReportOverviewQuery":{"properties":{"object":{"type":"string","const":"report_overview","title":"Object","default":"report_overview"}},"additionalProperties":false,"type":"object","title":"ReportOverviewQuery","description":"Ask for the report's typed, absence-complete overview."},"ReportPhase":{"type":"string","enum":["INPUT_FREEZE","SOURCE_LOAD","SAMPLE_RELEVANCE","LISTING_BUILD","SIMILARITY_COVERAGE","MATERIAL_TRIAGE","ENTRY_LIFECYCLE","REVIEW_COMPETITION","LISTING_ECONOMICS","MARKET_SUCCESS_INVESTMENT","STANDOUT","DECISION_CHECKPOINT","NARRATIVE","FINAL_OVERVIEW"],"title":"ReportPhase","description":"The ordered phases a V3 report walks; each produces exactly one artifact."},"ReportProfileEconomicFields":{"properties":{"suggestedPurchasingCost":{"anyOf":[{"$ref":"#/components/schemas/SuggestedPurchasingCost"},{"type":"null"}],"description":"The seller's own purchasing cost for one benchmark ASIN; never a Keble estimate."},"acosLowerbound":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Acoslowerbound","description":"ACOS lower bound, whole percent."},"acosUpperbound":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Acosupperbound","description":"ACOS upper bound, whole percent."},"fixedLength":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Fixedlength","description":"Fixed length."},"fixedWidth":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Fixedwidth","description":"Fixed width."},"fixedHeight":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Fixedheight","description":"Fixed height."},"fixedLengthUnit":{"anyOf":[{"type":"string","enum":["cm","m","inch"]},{"type":"null"}],"title":"Fixedlengthunit","description":"Unit of the fixed size; None means cm."},"fixedWeight":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Fixedweight","description":"Fixed weight."},"fixedWeightUnit":{"anyOf":[{"type":"string","enum":["pound","ounce","kg","g"]},{"type":"null"}],"title":"Fixedweightunit","description":"Unit of the fixed weight; None means g."},"investmentDifficultyAmountThreshold":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"Entry-budget threshold."}},"additionalProperties":false,"type":"object","title":"ReportProfileEconomicFields","description":"The seller-setup fields that map onto a run's frozen economic premise."},"ReportPurchasingCostProvenance":{"type":"string","enum":["USER_SUPPLIED","COHORT_INFERRED"],"title":"ReportPurchasingCostProvenance","description":"WHERE one priced listing's effective purchase cost came from."},"ReportPurchasingCostView":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"amount":{"$ref":"#/components/schemas/ReportMoneyPoint","description":"Settled expected purchasing cost."},"source":{"$ref":"#/components/schemas/EstimateSource","description":"Provenance of the costed line."},"estimateKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Estimatekey","description":"Material estimate that authorised the amount."},"confidence":{"anyOf":[{"$ref":"#/components/schemas/ReportEstimateConfidence"},{"type":"null"}],"description":"Confidence of the authorising material estimate."},"bounds":{"anyOf":[{"$ref":"#/components/schemas/ReportMoneyRange"},{"type":"null"}],"description":"Low/high unit-cost range the estimate allowed."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Deterministic reasoning behind the amount."}},"type":"object","required":["amount","source"],"title":"ReportPurchasingCostView","description":"The expected purchasing cost plus the evidence that AUTHORISED it."},"ReportRangeKind":{"type":"string","enum":["SCENARIO_BOUND","COHORT_BENCHMARK"],"title":"ReportRangeKind","description":"Whether a range describes THIS product or a peer cohort."},"ReportRateAbsenceReason":{"type":"string","enum":["NO_ELIGIBLE_LISTING","NO_DETERMINATE_LISTING"],"title":"ReportRateAbsenceReason","description":"Why a cohort rate is a typed absence rather than a percentage."},"ReportRatioRange":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"low":{"type":"number","title":"Low","description":"Lower bound as a unitless ratio."},"high":{"type":"number","title":"High","description":"Upper bound as a unitless ratio."},"kind":{"$ref":"#/components/schemas/ReportRangeKind","description":"Scenario bound or cohort benchmark."},"cohortLabel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cohortlabel","description":"Peer cohort described; required for a benchmark."},"cohortSize":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Cohortsize","description":"Peer cohort size; required for a benchmark."},"boundScenarioKeys":{"anyOf":[{"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array","maxItems":2,"minItems":2},{"type":"null"}],"title":"Boundscenariokeys","description":"Frozen scenario keys behind low/high; required for a bound."}},"type":"object","required":["low","high","kind"],"title":"ReportRatioRange","description":"A unitless low/high pair (for example a margin) with its range kind."},"ReportReasonCode":{"type":"string","enum":["INSUFFICIENT_SIMILAR_LISTINGS","MATERIAL_INPUT_UNRESOLVED","NO_QUALIFYING_LAUNCH_EVIDENCE","EVIDENCE_CONFLICT","SUSTAINED_UNPROFITABLE_MARKET","NEW_RELEASE_FAILED","COMPETITION_OR_INVESTMENT_UNSUITABLE"],"title":"ReportReasonCode","description":"The closed set of reasons a report did not end SUITABLE."},"ReportRepresentativeQuality":{"type":"string","enum":["KNOWN","UNKNOWN"],"title":"ReportRepresentativeQuality","description":"Whether the representative was chosen from a real sales signal."},"ReportRetryEligibility":{"type":"string","enum":["RETRYABLE","RETRYABLE_AFTER_INPUT_CHANGE","NOT_RETRYABLE"],"title":"ReportRetryEligibility","description":"Whether a terminated run may be retried, and by whom."},"ReportRiskAnalysis":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"findings":{"items":{"$ref":"#/components/schemas/ReportAnalystFinding"},"type":"array","title":"Findings","description":"Concrete risks, each with citations.","default":[]},"missingEvidence":{"items":{"type":"string"},"type":"array","title":"Missingevidence","description":"Evidence the analyst needed but did not find in the artifacts.","default":[]},"blockingUnsuitable":{"type":"boolean","title":"Blockingunsuitable","description":"Whether the risks alone would close the report unsuitable."},"summary":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Summary","description":"One-paragraph risk summary."},"proseWithheld":{"type":"boolean","title":"Prosewithheld","description":"True only where a public read withheld this analysis' prose.","default":false}},"type":"object","required":["blockingUnsuitable","summary"],"title":"ReportRiskAnalysis","description":"Independent RISK analysis of the accepted artifacts."},"ReportScopeAnswer":{"properties":{"decisionType":{"type":"string","const":"REPORT_SCOPE","title":"Decisiontype","default":"REPORT_SCOPE"},"categoryId":{"type":"integer","minimum":1.0,"title":"Categoryid","description":"Confirmed category id."},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords","description":"Stored keyword text; a NEW REPORT_SCOPE answer needs at least one owner-confirmed, non-blank keyword.","default":[]}},"additionalProperties":false,"type":"object","required":["categoryId"],"title":"ReportScopeAnswer","description":"Store a category and the exact keyword text supplied for a report scope."},"ReportScopeCandidate":{"properties":{"categoryId":{"type":"integer","minimum":1.0,"title":"Categoryid","description":"Candidate Amazon category node id."},"categoryName":{"type":"string","minLength":1,"title":"Categoryname","description":"Readable category name."},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords","description":"Empty: candidate discovery supplies no keywords.","default":[]}},"additionalProperties":false,"type":"object","required":["categoryId","categoryName"],"title":"ReportScopeCandidate","description":"One category candidate the agent may confirm for the report scope."},"ReportSectionKind":{"type":"string","enum":["LISTING_BUILD","MARKET_SUCCESS_INVESTMENT","NARRATIVE","FINAL_OVERVIEW"],"title":"ReportSectionKind","description":"The EXACT set of report sections a reader may request."},"ReportSectionQuery":{"properties":{"object":{"type":"string","const":"report_section","title":"Object","default":"report_section"},"section":{"$ref":"#/components/schemas/ReportSectionKind"}},"additionalProperties":false,"type":"object","required":["section"],"title":"ReportSectionQuery","description":"Ask for one written section (market numbers, narrative, final overview)."},"ReportStandoutMarketTraits":{"properties":{"newProfitableMustPrivateMold":{"type":"boolean","title":"Newprofitablemustprivatemold","description":"True if profitable products generally have different designs from old market products (private mold / owned design, not common public molds); False if at least some profitable products (>=2) are likely public mold/common designs compared to old products. If no profitable products are provided, decide based on old market products."},"newProfitableSignificantRnd":{"type":"boolean","title":"Newprofitablesignificantrnd","description":"True if most profitable products require significant early-stage R&D (e.g., mold, design, technology, mobile app, patent); otherwise False. If no profitable products are provided, decide based on old market products."},"newProfitableHasBattery":{"type":"boolean","title":"Newprofitablehasbattery","description":"True if products explicitly include a lithium battery in the package; power adapter or rechargeable usage alone does not count. If no profitable products are provided, decide based on old market products."},"newProfitableHasBluetooth":{"type":"boolean","title":"Newprofitablehasbluetooth","description":"True if products have Bluetooth; otherwise False. If no profitable products are provided, decide based on old market products."},"newProfitableChildrenProduct":{"type":"boolean","title":"Newprofitablechildrenproduct","description":"True if products target children and are categorized as children products; otherwise False. If no profitable products are provided, decide based on old market products."},"productDiversity":{"$ref":"#/components/schemas/LlmProductDiversity","description":"How standardized the category is and how much design matters."},"productAlternatives":{"items":{"type":"string","maxLength":120},"type":"array","maxItems":10,"title":"Productalternatives","description":"Alternatives a buyer would weigh; ten at most.","default":[]}},"additionalProperties":false,"type":"object","required":["newProfitableMustPrivateMold","newProfitableSignificantRnd","newProfitableHasBattery","newProfitableHasBluetooth","newProfitableChildrenProduct","productDiversity"],"title":"ReportStandoutMarketTraits","description":"The old report's market traits the agent may attach to its standout choice."},"ReportStandoutPick":{"properties":{"itemKey":{"type":"string","minLength":1,"title":"Itemkey","description":"Chosen listing identity."},"reason":{"type":"string","maxLength":500,"title":"Reason","description":"Why this product stands out, in judgements and names only; never quote figures."}},"additionalProperties":false,"type":"object","required":["itemKey","reason"],"title":"ReportStandoutPick","description":"ONE chosen standout product, mirroring the legacy unique-product output."},"ReportSuccessRate":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"value":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Value","description":"Rate in [0, 1]; None when absent."},"numerator":{"type":"integer","minimum":0.0,"title":"Numerator","description":"Listings counted in the numerator."},"denominator":{"type":"integer","minimum":0.0,"title":"Denominator","description":"Listings counted in the denominator."},"absenceReason":{"anyOf":[{"$ref":"#/components/schemas/ReportRateAbsenceReason"},{"type":"null"}],"description":"Typed reason the rate has no value."}},"type":"object","required":["numerator","denominator"],"title":"ReportSuccessRate","description":"One success rate with its explicit numerator, denominator, or absence."},"ReportSuccessRateProjection":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"eligibleCount":{"type":"integer","minimum":0.0,"title":"Eligiblecount","description":"Listings with an eligible member."},"successCount":{"type":"integer","minimum":0.0,"title":"Successcount","description":"Eligible listings proving success."},"failureCount":{"type":"integer","minimum":0.0,"title":"Failurecount","description":"Eligible listings proving failure."},"unresolvedCount":{"type":"integer","minimum":0.0,"title":"Unresolvedcount","description":"Eligible listings proving neither."},"robust":{"$ref":"#/components/schemas/ReportSuccessRate","description":"successes / all eligible listings."},"expected":{"$ref":"#/components/schemas/ReportSuccessRate","description":"successes / determinate listings."},"possible":{"$ref":"#/components/schemas/ReportSuccessRate","description":"(successes + unresolved) / all eligible listings."},"excludedCount":{"type":"integer","minimum":0.0,"title":"Excludedcount","description":"Listings removed by policy."},"excludedGroups":{"items":{"$ref":"#/components/schemas/ReportExcludedGroup"},"type":"array","title":"Excludedgroups","description":"Removed listings grouped by policy reason.","default":[]}},"type":"object","required":["eligibleCount","successCount","failureCount","unresolvedCount","robust","expected","possible","excludedCount"],"title":"ReportSuccessRateProjection","description":"The three cohort success rates plus everything excluded from them."},"ReportTerminalState":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"status":{"$ref":"#/components/schemas/ReportTerminalStatus","description":"Operational stop status."},"reason":{"type":"string","minLength":1,"title":"Reason","description":"Internal, reviewer-facing reason."},"userMessage":{"type":"string","minLength":1,"title":"Usermessage","description":"Reader-facing message safe to display."},"committedRevision":{"type":"integer","minimum":0.0,"title":"Committedrevision","description":"Last committed revision; 0 when nothing was committed."},"retryEligibility":{"$ref":"#/components/schemas/ReportRetryEligibility","description":"Whether and how this run may be retried."},"failedPhase":{"anyOf":[{"$ref":"#/components/schemas/ReportPhase"},{"type":"null"}],"description":"Phase that failed; required for FAILED_PARTIAL."}},"type":"object","required":["status","reason","userMessage","committedRevision","retryEligibility"],"title":"ReportTerminalState","description":"Why a run stopped operationally, with the last durable revision."},"ReportTerminalStatus":{"type":"string","enum":["CANCELLED","FAILED_PARTIAL"],"title":"ReportTerminalStatus","description":"Operational ways a run stops WITHOUT a business verdict."},"ReportUnitDescriptor":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"phase":{"$ref":"#/components/schemas/ReportPhase","description":"Phase that produced the ready unit."},"artifactKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Artifactkey","description":"Immutable artifact id; owner reads only, never public."},"revision":{"type":"integer","minimum":1.0,"title":"Revision","description":"Revision the artifact was committed in."},"committedAt":{"type":"string","format":"date-time","title":"Committedat","description":"Instant the artifact was committed."}},"type":"object","required":["phase","revision","committedAt"],"title":"ReportUnitDescriptor","description":"One phase artifact that is READY and safe to render."},"ReportV3ConclusionToolResult":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"object":{"type":"string","const":"report_v3_conclusion","title":"Object","default":"report_v3_conclusion"},"consultedRevision":{"type":"integer","minimum":0.0,"title":"Consultedrevision","description":"Revision this answer read."},"latestRevision":{"type":"integer","minimum":0.0,"title":"Latestrevision","description":"Latest committed revision."},"view":{"anyOf":[{"$ref":"#/components/schemas/ReportConclusionEvidenceView"},{"type":"null"}],"description":"Verdict and reasoning; None when not reached."},"absence":{"anyOf":[{"$ref":"#/components/schemas/ReportCompactAbsence"},{"type":"null"}],"description":"Typed reason no verdict exists at this revision."}},"type":"object","required":["consultedRevision","latestRevision"],"title":"ReportV3ConclusionToolResult","description":"One V3 report's verdict plus its reasoning chain, or a typed absence."},"ReportV3EstimationToolResult":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"object":{"type":"string","const":"report_v3_estimation","title":"Object","default":"report_v3_estimation"},"consultedRevision":{"type":"integer","minimum":0.0,"title":"Consultedrevision","description":"Revision this answer read."},"latestRevision":{"type":"integer","minimum":0.0,"title":"Latestrevision","description":"Latest committed revision."},"view":{"anyOf":[{"$ref":"#/components/schemas/ReportEstimationEvidenceView"},{"type":"null"}],"description":"How material inputs were resolved."},"absence":{"anyOf":[{"$ref":"#/components/schemas/ReportCompactAbsence"},{"type":"null"}],"description":"Typed reason the methodology is unavailable."}},"type":"object","required":["consultedRevision","latestRevision"],"title":"ReportV3EstimationToolResult","description":"One V3 report's material-estimation evidence, or a typed absence."},"ReportV3JudgmentToolResult":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"object":{"type":"string","const":"report_v3_judgment","title":"Object","default":"report_v3_judgment"},"consultedRevision":{"type":"integer","minimum":0.0,"title":"Consultedrevision","description":"Revision this answer read."},"latestRevision":{"type":"integer","minimum":0.0,"title":"Latestrevision","description":"Latest committed revision."},"question":{"$ref":"#/components/schemas/JudgmentQuestion","description":"The head's conclusion question."}},"type":"object","required":["consultedRevision","latestRevision","question"],"title":"ReportV3JudgmentToolResult","description":"One V3 report's head conclusion question, pinned to the revision read."},"ReportV3LifecycleToolResult":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"object":{"type":"string","const":"report_v3_lifecycle","title":"Object","default":"report_v3_lifecycle"},"consultedRevision":{"type":"integer","minimum":0.0,"title":"Consultedrevision","description":"Revision this answer read."},"latestRevision":{"type":"integer","minimum":0.0,"title":"Latestrevision","description":"Latest committed revision."},"view":{"anyOf":[{"$ref":"#/components/schemas/ReportLifecycleEvidenceView"},{"type":"null"}],"description":"Lifecycle verdict and corroboration."},"absence":{"anyOf":[{"$ref":"#/components/schemas/ReportCompactAbsence"},{"type":"null"}],"description":"Typed reason the lifecycle is unavailable."}},"type":"object","required":["consultedRevision","latestRevision"],"title":"ReportV3LifecycleToolResult","description":"One V3 report's lifecycle evidence, or a typed absence."},"ReportV3ListingDetailToolResult":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"object":{"type":"string","const":"report_v3_listing_detail","title":"Object","default":"report_v3_listing_detail"},"consultedRevision":{"type":"integer","minimum":0.0,"title":"Consultedrevision","description":"Revision this answer read."},"detail":{"$ref":"#/components/schemas/ReportListingDetailView","description":"Listing detail view."}},"type":"object","required":["consultedRevision","detail"],"title":"ReportV3ListingDetailToolResult","description":"One economic listing's members and economics at a revision."},"ReportV3ListingsToolResult":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"object":{"type":"string","const":"report_v3_listings","title":"Object","default":"report_v3_listings"},"consultedRevision":{"type":"integer","minimum":0.0,"title":"Consultedrevision","description":"Revision this answer read."},"page":{"$ref":"#/components/schemas/ReportListingPage","description":"Ordered listing summaries."}},"type":"object","required":["consultedRevision","page"],"title":"ReportV3ListingsToolResult","description":"One cursor page of a V3 report's comparable listings at a revision."},"ReportV3OverviewToolResult":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"object":{"type":"string","const":"report_v3_overview","title":"Object","default":"report_v3_overview"},"consultedRevision":{"type":"integer","minimum":0.0,"title":"Consultedrevision","description":"Revision this answer read."},"latestRevision":{"type":"integer","minimum":0.0,"title":"Latestrevision","description":"Latest committed revision."},"view":{"$ref":"#/components/schemas/ReportCompactView","description":"Typed, absence-complete facts."}},"type":"object","required":["consultedRevision","latestRevision","view"],"title":"ReportV3OverviewToolResult","description":"One V3 report's typed facts at the exact revision that was consulted."},"ReportV3SectionToolResult":{"properties":{"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"object":{"type":"string","const":"report_v3_section","title":"Object","default":"report_v3_section"},"consultedRevision":{"type":"integer","minimum":0.0,"title":"Consultedrevision","description":"Revision this answer read."},"section":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/ReportListingCohortSectionView"},{"$ref":"#/components/schemas/ReportMarketSectionView"},{"$ref":"#/components/schemas/ReportNarrativeSectionView"},{"$ref":"#/components/schemas/ReportFinalOverviewSectionView"}],"discriminator":{"propertyName":"kind","mapping":{"FINAL_OVERVIEW":"#/components/schemas/ReportFinalOverviewSectionView","LISTING_BUILD":"#/components/schemas/ReportListingCohortSectionView","MARKET_SUCCESS_INVESTMENT":"#/components/schemas/ReportMarketSectionView","NARRATIVE":"#/components/schemas/ReportNarrativeSectionView"}}},{"type":"null"}],"title":"Section","description":"Display-safe section view; None when not built."},"absence":{"anyOf":[{"$ref":"#/components/schemas/ReportGapDescriptor"},{"type":"null"}],"description":"Typed gap of a section this revision has not built."}},"type":"object","required":["consultedRevision"],"title":"ReportV3SectionToolResult","description":"One display-safe written section of a V3 report, or its typed gap."},"ReportVerdict":{"type":"string","enum":["SUITABLE","NOT_SUITABLE","NOT_DETERMINABLE"],"title":"ReportVerdict","description":"The three business verdicts a V3 report may reach."},"ReportVersion":{"type":"string","enum":["2.0.0","3.0.0"],"title":"ReportVersion","description":"Persisted report FORMAT identity, read from storage and never inferred."},"ResizeDesign":{"properties":{"action":{"type":"string","const":"RESIZE_DESIGN","title":"Action","default":"RESIZE_DESIGN"},"designId":{"type":"string","title":"Designid"},"preset":{"type":"string","enum":["amazon.aplus.banner","amazon.aplus.comparison","amazon.aplus.four_image","amazon.aplus.header","amazon.aplus.logo","amazon.aplus.quadrant","amazon.aplus.single","amazon.aplus_premium.full_width","amazon.brand_story.background","amazon.brand_story.card","amazon.main","amazon.secondary","custom","shopify.blog_featured","shopify.collection","shopify.product"],"title":"Preset"},"size":{"anyOf":[{"$ref":"#/components/schemas/PixelSize"},{"type":"null"}]},"mode":{"$ref":"#/components/schemas/ResizeMode"}},"additionalProperties":false,"type":"object","required":["designId","preset","mode"],"title":"ResizeDesign","description":"Move an OWN image to another preset (e.g. secondary 2000x2000 -> A+ header 970x600)."},"ResizeMode":{"type":"string","enum":["SCALE_TO_FIT","REFLOW"],"title":"ResizeMode","description":"How layers follow a canvas resize (the Magic-Resize choice; also a variant recipe's fit)."},"Resolution":{"type":"string","enum":["RECONNECT","FIX_AT_PROVIDER","WAIT","SUPPORT","CHECK_REQUEST"],"title":"Resolution","description":"Who resolves an issue, derived from its kind and permission."},"ResolvedWindow":{"properties":{"axis":{"$ref":"#/components/schemas/TimeAxis","description":"Which instant the window is measured on."},"span":{"$ref":"#/components/schemas/DateWindow","description":"The resolved inclusive span."}},"type":"object","required":["axis","span"],"title":"ResolvedWindow","description":"ONE resolved time window: its axis and the span it was resolved to."},"RestoreRow":{"properties":{"op":{"type":"string","const":"RESTORE_ROW","title":"Op","default":"RESTORE_ROW"},"rowKey":{"type":"string","title":"Rowkey"}},"additionalProperties":false,"type":"object","required":["rowKey"],"title":"RestoreRow","description":"Bring a discarded row back into the next proposal."},"ResumeStoreRequest":{"properties":{"storeId":{"type":"string","minLength":1,"title":"Storeid","description":"Store whose sync will resume."}},"additionalProperties":false,"type":"object","required":["storeId"],"title":"ResumeStoreRequest","description":"Resume capture after the caller has reconciled the store's slot policy."},"RevertFidelity":{"type":"string","enum":["EXACT","BEST_EFFORT","NONE"],"title":"RevertFidelity","description":"How completely ELTA can undo an action, projected onto every action diff."},"RevertLink":{"properties":{"actionKey":{"type":"string","minLength":1,"title":"Actionkey","description":"Revert action row key."},"recordId":{"type":"string","minLength":1,"title":"Recordid","description":"Apply record being reverted."}},"additionalProperties":false,"type":"object","required":["actionKey","recordId"],"title":"RevertLink","description":"Identify the apply-record row a revert action undoes."},"RevertRequest":{"properties":{"proposalId":{"type":"string","minLength":1,"title":"Proposalid","description":"Proposal to revert."},"actionKeys":{"items":{"type":"string","minLength":1},"type":"array","title":"Actionkeys","description":"Optional rows to revert; empty means every revertible row.","default":[]},"replayKey":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Replaykey","description":"Caller-owned idempotency key."},"attribution":{"anyOf":[{"$ref":"#/components/schemas/ProposalAttribution"},{"type":"null"}],"description":"Origin and reason of this undo; excluded from its hash."}},"additionalProperties":false,"type":"object","required":["proposalId"],"title":"RevertRequest","description":"Ask ELTA to construct the undo of one proposal; callers choose rows, never undo values."},"RoomCell":{"properties":{"cell":{"$ref":"#/components/schemas/Cell"},"score":{"anyOf":[{"$ref":"#/components/schemas/CellScore"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["cell"],"title":"RoomCell","description":"One rendered cell: the computed cell plus its stored score and tier (None when unscored)."},"RoomPublicAssessment":{"properties":{"object":{"type":"string","const":"room_assessment","title":"Object","default":"room_assessment"},"key":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Key"},"label":{"$ref":"#/components/schemas/LocalizedText"},"kind":{"$ref":"#/components/schemas/AssessmentKind"},"ranges":{"items":{"$ref":"#/components/schemas/AssessmentRange"},"type":"array","title":"Ranges","default":[]}},"additionalProperties":false,"type":"object","required":["key","label","kind"],"title":"RoomPublicAssessment","description":"One declared judgement as a customer sees it, without its model brief or dependencies."},"RoomPublicDecisionOffer":{"properties":{"object":{"type":"string","const":"room_decision_offer","title":"Object","default":"room_decision_offer"},"eligible":{"type":"boolean","title":"Eligible"},"refusal":{"anyOf":[{"$ref":"#/components/schemas/DecisionRefusal"},{"type":"null"}]},"offeredCells":{"type":"integer","minimum":0.0,"title":"Offeredcells","default":0}},"additionalProperties":false,"type":"object","required":["eligible"],"title":"RoomPublicDecisionOffer","description":"Whether a decision run can start, without the internal decision-input size."},"RoomPublicDecisionRead":{"properties":{"object":{"type":"string","const":"room_decision","title":"Object","default":"room_decision"},"scorecard":{"anyOf":[{"$ref":"#/components/schemas/RoomPublicScorecard"},{"type":"null"}]},"decision":{"anyOf":[{"$ref":"#/components/schemas/DecisionRecord"},{"type":"null"}]},"offer":{"$ref":"#/components/schemas/RoomPublicDecisionOffer"},"scoredCells":{"items":{"$ref":"#/components/schemas/RoomCell"},"type":"array","title":"Scoredcells","default":[]}},"additionalProperties":false,"type":"object","required":["offer"],"title":"RoomPublicDecisionRead","description":"The decision read a customer sees, with request_chars dropped."},"RoomPublicDeclaration":{"properties":{"object":{"type":"string","const":"room_declaration","title":"Object","default":"room_declaration"},"pluginId":{"type":"string","maxLength":80,"pattern":"^[a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*$","title":"Pluginid"},"title":{"$ref":"#/components/schemas/LocalizedText"},"description":{"$ref":"#/components/schemas/LocalizedText"},"itemNoun":{"$ref":"#/components/schemas/LocalizedText"},"setup":{"items":{"$ref":"#/components/schemas/SetupField"},"type":"array","title":"Setup"},"facts":{"items":{"$ref":"#/components/schemas/FactSpec"},"type":"array","title":"Facts"},"measures":{"items":{"$ref":"#/components/schemas/RoomPublicMeasure"},"type":"array","title":"Measures"},"assessments":{"items":{"$ref":"#/components/schemas/RoomPublicAssessment"},"type":"array","title":"Assessments"},"dimensions":{"$ref":"#/components/schemas/RoomPublicDimensions"},"grid":{"$ref":"#/components/schemas/GridSpec"},"detail":{"items":{"$ref":"#/components/schemas/DetailSection"},"type":"array","title":"Detail"},"itemCard":{"$ref":"#/components/schemas/ItemCardSpec"}},"additionalProperties":false,"type":"object","required":["pluginId","title","description","itemNoun","setup","facts","measures","assessments","dimensions","grid","detail","itemCard"],"title":"RoomPublicDeclaration","description":"One plugin declaration as a customer room renders it."},"RoomPublicDimensions":{"properties":{"object":{"type":"string","const":"room_dimensions","title":"Object","default":"room_dimensions"},"computed":{"items":{"$ref":"#/components/schemas/BandedDimension"},"type":"array","title":"Computed","default":[]}},"additionalProperties":false,"type":"object","title":"RoomPublicDimensions","description":"Which dimensions a positioning may use, without the classifier brief."},"RoomPublicMeasure":{"properties":{"object":{"type":"string","const":"room_measure","title":"Object","default":"room_measure"},"key":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Key"},"label":{"$ref":"#/components/schemas/LocalizedText"},"format":{"$ref":"#/components/schemas/MeasureFormat"}},"additionalProperties":false,"type":"object","required":["key","label","format"],"title":"RoomPublicMeasure","description":"One declared measure as a customer sees it, without its computation rule."},"RoomPublicPositioning":{"properties":{"object":{"type":"string","const":"room_positioning","title":"Object","default":"room_positioning"},"positioningId":{"type":"string","minLength":1,"title":"Positioningid"},"taskId":{"type":"string","minLength":1,"title":"Taskid"},"gridId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gridid"},"pluginId":{"type":"string","maxLength":80,"pattern":"^[a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*$","title":"Pluginid"},"language":{"$ref":"#/components/schemas/Language"},"brief":{"type":"string","maxLength":4000,"title":"Brief"},"phase":{"$ref":"#/components/schemas/Phase"},"status":{"$ref":"#/components/schemas/PhaseStatus"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"additionalProperties":false,"type":"object","required":["positioningId","taskId","pluginId","language","brief","phase","status","createdAt"],"title":"RoomPublicPositioning","description":"The customer-visible half of one positioning record."},"RoomPublicRead":{"properties":{"object":{"type":"string","const":"room","title":"Object","default":"room"},"positioning":{"$ref":"#/components/schemas/RoomPublicPositioning"},"declaration":{"$ref":"#/components/schemas/RoomPublicDeclaration"},"viewport":{"$ref":"#/components/schemas/Viewport"},"view":{"$ref":"#/components/schemas/ViewDefinition"},"dimensions":{"items":{"$ref":"#/components/schemas/DimensionRecord"},"type":"array","title":"Dimensions"},"criteria":{"items":{"$ref":"#/components/schemas/CriterionRecord"},"type":"array","title":"Criteria"},"cells":{"items":{"$ref":"#/components/schemas/RoomCell"},"type":"array","title":"Cells"}},"additionalProperties":false,"type":"object","required":["positioning","declaration","viewport","view","dimensions","criteria","cells"],"title":"RoomPublicRead","description":"Everything the customer room renders, with the plugin declaration projected safe."},"RoomPublicScorecard":{"properties":{"object":{"type":"string","const":"room_scorecard","title":"Object","default":"room_scorecard"},"profile":{"type":"string","title":"Profile"},"cells":{"items":{"$ref":"#/components/schemas/CellScore"},"type":"array","title":"Cells"},"excluded":{"items":{"type":"string","maxLength":400,"minLength":1},"type":"array","title":"Excluded","default":[]},"threshold":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Threshold","default":60},"scoredAt":{"type":"string","format":"date-time","title":"Scoredat"}},"additionalProperties":false,"type":"object","required":["profile","cells","scoredAt"],"title":"RoomPublicScorecard","description":"One stored scorecard as a customer sees it, without request_chars."},"RouteHints":{"properties":{"channel":{"anyOf":[{"$ref":"#/components/schemas/Channel"},{"type":"null"}],"description":"Channel pinned for the question; null lets the router choose."},"market":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"title":"Market","description":"Market pinned for the selected channel and node family."},"resultKind":{"anyOf":[{"$ref":"#/components/schemas/AnalyzedRecordKind"},{"type":"null"}],"description":"Record family pinned for the answer."},"nodeKind":{"anyOf":[{"$ref":"#/components/schemas/NodeKind"},{"type":"null"}],"description":"Node family pinned for a node answer."},"windowDays":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Windowdays","description":"Time window in days pinned for windowed metrics; refused when the cell cannot apply one."}},"type":"object","title":"RouteHints","description":"The pinned read preferences carried with a public question."},"RowPreview":{"properties":{"diff":{"$ref":"#/components/schemas/ActionDiff"},"outcome":{"$ref":"#/components/schemas/ActionOutcome"}},"additionalProperties":false,"type":"object","required":["diff","outcome"],"title":"RowPreview","description":"ELTA's preview of one kept row at the list's current revision."},"RunEnding":{"properties":{"outcome":{"$ref":"#/components/schemas/RunOutcome"},"failureCode":{"anyOf":[{"$ref":"#/components/schemas/RunFailureCode"},{"type":"null"}]},"step":{"anyOf":[{"$ref":"#/components/schemas/RunStep"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["outcome"],"title":"RunEnding","description":"How a finished run ended, kept on its run state after the durable event is delivered."},"RunFailureCode":{"type":"string","enum":["IN_FLIGHT_CALL","WAIT_EXPIRED","SETUP_INVALID","STEP_ATTEMPTS_EXHAUSTED"],"title":"RunFailureCode","description":"The finite reasons a run ended without success."},"RunOutcome":{"type":"string","enum":["SUCCEEDED","FAILED","ABANDONED"],"title":"RunOutcome","description":"The execution outcome of a run. The host owns settlement."},"RunRead":{"properties":{"positioning":{"$ref":"#/components/schemas/PositioningRecord"},"nextStep":{"anyOf":[{"$ref":"#/components/schemas/RunStep"},{"type":"null"}]},"waitingAfter":{"anyOf":[{"$ref":"#/components/schemas/RunStep"},{"type":"null"}]},"waitingUntil":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Waitinguntil"},"queued":{"items":{"$ref":"#/components/schemas/ChangeActionType"},"type":"array","title":"Queued"},"ending":{"anyOf":[{"$ref":"#/components/schemas/RunEnding"},{"type":"null"}]},"dimensions":{"items":{"$ref":"#/components/schemas/DimensionRecord"},"type":"array","title":"Dimensions"},"criteria":{"items":{"$ref":"#/components/schemas/CriterionRecord"},"type":"array","title":"Criteria"}},"additionalProperties":false,"type":"object","required":["positioning","nextStep","waitingAfter","waitingUntil","queued","ending","dimensions","criteria"],"title":"RunRead","description":"Where the run stands: the stepper, the step waiting for review, queued work, the grid's shape."},"RunStep":{"type":"string","enum":["SCOPE","SOURCE","DIMENSIONS","PLACE","ASSESS","SCORE"],"title":"RunStep","description":"The six run steps, in order. Each of the first five can be reviewed by the caller."},"SampleConfirmation":{"properties":{"step":{"type":"string","const":"SAMPLE_CONFIRMATION","title":"Step","default":"SAMPLE_CONFIRMATION"},"shownPostKeys":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Shownpostkeys"},"verdict":{"$ref":"#/components/schemas/SampleVerdict"},"feedback":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Feedback"},"revisePostKeys":{"items":{"type":"string"},"type":"array","title":"Revisepostkeys","default":[]}},"additionalProperties":false,"type":"object","required":["shownPostKeys","verdict"],"title":"SampleConfirmation","description":"SAMPLE_CONFIRMATION (1.6): the sample shown, the seller's verdict, and what to change."},"SampleRelevanceAnswer":{"properties":{"decisionType":{"type":"string","const":"SAMPLE_RELEVANCE","title":"Decisiontype","default":"SAMPLE_RELEVANCE"},"verdicts":{"items":{"$ref":"#/components/schemas/SampleRelevanceVerdict"},"type":"array","minItems":1,"title":"Verdicts","description":"One verdict per judged item."}},"additionalProperties":false,"type":"object","required":["verdicts"],"title":"SampleRelevanceAnswer","description":"A fragment of the delegated sample-relevance decision."},"SampleRelevanceItem":{"properties":{"itemKey":{"type":"string","minLength":1,"title":"Itemkey","description":"Stable candidate identity."},"asin":{"type":"string","minLength":1,"title":"Asin","description":"Display ASIN."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Display title."},"brand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand","description":"Display brand."},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Imageurl","description":"Display image URL."},"price":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"Observed selling price."}},"additionalProperties":false,"type":"object","required":["itemKey","asin"],"title":"SampleRelevanceItem","description":"ONE frozen product projection: a labelled baseline or a candidate."},"SampleRelevanceVerdict":{"properties":{"itemKey":{"type":"string","minLength":1,"title":"Itemkey","description":"Judged candidate identity."},"similarity":{"$ref":"#/components/schemas/ProductSimilarType","description":"Matcher similarity level."},"isBattery":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isbattery","description":"Whether the candidate contains a battery."},"isApparel":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isapparel","description":"Whether the candidate is apparel."},"reason":{"type":"string","maxLength":500,"title":"Reason","description":"Short justification.","default":""}},"additionalProperties":false,"type":"object","required":["itemKey","similarity"],"title":"SampleRelevanceVerdict","description":"ONE verdict on whether a candidate belongs to the analysed product."},"SampleVerdict":{"type":"string","enum":["APPROVED","REVISE"],"title":"SampleVerdict","description":"The seller's reaction to the sample the agent showed (1.6)."},"SaveCriterion":{"properties":{"type":{"type":"string","const":"SAVE_CRITERION","title":"Type","default":"SAVE_CRITERION"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"criterion":{"$ref":"#/components/schemas/CriterionRecord"}},"additionalProperties":false,"type":"object","required":["actionKey","criterion"],"title":"SaveCriterion","description":"Create or replace one criterion; its results are judged only when asked (ASSESS)."},"SaveDimension":{"properties":{"type":{"type":"string","const":"SAVE_DIMENSION","title":"Type","default":"SAVE_DIMENSION"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"dimension":{"$ref":"#/components/schemas/DimensionRecord"}},"additionalProperties":false,"type":"object","required":["actionKey","dimension"],"title":"SaveDimension","description":"Create or replace one dimension with its ordered options (rename, reorder, drop in one save)."},"SaveView":{"properties":{"type":{"type":"string","const":"SAVE_VIEW","title":"Type","default":"SAVE_VIEW"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"viewer":{"$ref":"#/components/schemas/ViewerRef"},"expectedRevision":{"type":"integer","minimum":0.0,"title":"Expectedrevision"},"view":{"$ref":"#/components/schemas/ViewDefinition"}},"additionalProperties":false,"type":"object","required":["actionKey","viewer","expectedRevision","view"],"title":"SaveView","description":"Create or replace one saved view in the viewer's own viewport."},"ScenarioRole":{"type":"string","enum":["ROBUST","EXPECTED","POSSIBLE","TIER_PROBE"],"title":"ScenarioRole","description":"Role of one coherent economic scenario inside a profit envelope."},"SceneCueBinding":{"properties":{"binding":{"type":"string","const":"SCENE_CUE","title":"Binding","default":"SCENE_CUE"}},"additionalProperties":false,"type":"object","title":"SceneCueBinding","description":"A plan column whose non-empty cell queues one paid GenerateScene(replaces=…) on that row's image."},"Score":{"properties":{"type":{"type":"string","const":"SCORE","title":"Type","default":"SCORE"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"}},"additionalProperties":false,"type":"object","required":["actionKey"],"title":"Score","description":"Recompute the scorecard from the cells as they are now (after edits, if the caller wants)."},"ScreeningEnforcement":{"type":"string","enum":["BLOCK","HINT"],"title":"ScreeningEnforcement","description":"Whether a cited screening finding blocks proposing or is shown as guidance."},"ScreeningFinding":{"properties":{"reason":{"$ref":"#/components/schemas/ScreeningRefusal"},"pointer":{"type":"string","pattern":"^/.*$","title":"Pointer"},"matchedText":{"type":"string","minLength":1,"title":"Matchedtext"},"rule":{"$ref":"#/components/schemas/ScreeningRule"},"enforcement":{"$ref":"#/components/schemas/ScreeningEnforcement"}},"additionalProperties":false,"type":"object","required":["reason","pointer","matchedText","rule","enforcement"],"title":"ScreeningFinding","description":"One finding: why, where, matched text, rule and copied enforcement."},"ScreeningRefusal":{"type":"string","enum":["SENSITIVE_CATEGORY","FORBIDDEN_TERM","KNOWN_NON_OWNER_BRAND","DISALLOWED_CHARACTER"],"title":"ScreeningRefusal","description":"Why a text leaf is blocked; each value has its own user-facing explanation key."},"ScreeningResult":{"properties":{"policyBundleVersion":{"type":"string","minLength":1,"title":"Policybundleversion"},"brandCorpus":{"$ref":"#/components/schemas/BrandCorpusRef"},"findings":{"items":{"$ref":"#/components/schemas/ScreeningFinding"},"type":"array","title":"Findings"}},"additionalProperties":false,"type":"object","required":["policyBundleVersion","brandCorpus","findings"],"title":"ScreeningResult","description":"Cited findings under one deployed rule bundle and one frozen brand corpus."},"ScreeningRule":{"properties":{"ruleId":{"type":"string","minLength":1,"title":"Ruleid"},"citation":{"$ref":"#/components/schemas/PolicyCitation"},"enforcement":{"$ref":"#/components/schemas/ScreeningEnforcement"}},"additionalProperties":false,"type":"object","required":["ruleId","citation","enforcement"],"title":"ScreeningRule","description":"One checked-in rule, its citation and whether its findings block."},"Search":{"properties":{"fromObject":{"anyOf":[{"$ref":"#/components/schemas/FromObject"},{"type":"null"}],"description":"Source object the path starts from; null runs one query for the target kind from search alone."},"search":{"$ref":"#/components/schemas/SearchObject","description":"The requested target kind, exact identities and typed predicates."},"sourceMode":{"$ref":"#/components/schemas/SourceMode","description":"Which source the read executes against: live sources, published analyzed rows, or analyzed with a live fallback.","default":"LIVE"}},"type":"object","required":["fromObject","search"],"title":"Search","description":"A direct target query or a shortest typed path from a source object (R24)."},"SearchAnswer":{"properties":{"object":{"type":"string","const":"answer","title":"Object","description":"Public object discriminator."},"answer":{"type":"string","title":"Answer","description":"Decoded answer text for the caller."}},"type":"object","required":["object","answer"],"title":"SearchAnswer","description":"A public decoded single-subject answer."},"SearchClarify":{"properties":{"object":{"type":"string","const":"clarify","title":"Object","description":"Public object discriminator."},"askUser":{"type":"string","title":"Askuser","description":"Question the caller must answer."},"choices":{"items":{"type":"string"},"type":"array","title":"Choices","description":"Allowed clarification choices."},"queryKey":{"type":"string","title":"Querykey","description":"Stored partial-query key being resumed."}},"type":"object","required":["object","askUser","choices","queryKey"],"title":"SearchClarify","description":"A public clarification request."},"SearchItem":{"properties":{"object":{"type":"string","const":"record","title":"Object","description":"Public object discriminator."},"recordKind":{"$ref":"#/components/schemas/AnalyzedRecordKind","description":"Record family of the item."},"recordKey":{"type":"string","title":"Recordkey","description":"Stable record key."},"channel":{"anyOf":[{"$ref":"#/components/schemas/Channel"},{"type":"null"}],"description":"Source channel, when applicable."},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Readable display label, when known."},"fields":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"}]},"type":"object","title":"Fields","description":"Authorized dynamic scalar values for the record."},"evidence":{"items":{"$ref":"#/components/schemas/MatchedFact"},"type":"array","title":"Evidence","description":"Evidence explaining the matched query clauses."},"relations":{"items":{"$ref":"#/components/schemas/RelationRef"},"type":"array","maxItems":16,"title":"Relations","description":"Observed relationships to other served nodes; at most 16.","default":[]}},"type":"object","required":["object","recordKind","recordKey","channel","fields","evidence"],"title":"SearchItem","description":"One public result item of the text-routed search page."},"SearchObject":{"properties":{"kind":{"$ref":"#/components/schemas/NodeKind","description":"Node kind requested as the target of the search."},"targetIds":{"anyOf":[{"items":{"$ref":"#/components/schemas/NodeRef"},"type":"array"},{"type":"null"}],"title":"Targetids","description":"Explicit target identities to restrict the result to; null means no explicit selection."},"clauses":{"items":{"oneOf":[{"$ref":"#/components/schemas/TextClause"},{"$ref":"#/components/schemas/BrandClause"},{"$ref":"#/components/schemas/CategoryClause"},{"$ref":"#/components/schemas/MetricClause"},{"$ref":"#/components/schemas/PriceClause"},{"$ref":"#/components/schemas/DateClause"},{"$ref":"#/components/schemas/ContactClause"}],"discriminator":{"propertyName":"kind","mapping":{"BRAND":"#/components/schemas/BrandClause","CATEGORY":"#/components/schemas/CategoryClause","CONTACT":"#/components/schemas/ContactClause","DATE":"#/components/schemas/DateClause","METRIC":"#/components/schemas/MetricClause","PRICE":"#/components/schemas/PriceClause","TEXT":"#/components/schemas/TextClause"}}},"type":"array","title":"Clauses","description":"Predicates ANDed over the target; CONTACT is CREATOR-only and cannot appear in any_of.","default":[]},"anyOf":{"items":{"items":{"oneOf":[{"$ref":"#/components/schemas/TextClause"},{"$ref":"#/components/schemas/BrandClause"},{"$ref":"#/components/schemas/CategoryClause"},{"$ref":"#/components/schemas/MetricClause"},{"$ref":"#/components/schemas/PriceClause"},{"$ref":"#/components/schemas/DateClause"}],"discriminator":{"propertyName":"kind","mapping":{"BRAND":"#/components/schemas/BrandClause","CATEGORY":"#/components/schemas/CategoryClause","DATE":"#/components/schemas/DateClause","METRIC":"#/components/schemas/MetricClause","PRICE":"#/components/schemas/PriceClause","TEXT":"#/components/schemas/TextClause"}}},"type":"array"},"type":"array","title":"Anyof","description":"Groups whose member predicates are ORed together; the groups themselves are ANDed.","default":[]},"channel":{"anyOf":[{"$ref":"#/components/schemas/Channel"},{"type":"null"}],"description":"Channel to search; null searches stored rows across channels, and a live search needs a channel."},"peers":{"anyOf":[{"$ref":"#/components/schemas/PeerIntent"},{"type":"null"}],"description":"Same-kind peer meaning (competitors/lookalikes); valid only when the source and target kinds match."},"evidenceBases":{"anyOf":[{"items":{"$ref":"#/components/schemas/EvidenceBasis"},"type":"array","minItems":1},{"type":"null"}],"uniqueItems":true,"title":"Evidencebases","description":"Keep only hits whose path basis (the weakest hop on the strongest path from from_object) is in this nonempty, unique set; omission/null keeps every basis. Search-only; requires from_object. RECORDED includes recorded promotion links. NodeHit.promoted separately indicates a recorded promotional link or explicit paid sponsorship; when the hit's claim about the matched entity carries a stance, paid sponsorship counts only if that claim recommends the entity as the item's main subject. It does not determine the path basis. MENTIONED: the content's text names it, with no platform link. SIMILAR: resemblance only. This selector never re-admits stored SIMILAR promotion rows excluded by platform rules."},"market":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"title":"Market","description":"Market the search runs in; null uses the searcher's default."},"sort":{"anyOf":[{"$ref":"#/components/schemas/Sort"},{"type":"null"}],"description":"Ordering of the returned target rows."},"require":{"items":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z_]{1,64}$"},"type":"array","title":"Require","description":"Fields that every returned record must carry.","default":[]},"conceptKind":{"anyOf":[{"$ref":"#/components/schemas/ConceptKind"},{"type":"null"}],"description":"Concept kind filter when the target kind is CONCEPT."},"preset":{"anyOf":[{"$ref":"#/components/schemas/MotifSection"},{"type":"null"}],"description":"Named motif section preset; valid only for a MOTIF target read in ANALYZED mode."},"textFrom":{"anyOf":[{"type":"string","enum":["title","brand","native_id"]},{"type":"null"}],"title":"Textfrom","description":"Which source fact becomes the target's search text; null keeps the standard builder."},"dateWindow":{"anyOf":[{"$ref":"#/components/schemas/DateWindow"},{"type":"null"}],"description":"Inclusive calendar span for a KEYWORD or CONTENT target."},"motifWindow":{"anyOf":[{"$ref":"#/components/schemas/MotifWindow"},{"type":"null"}],"description":"Motif comparison window: the selected days and the equally long window before them."},"livePage":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Livepage","description":"LIVE-only page number carried to the DIC query; null uses the DIC default. A stored read refuses it with UNSUPPORTED_QUESTION."},"buyBoxFulfilledByMarketplace":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Buyboxfulfilledbymarketplace","description":"PRODUCT LIVE only: carried to the DIC ProductQuery field of the same name; a stored read refuses it with UNSUPPORTED_QUESTION."},"oneVariantPerParent":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Onevariantperparent","description":"PRODUCT LIVE only: collapse to one variant per parent; null keeps the DIC default (every variant). A stored read refuses it with UNSUPPORTED_QUESTION."},"acquisition":{"anyOf":[{"type":"string","const":"SNAPSHOT"},{"type":"null"}],"description":"Snapshot acquisition opt-in copied to the DIC query; null means LIVE. `:check` refuses it under ANALYZED or on a seeded or non-root hop."},"limit":{"type":"integer","title":"Limit","description":"Maximum number of target rows returned.","default":20}},"type":"object","required":["kind"],"title":"SearchObject","description":"The requested target kind, exact identities and typed target predicates."},"SearchPage":{"properties":{"object":{"type":"string","const":"search_page","title":"Object","description":"Public object discriminator."},"resultKind":{"$ref":"#/components/schemas/AnalyzedRecordKind","description":"Family shared by all page items."},"items":{"items":{"$ref":"#/components/schemas/SearchItem"},"type":"array","title":"Items","description":"Result items in page order."},"coverage":{"items":{"$ref":"#/components/schemas/CoverageNote"},"type":"array","title":"Coverage","description":"Disclosed coverage gaps."},"windowEnd":{"type":"string","format":"date-time","title":"Windowend","description":"Resolved window end for this page."},"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor","description":"Opaque signed token for the next page."},"unapplied":{"items":{"type":"string"},"type":"array","maxItems":8,"title":"Unapplied","description":"Verbatim question substrings the router could not apply; at most 8.","default":[]},"emptyCause":{"anyOf":[{"$ref":"#/components/schemas/GapKind"},{"type":"null"}],"description":"Why this page returned no items; null when it carries items."}},"type":"object","required":["object","resultKind","items","coverage","windowEnd","cursor"],"title":"SearchPage","description":"A public page of text-routed search items and its opaque cursor."},"SearchPending":{"properties":{"object":{"type":"string","const":"search_pending","title":"Object","description":"Public object discriminator."},"detail":{"type":"string","title":"Detail","description":"Safe explanation: results are still being collected; repeat the same search shortly."},"retryAfterSeconds":{"type":"integer","maximum":300.0,"minimum":1.0,"title":"Retryafterseconds","description":"Seconds after which the caller may repeat the same search."}},"type":"object","required":["object","detail","retryAfterSeconds"],"title":"SearchPending","description":"A public search whose source has not settled yet."},"SearchPlacement":{"properties":{"placement":{"$ref":"#/components/schemas/SearchPlacementType"},"rank":{"anyOf":[{"type":"integer","maximum":9.223372036854776e+18,"minimum":1.0},{"type":"null"}],"title":"Rank"},"page":{"anyOf":[{"type":"integer","maximum":9.223372036854776e+18,"minimum":1.0},{"type":"null"}],"title":"Page"},"pageRank":{"anyOf":[{"type":"integer","maximum":9.223372036854776e+18,"minimum":1.0},{"type":"null"}],"title":"Pagerank"}},"additionalProperties":false,"type":"object","required":["placement"],"title":"SearchPlacement","description":"One typed display placement of a RANKED_FOR relationship."},"SearchPlacementType":{"type":"string","enum":["ORGANIC","SPONSORED_PRODUCTS","AMAZON_CHOICE","SPONSORED_BRANDS","SPONSORED_BRANDS_VIDEO","OTHER_ORGANIC","OTHER_SPONSORED"],"title":"SearchPlacementType","description":"Name one documented Amazon search-result placement in plain channel terms."},"SearchRefused":{"properties":{"object":{"type":"string","const":"refused","title":"Object","description":"Public object discriminator."},"reason":{"type":"string","enum":["UNSUPPORTED_QUESTION","DATA_CHANGED","INVALID_CURSOR","NOT_AVAILABLE"],"title":"Reason","description":"Stable public refusal reason."},"detail":{"type":"string","title":"Detail","description":"Safe explanation of the refusal."},"refusal":{"$ref":"#/components/schemas/Refusal","description":"Typed refusal code, field and DP-worded detail."},"suggestions":{"items":{"oneOf":[{"$ref":"#/components/schemas/CreatorHandleSuggestion"},{"$ref":"#/components/schemas/TopByMetricSuggestion"}],"discriminator":{"propertyName":"kind","mapping":{"CREATOR_HANDLE":"#/components/schemas/CreatorHandleSuggestion","TOP_BY_METRIC":"#/components/schemas/TopByMetricSuggestion"}}},"type":"array","title":"Suggestions","description":"Supported next steps that do not reuse an unapplied topic.","default":[]},"failureRef":{"anyOf":[{"$ref":"#/components/schemas/FailureRef"},{"type":"null"}],"description":"Public request-ledger id this refusal was recorded as."}},"type":"object","required":["object","reason","detail","refusal"],"title":"SearchRefused","description":"A typed public refusal with honest, topic-free next steps (D-23.1)."},"SearchRequest":{"properties":{"maxRows":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":1.0},{"type":"null"}],"title":"Maxrows","description":"Optional row ceiling for this call; the smaller of this and the normal page size is returned. Omission preserves the normal page size."},"answerLanguage":{"$ref":"#/components/schemas/AnswerLanguage","description":"Language of seller-facing clarifications and refusals.","default":"EN"},"question":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question","description":"The natural-language question to answer."},"search":{"anyOf":[{"$ref":"#/components/schemas/Search"},{"type":"null"}],"description":"The typed structured search to execute."},"hints":{"anyOf":[{"$ref":"#/components/schemas/RouteHints"},{"type":"null"}],"description":"Optional predicates pinned into the stored plan."},"clarification":{"anyOf":[{"$ref":"#/components/schemas/ClarificationAnswer"},{"type":"null"}],"description":"The stored clarification choice being resumed."},"fields":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Fields","description":"Authorized display-field whitelist; null means all authorized fields."}},"type":"object","title":"SearchRequest","description":"One question or structured search with an optional per-call row ceiling."},"SetBackground":{"properties":{"action":{"type":"string","const":"SET_BACKGROUND","title":"Action","default":"SET_BACKGROUND"},"designId":{"type":"string","title":"Designid"},"color":{"anyOf":[{"$ref":"#/components/schemas/Color"},{"$ref":"#/components/schemas/BrandColorRef"}],"title":"Color"}},"additionalProperties":false,"type":"object","required":["designId","color"],"title":"SetBackground","description":"Set an image's background colour (literal or kit ref); on a VARIANT it is a BACKGROUND override."},"SetBoardTitle":{"properties":{"action":{"type":"string","const":"SET_BOARD_TITLE","title":"Action","default":"SET_BOARD_TITLE"},"title":{"type":"string","maxLength":120,"minLength":1,"title":"Title"}},"additionalProperties":false,"type":"object","required":["title"],"title":"SetBoardTitle","description":"Rename the board through the same revisioned edit batch as every other change (D-12a)."},"SetBox":{"properties":{"action":{"type":"string","const":"SET_BOX","title":"Action","default":"SET_BOX"},"designId":{"type":"string","title":"Designid"},"layerId":{"type":"string","title":"Layerid"},"box":{"$ref":"#/components/schemas/Box"}},"additionalProperties":false,"type":"object","required":["designId","layerId","box"],"title":"SetBox","description":"Move, resize or rotate one layer; on a group, its children move and scale so their bounds become box."},"SetDailyBudgetValue":{"properties":{"kind":{"type":"string","const":"daily_budget","title":"Kind","default":"daily_budget"},"dailyBudget":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Dailybudget"}},"additionalProperties":false,"type":"object","required":["dailyBudget"],"title":"SetDailyBudgetValue","description":"The suggested daily budget of one Sponsored Products campaign."},"SetImageTransform":{"properties":{"action":{"type":"string","const":"SET_IMAGE_TRANSFORM","title":"Action","default":"SET_IMAGE_TRANSFORM"},"objectId":{"type":"string","title":"Objectid"},"layerId":{"type":"string","title":"Layerid"},"flipX":{"type":"boolean","title":"Flipx"},"flipY":{"type":"boolean","title":"Flipy"},"crop":{"anyOf":[{"$ref":"#/components/schemas/Box"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["objectId","layerId","flipX","flipY","crop"],"title":"SetImageTransform","description":"Set an image layer's flips and crop together (all stated, like SetLayerFlags); free."},"SetLayerFlags":{"properties":{"action":{"type":"string","const":"SET_LAYER_FLAGS","title":"Action","default":"SET_LAYER_FLAGS"},"designId":{"type":"string","title":"Designid"},"layerId":{"type":"string","title":"Layerid"},"name":{"type":"string","minLength":1,"title":"Name"},"opacity":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Opacity"},"blendMode":{"$ref":"#/components/schemas/BlendMode"},"visible":{"type":"boolean","title":"Visible"},"locked":{"type":"boolean","title":"Locked"}},"additionalProperties":false,"type":"object","required":["designId","layerId","name","opacity","blendMode","visible","locked"],"title":"SetLayerFlags","description":"Set a layer's name, opacity, blend, visibility and lock together (all stated, none optional)."},"SetObjectFrame":{"properties":{"action":{"type":"string","const":"SET_OBJECT_FRAME","title":"Action","default":"SET_OBJECT_FRAME"},"objectId":{"type":"string","title":"Objectid"},"name":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Name"},"position":{"anyOf":[{"$ref":"#/components/schemas/BoardPoint"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["objectId"],"title":"SetObjectFrame","description":"Rename and/or move any object on the board; allowed while AI-busy (a landing never reads position)."},"SetObjectLock":{"properties":{"action":{"type":"string","const":"SET_OBJECT_LOCK","title":"Action","default":"SET_OBJECT_LOCK"},"objectId":{"type":"string","title":"Objectid"},"locked":{"type":"boolean","title":"Locked"}},"additionalProperties":false,"type":"object","required":["objectId","locked"],"title":"SetObjectLock","description":"Lock or unlock one object against agent edits; sole in its batch, USER only, writes only the lock map (A1)."},"SetPlacements":{"properties":{"type":{"type":"string","const":"SET_PLACEMENTS","title":"Type","default":"SET_PLACEMENTS"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"dimensionKey":{"type":"string","maxLength":80,"minLength":1,"title":"Dimensionkey"},"placements":{"additionalProperties":{"anyOf":[{"type":"string","maxLength":80,"minLength":1},{"type":"null"}]},"propertyNames":{"maxLength":200,"minLength":1},"type":"object","minProperties":1,"title":"Placements"}},"additionalProperties":false,"type":"object","required":["actionKey","dimensionKey","placements"],"title":"SetPlacements","description":"Put groups into options of one dimension by hand (None takes a group out)."},"SetPlan":{"properties":{"action":{"type":"string","const":"SET_PLAN","title":"Action","default":"SET_PLAN"},"planId":{"type":"string","title":"Planid"},"columns":{"anyOf":[{"items":{"$ref":"#/components/schemas/PlanColumn"},"type":"array","minItems":1},{"type":"null"}],"title":"Columns"},"upsertRows":{"items":{"$ref":"#/components/schemas/PlanRow"},"type":"array","title":"Upsertrows","default":[]},"deletedRowIds":{"items":{"type":"string"},"type":"array","title":"Deletedrowids","default":[]}},"additionalProperties":false,"type":"object","required":["planId"],"title":"SetPlan","description":"Edit a plan: replace its columns, upsert rows by id, delete rows (merges rev 1's two plan actions, A18)."},"SetResults":{"properties":{"type":{"type":"string","const":"SET_RESULTS","title":"Type","default":"SET_RESULTS"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"assessment":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Assessment"},"results":{"additionalProperties":{"$ref":"#/components/schemas/AssessmentResult"},"propertyNames":{"maxLength":400,"minLength":1},"type":"object","minProperties":1,"title":"Results"}},"additionalProperties":false,"type":"object","required":["actionKey","assessment","results"],"title":"SetResults","description":"Write cells' results of one assessment or criterion by hand (the ASSESS review's answer)."},"SetReview":{"properties":{"type":{"type":"string","const":"SET_REVIEW","title":"Type","default":"SET_REVIEW"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"review":{"additionalProperties":{"$ref":"#/components/schemas/Decider"},"propertyNames":{"$ref":"#/components/schemas/RunStep"},"type":"object","minProperties":1,"title":"Review"}},"additionalProperties":false,"type":"object","required":["actionKey","review"],"title":"SetReview","description":"Change who decides the named steps; takes effect at the next step that ends."},"SetSettings":{"properties":{"action":{"type":"string","const":"SET_SETTINGS","title":"Action","default":"SET_SETTINGS"},"sectionKey":{"type":"string","pattern":"^keble-[a-z0-9][a-z0-9-]{0,56}$","title":"Sectionkey"},"blockKey":{"anyOf":[{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,62}$"},{"type":"null"}],"title":"Blockkey"},"settings":{"patternProperties":{"^[a-z][a-z0-9_]{0,62}$":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}]}},"type":"object","minProperties":1,"title":"Settings"}},"additionalProperties":false,"type":"object","required":["sectionKey","settings"],"title":"SetSettings","description":"Set values on one section, or on one of its blocks when block_key is given."},"SetSetup":{"properties":{"type":{"type":"string","const":"SET_SETUP","title":"Type","default":"SET_SETUP"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"values":{"patternProperties":{"^[A-Z][A-Z0-9_]*$":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"string"},{"items":{"type":"string"},"type":"array"}]}},"propertyNames":{"maxLength":64},"type":"object","title":"Values"}},"additionalProperties":false,"type":"object","required":["actionKey","values"],"title":"SetSetup","description":"Replace the named setup values (the SCOPE review's answer, or a later correction)."},"SetShadow":{"properties":{"action":{"type":"string","const":"SET_SHADOW","title":"Action","default":"SET_SHADOW"},"designId":{"type":"string","title":"Designid"},"layerId":{"type":"string","title":"Layerid"},"shadow":{"anyOf":[{"$ref":"#/components/schemas/DropShadow"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["designId","layerId","shadow"],"title":"SetShadow","description":"Set or clear the drop shadow of any leaf layer (image, text or shape)."},"SetShapeStyle":{"properties":{"action":{"type":"string","const":"SET_SHAPE_STYLE","title":"Action","default":"SET_SHAPE_STYLE"},"designId":{"type":"string","title":"Designid"},"layerId":{"type":"string","title":"Layerid"},"fill":{"anyOf":[{"$ref":"#/components/schemas/Color"},{"$ref":"#/components/schemas/BrandColorRef"},{"$ref":"#/components/schemas/LinearGradient"},{"$ref":"#/components/schemas/RadialGradient"},{"type":"null"}],"title":"Fill"},"stroke":{"anyOf":[{"$ref":"#/components/schemas/Stroke"},{"type":"null"}]},"geometry":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/RectGeometry"},{"$ref":"#/components/schemas/EllipseGeometry"},{"$ref":"#/components/schemas/LineGeometry"},{"$ref":"#/components/schemas/PolygonGeometry"},{"$ref":"#/components/schemas/PathGeometry"}],"discriminator":{"propertyName":"kind","mapping":{"ELLIPSE":"#/components/schemas/EllipseGeometry","LINE":"#/components/schemas/LineGeometry","PATH":"#/components/schemas/PathGeometry","POLYGON":"#/components/schemas/PolygonGeometry","RECT":"#/components/schemas/RectGeometry"}}},{"type":"null"}],"title":"Geometry"}},"additionalProperties":false,"type":"object","required":["designId","layerId","fill","stroke"],"title":"SetShapeStyle","description":"Replace a shape layer's fill and stroke, and optionally its geometry (None keeps the current one)."},"SetStatus":{"properties":{"setId":{"type":"string","title":"Setid"},"headRevision":{"type":"integer","minimum":0.0,"title":"Headrevision"},"headCommittedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Headcommittedat"},"steps":{"items":{"$ref":"#/components/schemas/PaidStepView"},"type":"array","title":"Steps","default":[]},"lastRefusal":{"anyOf":[{"$ref":"#/components/schemas/EditRefusal"},{"type":"null"}]},"aiPausedUntil":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Aipauseduntil"},"objects":{"items":{"$ref":"#/components/schemas/ObjectStatus"},"type":"array","title":"Objects","default":[]}},"additionalProperties":false,"type":"object","required":["setId","headRevision"],"title":"SetStatus","description":"Where a set is: head revision and its commit time, paid steps, last refusal, AI pause, non-READY objects."},"SetText":{"properties":{"action":{"type":"string","const":"SET_TEXT","title":"Action","default":"SET_TEXT"},"designId":{"type":"string","title":"Designid"},"layerId":{"type":"string","title":"Layerid"},"text":{"type":"string","minLength":1,"title":"Text"}},"additionalProperties":false,"type":"object","required":["designId","layerId","text"],"title":"SetText","description":"Replace a text layer's text."},"SetTextStyle":{"properties":{"action":{"type":"string","const":"SET_TEXT_STYLE","title":"Action","default":"SET_TEXT_STYLE"},"designId":{"type":"string","title":"Designid"},"layerId":{"type":"string","title":"Layerid"},"style":{"$ref":"#/components/schemas/TextStyle"}},"additionalProperties":false,"type":"object","required":["designId","layerId","style"],"title":"SetTextStyle","description":"Replace a text layer's whole style (font, weight, size, colour, alignment)."},"SetVariantRecipe":{"properties":{"action":{"type":"string","const":"SET_VARIANT_RECIPE","title":"Action","default":"SET_VARIANT_RECIPE"},"objectId":{"type":"string","title":"Objectid"},"recipe":{"$ref":"#/components/schemas/VariantRecipe"}},"additionalProperties":false,"type":"object","required":["objectId","recipe"],"title":"SetVariantRecipe","description":"Replace a variant's recipe: the one writer of its preset, size, fit, colour map and plan row."},"SetupField":{"properties":{"key":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Key"},"label":{"$ref":"#/components/schemas/LocalizedText"},"help":{"$ref":"#/components/schemas/LocalizedText"},"kind":{"$ref":"#/components/schemas/SetupFieldKind"},"options":{"items":{"$ref":"#/components/schemas/SetupOption"},"type":"array","title":"Options","default":[]},"required":{"type":"boolean","title":"Required","default":true},"maxItems":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":1.0},{"type":"null"}],"title":"Maxitems"},"minimum":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Minimum"}},"additionalProperties":false,"type":"object","required":["key","label","help","kind"],"title":"SetupField","description":"One input a positioning of this plugin needs before sourcing."},"SetupFieldKind":{"type":"string","enum":["TEXT","TEXT_LIST","CHOICE","MULTI_CHOICE","NUMBER"],"title":"SetupFieldKind","description":"How one setup input is entered in the create form and filled by the scope model."},"SetupOption":{"properties":{"value":{"type":"string","maxLength":80,"minLength":1,"title":"Value"},"label":{"$ref":"#/components/schemas/LocalizedText"}},"additionalProperties":false,"type":"object","required":["value","label"],"title":"SetupOption","description":"One allowed value of a CHOICE field."},"ShadowField":{"properties":{"field":{"type":"string","const":"SHADOW","title":"Field","default":"SHADOW"},"shadow":{"anyOf":[{"$ref":"#/components/schemas/DropShadow"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["shadow"],"title":"ShadowField","description":"Override value: a leaf layer's drop shadow (None = no shadow)."},"ShapeLayer":{"properties":{"layerId":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,64}$","title":"Layerid"},"name":{"type":"string","minLength":1,"title":"Name"},"opacity":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Opacity","default":1.0},"blendMode":{"$ref":"#/components/schemas/BlendMode","default":"NORMAL"},"visible":{"type":"boolean","title":"Visible","default":true},"locked":{"type":"boolean","title":"Locked","default":false},"box":{"$ref":"#/components/schemas/Box"},"shadow":{"anyOf":[{"$ref":"#/components/schemas/DropShadow"},{"type":"null"}]},"kind":{"type":"string","const":"SHAPE","title":"Kind","default":"SHAPE"},"geometry":{"oneOf":[{"$ref":"#/components/schemas/RectGeometry"},{"$ref":"#/components/schemas/EllipseGeometry"},{"$ref":"#/components/schemas/LineGeometry"},{"$ref":"#/components/schemas/PolygonGeometry"},{"$ref":"#/components/schemas/PathGeometry"}],"title":"Geometry","discriminator":{"propertyName":"kind","mapping":{"ELLIPSE":"#/components/schemas/EllipseGeometry","LINE":"#/components/schemas/LineGeometry","PATH":"#/components/schemas/PathGeometry","POLYGON":"#/components/schemas/PolygonGeometry","RECT":"#/components/schemas/RectGeometry"}}},"fill":{"anyOf":[{"$ref":"#/components/schemas/Color"},{"$ref":"#/components/schemas/BrandColorRef"},{"$ref":"#/components/schemas/LinearGradient"},{"$ref":"#/components/schemas/RadialGradient"},{"type":"null"}],"title":"Fill"},"stroke":{"anyOf":[{"$ref":"#/components/schemas/Stroke"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["layerId","name","box","geometry"],"title":"ShapeLayer","description":"Free vector composition: panels, bands, badges, outlines and icons (D-13, VV-1/2)."},"ShippingMode":{"type":"string","enum":["FREIGHT","AIR","RAIL"],"title":"ShippingMode","description":"First-leg transport mode from the manufacturer to the marketplace."},"ShippingProfile":{"properties":{"exchangeRates":{"items":{"$ref":"#/components/schemas/ExchangeRateInUsd"},"type":"array","title":"Exchangerates"},"freightPerKg":{"$ref":"#/components/schemas/MinorUnitMoney"},"airPerKg":{"$ref":"#/components/schemas/MinorUnitMoney"},"railPerKg":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}]},"cubicCmBreakpoint":{"type":"integer","exclusiveMinimum":0.0,"title":"Cubiccmbreakpoint","default":6000}},"type":"object","required":["exchangeRates","freightPerKg","airPerKg"],"title":"ShippingProfile","description":"Canonical shipping-rate inputs for legacy float weight formulas."},"ShopifyRemoteImage":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url"},"alt_text":{"type":"string","title":"Alt Text","default":""}},"additionalProperties":false,"type":"object","required":["url"],"title":"ShopifyRemoteImage","description":"An HTTPS image source Shopify must ingest through fileCreate before content write."},"SizingDetail":{"properties":{"sizeTier":{"type":"string","title":"Sizetier"},"longestSideInches":{"type":"number","title":"Longestsideinches"},"medianSideInches":{"type":"number","title":"Mediansideinches"},"shortestSideInches":{"type":"number","title":"Shortestsideinches"},"longestSideCm":{"type":"number","title":"Longestsidecm"},"medianSideCm":{"type":"number","title":"Mediansidecm"},"shortestSideCm":{"type":"number","title":"Shortestsidecm"},"weightLb":{"type":"number","title":"Weightlb"},"weightKg":{"type":"number","title":"Weightkg"},"dimensionalWeightLb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dimensionalweightlb"},"dimensionalWeightKg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dimensionalweightkg"},"shippingWeightLb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shippingweightlb"},"shippingWeightKg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shippingweightkg"},"volumeCubicMeter":{"type":"number","title":"Volumecubicmeter"},"girth":{"type":"number","title":"Girth"},"girthUnit":{"type":"string","enum":["inch","cm"],"title":"Girthunit"},"feeCategory":{"type":"string","title":"Feecategory"},"source":{"$ref":"#/components/schemas/EstimateSource"}},"type":"object","required":["sizeTier","longestSideInches","medianSideInches","shortestSideInches","longestSideCm","medianSideCm","shortestSideCm","weightLb","weightKg","volumeCubicMeter","girth","girthUnit","feeCategory","source"],"title":"SizingDetail","description":"Typed replacement for the legacy === METADATA === sizing prose."},"SlotFinding":{"properties":{"designId":{"type":"string","title":"Designid"},"rule":{"oneOf":[{"$ref":"#/components/schemas/WhiteBackgroundRule"},{"$ref":"#/components/schemas/MinLongestSideRule"},{"$ref":"#/components/schemas/MaxLongestSideRule"},{"$ref":"#/components/schemas/ProductFillRule"},{"$ref":"#/components/schemas/NoTextRule"},{"$ref":"#/components/schemas/NoGraphicsRule"},{"$ref":"#/components/schemas/NoEdgeCropRule"},{"$ref":"#/components/schemas/NoBadgeClaimsRule"},{"$ref":"#/components/schemas/LayerClippedRule"}],"title":"Rule","discriminator":{"propertyName":"kind","mapping":{"LAYER_CLIPPED":"#/components/schemas/LayerClippedRule","MAX_LONGEST_SIDE":"#/components/schemas/MaxLongestSideRule","MIN_LONGEST_SIDE":"#/components/schemas/MinLongestSideRule","NO_BADGE_CLAIMS":"#/components/schemas/NoBadgeClaimsRule","NO_EDGE_CROP":"#/components/schemas/NoEdgeCropRule","NO_GRAPHICS":"#/components/schemas/NoGraphicsRule","NO_TEXT":"#/components/schemas/NoTextRule","PRODUCT_FILL":"#/components/schemas/ProductFillRule","WHITE_BACKGROUND":"#/components/schemas/WhiteBackgroundRule"}}},"passed":{"type":"boolean","title":"Passed"},"measured":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measured"}},"additionalProperties":false,"type":"object","required":["designId","rule","passed"],"title":"SlotFinding","description":"One rule checked on one design: passed or not, with the measured value when numeric."},"SocialTextTrack":{"properties":{"language":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Language"},"kind":{"$ref":"#/components/schemas/SocialTextTrackKind"},"text":{"anyOf":[{"type":"string","maxLength":200000},{"type":"null"}],"title":"Text"},"capturedAt":{"type":"string","maxLength":44,"format":"date-time","title":"Capturedat"},"provenance":{"$ref":"#/components/schemas/Provenance"},"truncated":{"type":"boolean","title":"Truncated","default":false},"omitted":{"type":"boolean","title":"Omitted","default":false},"originalLength":{"anyOf":[{"type":"integer","maximum":9.223372036854776e+18,"minimum":0.0},{"type":"null"}],"title":"Originallength"}},"additionalProperties":false,"type":"object","required":["kind","capturedAt","provenance"],"title":"SocialTextTrack","description":"Retain one bounded transcript or caption with truthful truncation facts."},"SocialTextTrackKind":{"type":"string","enum":["TRANSCRIPT","CAPTION"],"title":"SocialTextTrackKind","description":"Distinguish transcript and caption text without provider-specific kinds."},"Sort":{"properties":{"metric":{"anyOf":[{"$ref":"#/components/schemas/MetricKind"},{"type":"null"}]},"field":{"anyOf":[{"type":"string","enum":["released_at","published_at","first_tracked_at"]},{"type":"null"}],"title":"Field"},"direction":{"type":"string","enum":["DESC","ASC"],"title":"Direction","default":"DESC"},"window":{"anyOf":[{"$ref":"#/components/schemas/RankingWindow"},{"type":"null"}]},"change":{"type":"boolean","title":"Change","default":false}},"additionalProperties":false,"type":"object","title":"Sort","description":"Request ordering by one typed metric, or by one launch instant (L-66(3))."},"Source":{"properties":{"key":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Key","description":"Connectable catalog source identifier."},"title":{"$ref":"#/components/schemas/StoreLocalizedText","description":"Display name of this source, in both languages."},"connect":{"items":{"$ref":"#/components/schemas/ConnectStyle"},"type":"array","minItems":1,"title":"Connect","description":"Ways this deployment offers to bind."},"credentials":{"items":{"$ref":"#/components/schemas/Credential"},"type":"array","minItems":1,"title":"Credentials","description":"Access fields used by this source."},"regions":{"items":{"$ref":"#/components/schemas/ProviderRegion"},"type":"array","title":"Regions","description":"Sales regions the owner picks from before consent; empty means no region step.","default":[]},"available":{"type":"boolean","title":"Available","description":"False when this deployment cannot connect the source yet.","default":true},"consentLifetimeDays":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Consentlifetimedays","description":"Provider-forced consent lifetime in days, when declared."},"accountAttributes":{"items":{"$ref":"#/components/schemas/Attribute"},"type":"array","title":"Accountattributes","description":"Metadata attributes discovery reports for each account.","default":[]},"datasets":{"items":{"$ref":"#/components/schemas/Dataset"},"type":"array","title":"Datasets","description":"Datasets captured and retained.","default":[]},"lookups":{"items":{"$ref":"#/components/schemas/Lookup"},"type":"array","title":"Lookups","description":"Reads answered live without storing their results.","default":[]},"actions":{"items":{"$ref":"#/components/schemas/ProviderWriteActionType"},"type":"array","title":"Actions","description":"Writes applied only after approval.","default":[]}},"additionalProperties":false,"type":"object","required":["key","title","connect","credentials"],"title":"Source","description":"One thing an owner binds: a provider grant that reaches one or more accounts."},"SourceDescriptionKind":{"type":"string","enum":["SEARCH_TERM","TAG","HASHTAG","TITLE","BRAND","NAME","HANDLE","CATEGORY","CONCEPT","MOTIF"],"title":"SourceDescriptionKind","description":"DP-owned: WHICH descriptive field of a source a string came from."},"SourceMode":{"type":"string","enum":["LIVE","ANALYZED","ANALYZED_THEN_LIVE"],"title":"SourceMode","description":"WHICH READ SOURCE one search step executes against."},"SourceReference":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url"},"title":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Title"},"snippet":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snippet"},"publisher":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publisher"},"publishedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publishedat"}},"additionalProperties":false,"type":"object","required":["url"],"title":"SourceReference","description":"A link that supports an item or an assessment, with the source context people saw."},"SourceSubject":{"properties":{"channel":{"$ref":"#/components/schemas/Channel"},"kind":{"$ref":"#/components/schemas/ObjectKind"},"externalId":{"type":"string","maxLength":1024,"minLength":1,"title":"Externalid"}},"additionalProperties":false,"type":"object","required":["channel","kind","externalId"],"title":"SourceSubject","description":"Identify one source object by channel, content kind, and exact external ID."},"SourcedItem":{"properties":{"key":{"type":"string","maxLength":200,"minLength":1,"title":"Key"},"name":{"type":"string","maxLength":500,"minLength":1,"title":"Name"},"groupKey":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Groupkey"},"main":{"type":"boolean","title":"Main","default":false},"facts":{"patternProperties":{"^[A-Z][A-Z0-9_]*$":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"string","format":"date"},{"$ref":"#/components/schemas/DecimalMoney"}]}},"propertyNames":{"maxLength":64},"type":"object","title":"Facts"},"prompt":{"$ref":"#/components/schemas/ItemPrompt"},"references":{"items":{"$ref":"#/components/schemas/SourceReference"},"type":"array","title":"References","default":[]}},"additionalProperties":false,"type":"object","required":["key","name","prompt"],"title":"SourcedItem","description":"One item a plugin found: identity, facts and what models see."},"SpanEvidence":{"properties":{"kind":{"type":"string","enum":["TRANSCRIPT","CAPTION"],"title":"Kind","description":"Citation shape: TRANSCRIPT for a timed span, CAPTION for a whole caption."},"startMs":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Startms","description":"Start offset of the cited transcript span in milliseconds; null for a CAPTION."},"endMs":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Endms","description":"End offset of the cited transcript span in milliseconds; null for a CAPTION."}},"type":"object","required":["kind"],"title":"SpanEvidence","description":"The transcript span or caption an element cites (T1)."},"StageGuide":{"properties":{"stage":{"$ref":"#/components/schemas/ChangeListStage"},"instruction":{"type":"string","minLength":1,"title":"Instruction"}},"additionalProperties":false,"type":"object","required":["stage","instruction"],"title":"StageGuide","description":"The kind's instruction to the agent for the current stage, returned on every read."},"StagedProposal":{"properties":{"replayKey":{"type":"string","minLength":1,"title":"Replaykey"},"batch":{"$ref":"#/components/schemas/ActionBatch"},"validUntil":{"type":"string","format":"date-time","title":"Validuntil"}},"additionalProperties":false,"type":"object","required":["replayKey","batch","validUntil"],"title":"StagedProposal","description":"The exact create batch staged on an artifect snapshot BEFORE propose is called."},"StalePart":{"properties":{"reason":{"$ref":"#/components/schemas/StaleReason"},"layerId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Layerid"}},"additionalProperties":false,"type":"object","required":["reason"],"title":"StalePart","description":"One out-of-date part of an image; the editor dims it with a \"Refresh · N 次请求\" chip."},"StaleReason":{"type":"string","enum":["SOURCE_CHANGED"],"title":"StaleReason","description":"Why part of a variant is out of date (free parts never go stale: they resolve live)."},"StandingAdjust":{"properties":{"adjustmentType":{"type":"string","const":"STANDING","title":"Adjustmenttype","default":"STANDING"},"command":{"$ref":"#/components/schemas/StandingControl"}},"additionalProperties":false,"type":"object","required":["command"],"title":"StandingAdjust","description":"MIRROR wire ArtifectStandingAdjust: pause, resume or run a standing artifect now."},"StandingControl":{"type":"string","enum":["PAUSE","RESUME","RUN_NOW"],"title":"StandingControl","description":"The core-owned standing commands (MIRROR wire ArtifectStandingAdjust.command)."},"StandingPauseBy":{"type":"string","enum":["CALLER","GATE","KIND"],"title":"StandingPauseBy","description":"Who paused a standing run (StandingFacts.paused_by); core sets it on every move to PAUSED."},"StandingState":{"type":"string","enum":["SETTING_UP","ACTIVE","PAUSED","STOPPED"],"title":"StandingState","description":"Where one standing artifect is (MIRROR wire ArtifectStandingState); core owns the moves."},"StandoutItem":{"properties":{"itemKey":{"type":"string","minLength":1,"title":"Itemkey","description":"Stable listing identity."},"asin":{"type":"string","minLength":1,"title":"Asin","description":"Display ASIN."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Display title."},"brand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand","description":"Display brand."},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Imageurl","description":"Display image URL."},"price":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"Observed selling price."},"latestMonthlySold":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Latestmonthlysold","description":"The representative member's latest observed monthly sold units from the LISTING_BUILD cohort. This is ONE member's signal, NOT a family total. None means not measured."},"ratingInt":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ratingint","description":"Star rating in tenths (0 through 50); the same name and meaning as ReportAsinDisplayFact.rating_int."},"reviewCount":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reviewcount","description":"Retained review count; the same name and meaning as ReportAsinDisplayFact.review_count."},"memberCount":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Membercount","description":"Members the listing summary retained."},"familyEntryAgeMonths":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Familyentryagemonths","description":"Family entry age in months; a FAMILY age, not the member's."},"expectedProfit":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"LISTING_ECONOMICS expected-scenario profit; None when the listing's profit inputs are unresolved."},"margin":{"anyOf":[{"$ref":"#/components/schemas/ReportRatioRange"},{"type":"null"}],"description":"LISTING_ECONOMICS margin range, verbatim."}},"additionalProperties":false,"type":"object","required":["itemKey","asin"],"title":"StandoutItem","description":"ONE already-built listing the agent may choose as a standout."},"StandoutSelectionAnswer":{"properties":{"decisionType":{"type":"string","const":"STANDOUT_SELECTION","title":"Decisiontype","default":"STANDOUT_SELECTION"},"picks":{"items":{"$ref":"#/components/schemas/ReportStandoutPick"},"type":"array","maxItems":10,"minItems":1,"title":"Picks","description":"Chosen standouts, in display order."},"market":{"anyOf":[{"$ref":"#/components/schemas/ReportStandoutMarketTraits"},{"type":"null"}],"description":"Optional old-report market traits; omit to hide the market-traits part."},"commonItemKeys":{"items":{"type":"string"},"type":"array","maxItems":10,"title":"Commonitemkeys","description":"Offered itemKeys of typical, NOT standout, listings; omit to hide the common-products part.","default":[]}},"additionalProperties":false,"type":"object","required":["picks"],"title":"StandoutSelectionAnswer","description":"The agent's standout choice for a completed analysis (D3)."},"StdMoneyAmount":{"properties":{"value":{"type":"integer","maximum":9.223372036854776e+18,"minimum":-9.223372036854776e+18,"title":"Value"}},"additionalProperties":false,"type":"object","maxProperties":1,"required":["value"],"title":"StdMoneyAmount","description":"Store one immutable signed-Int64 monetary minor-unit amount."},"StorageLineDetail":{"properties":{"months":{"items":{"type":"integer"},"type":"array","title":"Months"},"volumeCubic":{"type":"number","title":"Volumecubic"},"cubicUnit":{"type":"string","enum":["ft","m"],"title":"Cubicunit"},"perMonth":{"items":{"$ref":"#/components/schemas/MonthlyStorageFee"},"type":"array","title":"Permonth"}},"type":"object","required":["months","volumeCubic","cubicUnit","perMonth"],"title":"StorageLineDetail","description":"Per-month composition of one aggregated storage breakdown line."},"Store":{"properties":{"kind":{"type":"string","const":"STORE","title":"Kind","default":"STORE"},"channel":{"$ref":"#/components/schemas/Channel"},"externalId":{"type":"string","maxLength":1024,"minLength":1,"title":"Externalid"},"name":{"type":"string","maxLength":2048,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":32768},{"type":"null"}],"title":"Description"},"domain":{"anyOf":[{"type":"string","maxLength":2048,"minLength":1},{"type":"null"}],"title":"Domain"},"market":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"title":"Market"},"publishedAt":{"anyOf":[{"type":"string","maxLength":44,"format":"date-time"},{"type":"null"}],"title":"Publishedat"},"metrics":{"items":{"$ref":"#/components/schemas/MetricObservation"},"type":"array","maxItems":128,"title":"Metrics","default":[]},"observedAt":{"type":"string","maxLength":44,"format":"date-time","title":"Observedat"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"additionalProperties":false,"type":"object","required":["channel","externalId","name","observedAt","provenance"],"title":"Store","description":"Represent a selling entity with a stable channel ID and alias fields."},"StoreCapabilities":{"properties":{"object":{"type":"string","const":"store_capabilities","title":"Object","description":"Document type: store capabilities.","default":"store_capabilities"},"storeId":{"type":"string","minLength":1,"title":"Storeid","description":"Store whose current abilities this document describes."},"lookups":{"items":{"$ref":"#/components/schemas/CapabilityRow"},"type":"array","title":"Lookups","description":"Installed live reads: one row per (key, account)."},"actions":{"items":{"$ref":"#/components/schemas/CapabilityRow"},"type":"array","title":"Actions","description":"Installed provider writes: one row per (key, account)."},"datasets":{"items":{"$ref":"#/components/schemas/CapabilityRow"},"type":"array","title":"Datasets","description":"Installed captured datasets: one row per (key, account)."}},"additionalProperties":false,"type":"object","required":["storeId","lookups","actions","datasets"],"title":"StoreCapabilities","description":"What the installed sources can do right now for one store: live reads, writes and captures."},"StoreOwner":{"type":"string","enum":["DATA_INFRA","PLATFORM"],"title":"StoreOwner","description":"Which service's least-privilege byte API serves this ref (fixes the 'same ref type, unknown store' hole — examiner W2)."},"StoreRecord":{"properties":{"object":{"type":"string","const":"store_record","title":"Object","description":"Document type: store record.","default":"store_record"},"storeId":{"type":"string","minLength":1,"title":"Storeid","description":"Store identifier within the asserted owner scope."},"title":{"type":"string","minLength":1,"title":"Title","description":"Owner's display name for the store."},"region":{"anyOf":[{"$ref":"#/components/schemas/ProviderRegion"},{"type":"null"}],"description":"Sales region chosen before consent; null while the store has no region."},"status":{"$ref":"#/components/schemas/StoreStatus","description":"Whether this store may sync."},"pauseReason":{"anyOf":[{"$ref":"#/components/schemas/PauseReason"},{"type":"null"}],"description":"Why sync is paused; null when active."},"connections":{"items":{"$ref":"#/components/schemas/ConnectionRecord"},"type":"array","title":"Connections","description":"Connectors bound to this store; empty means connection is unfinished.","default":[]},"createdAt":{"type":"string","format":"date-time","title":"Createdat","description":"When the store was created."},"lastSyncedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Lastsyncedat","description":"Display-only aggregate: the oldest last_synced_at among active connections, excluding blocked and parked lanes; null while any active connection has never synced. ConnectionRecord's last_synced_at and synced_through are authoritative (PD-13)."},"storedRows":{"type":"integer","minimum":0.0,"title":"Storedrows","description":"Current stored fact rows across the store's connectors, never a per-sync count.","default":0},"writePolicy":{"$ref":"#/components/schemas/WritePolicy","description":"Owner-controlled provider-write families."}},"additionalProperties":false,"type":"object","required":["storeId","title","region","status","createdAt"],"title":"StoreRecord","description":"One owner's store spanning installed sources, with lifecycle state and stored rows."},"StoreStatus":{"type":"string","enum":["ACTIVE","PAUSED"],"title":"StoreStatus","description":"Whether capture may run for the store; paused reads remain available."},"StoresResponse":{"properties":{"object":{"type":"string","const":"stores_response","title":"Object","description":"Document type: stores response.","default":"stores_response"},"stores":{"items":{"$ref":"#/components/schemas/StoreRecord"},"type":"array","title":"Stores","description":"Stores belonging to the asserted owner."}},"additionalProperties":false,"type":"object","required":["stores"],"title":"StoresResponse","description":"The stores belonging to the asserted owner, including unfinished stores."},"Stroke":{"properties":{"color":{"anyOf":[{"$ref":"#/components/schemas/Color"},{"$ref":"#/components/schemas/BrandColorRef"}],"title":"Color"},"width":{"type":"number","exclusiveMinimum":0.0,"title":"Width"}},"additionalProperties":false,"type":"object","required":["color","width"],"title":"Stroke","description":"An outline colour and width."},"StrokeField":{"properties":{"field":{"type":"string","const":"STROKE","title":"Field","default":"STROKE"},"stroke":{"anyOf":[{"$ref":"#/components/schemas/Stroke"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["stroke"],"title":"StrokeField","description":"Override value: a shape layer's stroke (None = no stroke)."},"StyleExample":{"properties":{"toneKey":{"type":"string","minLength":1,"title":"Tonekey"},"articleUrl":{"type":"string","pattern":"^https://","title":"Articleurl"},"title":{"type":"string","minLength":1,"title":"Title"},"publishedOn":{"type":"string","format":"date","title":"Publishedon"},"styleNotes":{"type":"string","minLength":1,"title":"Stylenotes"}},"additionalProperties":false,"type":"object","required":["toneKey","articleUrl","title","publishedOn","styleNotes"],"title":"StyleExample","description":"One real article the agent found as a model for one tone (1.3); dated on/after the Setting."},"StyleExamples":{"properties":{"step":{"type":"string","const":"STYLE_EXAMPLES","title":"Step","default":"STYLE_EXAMPLES"},"examples":{"items":{"$ref":"#/components/schemas/StyleExample"},"type":"array","minItems":1,"title":"Examples"}},"additionalProperties":false,"type":"object","required":["examples"],"title":"StyleExamples","description":"STYLE_EXAMPLES (1.3): at least one example for every tone the plan declares."},"SuggestedKeywordEvidence":{"properties":{"kind":{"type":"string","const":"SUGGESTED","title":"Kind","default":"SUGGESTED"}},"additionalProperties":false,"type":"object","title":"SuggestedKeywordEvidence","description":"A term no server-read report row matched: a suggestion, explicitly not a measurement."},"SuggestedPurchasingCost":{"properties":{"asin":{"type":"string","title":"Asin"},"suggestedPurchasingCost":{"$ref":"#/components/schemas/MinorUnitMoney"},"benchmarkSellingPrice":{"$ref":"#/components/schemas/MinorUnitMoney"},"amazonMarketplace":{"$ref":"#/components/schemas/AmazonMarketplace"},"suggestedPurchasingCostUpper":{"anyOf":[{"$ref":"#/components/schemas/MinorUnitMoney"},{"type":"null"}],"description":"Upper bound when the seller's cost is a range; None for a single value. Same currency as suggested_purchasing_cost, never below it."}},"type":"object","required":["asin","suggestedPurchasingCost","benchmarkSellingPrice","amazonMarketplace"],"title":"SuggestedPurchasingCost","description":"User suggestion calibrated against one marketplace benchmark product."},"SumCombine":{"properties":{"kind":{"type":"string","const":"sum","title":"Kind","description":"Range combination: sum of daily values.","default":"sum"}},"additionalProperties":false,"type":"object","title":"SumCombine","description":"Range value = the sum of the days' values."},"TaskExceptionType":{"type":"string","enum":["UNKNOWN","PAID_ATTEMPT_UNKNOWN","FAILED_TO_START","NO_SUFFICIENT_DATA","TIMEOUT","INPUT_EXPIRED","CANCELLED"],"title":"TaskExceptionType","description":"Closed persisted task-failure classifications shared by maintained lines."},"TaskStage":{"type":"string","enum":["PENDING","PROCESSING","WAITING_FOR_INPUT","SUCCESS","FAILURE"],"title":"TaskStage"},"TextAlign":{"type":"string","enum":["LEFT","CENTER","RIGHT"],"title":"TextAlign","description":"Horizontal alignment inside the text box."},"TextClause":{"properties":{"kind":{"type":"string","const":"TEXT","title":"Kind","default":"TEXT"},"field":{"anyOf":[{"type":"string","enum":["title","body","name","handle","tag","hashtag","community"]},{"type":"null"}],"title":"Field"},"value":{"type":"string","maxLength":4096,"minLength":1,"title":"Value"},"op":{"type":"string","enum":["SEARCH","PHRASE"],"title":"Op","default":"SEARCH"}},"additionalProperties":false,"type":"object","required":["value"],"title":"TextClause","description":"Search one named text field or request broad text discovery."},"TextField":{"properties":{"field":{"type":"string","const":"TEXT","title":"Field","default":"TEXT"},"text":{"type":"string","minLength":1,"title":"Text"}},"additionalProperties":false,"type":"object","required":["text"],"title":"TextField","description":"Override value: a text layer's text."},"TextFill":{"properties":{"placeholder":{"type":"string","enum":["body","callout_1","callout_2","callout_3","headline","product_photo"],"title":"Placeholder"},"text":{"type":"string","minLength":1,"title":"Text"}},"additionalProperties":false,"type":"object","required":["placeholder","text"],"title":"TextFill","description":"Fill a HEADLINE/BODY_TEXT placeholder."},"TextHunk":{"properties":{"oldStart":{"type":"integer","minimum":0.0,"title":"Oldstart","description":"Zero-based old-file hunk start."},"newStart":{"type":"integer","minimum":0.0,"title":"Newstart","description":"Zero-based new-file hunk start."},"lines":{"items":{"$ref":"#/components/schemas/TextLine"},"type":"array","minItems":1,"title":"Lines","description":"Changed and context lines."}},"additionalProperties":false,"type":"object","required":["oldStart","newStart","lines"],"title":"TextHunk","description":"One contiguous text edit with its zero-based old/new origins and line operations."},"TextLayer":{"properties":{"layerId":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,64}$","title":"Layerid"},"name":{"type":"string","minLength":1,"title":"Name"},"opacity":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Opacity","default":1.0},"blendMode":{"$ref":"#/components/schemas/BlendMode","default":"NORMAL"},"visible":{"type":"boolean","title":"Visible","default":true},"locked":{"type":"boolean","title":"Locked","default":false},"box":{"$ref":"#/components/schemas/Box"},"shadow":{"anyOf":[{"$ref":"#/components/schemas/DropShadow"},{"type":"null"}]},"kind":{"type":"string","const":"TEXT","title":"Kind","default":"TEXT"},"text":{"type":"string","minLength":1,"title":"Text"},"style":{"$ref":"#/components/schemas/TextStyle"},"placeholder":{"anyOf":[{"type":"string","enum":["body","callout_1","callout_2","callout_3","headline","product_photo"]},{"type":"null"}],"title":"Placeholder"}},"additionalProperties":false,"type":"object","required":["layerId","name","box","text","style"],"title":"TextLayer","description":"Text wrapped inside its box width (line breaks computed by the one keble-core scene mapper)."},"TextLayerBinding":{"properties":{"binding":{"type":"string","const":"TEXT_LAYER","title":"Binding","default":"TEXT_LAYER"},"layerId":{"type":"string","title":"Layerid"}},"additionalProperties":false,"type":"object","required":["layerId"],"title":"TextLayerBinding","description":"A plan column whose cell text replaces one TEXT layer of the plan's source image."},"TextLine":{"properties":{"operation":{"$ref":"#/components/schemas/TextLineOperation","description":"Context, inserted or deleted line."},"text":{"type":"string","title":"Text","description":"Raw text of the line."},"oldLine":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Oldline","description":"One-based old-file line number."},"newLine":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Newline","description":"One-based new-file line number."}},"additionalProperties":false,"type":"object","required":["operation","text"],"title":"TextLine","description":"One raw source line with one-based before/after coordinates."},"TextLineOperation":{"type":"string","enum":["CONTEXT","INSERT","DELETE"],"title":"TextLineOperation","description":"One unchanged, inserted or deleted source line in a text diff."},"TextStyle":{"properties":{"font":{"anyOf":[{"type":"string","enum":["inter","montserrat","noto_sans_sc","noto_serif_sc","playfair_display"]},{"$ref":"#/components/schemas/BrandFontRef"}],"title":"Font"},"weight":{"$ref":"#/components/schemas/FontWeight","default":"REGULAR"},"size":{"type":"number","exclusiveMinimum":0.0,"title":"Size"},"color":{"anyOf":[{"$ref":"#/components/schemas/Color"},{"$ref":"#/components/schemas/BrandColorRef"}],"title":"Color"},"align":{"$ref":"#/components/schemas/TextAlign","default":"LEFT"},"lineHeight":{"type":"number","exclusiveMinimum":0.0,"title":"Lineheight","default":1.2},"letterSpacing":{"type":"number","title":"Letterspacing","default":0.0}},"additionalProperties":false,"type":"object","required":["font","size","color"],"title":"TextStyle","description":"How a text layer is set; font is a reference (stored as its key)."},"ThemeBlockInstance":{"properties":{"blockKey":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,62}$","title":"Blockkey"},"kind":{"$ref":"#/components/schemas/KebleBlockKind"},"settings":{"patternProperties":{"^[a-z][a-z0-9_]{0,62}$":{"anyOf":[{"type":"string"},{"type":"integer"}]}},"type":"object","title":"Settings"}},"additionalProperties":false,"type":"object","required":["blockKey","kind"],"title":"ThemeBlockInstance","description":"One block inside one Keble section: its stable key, its kind and its setting values."},"ThemeChangeSet":{"properties":{"changeSetId":{"type":"string","title":"Changesetid"},"draft":{"$ref":"#/components/schemas/ThemeChangeSetDraft"},"bases":{"items":{"$ref":"#/components/schemas/ThemeFileBase"},"type":"array","title":"Bases","default":[]},"preview":{"anyOf":[{"$ref":"#/components/schemas/ThemePreviewCopy"},{"type":"null"}]},"proposals":{"items":{"$ref":"#/components/schemas/ThemeProposalLink"},"type":"array","title":"Proposals","default":[]},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"additionalProperties":false,"type":"object","required":["changeSetId","draft","createdAt"],"title":"ThemeChangeSet","description":"FROZEN (D-03): removed in the first theme release after SEO and GEO migrate."},"ThemeChangeSetDraft":{"properties":{"title":{"type":"string","maxLength":250,"minLength":1,"title":"Title"},"edits":{"items":{"$ref":"#/components/schemas/ThemeFileEdit"},"type":"array","maxItems":50,"minItems":1,"title":"Edits"},"newPage":{"anyOf":[{"$ref":"#/components/schemas/NewThemePage"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["title","edits"],"title":"ThemeChangeSetDraft","description":"FROZEN (D-03): removed in the first theme release after SEO and GEO migrate."},"ThemeCreateLedger":{"properties":{"artifectRefId":{"type":"string","maxLength":256,"minLength":1,"title":"Artifectrefid"},"owner":{"type":"string","maxLength":256,"minLength":1,"title":"Owner"},"replayKey":{"type":"string","maxLength":256,"minLength":1,"title":"Replaykey"},"storeId":{"type":"string","title":"Storeid"},"account":{"$ref":"#/components/schemas/AccountRef"},"targetThemeId":{"type":"string","pattern":"^gid://shopify/OnlineStoreTheme/[0-9]+$","title":"Targetthemeid"},"changeSets":{"items":{"$ref":"#/components/schemas/ThemeChangeSet"},"type":"array","minItems":1,"title":"Changesets"},"revision":{"type":"integer","minimum":0.0,"title":"Revision"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"additionalProperties":false,"type":"object","required":["artifectRefId","owner","replayKey","storeId","account","targetThemeId","changeSets","revision","createdAt"],"title":"ThemeCreateLedger","description":"FROZEN (D-03): removed in the first theme release after SEO and GEO migrate."},"ThemeDocument":{"properties":{"pages":{"items":{"$ref":"#/components/schemas/ThemePage"},"type":"array","title":"Pages","default":[]}},"additionalProperties":false,"type":"object","title":"ThemeDocument","description":"The whole Keble document of one run: its pages, each placing Keble sections on one template."},"ThemeDocumentCreateRequest":{"properties":{"replayKey":{"type":"string","maxLength":256,"minLength":1,"title":"Replaykey"},"storeId":{"type":"string","title":"Storeid"},"targetThemeId":{"anyOf":[{"type":"string","pattern":"^gid://shopify/OnlineStoreTheme/[0-9]+$"},{"type":"null"}],"title":"Targetthemeid"},"title":{"type":"string","maxLength":250,"minLength":1,"title":"Title"},"author":{"$ref":"#/components/schemas/ThemeEditAuthor"},"initialActions":{"items":{"oneOf":[{"$ref":"#/components/schemas/AddPage"},{"$ref":"#/components/schemas/AddSection"},{"$ref":"#/components/schemas/MoveSection"},{"$ref":"#/components/schemas/RemoveSection"},{"$ref":"#/components/schemas/SetSettings"},{"$ref":"#/components/schemas/AddBlock"},{"$ref":"#/components/schemas/MoveBlock"},{"$ref":"#/components/schemas/RemoveBlock"},{"$ref":"#/components/schemas/ShopifyThemeRestoreRevision"}],"discriminator":{"propertyName":"action","mapping":{"ADD_BLOCK":"#/components/schemas/AddBlock","ADD_PAGE":"#/components/schemas/AddPage","ADD_SECTION":"#/components/schemas/AddSection","MOVE_BLOCK":"#/components/schemas/MoveBlock","MOVE_SECTION":"#/components/schemas/MoveSection","REMOVE_BLOCK":"#/components/schemas/RemoveBlock","REMOVE_SECTION":"#/components/schemas/RemoveSection","RESTORE_REVISION":"#/components/schemas/ShopifyThemeRestoreRevision","SET_SETTINGS":"#/components/schemas/SetSettings"}}},"type":"array","title":"Initialactions","default":[]}},"additionalProperties":false,"type":"object","required":["replayKey","storeId","title","author"],"title":"ThemeDocumentCreateRequest","description":"The document-run create input: store, optional target, title, author and first actions (G-9)."},"ThemeDocumentOperation":{"type":"string","enum":["EDIT","UPDATE_PREVIEW","PUBLISH","DISCARD_PREVIEW"],"title":"ThemeDocumentOperation","description":"The document commands a caller may run next (the guide's vocabulary; the host maps its arms)."},"ThemeDocumentProposalLink":{"properties":{"purpose":{"$ref":"#/components/schemas/ThemeProposalPurpose"},"proposalId":{"type":"string","title":"Proposalid"},"inboxItemId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inboxitemid","description":"The backend To do approval item this proposal was filed as. None means a link recorded before keble-shopify-theme 0.3.0, which kept no inbox id: such links exist only on keble-test, expire naturally, and are never looked up by proposal id."},"documentRevision":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Documentrevision"}},"additionalProperties":false,"type":"object","required":["purpose","proposalId"],"title":"ThemeDocumentProposalLink","description":"A document run's proposal link: the 0.3.x link plus the revision the proposal compiled."},"ThemeDocumentProposalStateRead":{"properties":{"purpose":{"$ref":"#/components/schemas/ThemeProposalPurpose"},"proposalId":{"type":"string","title":"Proposalid"},"documentRevision":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Documentrevision"},"approval":{"anyOf":[{"$ref":"#/components/schemas/ApprovalState"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["purpose","proposalId","approval"],"title":"ThemeDocumentProposalStateRead","description":"The live inbox state of one document-run proposal link, read by the theme host on every read."},"ThemeDocumentSnapshot":{"properties":{"runKind":{"type":"string","const":"DOCUMENT","title":"Runkind","default":"DOCUMENT"},"head":{"$ref":"#/components/schemas/ThemeRunHead"},"document":{"$ref":"#/components/schemas/ThemeDocument"},"guide":{"$ref":"#/components/schemas/ThemeStageGuide"},"publishSummary":{"anyOf":[{"$ref":"#/components/schemas/ThemePublishSummary"},{"type":"null"}]},"previewLink":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previewlink"}},"additionalProperties":false,"type":"object","required":["head","document","guide"],"title":"ThemeDocumentSnapshot","description":"The owner-fenced document-run snapshot: head, head document, guide, publish summary, link."},"ThemeEditAuthor":{"type":"string","enum":["AGENT","USER"],"title":"ThemeEditAuthor","description":"Who submitted an edit: the chat agent or the person in the editor (revision provenance)."},"ThemeEditReceipt":{"properties":{"replayKey":{"type":"string","maxLength":256,"minLength":1,"title":"Replaykey"},"revision":{"type":"integer","minimum":0.0,"title":"Revision"}},"additionalProperties":false,"type":"object","required":["replayKey","revision"],"title":"ThemeEditReceipt","description":"One recorded edit replay: its key and the revision it committed (ATJ-3)."},"ThemeFileBase":{"properties":{"filename":{"type":"string","title":"Filename"},"checksum_md5":{"type":"string","maxLength":64,"minLength":1,"title":"Checksum Md5"},"body":{"type":"null","title":"Body"}},"additionalProperties":false,"type":"object","required":["filename","checksum_md5"],"title":"ThemeFileBase","description":"One theme file's stamped base: its filename and the checksum ELTA's drift law compares."},"ThemeFileEdit":{"properties":{"filename":{"type":"string","title":"Filename"},"after":{"type":"string","title":"After"}},"additionalProperties":false,"type":"object","required":["filename","after"],"title":"ThemeFileEdit","description":"FROZEN (D-03): removed in the first theme release after SEO and GEO migrate."},"ThemeFrameSource":{"type":"string","enum":["PREVIEW_COPY","TARGET"],"title":"ThemeFrameSource","description":"Which theme a page frame renders: the run's preview copy or its target (live vs draft)."},"ThemePage":{"properties":{"template":{"$ref":"#/components/schemas/ThemeTemplateRef"},"previewPath":{"type":"string","pattern":"^/(?:[a-z0-9][a-z0-9_-]*(?:/[a-z0-9][a-z0-9_-]*)*)?$","title":"Previewpath"},"newPage":{"anyOf":[{"$ref":"#/components/schemas/NewKeblePage"},{"type":"null"}]},"sections":{"items":{"$ref":"#/components/schemas/ThemePlacedSection"},"type":"array","title":"Sections","default":[]}},"additionalProperties":false,"type":"object","required":["template","previewPath"],"title":"ThemePage","description":"One page of the document: the template it places on, its preview path, and its sections."},"ThemePageChange":{"properties":{"page":{"$ref":"#/components/schemas/ThemeTemplateRef"},"change":{"anyOf":[{"$ref":"#/components/schemas/ThemeSectionChangeKind"},{"type":"null"}]},"sections":{"items":{"$ref":"#/components/schemas/ThemeSectionChange"},"type":"array","title":"Sections","default":[]}},"additionalProperties":false,"type":"object","required":["page"],"title":"ThemePageChange","description":"One changed page of a publish summary: the page's own change and/or its changed Keble sections."},"ThemePlacedSection":{"properties":{"section":{"$ref":"#/components/schemas/ThemeSectionInstance"},"after":{"anyOf":[{"type":"string","pattern":"^(?:@start|[A-Za-z0-9_-]{1,64})$"},{"type":"null"}],"title":"After"}},"additionalProperties":false,"type":"object","required":["section"],"title":"ThemePlacedSection","description":"One Keble section placed on a page: the section plus its anchor in the template's order."},"ThemePreviewCopy":{"properties":{"previewThemeId":{"type":"string","pattern":"^gid://shopify/OnlineStoreTheme/[0-9]+$","title":"Previewthemeid"},"previewLink":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previewlink"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"additionalProperties":false,"type":"object","required":["previewThemeId","createdAt"],"title":"ThemePreviewCopy","description":"FROZEN (D-03): removed in the first theme release after SEO and GEO migrate."},"ThemeProposalLink":{"properties":{"purpose":{"$ref":"#/components/schemas/ThemeProposalPurpose"},"proposalId":{"type":"string","title":"Proposalid"},"inboxItemId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inboxitemid","description":"The backend To do approval item this proposal was filed as. None means a link recorded before keble-shopify-theme 0.3.0, which kept no inbox id: such links exist only on keble-test, expire naturally, and are never looked up by proposal id."}},"additionalProperties":false,"type":"object","required":["purpose","proposalId"],"title":"ThemeProposalLink","description":"One ELTA proposal this artifect opened: purpose, ELTA proposal id and its inbox item."},"ThemeProposalPurpose":{"type":"string","enum":["PREVIEW_COPY","PREVIEW_FILES","ACCEPT","REVERT","DISCARD"],"title":"ThemeProposalPurpose","description":"Why one ELTA proposal was opened for a change set or a document revision."},"ThemeProposalStateRead":{"properties":{"changeSetId":{"type":"string","title":"Changesetid"},"purpose":{"$ref":"#/components/schemas/ThemeProposalPurpose"},"proposalId":{"type":"string","title":"Proposalid"},"approval":{"anyOf":[{"$ref":"#/components/schemas/ApprovalState"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["changeSetId","purpose","proposalId","approval"],"title":"ThemeProposalStateRead","description":"The live inbox state of one theme proposal link, read by the keble-artifect theme host."},"ThemePublishSummary":{"properties":{"revision":{"type":"integer","minimum":0.0,"title":"Revision"},"publishedRevision":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Publishedrevision"},"targetTheme":{"$ref":"#/components/schemas/ThemeRef"},"pages":{"items":{"$ref":"#/components/schemas/ThemePageChange"},"type":"array","title":"Pages","default":[]},"drift":{"items":{"type":"string"},"type":"array","title":"Drift","default":[]}},"additionalProperties":false,"type":"object","required":["revision","targetTheme"],"title":"ThemePublishSummary","description":"What publishing would change, where, and whether the target moved since it was read (D-05)."},"ThemeRef":{"properties":{"theme_id":{"type":"string","pattern":"^gid://shopify/OnlineStoreTheme/[0-9]+$","title":"Theme Id"},"name":{"type":"string","maxLength":250,"minLength":1,"title":"Name"},"role":{"$ref":"#/components/schemas/ThemeRole"}},"additionalProperties":false,"type":"object","required":["theme_id","name","role"],"title":"ThemeRef","description":"One theme as the store reports it now: its GID, display name and role."},"ThemeRevision":{"properties":{"runKind":{"type":"string","const":"DOCUMENT","title":"Runkind","default":"DOCUMENT"},"artifectRefId":{"type":"string","maxLength":256,"minLength":1,"title":"Artifectrefid"},"revision":{"type":"integer","minimum":0.0,"title":"Revision"},"document":{"$ref":"#/components/schemas/ThemeDocument"},"actions":{"items":{"oneOf":[{"$ref":"#/components/schemas/AddPage"},{"$ref":"#/components/schemas/AddSection"},{"$ref":"#/components/schemas/MoveSection"},{"$ref":"#/components/schemas/RemoveSection"},{"$ref":"#/components/schemas/SetSettings"},{"$ref":"#/components/schemas/AddBlock"},{"$ref":"#/components/schemas/MoveBlock"},{"$ref":"#/components/schemas/RemoveBlock"},{"$ref":"#/components/schemas/ShopifyThemeRestoreRevision"}],"discriminator":{"propertyName":"action","mapping":{"ADD_BLOCK":"#/components/schemas/AddBlock","ADD_PAGE":"#/components/schemas/AddPage","ADD_SECTION":"#/components/schemas/AddSection","MOVE_BLOCK":"#/components/schemas/MoveBlock","MOVE_SECTION":"#/components/schemas/MoveSection","REMOVE_BLOCK":"#/components/schemas/RemoveBlock","REMOVE_SECTION":"#/components/schemas/RemoveSection","RESTORE_REVISION":"#/components/schemas/ShopifyThemeRestoreRevision","SET_SETTINGS":"#/components/schemas/SetSettings"}}},"type":"array","title":"Actions","default":[]},"author":{"$ref":"#/components/schemas/ThemeEditAuthor"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"additionalProperties":false,"type":"object","required":["artifectRefId","revision","document","author","createdAt"],"title":"ThemeRevision","description":"One immutable committed revision of a document run: the document and the actions that made it."},"ThemeRole":{"type":"string","enum":["ARCHIVED","DEMO","DEVELOPMENT","LOCKED","MAIN","UNPUBLISHED"],"title":"ThemeRole","description":"A Shopify theme's role; only MAIN is the published, write-protected live theme."},"ThemeRunHead":{"properties":{"runKind":{"type":"string","const":"DOCUMENT","title":"Runkind","default":"DOCUMENT"},"artifectRefId":{"type":"string","maxLength":256,"minLength":1,"title":"Artifectrefid"},"owner":{"type":"string","maxLength":256,"minLength":1,"title":"Owner"},"replayKey":{"type":"string","maxLength":256,"minLength":1,"title":"Replaykey"},"createRequestHash":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Createrequesthash"},"storeId":{"type":"string","title":"Storeid"},"account":{"$ref":"#/components/schemas/AccountRef"},"targetThemeId":{"type":"string","pattern":"^gid://shopify/OnlineStoreTheme/[0-9]+$","title":"Targetthemeid"},"title":{"type":"string","maxLength":250,"minLength":1,"title":"Title"},"headRevision":{"type":"integer","minimum":0.0,"title":"Headrevision"},"editReceipts":{"items":{"$ref":"#/components/schemas/ThemeEditReceipt"},"type":"array","title":"Editreceipts","default":[]},"preview":{"anyOf":[{"$ref":"#/components/schemas/PreviewSession"},{"type":"null"}]},"proposals":{"items":{"$ref":"#/components/schemas/ThemeDocumentProposalLink"},"type":"array","title":"Proposals","default":[]},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"}},"additionalProperties":false,"type":"object","required":["artifectRefId","owner","replayKey","createRequestHash","storeId","account","targetThemeId","title","headRevision","createdAt","updatedAt"],"title":"ThemeRunHead","description":"The small owner-scoped head row of one document run (IDX-1); revisions live beside it."},"ThemeSectionChange":{"properties":{"sectionKey":{"type":"string","pattern":"^keble-[a-z0-9][a-z0-9-]{0,56}$","title":"Sectionkey"},"kind":{"$ref":"#/components/schemas/KebleSectionKind"},"change":{"$ref":"#/components/schemas/ThemeSectionChangeKind"}},"additionalProperties":false,"type":"object","required":["sectionKey","kind","change"],"title":"ThemeSectionChange","description":"One changed Keble section in a publish summary; the web names it from its kind's label."},"ThemeSectionChangeKind":{"type":"string","enum":["NEW","EDITED","REMOVED"],"title":"ThemeSectionChangeKind","description":"How one Keble section differs between the published revision and the one being published."},"ThemeSectionInstance":{"properties":{"sectionKey":{"type":"string","pattern":"^keble-[a-z0-9][a-z0-9-]{0,56}$","title":"Sectionkey"},"kind":{"$ref":"#/components/schemas/KebleSectionKind"},"settings":{"patternProperties":{"^[a-z][a-z0-9_]{0,62}$":{"anyOf":[{"type":"string"},{"type":"integer"}]}},"type":"object","title":"Settings"},"blocks":{"items":{"$ref":"#/components/schemas/ThemeBlockInstance"},"type":"array","title":"Blocks","default":[]}},"additionalProperties":false,"type":"object","required":["sectionKey","kind"],"title":"ThemeSectionInstance","description":"One Keble section on a page: stable key (also its JSON-template entry id), kind, settings, blocks."},"ThemeStage":{"type":"string","enum":["DRAFT","PREVIEWING","PREVIEW_READY","PUBLISHING","PUBLISHED"],"title":"ThemeStage","description":"Where a document run stands, derived on every read and never stored (E-2)."},"ThemeStageGuide":{"properties":{"stage":{"$ref":"#/components/schemas/ThemeStage"},"allowed":{"items":{"$ref":"#/components/schemas/ThemeDocumentOperation"},"type":"array","title":"Allowed","default":[]},"undoRevision":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Undorevision"},"liveIsUndo":{"type":"boolean","title":"Liveisundo","default":false}},"additionalProperties":false,"type":"object","required":["stage"],"title":"ThemeStageGuide","description":"The stage and the commands allowed in it, computed by the runtime from one rule set (E-2)."},"ThemeTemplateEntry":{"properties":{"entryId":{"type":"string","pattern":"^(?:@start|[A-Za-z0-9_-]{1,64})$","title":"Entryid"},"sectionType":{"type":"string","maxLength":250,"minLength":1,"title":"Sectiontype"},"name":{"anyOf":[{"type":"string","maxLength":250,"minLength":1},{"type":"null"}],"title":"Name"},"disabled":{"type":"boolean","title":"Disabled","default":false}},"additionalProperties":false,"type":"object","required":["entryId","sectionType"],"title":"ThemeTemplateEntry","description":"One entry of a theme's JSON template as the runtime parsed it: id, section type and display name."},"ThemeTemplateOutline":{"properties":{"template":{"$ref":"#/components/schemas/ThemeTemplateRef"},"entries":{"items":{"$ref":"#/components/schemas/ThemeTemplateEntry"},"type":"array","title":"Entries","default":[]},"order":{"items":{"type":"string","pattern":"^(?:@start|[A-Za-z0-9_-]{1,64})$"},"type":"array","title":"Order","default":[]},"unresolvedSectionKeys":{"items":{"type":"string","pattern":"^keble-[a-z0-9][a-z0-9-]{0,56}$"},"type":"array","title":"Unresolvedsectionkeys","default":[]}},"additionalProperties":false,"type":"object","required":["template"],"title":"ThemeTemplateOutline","description":"One template of the copy or the target with its merchant entries in order (this run's own excluded)."},"ThemeTemplateRef":{"properties":{"templateType":{"$ref":"#/components/schemas/ThemeTemplateType"},"suffix":{"anyOf":[{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,62}$"},{"type":"null"}],"title":"Suffix"}},"additionalProperties":false,"type":"object","required":["templateType"],"title":"ThemeTemplateRef","description":"Typed identity of one JSON template: a template type plus an optional alternate suffix."},"ThemeTemplateType":{"type":"string","enum":["INDEX","PRODUCT","COLLECTION","PAGE","BLOG","ARTICLE"],"title":"ThemeTemplateType","description":"The JSON template types a Keble section may be placed on in v1 (templates/<type>[.<suffix>].json)."},"TimeAxis":{"type":"string","enum":["PUBLISHED","OBSERVED","LAUNCHED"],"title":"TimeAxis","description":"WHICH INSTANT a time window is measured on (K-24, G-09)."},"TodoCreate":{"properties":{"kind":{"type":"string","const":"TODO","title":"Kind","default":"TODO"},"content":{"$ref":"#/components/schemas/ItemContent"},"key":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Key"}},"additionalProperties":false,"type":"object","required":["content"],"title":"TodoCreate","description":"Immutable original intent for an ordinary todo."},"TodoItem":{"properties":{"id":{"type":"string","minLength":1,"title":"Id"},"owner":{"$ref":"#/components/schemas/OwnerRef"},"current":{"$ref":"#/components/schemas/ItemContent"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"revision":{"type":"integer","minimum":0.0,"title":"Revision"},"created_by":{"anyOf":[{"$ref":"#/components/schemas/ActorRef"},{"type":"null"}]},"kind":{"type":"string","const":"TODO","title":"Kind","default":"TODO"},"object":{"type":"string","const":"todo_item","title":"Object","default":"todo_item"},"creation":{"$ref":"#/components/schemas/TodoCreate"},"status":{"$ref":"#/components/schemas/TodoStatus"},"resolved_by":{"anyOf":[{"$ref":"#/components/schemas/ActorRef"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["id","owner","current","created_at","revision","creation","status"],"title":"TodoItem","description":"Ordinary todo with immutable creation and mutable current content."},"TodoStatus":{"type":"string","enum":["OPEN","DONE","WITHDRAWN"],"title":"TodoStatus","description":"An ordinary item remains stored and readable after completion."},"Tone":{"type":"string","enum":["OPPORTUNITY","CAUTION"],"title":"Tone","description":"The tint of a cell's conclusion."},"ToneSpec":{"properties":{"toneKey":{"type":"string","minLength":1,"title":"Tonekey"},"description":{"type":"string","minLength":1,"title":"Description"}},"additionalProperties":false,"type":"object","required":["toneKey","description"],"title":"ToneSpec","description":"One tone the plan uses, defined once and referenced by key (round-3 m2)."},"TopByMetricSuggestion":{"properties":{"kind":{"type":"string","const":"TOP_BY_METRIC","title":"Kind","description":"Ranked-search suggestion discriminator.","default":"TOP_BY_METRIC"},"nodeKind":{"$ref":"#/components/schemas/NodeKind","description":"Node family to rank."},"channel":{"$ref":"#/components/schemas/Channel","description":"Channel of the ranked nodes."},"metric":{"type":"string","enum":["review_count","follower_count","view_count"],"title":"Metric","description":"Declared numeric field code of the selected cell."},"windowDays":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Windowdays","description":"Applicable metric window in days; null for a current field value."}},"type":"object","required":["nodeKind","channel","metric"],"title":"TopByMetricSuggestion","description":"An executable alternative over a declared numeric cell field."},"UnboundAction":{"properties":{"actionKey":{"type":"string","title":"Actionkey"},"actionTypeKey":{"type":"string","title":"Actiontypekey"},"target":{"$ref":"#/components/schemas/EntityRef"},"change":{"$ref":"#/components/schemas/JsonValue"},"baseVersion":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Baseversion"}},"additionalProperties":false,"type":"object","required":["actionKey","actionTypeKey","target","change"],"title":"UnboundAction","description":"The account-free ELTA action accepted at every public change-list boundary."},"UngroupLayer":{"properties":{"action":{"type":"string","const":"UNGROUP_LAYER","title":"Action","default":"UNGROUP_LAYER"},"designId":{"type":"string","title":"Designid"},"groupId":{"type":"string","title":"Groupid"}},"additionalProperties":false,"type":"object","required":["designId","groupId"],"title":"UngroupLayer","description":"Dissolve a group, keeping its children in place."},"Unit":{"type":"string","enum":["COUNT","MONEY","RATIO"],"title":"Unit","description":"The physical unit of a measure or metric, so money, counts and ratios stay apart."},"UnlinkedMention":{"properties":{"stance":{"anyOf":[{"$ref":"#/components/schemas/ClaimStance"},{"type":"null"}],"description":"What the source item does toward the named entity in the cited claim; null when no claim is cited, the claim predates mention capture, or (on a relation) the edge's basis is SIMILAR (its claim names no such record)."},"mainSubject":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Mainsubject","description":"Whether the cited claim names what the source item mainly promotes or is about; null when stance is null."},"emotion":{"anyOf":[{"$ref":"#/components/schemas/ClaimEmotion"},{"type":"null"}],"description":"How the source item feels about the named entity in the cited claim, STRONGLY_NEGATIVE to STRONGLY_POSITIVE; null when stance is null."},"phrase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phrase","description":"The source item's own words showing how it brings the named entity up, from the cited claim; null when not found verbatim, visual only, captured before mention capture, (on a relation) the basis is SIMILAR, or no claim is cited."},"relation":{"$ref":"#/components/schemas/AnalyzedRelationKind","description":"Relation the claim would draw if a record matched it; FEATURES_BRAND today."},"label":{"type":"string","minLength":1,"title":"Label","description":"The named entity as the source item says it, from the claim."}},"type":"object","required":["relation","label"],"title":"UnlinkedMention","description":"ONE claim of a source item that no held record matched (D-03)."},"UnresolvedBrandRef":{"properties":{"layerId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Layerid"},"field":{"$ref":"#/components/schemas/LayerField"},"kitId":{"type":"string","title":"Kitid"},"entryId":{"type":"string","title":"Entryid"}},"additionalProperties":false,"type":"object","required":["layerId","field","kitId","entryId"],"title":"UnresolvedBrandRef","description":"A kit ref whose entry (or kit) no longer exists; nothing is substituted silently (§4.3)."},"UpdateItems":{"properties":{"type":{"type":"string","const":"UPDATE_ITEMS","title":"Type","default":"UPDATE_ITEMS"},"actionKey":{"type":"string","minLength":1,"title":"Actionkey"},"updates":{"items":{"$ref":"#/components/schemas/ItemUpdate"},"type":"array","minItems":1,"title":"Updates"}},"additionalProperties":false,"type":"object","required":["actionKey","updates"],"title":"UpdateItems","description":"Change items' names, facts or relevance (the SOURCE review's answer, or any later edit)."},"ValueStatus":{"type":"string","enum":["AVAILABLE","UNAVAILABLE","MIXED_CURRENCY"],"title":"ValueStatus","description":"Whether a value exists; missing is never zero (existing ruling)."},"VariantRecipe":{"properties":{"preset":{"anyOf":[{"type":"string","enum":["amazon.aplus.banner","amazon.aplus.comparison","amazon.aplus.four_image","amazon.aplus.header","amazon.aplus.logo","amazon.aplus.quadrant","amazon.aplus.single","amazon.aplus_premium.full_width","amazon.brand_story.background","amazon.brand_story.card","amazon.main","amazon.secondary","custom","shopify.blog_featured","shopify.collection","shopify.product"]},{"type":"null"}],"title":"Preset"},"size":{"anyOf":[{"$ref":"#/components/schemas/PixelSize"},{"type":"null"}]},"fit":{"$ref":"#/components/schemas/ResizeMode","default":"REFLOW"},"colorMap":{"items":{"$ref":"#/components/schemas/ColorRemap"},"type":"array","title":"Colormap","default":[]},"planRow":{"anyOf":[{"$ref":"#/components/schemas/PlanRowRef"},{"type":"null"}]}},"additionalProperties":false,"type":"object","title":"VariantRecipe","description":"How a variant differs from its parent; the parts compose (A4: \"Heat at 4:5\" = color_map + preset)."},"VariantSpec":{"properties":{"objectId":{"type":"string","title":"Objectid"},"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"position":{"anyOf":[{"$ref":"#/components/schemas/BoardPoint"},{"type":"null"}]},"recipe":{"$ref":"#/components/schemas/VariantRecipe"},"scenePrompt":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Sceneprompt"}},"additionalProperties":false,"type":"object","required":["objectId","name"],"title":"VariantSpec","description":"One variant to create; its recipe composes, and an optional prompt queues one paid scene on it."},"ViewDefinition":{"properties":{"viewId":{"type":"string","title":"Viewid"},"dimensionKeys":{"items":{"type":"string","maxLength":80,"minLength":1},"type":"array","maxItems":3,"title":"Dimensionkeys"},"sizeMeasure":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Sizemeasure"},"numberMeasure":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Numbermeasure"},"criterion":{"anyOf":[{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$"},{"type":"null"}],"title":"Criterion"}},"additionalProperties":false,"type":"object","required":["viewId","dimensionKeys","sizeMeasure","numberMeasure"],"title":"ViewDefinition","description":"One saved display of a positioning: axes, circle size and number, optional criterion."},"ViewHandledBy":{"type":"string","enum":["USER","AGENT"],"title":"ViewHandledBy","description":"Whose viewport a view row is: a person's, or the agent working for them (existing values)."},"ViewerRef":{"properties":{"viewer":{"type":"string","maxLength":120,"minLength":1,"title":"Viewer"},"handledBy":{"$ref":"#/components/schemas/ViewHandledBy","default":"USER"}},"additionalProperties":false,"type":"object","required":["viewer"],"title":"ViewerRef","description":"Who is looking: every viewer keeps their own views; the agent never overwrites the person's."},"Viewport":{"properties":{"viewer":{"$ref":"#/components/schemas/ViewerRef"},"definitions":{"items":{"$ref":"#/components/schemas/ViewDefinition"},"type":"array","minItems":1,"title":"Definitions"},"revision":{"type":"integer","minimum":0.0,"title":"Revision","default":0}},"additionalProperties":false,"type":"object","required":["viewer","definitions"],"title":"Viewport","description":"One viewer's ordered saved views of one positioning, guarded by a revision."},"VisibleField":{"properties":{"field":{"type":"string","const":"VISIBLE","title":"Field","default":"VISIBLE"},"visible":{"type":"boolean","title":"Visible"}},"additionalProperties":false,"type":"object","required":["visible"],"title":"VisibleField","description":"Override value: a layer's visibility."},"WhiteBackgroundRule":{"properties":{"kind":{"type":"string","const":"WHITE_BACKGROUND","title":"Kind","default":"WHITE_BACKGROUND"}},"additionalProperties":false,"type":"object","title":"WhiteBackgroundRule","description":"Every pixel outside the product is pure white RGB 255,255,255 (Amazon main image)."},"WindowCapture":{"properties":{"kind":{"type":"string","const":"window","title":"Kind","description":"Capture style: recent reporting-day window.","default":"window"},"lookbackDays":{"type":"integer","minimum":1.0,"title":"Lookbackdays","description":"Recent reporting days re-read on each sync."},"maxWindowDays":{"type":"integer","minimum":1.0,"title":"Maxwindowdays","description":"Maximum reporting days in one capture request."}},"additionalProperties":false,"type":"object","required":["lookbackDays","maxWindowDays"],"title":"WindowCapture","description":"A dataset re-requested over its recent reporting days on every run."},"WritePolicy":{"properties":{"enabled":{"items":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$"},"type":"array","uniqueItems":true,"title":"Enabled","description":"Write families enabled for this store.","default":[]}},"additionalProperties":false,"type":"object","title":"WritePolicy","description":"The store's enabled action-family keys; an empty set keeps every write disabled."},"WriteRefusal":{"properties":{"key":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Key","description":"Refusal key carried by action rows."},"title":{"$ref":"#/components/schemas/StoreLocalizedText","description":"Display name of the reason, in both languages."},"means":{"anyOf":[{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$"},{"type":"null"}],"title":"Means","description":"For a plugin code, the standard target reason it is a case of."}},"additionalProperties":false,"type":"object","required":["key","title"],"title":"WriteRefusal","description":"One catalog-declared refusal reason: its key, bilingual title and standard meaning (4.0.0)."},"MinorUnitMoney":{"properties":{"amount":{"$ref":"#/components/schemas/StdMoneyAmount"},"currency":{"$ref":"#/components/schemas/Currency"}},"additionalProperties":false,"type":"object","maxProperties":2,"required":["amount","currency"],"title":"MinorUnitMoney","description":"Exact monetary value stored as ISO minor units plus its currency."},"DecimalMoney":{"properties":{"amount":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Amount"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","title":"Currency"}},"additionalProperties":false,"type":"object","required":["amount","currency"],"title":"DecimalMoney","description":"An amount with its currency; core never adds two currencies."},"ProviderWriteActionType":{"properties":{"key":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Key","description":"Approved-write action identifier."},"kind":{"$ref":"#/components/schemas/ActionKind","description":"Whether the action sets, adds or removes a target."},"level":{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$","title":"Level","description":"Granularity of the write target: a catalog level key."},"intent":{"anyOf":[{"$ref":"#/components/schemas/ActionIntent"},{"type":"null"}],"description":"ELTA-owned neutral write meaning; null when the action declares none."},"familyKey":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$","title":"Familykey","description":"Owner-facing write family controlled by the store policy."},"changeSchema":{"$ref":"#/components/schemas/JsonValue","description":"JSON Schema of the requested change."},"title":{"$ref":"#/components/schemas/StoreLocalizedText","description":"Owner-facing name of this write."},"fieldTitles":{"items":{"$ref":"#/components/schemas/ChangeFieldTitle"},"type":"array","title":"Fieldtitles","description":"Human titles of this change's top-level fields.","default":[]},"requires":{"items":{"$ref":"#/components/schemas/Permission"},"type":"array","title":"Requires","description":"Permissions needed to apply this action.","default":[]},"creates":{"anyOf":[{"type":"string","maxLength":64,"pattern":"^[A-Z][A-Z0-9_]*$"},{"type":"null"}],"title":"Creates","description":"Entity level created by an addressable ADD action."},"createdFrom":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Createdfrom","description":"Top-level change field containing an ADD's caller-assigned id."},"revertActionKey":{"anyOf":[{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$"},{"type":"null"}],"title":"Revertactionkey","description":"Action used to cancel or restore this action."},"revertNote":{"anyOf":[{"$ref":"#/components/schemas/StoreLocalizedText"},{"type":"null"}],"description":"Provider-specific undo limitation shown before approval (3.5.0: bilingual)."},"refreshDatasetKeys":{"items":{"type":"string","maxLength":120,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$"},"type":"array","title":"Refreshdatasetkeys","description":"Datasets ELTA captures after this action applies.","default":[]},"fidelity":{"$ref":"#/components/schemas/RevertFidelity","description":"Declared completeness of the action's undo."},"drift":{"$ref":"#/components/schemas/DriftPolicy","description":"Whether a changed target is refused before apply."},"removeScope":{"$ref":"#/components/schemas/RemoveScope","description":"Targets this REMOVE may delete.","default":"ELTA_CREATED"},"revertOnly":{"type":"boolean","title":"Revertonly","description":"Whether this action is valid only while reverting another action.","default":false},"quoted":{"type":"boolean","title":"Quoted","description":"Whether provider estimates are retained on action outcomes.","default":false}},"additionalProperties":false,"type":"object","required":["key","kind","level","familyKey","changeSchema","title","fidelity","drift"],"title":"ProviderWriteActionType","description":"One provider write, with optional neutral intent, typed change and undo/drift policy."},"PluginDeclarationCatalog":{"properties":{"object":{"type":"string","const":"catalog","title":"Object","description":"Document type: catalog.","default":"catalog"},"declarations":{"items":{"$ref":"#/components/schemas/PluginDeclaration"},"type":"array","title":"Declarations","description":"Declarations of every installed plugin."},"levels":{"items":{"$ref":"#/components/schemas/EntityLevel"},"type":"array","title":"Levels","description":"Every level a value may carry, with its title and parent.","default":[]},"refusals":{"items":{"$ref":"#/components/schemas/WriteRefusal"},"type":"array","title":"Refusals","description":"Every refusal an action row may carry, with its title and meaning.","default":[]}},"additionalProperties":false,"type":"object","required":["declarations"],"title":"PluginDeclarationCatalog","description":"Every installed plugin's declaration plus the shared vocabulary: GET /v2/catalog."},"TemporalFactKind":{"type":"string","enum":["DAILY_TOTAL","EVENT","SNAPSHOT"],"title":"TemporalFactKind","description":"How one fact family is placed in time."},"StoreLocalizedText":{"properties":{"en":{"type":"string","minLength":1,"title":"En","description":"English display text."},"zh":{"type":"string","minLength":1,"title":"Zh","description":"Simplified Chinese display text."}},"additionalProperties":false,"type":"object","required":["en","zh"],"title":"StoreLocalizedText","description":"One display text in both product languages, declared once by the owning plugin (2.8.0)."},"LocalizedText":{"properties":{"en":{"type":"string","maxLength":120,"minLength":1,"title":"En"},"zh":{"type":"string","maxLength":120,"minLength":1,"title":"Zh"}},"additionalProperties":false,"type":"object","required":["en","zh"],"title":"LocalizedText","description":"One human label in both product languages."},"StoreActorKind":{"type":"string","enum":["HUMAN","AGENT","SYSTEM"],"title":"StoreActorKind","description":"Who caused a change (mirror of keble.backend's verified actor kinds)."},"StoreActorRef":{"properties":{"kind":{"$ref":"#/components/schemas/StoreActorKind","description":"Kind of actor that caused the change."},"id":{"type":"string","maxLength":128,"minLength":1,"title":"Id","description":"Verified actor identity."}},"additionalProperties":false,"type":"object","required":["kind","id"],"title":"StoreActorRef","description":"One verified actor: its kind and its stable identity within that kind."},"ActorKind":{"type":"string","enum":["HUMAN","AGENT","SYSTEM","API_KEY"],"title":"ActorKind","description":"Who made an item request or transition."},"ActorRef":{"properties":{"kind":{"$ref":"#/components/schemas/ActorKind"},"id":{"type":"string","minLength":1,"title":"Id"}},"additionalProperties":false,"type":"object","required":["kind","id"],"title":"ActorRef","description":"The verified person, agent, trusted system, or API-key actor."},"CapabilityCatalog":{"properties":{"object":{"type":"string","const":"catalog","title":"Object","description":"Public object discriminator."},"cells":{"items":{"$ref":"#/components/schemas/CatalogCellView"},"type":"array","title":"Cells","description":"Public capability cells."},"edges":{"items":{"$ref":"#/components/schemas/CatalogEdgeView"},"type":"array","title":"Edges","description":"Enabled topology edges a caller may traverse."},"motifSections":{"items":{"$ref":"#/components/schemas/MotifSection"},"type":"array","title":"Motifsections","description":"Named motif sections available through the Trending route."}},"type":"object","required":["object","cells","edges","motifSections"],"title":"CapabilityCatalog","description":"The public catalog object."},"ChangeActionType":{"type":"string","enum":["SET_SETUP","ADD_ITEMS","UPDATE_ITEMS","REMOVE_ITEMS","SAVE_DIMENSION","DELETE_DIMENSION","SET_PLACEMENTS","SAVE_CRITERION","DELETE_CRITERION","SET_RESULTS","SAVE_VIEW","DELETE_VIEW","REORDER_VIEWS","CONTINUE","SET_REVIEW","CANCEL","PROPOSE","CLASSIFY","ASSESS","SCORE","DECIDE"],"title":"ChangeActionType","description":"Every change a person or agent makes after create, in three families."},"FactValueKind":{"type":"string","enum":["TEXT","CATEGORY","NUMBER","COUNT","MONEY","DATE","IMAGE","URL"],"title":"FactValueKind","description":"What kind of value one item fact holds, which fixes what core may compute from it."},"ItemPage":{"properties":{"object":{"type":"string","const":"item_page","title":"Object","default":"item_page"},"items":{"items":{"oneOf":[{"$ref":"#/components/schemas/TodoItem"},{"$ref":"#/components/schemas/AlertItem"},{"$ref":"#/components/schemas/ApprovalItem"},{"$ref":"#/components/schemas/NotificationItem"}],"discriminator":{"propertyName":"kind","mapping":{"ALERT":"#/components/schemas/AlertItem","APPROVAL":"#/components/schemas/ApprovalItem","NOTIFICATION":"#/components/schemas/NotificationItem","TODO":"#/components/schemas/TodoItem"}}},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"total":{"type":"integer","minimum":0.0,"title":"Total"}},"additionalProperties":false,"type":"object","required":["items","total"],"title":"ItemPage","description":"One ranked pending page and the owner's full matching open count (R7)."},"PositioningItemPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ItemRead"},"type":"array","title":"Items"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"}},"additionalProperties":false,"type":"object","required":["items"],"title":"PositioningItemPage","description":"One page of items, groups kept together, for the side panel and agents."},"TodoApprovalStatus":{"type":"string","enum":["PENDING","APPLYING","APPROVED","REJECTED","WITHDRAWN"],"title":"TodoApprovalStatus","description":"A decision remains separate from ordinary todo completion."},"ArtifectHostApprovalStatus":{"type":"string","enum":["PENDING","APPROVED","REJECTED","EXPIRED"],"title":"ArtifectHostApprovalStatus","description":"Inbox status mapped exhaustively by the backend adapter from its todo enum."},"ExportedImage":{"properties":{"position":{"type":"integer","minimum":0.0,"title":"Position"},"designId":{"type":"string","title":"Designid"},"name":{"type":"string","minLength":1,"title":"Name"},"preset":{"type":"string","enum":["amazon.aplus.banner","amazon.aplus.comparison","amazon.aplus.four_image","amazon.aplus.header","amazon.aplus.logo","amazon.aplus.quadrant","amazon.aplus.single","amazon.aplus_premium.full_width","amazon.brand_story.background","amazon.brand_story.card","amazon.main","amazon.secondary","custom","shopify.blog_featured","shopify.collection","shopify.product"],"title":"Preset"},"format":{"$ref":"#/components/schemas/RenderFormat"},"asset":{"$ref":"#/components/schemas/AssetRef"},"findings":{"items":{"$ref":"#/components/schemas/SlotFinding"},"type":"array","title":"Findings"},"aiGenerated":{"type":"boolean","title":"Aigenerated","default":false}},"additionalProperties":false,"type":"object","required":["position","designId","name","preset","format","asset","findings"],"title":"ExportedImage","description":"One immutable exported image, in board order, with its name, format, findings and AI fact."},"PostExportedImage":{"properties":{"export":{"$ref":"#/components/schemas/ImageExportRef"},"altText":{"type":"string","title":"Alttext","default":""}},"additionalProperties":false,"type":"object","required":["export"],"title":"PostExportedImage","description":"One design of one immutable W3.1 export; its HTTPS URL is minted only at Propose."},"ProductOption":{"properties":{"name":{"type":"string","maxLength":256,"minLength":1,"title":"Name"},"value":{"type":"string","maxLength":1024,"minLength":1,"title":"Value"}},"additionalProperties":false,"type":"object","required":["name","value"],"title":"ProductOption","description":"Retain one named dimension/value pair for a Product variant."},"ShopifyProductOption":{"properties":{"name":{"type":"string","minLength":1,"title":"Name"},"values":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Values"}},"additionalProperties":false,"type":"object","required":["name","values"],"title":"ShopifyProductOption","description":"One product option name and its values, e.g. Size: S, M, L."},"ProductImagesActorKind":{"type":"string","enum":["AGENT","USER"],"title":"ProductImagesActorKind","description":"Who submitted an edit: the chat agent or the person in the editor (revision provenance)."},"ShopifyThemeRestoreRevision":{"properties":{"action":{"type":"string","const":"RESTORE_REVISION","title":"Action","default":"RESTORE_REVISION"},"revision":{"type":"integer","minimum":0.0,"title":"Revision"}},"additionalProperties":false,"type":"object","required":["revision"],"title":"ShopifyThemeRestoreRevision","description":"Make an earlier revision's document the new head (Keep/Undo on a change card; G-12)."},"RestoreRevision":{"properties":{"action":{"type":"string","const":"RESTORE_REVISION","title":"Action","default":"RESTORE_REVISION"},"revision":{"type":"integer","minimum":0.0,"title":"Revision"},"objectIds":{"anyOf":[{"items":{"type":"string"},"type":"array","minItems":1},{"type":"null"}],"title":"Objectids"}},"additionalProperties":false,"type":"object","required":["revision"],"title":"RestoreRevision","description":"Restore an earlier revision: the whole board (version history) or only object_ids (my-own undo, A5)."},"PauseReason":{"type":"string","enum":["OWNER_PAUSED","PLAN_REQUIRED","SLOT_LIMIT","TOP_UP_REQUIRED"],"title":"PauseReason","description":"Why sync stopped; D-06.0 and R54 explicitly retain top-up required."},"MonitorPauseReason":{"type":"string","enum":["OWNER","FAILURES","ACCESS"],"title":"MonitorPauseReason","description":"Why a monitor is paused; every value except OWNER is an auto-pause with a notice."},"MonitorOwnerScope":{"properties":{"ownerType":{"$ref":"#/components/schemas/OwnerType"},"ownerId":{"type":"string","minLength":1,"title":"Ownerid"}},"additionalProperties":false,"type":"object","required":["ownerType","ownerId"],"title":"MonitorOwnerScope","description":"The owner one monitor belongs to: a user or an organization (keble-helpers OwnerType)."},"OwnerScope":{"properties":{"owner":{"type":"string","maxLength":120,"minLength":1,"title":"Owner"}},"additionalProperties":false,"type":"object","required":["owner"],"title":"OwnerScope","description":"The single owner every positioning read and write is scoped to."},"MonitorAgentBinding":{"properties":{"kind":{"$ref":"#/components/schemas/MonitorAgentKind"},"conversationId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversationid"}},"additionalProperties":false,"type":"object","required":["kind"],"title":"MonitorAgentBinding","description":"Which agent narrates: Keble's agent in the chat the monitor was created in, or the owner's own agent."},"MonitorAgentKind":{"type":"string","enum":["KEBLE_AGENT","OWNER_AGENT"],"title":"MonitorAgentKind","description":"Which agent narrates reported cycles, decided by where the monitor was created (W-13)."},"MonitorCadenceUnit":{"type":"string","enum":["MINUTE","HOUR","DAY","WEEK","MONTH"],"title":"MonitorCadenceUnit","description":"Units a cadence counts in; MINUTE stays in the contract while v1's floor is 60 minutes."},"MonitorCapabilityOffer":{"properties":{"capabilityKey":{"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,63}$","title":"Capabilitykey"},"title":{"type":"string","minLength":1,"title":"Title"},"channelLabel":{"type":"string","minLength":1,"title":"Channellabel"},"subjectHint":{"type":"string","minLength":1,"title":"Subjecthint"},"policies":{"items":{"$ref":"#/components/schemas/MonitorFindingPolicy"},"type":"array","minItems":1,"title":"Policies"},"freshnessLabel":{"type":"string","minLength":1,"title":"Freshnesslabel"},"fetches":{"type":"boolean","title":"Fetches"},"minInterval":{"type":"string","format":"duration","title":"Mininterval"},"readsPerCheck":{"type":"integer","minimum":0.0,"title":"Readspercheck"},"markets":{"items":{"type":"string","maxLength":2,"minLength":2,"pattern":"^[A-Z]{2}$"},"type":"array","title":"Markets","default":[]}},"additionalProperties":false,"type":"object","required":["capabilityKey","title","channelLabel","subjectHint","policies","freshnessLabel","fetches","minInterval","readsPerCheck"],"title":"MonitorCapabilityOffer","description":"One watchable capability as offered to the agent: backend-authored and safe to show."},"MonitorChangeKind":{"type":"string","enum":["NEW_ITEM","VALUE_CHANGE","RANK_MOVE"],"title":"MonitorChangeKind","description":"The discriminator of what a finding reports."},"MonitorChannelDelivery":{"properties":{"channel":{"$ref":"#/components/schemas/MonitorDeliveryChannel"},"status":{"$ref":"#/components/schemas/MonitorDeliveryStatus"}},"additionalProperties":false,"type":"object","required":["channel","status"],"title":"MonitorChannelDelivery","description":"Where one channel's delivery of one cycle stands, read from its outbox row (CG-91)."},"MonitorCoverageReason":{"type":"string","enum":["MORE_MAY_EXIST","REFS_PENDING","FETCH_DELAYED","SOURCE_STALE","ACCESS","CREDIT","DAILY_CAP","SUBJECT_UNAVAILABLE","READ_FAILED","MONITOR_INACTIVE"],"title":"MonitorCoverageReason","description":"The one reason a watch's coverage is PARTIAL or NOT_CHECKED (the digest's \"couldn't check X\")."},"MonitorCycleState":{"type":"string","enum":["QUEUED","FETCHING","PROCESSING","REPORTED","NO_CHANGE","FAILED","SKIPPED"],"title":"MonitorCycleState","description":"Where one scheduled check is; QUEUED, FETCHING and PROCESSING are open, the rest terminal."},"MonitorDeliveryChannel":{"type":"string","enum":["INBOX","CHAT","EMAIL"],"title":"MonitorDeliveryChannel","description":"Where one reported cycle (or an auto-pause notice) is delivered; one delivery row per channel."},"MonitorDeliveryStatus":{"type":"string","enum":["PENDING","DISPATCHING","DELIVERED","UNCERTAIN","GAVE_UP"],"title":"MonitorDeliveryStatus","description":"Where one delivery row (one channel of one cycle) is; shown on the cycle row (CG-91)."},"MonitorFetchHandle":{"properties":{"fetchKey":{"type":"string","minLength":1,"title":"Fetchkey"}},"additionalProperties":false,"type":"object","required":["fetchKey"],"title":"MonitorFetchHandle","description":"Opaque handle of one shared fetch, stored on the watch's cycle while it runs."},"MonitorFindingItem":{"properties":{"ref":{"$ref":"#/components/schemas/MonitorRecordRef"},"title":{"type":"string","minLength":1,"title":"Title"},"channelLabel":{"type":"string","minLength":1,"title":"Channellabel"},"link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"publishedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Publishedat"},"observedAt":{"type":"string","format":"date-time","title":"Observedat"},"metrics":{"items":{"$ref":"#/components/schemas/MonitorItemMetric"},"type":"array","title":"Metrics","default":[]},"rank":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Rank"}},"additionalProperties":false,"type":"object","required":["ref","title","channelLabel","observedAt"],"title":"MonitorFindingItem","description":"One item as a finding shows it: display-safe labels, its public link, and its times (P9)."},"MonitorFindingKey":{"properties":{"cycleSeq":{"type":"integer","minimum":1.0,"title":"Cycleseq"},"watchKey":{"type":"string","minLength":1,"title":"Watchkey"},"ref":{"$ref":"#/components/schemas/MonitorRecordRef"},"change":{"$ref":"#/components/schemas/MonitorChangeKind"},"metricKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metrickey"}},"additionalProperties":false,"type":"object","required":["cycleSeq","watchKey","ref","change"],"title":"MonitorFindingKey","description":"One finding's identity inside its monitor: cycle, watch, item and what changed."},"MonitorFindingPolicy":{"type":"string","enum":["NEW_ITEMS","VALUE_CHANGES","RANKING"],"title":"MonitorFindingPolicy","description":"How a watch decides what is new; owned by the monitor, not by the data platform."},"MonitorItemMetric":{"properties":{"metricKey":{"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,63}$","title":"Metrickey"},"label":{"type":"string","minLength":1,"title":"Label"},"value":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Value"},"minChange":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Minchange"}},"additionalProperties":false,"type":"object","required":["metricKey","label","value","minChange"],"title":"MonitorItemMetric","description":"One tracked value of an item, with the smallest change worth reporting (backend-authored)."},"MonitorNewItem":{"properties":{"kind":{"type":"string","const":"NEW_ITEM","title":"Kind","default":"NEW_ITEM"}},"additionalProperties":false,"type":"object","title":"MonitorNewItem","description":"The item was never reported before by this watch."},"MonitorRankMove":{"properties":{"kind":{"type":"string","const":"RANK_MOVE","title":"Kind","default":"RANK_MOVE"},"was":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Was"},"now":{"type":"integer","minimum":1.0,"title":"Now"}},"additionalProperties":false,"type":"object","required":["now"],"title":"MonitorRankMove","description":"An entry entered (was None) or rose in a ranked list."},"MonitorRecordRef":{"properties":{"recordKind":{"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,63}$","title":"Recordkind"},"recordKey":{"type":"string","minLength":1,"title":"Recordkey"}},"additionalProperties":false,"type":"object","required":["recordKind","recordKey"],"title":"MonitorRecordRef","description":"One record of the shared data, opaque to the core: a subject the agent found, or an item a fetch found."},"MonitorSetCadence":{"properties":{"command":{"type":"string","const":"SET_CADENCE","title":"Command","default":"SET_CADENCE"},"cadence":{"$ref":"#/components/schemas/MonitorCadence"}},"additionalProperties":false,"type":"object","required":["cadence"],"title":"MonitorSetCadence","description":"Change the schedule; the next due is recomputed, an open cycle keeps its frozen spec."},"MonitorSetDelivery":{"properties":{"command":{"type":"string","const":"SET_DELIVERY","title":"Command","default":"SET_DELIVERY"},"delivery":{"$ref":"#/components/schemas/MonitorDelivery"}},"additionalProperties":false,"type":"object","required":["delivery"],"title":"MonitorSetDelivery","description":"Change the channel toggles."},"MonitorSetWatches":{"properties":{"command":{"type":"string","const":"SET_WATCHES","title":"Command","default":"SET_WATCHES"},"watches":{"items":{"$ref":"#/components/schemas/MonitorWatchRequest"},"type":"array","minItems":1,"title":"Watches"}},"additionalProperties":false,"type":"object","required":["watches"],"title":"MonitorSetWatches","description":"Replace the watch list at once: compiles under the spec-revision fence, never re-enters setup (W-18)."},"MonitorValueChange":{"properties":{"kind":{"type":"string","const":"VALUE_CHANGE","title":"Kind","default":"VALUE_CHANGE"},"metricKey":{"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,63}$","title":"Metrickey"},"label":{"type":"string","minLength":1,"title":"Label"},"was":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Was"},"now":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Now"}},"additionalProperties":false,"type":"object","required":["metricKey","label","was","now"],"title":"MonitorValueChange","description":"A tracked value moved by at least its minimum change since it was last reported (was -> now)."},"MonitorWatchCoverage":{"type":"string","enum":["COMPLETE","PARTIAL","NOT_CHECKED","NO_DATA"],"title":"MonitorWatchCoverage","description":"What one watch could check this cycle, so \"nothing new\" is never \"could not check\"."},"MonitorWatchCycle":{"properties":{"watch":{"$ref":"#/components/schemas/MonitorWatch"},"fetch":{"anyOf":[{"$ref":"#/components/schemas/MonitorFetchHandle"},{"type":"null"}]},"fetchDeadlineAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Fetchdeadlineat"},"fetchDelayed":{"type":"boolean","title":"Fetchdelayed","default":false},"fetchReady":{"type":"boolean","title":"Fetchready","default":false},"found":{"items":{"$ref":"#/components/schemas/MonitorRecordRef"},"type":"array","title":"Found","default":[]},"coverage":{"anyOf":[{"$ref":"#/components/schemas/MonitorWatchCoverage"},{"type":"null"}]},"reason":{"anyOf":[{"$ref":"#/components/schemas/MonitorCoverageReason"},{"type":"null"}]},"findings":{"type":"integer","minimum":0.0,"title":"Findings","default":0},"readCalls":{"type":"integer","minimum":0.0,"title":"Readcalls","default":0},"windowEnd":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Windowend"},"dataAsOf":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Dataasof"}},"additionalProperties":false,"type":"object","required":["watch"],"title":"MonitorWatchCycle","description":"One watch's progress and result inside one cycle."},"MonitorWatchRequest":{"properties":{"capabilityKey":{"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,63}$","title":"Capabilitykey"},"policy":{"$ref":"#/components/schemas/MonitorFindingPolicy"},"subjects":{"items":{"anyOf":[{"$ref":"#/components/schemas/MonitorRecordRef"},{"type":"string","maxLength":512,"minLength":1}]},"type":"array","minItems":1,"title":"Subjects"},"market":{"anyOf":[{"type":"string","maxLength":2,"minLength":2,"pattern":"^[A-Z]{2}$"},{"type":"null"}],"title":"Market"}},"additionalProperties":false,"type":"object","required":["capabilityKey","policy","subjects"],"title":"MonitorWatchRequest","description":"What the agent sends for one watch: a capability, a finding policy and its subjects."}},"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"security":[{"bearer":[]}]}