{
  "openapi": "3.1.0",
  "info": {
    "title": "CommonQuant-native synthetic sandbox API",
    "version": "cq-sandbox-contract-v1",
    "description": "Native CommonQuant backend, reserved /api-sandbox routes. Production component schemas are reused for this bounded subset (license lifecycle, key-authenticated business status and license views, stored reports, options, public data); all content is fixed synthetic data. Authenticate with a self-serve sandbox key from partners.commonquant.ai. No live account, billing, allowance, database or provider operation is selected. Native options use fixed synthetic ListedChain and declared-comparison DTOs. Only the returned fixture input is accepted. No raw production data or paid predictions are exposed."
  },
  "servers": [
    {
      "url": "https://api.sandbox.commonquant.ai"
    }
  ],
  "paths": {
    "/api-sandbox/business/wholesale/v1/licenses": {
      "post": {
        "description": "Synthetic native sandbox operation. No paid activation, production data or billing effects. See public sandbox documentation for the bounded test window and virtual-only counters.",
        "operationId": "business_post_wholesale_v1_licenses",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BManagedMember"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BManagedResult"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Invalid request or stale input; inspect error.code."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Missing, invalid or expired credentials."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Report allowance exhausted or a report grant is required."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Permission, agreement, paid capacity, capability or member identity refused."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Resource not found or not available to this caller."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Identity, capacity version or idempotency intent conflict. Refresh state before a new intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Request body could not be deserialized."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Rate limit reached. Retry with backoff and honor Retry-After when present."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Dependency unavailable. Retry with backoff; never assume payment or research admission succeeded."
          }
        },
        "security": [
          {
            "business_key": []
          }
        ],
        "summary": "Create an accountless individual license",
        "tags": [
          "Business \u00b7 Accountless licenses"
        ]
      }
    },
    "/api-sandbox/business/wholesale/v1/licenses/{id}": {
      "get": {
        "description": "Synthetic native sandbox operation. No paid activation, production data or billing effects. See public sandbox documentation for the bounded test window and virtual-only counters.",
        "operationId": "business_get_wholesale_v1_licenses_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "externalUserId",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BManagedResult"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Invalid request or stale input; inspect error.code."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Missing, invalid or expired credentials."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Report allowance exhausted or a report grant is required."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Permission, agreement, paid capacity, capability or member identity refused."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Resource not found or not available to this caller."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Identity, capacity version or idempotency intent conflict. Refresh state before a new intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Request body could not be deserialized."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Rate limit reached. Retry with backoff and honor Retry-After when present."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Dependency unavailable. Retry with backoff; never assume payment or research admission succeeded."
          }
        },
        "security": [
          {
            "business_key": []
          }
        ],
        "summary": "Read an accountless license assignment",
        "tags": [
          "Business \u00b7 Accountless licenses"
        ]
      }
    },
    "/api-sandbox/business/wholesale/v1/licenses/{id}/reports/open": {
      "post": {
        "description": "Synthetic native sandbox operation. No paid activation, production data or billing effects. See public sandbox documentation for the bounded test window and virtual-only counters.",
        "operationId": "business_post_wholesale_v1_licenses_id_reports_open",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BReportOpen"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BStoredReport"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Invalid request or stale input; inspect error.code."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Missing, invalid or expired credentials."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Report allowance exhausted or a report grant is required."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Permission, agreement, paid capacity, capability or member identity refused."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Resource not found or not available to this caller."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Identity, capacity version or idempotency intent conflict. Refresh state before a new intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Request body could not be deserialized."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Rate limit reached. Retry with backoff and honor Retry-After when present."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Dependency unavailable. Retry with backoff; never assume payment or research admission succeeded."
          }
        },
        "security": [
          {
            "business_key": [],
            "license_secret": []
          }
        ],
        "summary": "Open stored research against the license allowance",
        "tags": [
          "Business \u00b7 Stored research"
        ]
      }
    },
    "/api-sandbox/business/wholesale/v1/licenses/{id}/revoke": {
      "post": {
        "description": "Synthetic native sandbox operation. No paid activation, production data or billing effects. See public sandbox documentation for the bounded test window and virtual-only counters.",
        "operationId": "business_post_wholesale_v1_licenses_id_revoke",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BManagedMember"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BManagedResult"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Invalid request or stale input; inspect error.code."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Missing, invalid or expired credentials."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Report allowance exhausted or a report grant is required."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Permission, agreement, paid capacity, capability or member identity refused."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Resource not found or not available to this caller."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Identity, capacity version or idempotency intent conflict. Refresh state before a new intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Request body could not be deserialized."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Rate limit reached. Retry with backoff and honor Retry-After when present."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Dependency unavailable. Retry with backoff; never assume payment or research admission succeeded."
          }
        },
        "security": [
          {
            "business_key": []
          }
        ],
        "summary": "Revoke an accountless license",
        "tags": [
          "Business \u00b7 Accountless licenses"
        ]
      }
    },
    "/api-sandbox/business/wholesale/v1/licenses/{license}/reports/{kind}/{id}": {
      "get": {
        "description": "Synthetic native sandbox operation. No paid activation, production data or billing effects. See public sandbox documentation for the bounded test window and virtual-only counters.",
        "operationId": "business_get_wholesale_v1_licenses_license_reports_kind_id",
        "parameters": [
          {
            "in": "path",
            "name": "license",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "externalUserId",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BStoredReport"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Invalid request or stale input; inspect error.code."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Missing, invalid or expired credentials."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Report allowance exhausted or a report grant is required."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Permission, agreement, paid capacity, capability or member identity refused."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Resource not found or not available to this caller."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Identity, capacity version or idempotency intent conflict. Refresh state before a new intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Request body could not be deserialized."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Rate limit reached. Retry with backoff and honor Retry-After when present."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Dependency unavailable. Retry with backoff; never assume payment or research admission succeeded."
          }
        },
        "security": [
          {
            "business_key": [],
            "license_secret": []
          }
        ],
        "summary": "Read a previously opened stored report",
        "tags": [
          "Business \u00b7 Stored research"
        ]
      }
    },
    "/api-sandbox/market-hub/{symbol}": {
      "get": {
        "operationId": "get_market_hub",
        "parameters": [
          {
            "description": "Canonical market symbol or supported instrument alias",
            "in": "path",
            "name": "symbol",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TickerHubResponse"
                }
              }
            },
            "description": "Market hub data"
          },
          "400": {
            "description": "Invalid market symbol"
          },
          "429": {
            "description": "Public dossier rate limit exceeded"
          }
        },
        "summary": "`GET /api/market-hub/:symbol` \u2014 canonical instrument-neutral market hub data.",
        "tags": [
          "Market Hub"
        ],
        "security": [
          {
            "business_key": []
          }
        ]
      }
    },
    "/api-sandbox/ticker-hub/{symbol}": {
      "get": {
        "operationId": "get_ticker_hub",
        "parameters": [
          {
            "description": "Stock ticker symbol (e.g. NVDA)",
            "in": "path",
            "name": "symbol",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TickerHubResponse"
                }
              }
            },
            "description": "Ticker hub data"
          },
          "400": {
            "description": "Invalid market symbol"
          },
          "429": {
            "description": "Public dossier rate limit exceeded"
          }
        },
        "summary": "`GET /api/ticker-hub/:symbol` \u2014 public ticker hub data.",
        "tags": [
          "Ticker Hub"
        ],
        "security": [
          {
            "business_key": []
          }
        ]
      }
    },
    "/api-sandbox/business/wholesale/v1/licenses/{id}/usage": {
      "get": {
        "summary": "Read synthetic remaining allowance without spending",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "in": "query",
            "name": "externalUserId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "security": [
          {
            "business_key": [],
            "license_secret": []
          }
        ],
        "responses": {
          "200": {
            "description": "Synthetic snapshot; no reconciliation, refill or debit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxUsageSnapshot"
                }
              }
            }
          }
        }
      }
    },
    "/api-sandbox/business/wholesale/v1/licenses/{id}/options/chain/{symbol}": {
      "get": {
        "operationId": "sandbox_business_get_wholesale_options_chain",
        "summary": "Read a licensed delayed listed chain",
        "description": "Fixed synthetic chain in the production ListedChain schema. No market-data loader or paid provider is reachable. Only the configured fixture expiry is accepted; timestamps and prices are fixture evidence, not market observations.",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "in": "path",
            "name": "symbol",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z][A-Z0-9.-]{0,14}$"
            }
          },
          {
            "in": "query",
            "name": "externalUserId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "in": "query",
            "name": "expiry",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "security": [
          {
            "business_key": [],
            "license_secret": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BOptionsListedChain"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Invalid request or stale input; inspect error.code."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Missing, invalid or expired credentials."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Report allowance exhausted or a report grant is required."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Permission, agreement, paid capacity, capability or member identity refused."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Resource not found or not available to this caller."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Identity, capacity version or idempotency intent conflict. Refresh state before a new intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Request body could not be deserialized."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Rate limit reached. Retry with backoff and honor Retry-After when present."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Dependency unavailable. Retry with backoff; never assume payment or research admission succeeded."
          }
        },
        "tags": [
          "CommonQuant sandbox"
        ]
      }
    },
    "/api-sandbox/business/wholesale/v1/licenses/{id}/options/compare": {
      "post": {
        "operationId": "sandbox_business_post_wholesale_options_compare",
        "summary": "Compare explicitly declared options scenarios",
        "description": "Only the exact fixed input returned by the synthetic example endpoint is accepted. Other input returns 422. Reuses the production comparison schema and pure arithmetic with synthetic values. No real-data computation, calibrated forecast, allowance spending or provider call.",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "security": [
          {
            "business_key": [],
            "license_secret": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BOptionsCompareRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BOptionsComparison"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Invalid request or stale input; inspect error.code."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Missing, invalid or expired credentials."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Report allowance exhausted or a report grant is required."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Permission, agreement, paid capacity, capability or member identity refused."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Resource not found or not available to this caller."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Identity, capacity version or idempotency intent conflict. Refresh state before a new intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Request body could not be deserialized."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Rate limit reached. Retry with backoff and honor Retry-After when present."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Dependency unavailable. Retry with backoff; never assume payment or research admission succeeded."
          }
        },
        "tags": [
          "CommonQuant sandbox"
        ]
      }
    },
    "/api-sandbox/business/wholesale/v1/licenses/{id}/options/example/{symbol}": {
      "get": {
        "operationId": "sandbox_options_fixture_example",
        "summary": "Get the exact synthetic comparison request",
        "description": "Returns the fixed synthetic payload for native compare. Submit it unchanged. Other market values are refused rather than computed for free.",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "in": "path",
            "name": "symbol",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z][A-Z0-9.-]{0,14}$"
            }
          },
          {
            "in": "query",
            "name": "externalUserId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "security": [
          {
            "business_key": [],
            "license_secret": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BOptionsCompareRequest"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Invalid request or stale input; inspect error.code."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Missing, invalid or expired credentials."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Report allowance exhausted or a report grant is required."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Permission, agreement, paid capacity, capability or member identity refused."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Resource not found or not available to this caller."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Identity, capacity version or idempotency intent conflict. Refresh state before a new intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Request body could not be deserialized."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Rate limit reached. Retry with backoff and honor Retry-After when present."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Dependency unavailable. Retry with backoff; never assume payment or research admission succeeded."
          }
        },
        "tags": [
          "CommonQuant sandbox"
        ]
      }
    },
    "/api-sandbox/instruments/search": {
      "get": {
        "operationId": "native_sandbox_research_get_api_instruments_search",
        "summary": "Find a supported instrument",
        "description": "Customer-isolated fixed synthetic fixture using the production DTO. No account or paid license activation; no provider, cache, database, queue, allowance or billing action. All values are simulated; headers identify sandbox/synthetic. Shared1000 fixture reads per tenant/window. History has at most8 fixed rows; queries only filter them. Unsupported queries refuse422. ",
        "tags": [
          "Research consumption"
        ],
        "security": [
          {
            "business_key": []
          }
        ],
        "responses": {
          "200": {
            "description": "Fixed synthetic body using production DTO; not a captured response or live data.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CqInstrumentSearch"
                }
              }
            }
          },
          "400": {
            "description": "Typed query decoding failed before the handler; Axum rejection may be plain text."
          },
          "401": {
            "description": "Missing/invalid sandbox customer key or unsupported Authorization/Cookie account-session transport."
          },
          "403": {
            "description": "Browser Origin refused: sandbox credentials are server-only."
          },
          "404": {
            "description": "Unsupported sandbox path; no production fallback."
          },
          "421": {
            "description": "Ambiguous, retired or noncanonical sandbox authority refused."
          },
          "413": {
            "description": "Sandbox request body limit exceeded."
          },
          "422": {
            "description": "Decoded input is unsupported by the fixed fixture subset.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            }
          },
          "429": {
            "description": "Shared per-customer fixture-read capacity exhausted."
          },
          "503": {
            "description": "Sandbox configuration/window/concurrency or fixed fixture unavailable; never a provider fetch failure."
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": ""
          },
          {
            "name": "asset_class",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 32
            },
            "description": ""
          },
          {
            "name": "after_symbol",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": ""
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 10
            },
            "description": ""
          }
        ]
      }
    },
    "/api-sandbox/market/stocks/{symbol}/price": {
      "get": {
        "description": "Customer-isolated fixed synthetic fixture using the production DTO. No account or paid license activation; no provider, cache, database, queue, allowance or billing action. All values are simulated; headers identify sandbox/synthetic. Shared1000 fixture reads per tenant/window. History has at most8 fixed rows; queries only filter them. Unsupported queries refuse422. ",
        "operationId": "native_sandbox_get_stock_price",
        "parameters": [
          {
            "description": "Synthetic fixture label, normalized by CommonQuant; no live registry/provider lookup.",
            "in": "path",
            "name": "symbol",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CqStockPrice"
                }
              }
            },
            "description": "Fixed synthetic body using production DTO; not a captured response or live data."
          },
          "400": {
            "description": "Typed query decoding failed before the handler; Axum rejection may be plain text."
          },
          "401": {
            "description": "Missing/invalid sandbox customer key or unsupported Authorization/Cookie account-session transport."
          },
          "403": {
            "description": "Browser Origin refused: sandbox credentials are server-only."
          },
          "404": {
            "description": "Unsupported sandbox path; no production fallback."
          },
          "421": {
            "description": "Ambiguous, retired or noncanonical sandbox authority refused."
          },
          "413": {
            "description": "Sandbox request body limit exceeded."
          },
          "422": {
            "description": "Decoded input is unsupported by the fixed fixture subset.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            }
          },
          "429": {
            "description": "Shared per-customer fixture-read capacity exhausted."
          },
          "503": {
            "description": "Sandbox configuration/window/concurrency or fixed fixture unavailable; never a provider fetch failure."
          }
        },
        "summary": "Get current stock price",
        "tags": [
          "Stock Market Data"
        ],
        "security": [
          {
            "business_key": []
          }
        ]
      }
    },
    "/api-sandbox/market/stocks/{symbol}/ohlcv": {
      "get": {
        "description": "Customer-isolated fixed synthetic fixture using the production DTO. No account or paid license activation; no provider, cache, database, queue, allowance or billing action. All values are simulated; headers identify sandbox/synthetic. Shared1000 fixture reads per tenant/window. History has at most8 fixed rows; queries only filter them. Unsupported queries refuse422. ",
        "operationId": "native_sandbox_get_stock_ohlcv",
        "parameters": [
          {
            "description": "Synthetic fixture label, normalized by CommonQuant; no live registry/provider lookup.",
            "in": "path",
            "name": "symbol",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Spacing of the fixed8-candle synthetic series; no provider interval selection.",
            "example": "h1",
            "in": "query",
            "name": "timeframe",
            "required": false,
            "schema": {
              "type": "string",
              "default": "h1",
              "enum": [
                "m1",
                "m5",
                "m15",
                "m30",
                "h1",
                "d1"
              ]
            }
          },
          {
            "description": "UTC milliseconds filtering fixed fixture timestamps only; reversed bounds refuse422.",
            "example": 1700000000000,
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "format": "int64",
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "description": "UTC milliseconds filtering fixed fixture timestamps only; reversed bounds refuse422.",
            "example": 1700100000000,
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "format": "int64",
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "description": "Select at most8 fixed synthetic rows; default8, larger requests clamp to8, zero returns no rows. No production history allowance or fetch.",
            "example": 100,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295,
              "default": 8
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StockOhlcvResponse"
                }
              }
            },
            "description": "Fixed synthetic body using production DTO; not a captured response or live data."
          },
          "400": {
            "description": "Typed query decoding failed before the handler; Axum rejection may be plain text."
          },
          "401": {
            "description": "Missing/invalid sandbox customer key or unsupported Authorization/Cookie account-session transport."
          },
          "403": {
            "description": "Browser Origin refused: sandbox credentials are server-only."
          },
          "404": {
            "description": "Unsupported sandbox path; no production fallback."
          },
          "421": {
            "description": "Ambiguous, retired or noncanonical sandbox authority refused."
          },
          "413": {
            "description": "Sandbox request body limit exceeded."
          },
          "422": {
            "description": "Decoded input is unsupported by the fixed fixture subset.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            }
          },
          "429": {
            "description": "Shared per-customer fixture-read capacity exhausted."
          },
          "503": {
            "description": "Sandbox configuration/window/concurrency or fixed fixture unavailable; never a provider fetch failure."
          }
        },
        "summary": "Get stock OHLCV candlestick data",
        "tags": [
          "Stock Market Data"
        ],
        "security": [
          {
            "business_key": []
          }
        ]
      }
    },
    "/api-sandbox/market/symbols/{symbol}/ohlcv": {
      "get": {
        "description": "Customer-isolated fixed synthetic fixture using the production DTO. No account or paid license activation; no provider, cache, database, queue, allowance or billing action. All values are simulated; headers identify sandbox/synthetic. Shared1000 fixture reads per tenant/window. History has at most8 fixed rows; queries only filter them. Unsupported queries refuse422. ",
        "operationId": "native_sandbox_get_ohlcv",
        "parameters": [
          {
            "description": "Synthetic fixture label, normalized by CommonQuant; no live registry/provider lookup.",
            "in": "path",
            "name": "symbol",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Spacing of the fixed8-candle synthetic series; no provider interval selection.",
            "example": "h1",
            "in": "query",
            "name": "timeframe",
            "required": false,
            "schema": {
              "type": "string",
              "default": "h1",
              "enum": [
                "m1",
                "m5",
                "m15",
                "m30",
                "h1",
                "d1",
                "h4",
                "h8",
                "w1"
              ]
            }
          },
          {
            "description": "UTC milliseconds filtering fixed fixture timestamps only; reversed bounds refuse422.",
            "example": 1700000000000,
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "format": "int64",
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "description": "UTC milliseconds filtering fixed fixture timestamps only; reversed bounds refuse422.",
            "example": 1700100000000,
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "format": "int64",
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "description": "Select at most8 fixed synthetic rows; default8, larger requests clamp to8, zero returns no rows. No production history allowance or fetch.",
            "example": 100,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295,
              "default": 8
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OhlcvResponse"
                }
              }
            },
            "description": "Fixed synthetic body using production DTO; not a captured response or live data."
          },
          "400": {
            "description": "Typed query decoding failed before the handler; Axum rejection may be plain text."
          },
          "401": {
            "description": "Missing/invalid sandbox customer key or unsupported Authorization/Cookie account-session transport."
          },
          "403": {
            "description": "Browser Origin refused: sandbox credentials are server-only."
          },
          "404": {
            "description": "Unsupported sandbox path; no production fallback."
          },
          "421": {
            "description": "Ambiguous, retired or noncanonical sandbox authority refused."
          },
          "413": {
            "description": "Sandbox request body limit exceeded."
          },
          "422": {
            "description": "Decoded input is unsupported by the fixed fixture subset.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            }
          },
          "429": {
            "description": "Shared per-customer fixture-read capacity exhausted."
          },
          "503": {
            "description": "Sandbox configuration/window/concurrency or fixed fixture unavailable; never a provider fetch failure."
          }
        },
        "summary": "Get OHLCV candlestick data",
        "tags": [
          "Market Data"
        ],
        "security": [
          {
            "business_key": []
          }
        ]
      }
    },
    "/api-sandbox/market/batch-quote": {
      "get": {
        "description": "Customer-isolated fixed synthetic fixture using the production DTO. No account or paid license activation; no provider, cache, database, queue, allowance or billing action. All values are simulated; headers identify sandbox/synthetic. Shared1000 fixture reads per tenant/window. History has at most8 fixed rows; queries only filter them. Unsupported queries refuse422. ",
        "operationId": "native_sandbox_get_batch_quote",
        "parameters": [
          {
            "description": "Comma-separated symbols (max 50)",
            "in": "query",
            "name": "symbols",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "intraday (default) or 1y; 1y is limited to 5 symbols",
            "in": "query",
            "name": "range",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchQuoteResponse"
                }
              }
            },
            "description": "Fixed synthetic body using production DTO; not a captured response or live data."
          },
          "400": {
            "description": "Typed query decoding failed before the handler; Axum rejection may be plain text."
          },
          "401": {
            "description": "Missing/invalid sandbox customer key or unsupported Authorization/Cookie account-session transport."
          },
          "403": {
            "description": "Browser Origin refused: sandbox credentials are server-only."
          },
          "404": {
            "description": "Unsupported sandbox path; no production fallback."
          },
          "421": {
            "description": "Ambiguous, retired or noncanonical sandbox authority refused."
          },
          "413": {
            "description": "Sandbox request body limit exceeded."
          },
          "422": {
            "description": "Decoded input is unsupported by the fixed fixture subset.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            }
          },
          "429": {
            "description": "Shared per-customer fixture-read capacity exhausted."
          },
          "503": {
            "description": "Sandbox configuration/window/concurrency or fixed fixture unavailable; never a provider fetch failure."
          }
        },
        "summary": "Read quotes, readiness and historical closes for a bounded symbol list",
        "tags": [
          "Market Data"
        ],
        "security": [
          {
            "business_key": []
          }
        ]
      }
    },
    "/api-sandbox/market-hub/{symbol}/analytics": {
      "get": {
        "operationId": "native_sandbox_get_market_hub_analytics",
        "parameters": [
          {
            "description": "Synthetic fixture label, normalized by CommonQuant; no live registry/provider lookup.",
            "in": "path",
            "name": "symbol",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketHubAnalyticsResponse"
                }
              }
            },
            "description": "Fixed synthetic body using production DTO; not a captured response or live data."
          },
          "400": {
            "description": "Typed query decoding failed before the handler; Axum rejection may be plain text."
          },
          "401": {
            "description": "Missing/invalid sandbox customer key or unsupported Authorization/Cookie account-session transport."
          },
          "403": {
            "description": "Browser Origin refused: sandbox credentials are server-only."
          },
          "404": {
            "description": "Unsupported sandbox path; no production fallback."
          },
          "421": {
            "description": "Ambiguous, retired or noncanonical sandbox authority refused."
          },
          "413": {
            "description": "Sandbox request body limit exceeded."
          },
          "422": {
            "description": "Decoded input is unsupported by the fixed fixture subset.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            }
          },
          "429": {
            "description": "Shared per-customer fixture-read capacity exhausted."
          },
          "503": {
            "description": "Sandbox configuration/window/concurrency or fixed fixture unavailable; never a provider fetch failure."
          }
        },
        "summary": "`GET /api/market-hub/{symbol}/analytics` \u2014 computed company analytics.",
        "tags": [
          "Market Hub"
        ],
        "security": [
          {
            "business_key": []
          }
        ],
        "description": "Customer-isolated fixed synthetic fixture using the production DTO. No account or paid license activation; no provider, cache, database, queue, allowance or billing action. All values are simulated; headers identify sandbox/synthetic. Shared1000 fixture reads per tenant/window. History has at most8 fixed rows; queries only filter them. Unsupported queries refuse422. Analytics missing values remain null; compatibility numeric zeros are dummy placeholders, not company scores."
      }
    },
    "/api-sandbox/business/wholesale/v1/licenses/{id}/rotate-secret": {
      "post": {
        "description": "Synthetic native sandbox operation. No paid activation, production data or billing effects. See public sandbox documentation for the bounded test window and virtual-only counters.",
        "operationId": "business_post_wholesale_v1_licenses_id_rotate_secret",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BManagedMember"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BManagedResult"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Invalid request or stale input; inspect error.code."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Missing, invalid or expired credentials."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Report allowance exhausted or a report grant is required."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Permission, agreement, paid capacity, capability or member identity refused."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Resource not found or not available to this caller."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Identity, capacity version or idempotency intent conflict. Refresh state before a new intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Request body could not be deserialized."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Rate limit reached. Retry with backoff and honor Retry-After when present."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Dependency unavailable. Retry with backoff; never assume payment or research admission succeeded."
          }
        },
        "security": [
          {
            "business_key": []
          }
        ],
        "summary": "Rotate the accountless license secret",
        "tags": [
          "Business \u00b7 Accountless licenses"
        ]
      }
    },
    "/api-sandbox/business/wholesale/v1/licenses/{id}/detach": {
      "post": {
        "description": "Synthetic native sandbox operation. No paid activation, production data or billing effects. See public sandbox documentation for the bounded test window and virtual-only counters.",
        "operationId": "business_post_wholesale_v1_licenses_id_detach",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BManagedMember"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BManagedResult"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Invalid request or stale input; inspect error.code."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Missing, invalid or expired credentials."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Report allowance exhausted or a report grant is required."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Permission, agreement, paid capacity, capability or member identity refused."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Resource not found or not available to this caller."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Identity, capacity version or idempotency intent conflict. Refresh state before a new intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Request body could not be deserialized."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Rate limit reached. Retry with backoff and honor Retry-After when present."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Dependency unavailable. Retry with backoff; never assume payment or research admission succeeded."
          }
        },
        "security": [
          {
            "business_key": []
          }
        ],
        "summary": "Detach an accountless member",
        "tags": [
          "Business \u00b7 Accountless licenses"
        ]
      }
    },
    "/api-sandbox/business/wholesale/v1/licenses/{id}/reattach": {
      "post": {
        "description": "Synthetic native sandbox operation. No paid activation, production data or billing effects. See public sandbox documentation for the bounded test window and virtual-only counters. Production requires 24 hours between detach and reattach/replace and allows one genuine transfer per rolling 30 days; the sandbox enforces the order of operations but waives those waits so you can exercise the flow without waiting.",
        "operationId": "business_post_wholesale_v1_licenses_id_reattach",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BManagedMember"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BManagedResult"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Invalid request or stale input; inspect error.code."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Missing, invalid or expired credentials."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Report allowance exhausted or a report grant is required."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Permission, agreement, paid capacity, capability or member identity refused."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Resource not found or not available to this caller."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Identity, capacity version or idempotency intent conflict. Refresh state before a new intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Request body could not be deserialized."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Rate limit reached. Retry with backoff and honor Retry-After when present."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Dependency unavailable. Retry with backoff; never assume payment or research admission succeeded."
          }
        },
        "security": [
          {
            "business_key": []
          }
        ],
        "summary": "Reattach the same accountless member",
        "tags": [
          "Business \u00b7 Accountless licenses"
        ]
      }
    },
    "/api-sandbox/business/wholesale/v1/licenses/{id}/replace": {
      "post": {
        "description": "Synthetic native sandbox operation. No paid activation, production data or billing effects. See public sandbox documentation for the bounded test window and virtual-only counters. Production requires 24 hours between detach and reattach/replace and allows one genuine transfer per rolling 30 days; the sandbox enforces the order of operations but waives those waits so you can exercise the flow without waiting.",
        "operationId": "business_post_wholesale_v1_licenses_id_replace",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BManagedReplace"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BManagedResult"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Invalid request or stale input; inspect error.code."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Missing, invalid or expired credentials."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Report allowance exhausted or a report grant is required."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Permission, agreement, paid capacity, capability or member identity refused."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Resource not found or not available to this caller."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Identity, capacity version or idempotency intent conflict. Refresh state before a new intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Request body could not be deserialized."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Rate limit reached. Retry with backoff and honor Retry-After when present."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Dependency unavailable. Retry with backoff; never assume payment or research admission succeeded."
          }
        },
        "security": [
          {
            "business_key": []
          }
        ],
        "summary": "Replace an accountless member with an audited reason",
        "tags": [
          "Business \u00b7 Accountless licenses"
        ]
      }
    },
    "/api-sandbox/business/status": {
      "get": {
        "description": "Synthetic key-safe readiness and capacity for this sandbox tenant. Capacity is the fixture limit (100 licenses per window, including revoked and replaced ones), not paid capacity; no price is stated.",
        "operationId": "business_get_status",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BPartnerStatus"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Invalid request or stale input; inspect error.code."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Missing, invalid or expired credentials."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Report allowance exhausted or a report grant is required."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Permission, agreement, paid capacity, capability or member identity refused."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Resource not found or not available to this caller."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Identity, capacity version or idempotency intent conflict. Refresh state before a new intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Request body could not be deserialized."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Rate limit reached. Retry with backoff and honor Retry-After when present."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Dependency unavailable. Retry with backoff; never assume payment or research admission succeeded."
          }
        },
        "security": [
          {
            "business_key": []
          }
        ],
        "summary": "Read key-safe partner readiness",
        "tags": [
          "Business \u00b7 Getting started"
        ]
      }
    },
    "/api-sandbox/business/licenses": {
      "get": {
        "description": "Synthetic list of this sandbox tenant's partner-managed licenses, 100 per page by license ID. Send nextCursor as after; null means the final page.",
        "operationId": "business_get_licenses",
        "parameters": [
          {
            "in": "query",
            "name": "after",
            "required": false,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BLicenses"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Invalid request or stale input; inspect error.code."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Missing, invalid or expired credentials."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Report allowance exhausted or a report grant is required."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Permission, agreement, paid capacity, capability or member identity refused."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Resource not found or not available to this caller."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Identity, capacity version or idempotency intent conflict. Refresh state before a new intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Request body could not be deserialized."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Rate limit reached. Retry with backoff and honor Retry-After when present."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Dependency unavailable. Retry with backoff; never assume payment or research admission succeeded."
          }
        },
        "security": [
          {
            "business_key": []
          }
        ],
        "summary": "List license assignments",
        "tags": [
          "Business \u00b7 Named licenses"
        ]
      }
    },
    "/api-sandbox/business/licenses/{id}": {
      "get": {
        "description": "Synthetic partner-managed license view for this sandbox tenant. Unknown IDs return 404 license_not_found.",
        "operationId": "business_get_licenses_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BLicenseResult"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Invalid request or stale input; inspect error.code."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Missing, invalid or expired credentials."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Report allowance exhausted or a report grant is required."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Permission, agreement, paid capacity, capability or member identity refused."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Resource not found or not available to this caller."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Identity, capacity version or idempotency intent conflict. Refresh state before a new intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Request body could not be deserialized."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Rate limit reached. Retry with backoff and honor Retry-After when present."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            },
            "description": "Dependency unavailable. Retry with backoff; never assume payment or research admission succeeded."
          }
        },
        "security": [
          {
            "business_key": []
          }
        ],
        "summary": "Read effective license status",
        "tags": [
          "Business \u00b7 Named licenses"
        ]
      }
    },
    "/api-sandbox/limits": {
      "get": {
        "operationId": "sandbox_get_limits",
        "summary": "Fixture-only sandbox caps",
        "description": "Public. Lists the sandbox fixture bounds (licenses, receipts, reads, body size, concurrency, key lifetime, fixture period, tenant reset, waived lifecycle cooldowns). Not production allowance; read production policy at GET /api/limits on api.commonquant.ai.",
        "security": [],
        "responses": {
          "200": {
            "description": "Sandbox fixture limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "required": [
                    "mode",
                    "scope",
                    "maxLicensesPerTenant",
                    "maxReceiptsPerTenant",
                    "maxDirectReadsPerTenant",
                    "financialEffects",
                    "productionAccess"
                  ],
                  "properties": {
                    "mode": {
                      "type": "string",
                      "const": "sandbox"
                    },
                    "scope": {
                      "type": "string"
                    },
                    "maxLicensesPerTenant": {
                      "type": "integer"
                    },
                    "maxReceiptsPerTenant": {
                      "type": "integer"
                    },
                    "maxDirectReadsPerTenant": {
                      "type": "integer"
                    },
                    "lifecycleCooldowns": {
                      "type": "string"
                    },
                    "financialEffects": {
                      "type": "boolean",
                      "const": false
                    },
                    "productionAccess": {
                      "type": "boolean",
                      "const": false
                    },
                    "keyLifetime": {
                      "type": "string"
                    },
                    "fixturePeriodDays": {
                      "type": "integer"
                    },
                    "maxActiveTenants": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api-sandbox/reset": {
      "post": {
        "operationId": "sandbox_post_reset",
        "summary": "Reset this sandbox tenant",
        "description": "Sandbox only, no production equivalent. Clears the in-memory licenses, idempotency receipts and read counter of the partner account the key belongs to, so the same requestIds and fixture caps start fresh. Other accounts are untouched. Requires X-CQ-Business-Key; no body.",
        "security": [
          {
            "business_key": []
          }
        ],
        "responses": {
          "200": {
            "description": "What was cleared",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "mode",
                    "reset",
                    "cleared",
                    "windowEndsAt"
                  ],
                  "properties": {
                    "mode": {
                      "type": "string",
                      "const": "sandbox"
                    },
                    "reset": {
                      "type": "boolean",
                      "const": true
                    },
                    "cleared": {
                      "type": "object",
                      "required": [
                        "licenses",
                        "receipts",
                        "reads"
                      ],
                      "properties": {
                        "licenses": {
                          "type": "integer"
                        },
                        "receipts": {
                          "type": "integer"
                        },
                        "reads": {
                          "type": "integer"
                        }
                      }
                    },
                    "windowEndsAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "End of the current synthetic fixture period."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid sandbox key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            }
          },
          "503": {
            "description": "Sandbox not configured.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "BError": {
        "additionalProperties": true,
        "properties": {
          "error": {
            "additionalProperties": true,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "code"
            ],
            "type": "object"
          }
        },
        "required": [
          "error"
        ],
        "type": "object"
      },
      "BManagedLicense": {
        "additionalProperties": true,
        "properties": {
          "businessId": {
            "format": "uuid",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "detachedAt": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "externalUserId": {
            "format": "uuid",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "identityMode": {
            "const": "partner_managed",
            "type": "string"
          },
          "lastGenuineTransferAt": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "licenseType": {
            "const": "individual",
            "type": "string"
          },
          "replacesLicenseId": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "revocationReason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "revokedAt": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "BManagedMember": {
        "additionalProperties": false,
        "properties": {
          "externalUserId": {
            "description": "Stable opaque UUID for one member in your system. Never reuse it for another person.",
            "format": "uuid",
            "type": "string"
          },
          "requestId": {
            "description": "Client-generated idempotency key. Retry the same intent with the same ID and identical input; a different intent needs a new ID.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "requestId",
          "externalUserId"
        ],
        "type": "object"
      },
      "BManagedResult": {
        "additionalProperties": true,
        "properties": {
          "license": {
            "$ref": "#/components/schemas/BManagedLicense"
          },
          "licenseSecret": {
            "description": "Returned only on the original issuance/rotation. Exact replays do not reveal it again. Save on your server; rotate if lost.",
            "type": "string"
          },
          "replayed": {
            "type": "boolean"
          },
          "secretAvailable": {
            "type": "boolean"
          },
          "secretGeneration": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "license",
          "secretGeneration",
          "secretAvailable",
          "replayed"
        ],
        "type": "object"
      },
      "BReportOpen": {
        "additionalProperties": false,
        "properties": {
          "externalUserId": {
            "description": "Stable opaque UUID for one member in your system. Never reuse it for another person.",
            "format": "uuid",
            "type": "string"
          },
          "id": {
            "examples": [
              "AAPL"
            ],
            "type": "string"
          },
          "kind": {
            "const": "market",
            "type": "string"
          },
          "policyVersion": {
            "const": "wholesale-stored-research-2026-10-v1",
            "description": "Required policy consent for the stored report projection.",
            "type": "string"
          },
          "requestId": {
            "description": "Client-generated idempotency key. Retry the same intent with the same ID and identical input; a different intent needs a new ID.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "requestId",
          "externalUserId",
          "kind",
          "id",
          "policyVersion"
        ],
        "type": "object"
      },
      "BStoredReport": {
        "additionalProperties": true,
        "properties": {
          "access": {
            "additionalProperties": true,
            "properties": {
              "expiresAt": {
                "format": "date-time",
                "type": "string"
              },
              "includedReports": {
                "format": "int64",
                "type": "integer"
              },
              "mode": {
                "const": "stored_sections",
                "type": "string"
              },
              "newlyCounted": {
                "type": "boolean"
              },
              "periodStart": {
                "format": "date-time",
                "type": "string"
              },
              "reportsRemaining": {
                "format": "int64",
                "type": "integer"
              },
              "reportsUsed": {
                "format": "int64",
                "type": "integer"
              },
              "source": {
                "const": "license",
                "type": "string"
              }
            },
            "type": "object"
          },
          "attribution": {
            "additionalProperties": true,
            "properties": {
              "poweredBy": {
                "type": "string"
              },
              "required": {
                "const": true,
                "type": "boolean"
              },
              "url": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "externalUserId": {
            "format": "uuid",
            "type": "string"
          },
          "hub": {
            "additionalProperties": true,
            "description": "Extensible server response projection. Available fields depend on the operation and resource state; preserve accompanying identity, provenance and freshness fields when supplied.",
            "type": "object"
          },
          "licenseId": {
            "format": "uuid",
            "type": "string"
          },
          "receipt": {
            "anyOf": [
              {
                "additionalProperties": true,
                "description": "Extensible server response projection. Available fields depend on the operation and resource state; preserve accompanying identity, provenance and freshness fields when supplied.",
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          },
          "replayed": {
            "type": "boolean"
          },
          "report": {
            "additionalProperties": true,
            "properties": {
              "contentVersion": {
                "type": "string"
              },
              "id": {
                "type": "string"
              },
              "kind": {
                "const": "market",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "BeneficialOwner": {
        "properties": {
          "name": {
            "type": "string"
          },
          "ownerType": {
            "type": "string"
          },
          "ownershipPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "reportedPercent": {
            "type": [
              "string",
              "null"
            ]
          },
          "shares": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "ownerType"
        ],
        "type": "object"
      },
      "BeneficialOwnershipDisclosure": {
        "properties": {
          "asOfDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "owners": {
            "items": {
              "$ref": "#/components/schemas/BeneficialOwner"
            },
            "type": "array"
          }
        },
        "required": [
          "owners"
        ],
        "type": "object"
      },
      "BoardDisclosure": {
        "properties": {
          "directors": {
            "items": {
              "$ref": "#/components/schemas/DirectorDisclosure"
            },
            "type": "array"
          }
        },
        "required": [
          "directors"
        ],
        "type": "object"
      },
      "CompensationDisclosure": {
        "properties": {
          "bonusUsd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "chiefExecutive": {
            "type": "string"
          },
          "compensationPeers": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "fiscalYear": {
            "format": "int32",
            "type": "integer"
          },
          "nonEquityIncentiveUsd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "optionAwardsUsd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "otherCompensationUsd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "peerMethodology": {
            "type": [
              "string",
              "null"
            ]
          },
          "pensionChangeUsd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "salaryUsd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "stockAwardsUsd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "totalCompensationUsd": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "chiefExecutive",
          "fiscalYear",
          "totalCompensationUsd",
          "compensationPeers"
        ],
        "type": "object"
      },
      "CurrentQuote": {
        "properties": {
          "currency": {
            "type": [
              "string",
              "null"
            ]
          },
          "exchange": {
            "type": [
              "string",
              "null"
            ]
          },
          "exchangeTimezone": {
            "type": [
              "string",
              "null"
            ]
          },
          "fetchedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "marketSession": {
            "type": "string"
          },
          "observedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "previousClose": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "price": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "providerDelayMinutes": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "reason": {
            "type": [
              "string",
              "null"
            ]
          },
          "sessionEnd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "sessionStart": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "source": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          }
        },
        "required": [
          "symbol",
          "state",
          "source",
          "marketSession"
        ],
        "type": "object"
      },
      "DecisionActionDto": {
        "enum": [
          "wait",
          "buy",
          "hold",
          "reduce",
          "exit",
          "hedge",
          "avoid"
        ],
        "type": "string"
      },
      "DecisionExpectedRangeDto": {
        "additionalProperties": false,
        "properties": {
          "basis": {
            "type": "string"
          },
          "lower": {
            "format": "double",
            "type": "number"
          },
          "unit": {
            "$ref": "#/components/schemas/DecisionExpectedRangeUnitDto"
          },
          "upper": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "lower",
          "upper",
          "unit",
          "basis"
        ],
        "type": "object"
      },
      "DecisionExpectedRangeUnitDto": {
        "enum": [
          "price",
          "percent",
          "index_points",
          "yield_bps",
          "fx_rate",
          "commodity_price"
        ],
        "type": "string"
      },
      "DirectorDisclosure": {
        "properties": {
          "age": {
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          },
          "committees": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "directorSince": {
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          },
          "independent": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "leadDirector": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "leadDirector",
          "committees"
        ],
        "type": "object"
      },
      "ExecutionVehicleDto": {
        "properties": {
          "disclosure": {
            "type": "string"
          },
          "executableHere": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "native": {
            "type": "boolean"
          },
          "relationship": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "vehicleType": {
            "type": "string"
          }
        },
        "required": [
          "symbol",
          "name",
          "vehicleType",
          "relationship",
          "native",
          "executableHere",
          "disclosure"
        ],
        "type": "object"
      },
      "ExecutiveCompensationPeriod": {
        "properties": {
          "compensationActuallyPaidUsd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "fiscalYear": {
            "format": "int32",
            "type": "integer"
          },
          "netIncomeUsd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "peerGroupShareholderReturnUsd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "shareholderReturnUsd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "totalCompensationUsd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "fiscalYear"
        ],
        "type": "object"
      },
      "FuturesContractPointDto": {
        "properties": {
          "changePct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "contractMonth": {
            "type": "string"
          },
          "daysFromFront": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "expiry": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "liquidityRank": {
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "observedAt": {
            "format": "date-time",
            "type": "string"
          },
          "openInterest": {
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "price": {
            "format": "double",
            "type": "number"
          },
          "symbol": {
            "type": "string"
          },
          "volume": {
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "symbol",
          "contractMonth",
          "observedAt",
          "price"
        ],
        "type": "object"
      },
      "FuturesStructureDto": {
        "properties": {
          "annualizedCarryPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "continuousSymbol": {
            "type": "string"
          },
          "contractName": {
            "type": "string"
          },
          "contracts": {
            "items": {
              "$ref": "#/components/schemas/FuturesContractPointDto"
            },
            "type": "array"
          },
          "curveState": {
            "type": "string"
          },
          "estimatedLongRollYieldPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "frontContract": {
            "type": [
              "string",
              "null"
            ]
          },
          "frontToSecondPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "methodology": {
            "type": "string"
          },
          "multiplier": {
            "format": "double",
            "type": "number"
          },
          "positioning": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PositioningSnapshotDto"
              }
            ]
          },
          "root": {
            "type": "string"
          },
          "tickSize": {
            "format": "double",
            "type": "number"
          },
          "unit": {
            "type": "string"
          },
          "venue": {
            "type": "string"
          }
        },
        "required": [
          "root",
          "continuousSymbol",
          "contractName",
          "venue",
          "multiplier",
          "tickSize",
          "unit",
          "curveState",
          "contracts",
          "methodology"
        ],
        "type": "object"
      },
      "FxStructureDto": {
        "properties": {
          "baseCurrency": {
            "type": "string"
          },
          "carryAvailable": {
            "type": "boolean"
          },
          "currencyFuturesRelationship": {
            "type": [
              "string",
              "null"
            ]
          },
          "currencyFuturesSymbol": {
            "type": [
              "string",
              "null"
            ]
          },
          "disclosure": {
            "type": "string"
          },
          "forwardCurveAvailable": {
            "type": "boolean"
          },
          "quoteCurrency": {
            "type": "string"
          },
          "spotSymbol": {
            "type": "string"
          }
        },
        "required": [
          "baseCurrency",
          "quoteCurrency",
          "spotSymbol",
          "forwardCurveAvailable",
          "carryAvailable",
          "disclosure"
        ],
        "type": "object"
      },
      "IndexBreadthSignalDto": {
        "properties": {
          "label": {
            "type": "string"
          },
          "observedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "relationship": {
            "type": "string"
          },
          "relativeToBenchmark1mPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "return1mPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "symbol": {
            "type": "string"
          },
          "trend50d": {
            "type": "string"
          }
        },
        "required": [
          "symbol",
          "label",
          "relationship",
          "trend50d"
        ],
        "type": "object"
      },
      "IndexStructureDto": {
        "properties": {
          "breadthDisclosure": {
            "type": "string"
          },
          "breadthSignals": {
            "items": {
              "$ref": "#/components/schemas/IndexBreadthSignalDto"
            },
            "type": "array"
          },
          "breadthState": {
            "type": "string"
          },
          "indexSymbol": {
            "type": "string"
          },
          "nativeIndex": {
            "type": "boolean"
          },
          "volatilityTermStructure": {
            "items": {
              "$ref": "#/components/schemas/VolatilityTermPointDto"
            },
            "type": "array"
          }
        },
        "required": [
          "indexSymbol",
          "nativeIndex",
          "volatilityTermStructure",
          "breadthSignals",
          "breadthState",
          "breadthDisclosure"
        ],
        "type": "object"
      },
      "MarketDataQualityDto": {
        "properties": {
          "contractCurve": {
            "type": "boolean"
          },
          "currentOptionChain": {
            "type": "boolean"
          },
          "currentQuote": {
            "type": "boolean"
          },
          "historicalOptionChain": {
            "type": "boolean"
          },
          "label": {
            "type": "string"
          },
          "methodology": {
            "type": "string"
          },
          "positioning": {
            "type": "boolean"
          },
          "priceHistory": {
            "type": "boolean"
          },
          "proxyBreadth": {
            "type": "boolean"
          },
          "score": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "score",
          "label",
          "methodology",
          "currentQuote",
          "priceHistory",
          "contractCurve",
          "currentOptionChain",
          "historicalOptionChain",
          "positioning",
          "proxyBreadth"
        ],
        "type": "object"
      },
      "MarketInstrumentDescriptor": {
        "properties": {
          "assetClass": {
            "type": "string"
          },
          "canonicalKey": {
            "type": "string"
          },
          "currency": {
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "type": "string"
          },
          "executableHere": {
            "type": "boolean"
          },
          "executionDisclosure": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "underlyingSymbol": {
            "type": [
              "string",
              "null"
            ]
          },
          "venue": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "symbol",
          "canonicalKey",
          "displayName",
          "assetClass",
          "executableHere",
          "executionDisclosure"
        ],
        "type": "object"
      },
      "MarketStructureSnapshot": {
        "properties": {
          "asOf": {
            "format": "date-time",
            "type": "string"
          },
          "currentQuote": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/CurrentQuote"
              }
            ]
          },
          "dataQuality": {
            "$ref": "#/components/schemas/MarketDataQualityDto"
          },
          "executionVehicles": {
            "items": {
              "$ref": "#/components/schemas/ExecutionVehicleDto"
            },
            "type": "array"
          },
          "futures": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/FuturesStructureDto"
              }
            ]
          },
          "fx": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/FxStructureDto"
              }
            ]
          },
          "index": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/IndexStructureDto"
              }
            ]
          },
          "instrument": {
            "$ref": "#/components/schemas/MarketInstrumentDescriptor"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "options": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/OptionsStructureDto"
              }
            ]
          },
          "priceContext": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PriceContextDto"
              }
            ]
          },
          "sourceFreshness": {
            "$ref": "#/components/schemas/SourceFreshnessDto"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/MarketStructureSourceDto"
            },
            "type": "array"
          },
          "structurePending": {
            "type": "boolean"
          }
        },
        "required": [
          "instrument",
          "asOf",
          "sourceFreshness",
          "dataQuality",
          "executionVehicles",
          "sources",
          "limitations"
        ],
        "type": "object"
      },
      "MarketStructureSourceDto": {
        "properties": {
          "delayed": {
            "type": "boolean"
          },
          "fields": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "observedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "url",
          "fields",
          "delayed"
        ],
        "type": "object"
      },
      "OptionExpirationSummaryDto": {
        "properties": {
          "atmImpliedVolatilityPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "atmStrike": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "callOpenInterest": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "callVolume": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "daysToExpiry": {
            "format": "int64",
            "type": "integer"
          },
          "expectedMove": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "expectedMovePct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "expiration": {
            "format": "date-time",
            "type": "string"
          },
          "medianBidAskSpreadPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "putOpenInterest": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "putVolume": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "tenPercentMoneynessSkewVolPoints": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "expiration",
          "daysToExpiry",
          "callOpenInterest",
          "putOpenInterest",
          "callVolume",
          "putVolume"
        ],
        "type": "object"
      },
      "OptionOpenInterestConcentrationDto": {
        "properties": {
          "callOpenInterest": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "putOpenInterest": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "strike": {
            "format": "double",
            "type": "number"
          },
          "totalOpenInterest": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "strike",
          "callOpenInterest",
          "putOpenInterest",
          "totalOpenInterest"
        ],
        "type": "object"
      },
      "OptionsStructureDto": {
        "properties": {
          "expirations": {
            "items": {
              "$ref": "#/components/schemas/OptionExpirationSummaryDto"
            },
            "type": "array"
          },
          "methodology": {
            "type": "string"
          },
          "openInterestConcentrations": {
            "items": {
              "$ref": "#/components/schemas/OptionOpenInterestConcentrationDto"
            },
            "type": "array"
          },
          "putCallOpenInterestRatio": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "putCallVolumeRatio": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "relationship": {
            "type": "string"
          },
          "termStructureState": {
            "type": "string"
          },
          "totalOpenInterest": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "totalVolume": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "underlyingPrice": {
            "format": "double",
            "type": "number"
          },
          "underlyingSymbol": {
            "type": "string"
          }
        },
        "required": [
          "underlyingSymbol",
          "relationship",
          "underlyingPrice",
          "totalOpenInterest",
          "totalVolume",
          "termStructureState",
          "expirations",
          "openInterestConcentrations",
          "methodology"
        ],
        "type": "object"
      },
      "PositioningSnapshotDto": {
        "properties": {
          "category": {
            "type": "string"
          },
          "longContracts": {
            "format": "int64",
            "type": "integer"
          },
          "netContracts": {
            "format": "int64",
            "type": "integer"
          },
          "netShareOfOpenInterestPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "openInterest": {
            "format": "int64",
            "type": "integer"
          },
          "reportDate": {
            "format": "date-time",
            "type": "string"
          },
          "reportName": {
            "type": "string"
          },
          "shortContracts": {
            "format": "int64",
            "type": "integer"
          },
          "sourceUrl": {
            "type": "string"
          },
          "weeklyNetChange": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "reportName",
          "reportDate",
          "category",
          "longContracts",
          "shortContracts",
          "netContracts",
          "openInterest",
          "sourceUrl"
        ],
        "type": "object"
      },
      "PriceContextDto": {
        "properties": {
          "change1dPct": {
            "description": "Change against the prior close, in percent. Null when `prev_close` is.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "coverageState": {
            "type": "string"
          },
          "currency": {
            "type": [
              "string",
              "null"
            ]
          },
          "drawdownFrom1yHighPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "historyEnd": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "historyPoints": {
            "minimum": 0,
            "type": "integer"
          },
          "historySource": {
            "type": "string"
          },
          "historyStart": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "historyTargetYears": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "last": {
            "format": "double",
            "type": "number"
          },
          "maximumDrawdownPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "observedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "positionIn52wRangePct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "prevClose": {
            "description": "Prior session's close. Null when only one close is available.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "realizedVolatility20dPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "realizedVolatility252dPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "realizedVolatility60dPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "return1mPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "return1yPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "return3mPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "return3yPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "return5yPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "trend200d": {
            "type": "string"
          },
          "trend20d": {
            "type": "string"
          },
          "trend50d": {
            "type": "string"
          }
        },
        "required": [
          "last",
          "trend20d",
          "trend50d",
          "trend200d",
          "historyPoints",
          "historyTargetYears",
          "coverageState",
          "historySource"
        ],
        "type": "object"
      },
      "SourceFreshnessDto": {
        "properties": {
          "delayed": {
            "type": "boolean"
          },
          "fetchedAt": {
            "format": "date-time",
            "type": "string"
          },
          "observedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "type": "string"
          }
        },
        "required": [
          "state",
          "fetchedAt",
          "delayed"
        ],
        "type": "object"
      },
      "TickerHubAnalysis": {
        "properties": {
          "analysisId": {
            "type": [
              "string",
              "null"
            ]
          },
          "artifactId": {
            "type": "string"
          },
          "completedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "decisionScenarios": {
            "description": "Bull/base/bear cases lifted out of `public_content`'s decision-scenario\nchart. Empty when the analysis carries none.",
            "items": {
              "$ref": "#/components/schemas/TickerHubScenario"
            },
            "type": "array"
          },
          "direction": {
            "type": [
              "string",
              "null"
            ]
          },
          "ideaId": {
            "type": [
              "string",
              "null"
            ]
          },
          "publicContent": {},
          "readPath": {
            "type": [
              "string",
              "null"
            ]
          },
          "relationship": {
            "type": "string"
          },
          "role": {
            "type": [
              "string",
              "null"
            ]
          },
          "summary": {
            "type": [
              "string",
              "null"
            ]
          },
          "title": {
            "type": [
              "string",
              "null"
            ]
          },
          "unlockCredits": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "artifactId",
          "relationship",
          "publicContent",
          "decisionScenarios",
          "unlockCredits"
        ],
        "type": "object"
      },
      "TickerHubAnalystForecast": {
        "properties": {
          "analystCount": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency": {
            "type": [
              "string",
              "null"
            ]
          },
          "history": {
            "description": "Real point-in-time provider observations, oldest first and bounded to\nthe latest 730 daily snapshots. The first observation has no revision.",
            "items": {
              "$ref": "#/components/schemas/TickerHubAnalystTargetHistoryPoint"
            },
            "type": "array"
          },
          "periods": {
            "items": {
              "$ref": "#/components/schemas/YahooForecastPeriod"
            },
            "type": "array"
          },
          "recommendation": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/YahooRecommendationTrend"
              }
            ]
          },
          "retrievedAt": {
            "format": "date-time",
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "targetHighPrice": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "targetLowPrice": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "targetMeanPrice": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "targetMedianPrice": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "source",
          "retrievedAt",
          "history",
          "periods"
        ],
        "type": "object"
      },
      "TickerHubAnalystTargetHistoryPoint": {
        "properties": {
          "analystCount": {
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          },
          "dispersionPct": {
            "description": "Full target range divided by the absolute mean target, as a percent.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "meanChange": {
            "description": "Absolute change in mean target from the preceding stored observation.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "meanChangePct": {
            "description": "Percent change in mean target from the preceding stored observation.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "observedAt": {
            "format": "date-time",
            "type": "string"
          },
          "targetHighPrice": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "targetLowPrice": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "targetMeanPrice": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "targetMedianPrice": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "observedAt"
        ],
        "type": "object"
      },
      "TickerHubArtifact": {
        "description": "One independently refreshable dossier slice.",
        "enum": [
          "market_history",
          "market_structure",
          "company_profile",
          "fundamentals",
          "news",
          "research",
          "theses",
          "advanced_analysis",
          "strategies",
          "ownership",
          "insider_activity",
          "filings",
          "transcripts",
          "fundamentals_history",
          "earnings_releases"
        ],
        "type": "string"
      },
      "TickerHubArtifactReadiness": {
        "description": "Readiness for one independently refreshable dossier artifact.\n\n`failed` is reserved for a terminal result recorded by a bounded backend\nworkflow. Query errors remain `retryable`, and a successful empty catalogue\nremains `ready`.",
        "properties": {
          "artifact": {
            "$ref": "#/components/schemas/TickerHubArtifact"
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          },
          "reasonCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "retryAfterMs": {
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "status": {
            "$ref": "#/components/schemas/TickerHubArtifactStatus"
          }
        },
        "required": [
          "artifact",
          "status"
        ],
        "type": "object"
      },
      "TickerHubArtifactStatus": {
        "description": "Operational state of a dossier artifact.",
        "enum": [
          "ready",
          "partial",
          "stale",
          "queued",
          "running",
          "retryable",
          "unsupported",
          "failed"
        ],
        "type": "string"
      },
      "TickerHubCompany": {
        "properties": {
          "analystForecast": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TickerHubAnalystForecast",
                "description": "Third-party analyst consensus. This is kept separate from CommonQuant's\nmodel and report scenarios and is absent when the provider has no data."
              }
            ]
          },
          "chiefExecutive": {
            "type": [
              "string",
              "null"
            ]
          },
          "companyId": {
            "type": "string"
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "earningsDigest": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TickerHubEarningsDigest",
                "description": "The most recent earnings release (US6). Separate from `transcripts`:\na written release and a call transcript are different artifacts, and\ncollapsing them would let the page describe one as the other."
              }
            ]
          },
          "employeeCount": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "employeeHistory": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TickerHubEmployeeHistory",
                "description": "Annual company-wide headcount explicitly disclosed in Form 10-K."
              }
            ]
          },
          "exchange": {
            "type": [
              "string",
              "null"
            ]
          },
          "executiveCompensation": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TickerHubExecutiveCompensation",
                "description": "Audited CEO pay-versus-performance history from the latest definitive\nSEC proxy's standard inline-XBRL facts."
              }
            ]
          },
          "filerIdentityPresent": {
            "type": "boolean"
          },
          "foundedYear": {
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          },
          "fundamentalsHistory": {},
          "fundamentalsHistoryDigest": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TickerHubFundamentalsHistoryDigest",
                "description": "As-filed fundamental history, as a fixed-size digest (US7, FR-043).\n\nThe series itself lives behind\n`GET /api/market-hub/{symbol}/fundamental-history` and is fetched when\nthe tab opens. This rides in the base payload for the same reason the\nother digests do: a `?tab=` URL canonicalizes to the base page, so tab\ncontent is invisible to crawlers unless it appears here."
              }
            ]
          },
          "governance": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TickerHubGovernance",
                "description": "Board, ownership, and pay evidence parsed from the same latest\ndefinitive SEC proxy. Each subsection is independently optional."
              }
            ]
          },
          "headquarters": {
            "type": [
              "string",
              "null"
            ]
          },
          "industry": {
            "type": [
              "string",
              "null"
            ]
          },
          "insiderActivity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TickerHubInsiderDigest",
                "description": "Insider activity over a trailing window (Form 3/4/5)."
              }
            ]
          },
          "latestFiling": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TickerHubFilingsDigest",
                "description": "The most recent SEC filing we have indexed."
              }
            ]
          },
          "latestFundamentals": {},
          "management": {
            "description": "Current officers and current disclosed pay from the cached company\nprofile provider. Empty means not reported, never zero people.",
            "items": {
              "$ref": "#/components/schemas/YahooCompanyOfficer"
            },
            "type": "array"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "ownership": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TickerHubOwnershipDigest",
                "description": "Institutional ownership as most recently filed (13F).\n\nA DIGEST, not the holder list \u2014 detail lives behind the disclosures\nendpoint. It rides here because a `?tab=` URL canonicalizes to the base\npage, so tab content is invisible to crawlers unless it appears in this\npayload.\n\nAlways `None` from `ticker_company_identity()`: that path is the search\nread and deliberately carries no heavy subselects."
              }
            ]
          },
          "sector": {
            "type": [
              "string",
              "null"
            ]
          },
          "shortInterest": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/YahooShortInterest",
                "description": "Provider-reported short-interest indicators. Borrow availability and\nlive borrow cost are deliberately not inferred from these values."
              }
            ]
          },
          "transcripts": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TickerHubTranscriptDigest",
                "description": "Header-only transcript digest. `None` until the explicitly deferred\ntranscript ingest exists; readiness names that state separately."
              }
            ]
          },
          "website": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "companyId",
          "filerIdentityPresent",
          "management",
          "fundamentalsHistory"
        ],
        "type": "object"
      },
      "TickerHubEarningsDigest": {
        "description": "The most recent Form 8-K earnings release (US6, T727).\n\nA digest, not the release text \u2014 that is unbounded and lives in the lake.\nIt rides in the base payload because a `?tab=` URL canonicalizes to the base\npage, so tab content is invisible to crawlers otherwise.",
        "properties": {
          "accessionNo": {
            "type": "string"
          },
          "artifactVersion": {
            "type": "string"
          },
          "availableCount": {
            "description": "Releases held in total, so \"one release\" and \"a decade of them\" are\ndistinguishable without a second request.",
            "format": "int64",
            "type": "integer"
          },
          "eventDate": {
            "description": "When the company **announced**, not when it filed.",
            "format": "date",
            "type": "string"
          },
          "exhibitType": {
            "description": "`None` when the filing carried no EX-99.1: the results were in the 8-K\nbody. US6/AC2 requires the page to say so rather than show an empty\ndocument, so this must stay distinguishable from an absent digest.",
            "type": [
              "string",
              "null"
            ]
          },
          "exhibitUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "hasQa": {
            "description": "**US6/AC3.** Always false for an 8-K exhibit \u2014 a written release has no\nanalyst Q&A. Carried rather than assumed so the page states it.",
            "type": "boolean"
          },
          "releaseCharCount": {
            "format": "int64",
            "type": "integer"
          },
          "sourceUrl": {
            "type": "string"
          }
        },
        "required": [
          "accessionNo",
          "eventDate",
          "releaseCharCount",
          "hasQa",
          "sourceUrl",
          "availableCount",
          "artifactVersion"
        ],
        "type": "object"
      },
      "TickerHubEmployeeHistory": {
        "properties": {
          "artifactVersion": {
            "type": "string"
          },
          "periods": {
            "items": {
              "$ref": "#/components/schemas/TickerHubEmployeeHistoryPeriod"
            },
            "type": "array"
          },
          "source": {
            "type": "string"
          }
        },
        "required": [
          "source",
          "periods",
          "artifactVersion"
        ],
        "type": "object"
      },
      "TickerHubEmployeeHistoryPeriod": {
        "properties": {
          "employeeCount": {
            "format": "int64",
            "type": "integer"
          },
          "filedAt": {
            "type": "string"
          },
          "periodEnd": {
            "type": "string"
          },
          "sourceUrl": {
            "type": "string"
          }
        },
        "required": [
          "periodEnd",
          "employeeCount",
          "filedAt",
          "sourceUrl"
        ],
        "type": "object"
      },
      "TickerHubExecutiveCompensation": {
        "properties": {
          "chiefExecutive": {
            "type": [
              "string",
              "null"
            ]
          },
          "filingDate": {
            "type": "string"
          },
          "periods": {
            "items": {
              "$ref": "#/components/schemas/ExecutiveCompensationPeriod"
            },
            "type": "array"
          },
          "sourceUrl": {
            "type": "string"
          }
        },
        "required": [
          "filingDate",
          "sourceUrl",
          "periods"
        ],
        "type": "object"
      },
      "TickerHubFilingDigest": {
        "properties": {
          "accession": {
            "type": "string"
          },
          "filedAt": {
            "format": "date",
            "type": "string"
          },
          "formType": {
            "type": "string"
          },
          "periodEnd": {
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "sourceUrl": {
            "type": "string"
          }
        },
        "required": [
          "accession",
          "formType",
          "filedAt",
          "sourceUrl"
        ],
        "type": "object"
      },
      "TickerHubFilingFormCount": {
        "properties": {
          "count": {
            "format": "int64",
            "type": "integer"
          },
          "formType": {
            "type": "string"
          }
        },
        "required": [
          "formType",
          "count"
        ],
        "type": "object"
      },
      "TickerHubFilingsDigest": {
        "properties": {
          "artifactVersion": {
            "type": "string"
          },
          "countsByForm90d": {
            "items": {
              "$ref": "#/components/schemas/TickerHubFilingFormCount"
            },
            "type": "array"
          },
          "indexedThrough": {
            "format": "date",
            "type": "string"
          },
          "latest": {
            "$ref": "#/components/schemas/TickerHubFilingDigest"
          }
        },
        "required": [
          "latest",
          "countsByForm90d",
          "indexedThrough",
          "artifactVersion"
        ],
        "type": "object"
      },
      "TickerHubFundamentalsHistoryDigest": {
        "description": "Fixed-size summary of what as-filed history exists for a company.\n\nO(1) from the projection \u2014 five aggregates over one company's rows on a\ncovering index \u2014 so it adds no round trip and no unbounded work to the hub.",
        "properties": {
          "artifactVersion": {
            "type": "string"
          },
          "earliestPeriod": {
            "format": "date",
            "type": "string"
          },
          "latestFiled": {
            "format": "date",
            "type": "string"
          },
          "latestPeriod": {
            "format": "date",
            "type": "string"
          },
          "periodCount": {
            "description": "Distinct periods held.",
            "format": "int64",
            "type": "integer"
          },
          "restatedCount": {
            "description": "Cells whose value was later revised.\n\n`0` means **no restatements found**, which is a real finding and renders\nas such. It never renders as an absent history \u2014 that distinction is\ncarried by the digest being `None`, and by the endpoint's reason code\n(FR-044).",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "earliestPeriod",
          "latestPeriod",
          "periodCount",
          "restatedCount",
          "latestFiled",
          "artifactVersion"
        ],
        "type": "object"
      },
      "TickerHubGovernance": {
        "properties": {
          "artifactVersion": {
            "type": "string"
          },
          "beneficialOwnership": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/BeneficialOwnershipDisclosure"
              }
            ]
          },
          "board": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/BoardDisclosure"
              }
            ]
          },
          "compensation": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/CompensationDisclosure"
              }
            ]
          },
          "filingDate": {
            "type": "string"
          },
          "sourceUrl": {
            "type": "string"
          }
        },
        "required": [
          "filingDate",
          "sourceUrl",
          "artifactVersion"
        ],
        "type": "object"
      },
      "TickerHubIdea": {
        "description": "Simplified idea card for the ticker hub.",
        "properties": {
          "direction": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "plainLanguageSummary": {
            "type": "string"
          },
          "publishedAt": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "direction",
          "publishedAt",
          "plainLanguageSummary"
        ],
        "type": "object"
      },
      "TickerHubInsiderDigest": {
        "properties": {
          "directorReporters": {
            "format": "int64",
            "type": "integer"
          },
          "distinctReporters": {
            "format": "int64",
            "type": "integer"
          },
          "filingCount": {
            "format": "int64",
            "type": "integer"
          },
          "formulaVersion": {
            "type": "string"
          },
          "netDirection": {
            "type": "string"
          },
          "officerReporters": {
            "format": "int64",
            "type": "integer"
          },
          "openMarketBuyValueUsd": {
            "type": [
              "string",
              "null"
            ]
          },
          "openMarketSellValueUsd": {
            "type": [
              "string",
              "null"
            ]
          },
          "recentTransactions": {
            "items": {
              "$ref": "#/components/schemas/TickerHubInsiderTransactionDigest"
            },
            "type": "array"
          },
          "rule10b51SellValueUsd": {
            "type": [
              "string",
              "null"
            ]
          },
          "singleReporter": {
            "type": "boolean"
          },
          "tenPercentOwnerReporters": {
            "format": "int64",
            "type": "integer"
          },
          "windowDays": {
            "format": "int64",
            "type": "integer"
          },
          "windowEnd": {
            "format": "date",
            "type": "string"
          },
          "windowStart": {
            "format": "date",
            "type": "string"
          }
        },
        "required": [
          "windowDays",
          "windowStart",
          "windowEnd",
          "netDirection",
          "singleReporter",
          "distinctReporters",
          "officerReporters",
          "directorReporters",
          "tenPercentOwnerReporters",
          "filingCount",
          "formulaVersion",
          "recentTransactions"
        ],
        "type": "object"
      },
      "TickerHubInsiderTransactionDigest": {
        "properties": {
          "officerTitle": {
            "type": [
              "string",
              "null"
            ]
          },
          "ownerName": {
            "type": [
              "string",
              "null"
            ]
          },
          "ownerRole": {
            "type": "string"
          },
          "pricePerShare": {
            "type": [
              "string",
              "null"
            ]
          },
          "rule10b51": {
            "type": "boolean"
          },
          "shares": {
            "type": [
              "string",
              "null"
            ]
          },
          "sourceAccession": {
            "type": "string"
          },
          "sourceUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "transactionCode": {
            "type": "string"
          },
          "transactionDate": {
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "ownerRole",
          "transactionCode",
          "rule10b51",
          "sourceAccession"
        ],
        "type": "object"
      },
      "TickerHubOwnershipDerivedDigest": {
        "properties": {
          "formulaVersion": {
            "type": "string"
          },
          "holderCountChangeQoq": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "inputSnapshotVersion": {
            "format": "int64",
            "type": "integer"
          },
          "institutionalOwnershipPct": {
            "type": [
              "string",
              "null"
            ]
          },
          "sharesHeldChangePctQoq": {
            "type": [
              "string",
              "null"
            ]
          },
          "top10ConcentrationPct": {
            "type": [
              "string",
              "null"
            ]
          },
          "unavailable": {
            "items": {
              "$ref": "#/components/schemas/TickerHubUnavailableMetric"
            },
            "type": "array"
          },
          "unresolvedShareOfValuePct": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "formulaVersion",
          "inputSnapshotVersion",
          "unavailable"
        ],
        "type": "object"
      },
      "TickerHubOwnershipDigest": {
        "properties": {
          "coverageState": {
            "type": "string"
          },
          "derived": {
            "$ref": "#/components/schemas/TickerHubOwnershipDerivedDigest"
          },
          "disclosureLagDays": {
            "format": "int64",
            "type": "integer"
          },
          "disclosureNote": {
            "type": "string"
          },
          "filed": {
            "$ref": "#/components/schemas/TickerHubOwnershipFiledDigest"
          }
        },
        "required": [
          "filed",
          "derived",
          "coverageState",
          "disclosureLagDays",
          "disclosureNote"
        ],
        "type": "object"
      },
      "TickerHubOwnershipFiledDigest": {
        "properties": {
          "artifactVersion": {
            "type": "string"
          },
          "filedThrough": {
            "format": "date",
            "type": "string"
          },
          "holderCount": {
            "format": "int64",
            "type": "integer"
          },
          "marketValueUsd": {
            "type": [
              "string",
              "null"
            ]
          },
          "periodEnd": {
            "format": "date",
            "type": "string"
          },
          "sharesHeld": {
            "type": [
              "string",
              "null"
            ]
          },
          "source": {
            "type": "string"
          }
        },
        "required": [
          "periodEnd",
          "filedThrough",
          "holderCount",
          "source",
          "artifactVersion"
        ],
        "type": "object"
      },
      "TickerHubRelatedThesis": {
        "properties": {
          "catalysts": {},
          "evidenceSummary": {},
          "horizon": {
            "type": "string"
          },
          "href": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "invalidationConditions": {},
          "label": {
            "type": "string"
          },
          "publishedAt": {
            "type": "string"
          },
          "relationship": {
            "type": "string"
          },
          "role": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": "string"
          },
          "sources": {},
          "stance": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "whatChanged": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "slug",
          "href",
          "label",
          "stance",
          "horizon",
          "summary",
          "whatChanged",
          "evidenceSummary",
          "catalysts",
          "invalidationConditions",
          "sources",
          "publishedAt",
          "relationship",
          "updatedAt"
        ],
        "type": "object"
      },
      "TickerHubResponse": {
        "description": "Ticker hub response.",
        "properties": {
          "analyses": {
            "items": {
              "$ref": "#/components/schemas/TickerHubAnalysis"
            },
            "type": "array"
          },
          "assetClass": {
            "type": "string"
          },
          "company": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TickerHubCompany"
              }
            ]
          },
          "ideaCount": {
            "format": "int64",
            "type": "integer"
          },
          "ideas": {
            "items": {
              "$ref": "#/components/schemas/TickerHubIdea"
            },
            "type": "array"
          },
          "marketStructure": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/MarketStructureSnapshot"
              }
            ]
          },
          "readiness": {
            "description": "Additive per-artifact readiness. Available slices remain populated while\ncold or temporarily unavailable slices progress independently.",
            "items": {
              "$ref": "#/components/schemas/TickerHubArtifactReadiness"
            },
            "type": "array"
          },
          "relatedTheses": {
            "items": {
              "$ref": "#/components/schemas/TickerHubRelatedThesis"
            },
            "type": "array"
          },
          "strategies": {
            "items": {
              "$ref": "#/components/schemas/TickerHubStrategy"
            },
            "type": "array"
          },
          "symbol": {
            "type": "string"
          }
        },
        "required": [
          "symbol",
          "assetClass",
          "ideas",
          "ideaCount",
          "relatedTheses",
          "analyses",
          "strategies",
          "readiness"
        ],
        "type": "object"
      },
      "TickerHubScenario": {
        "description": "One published decision scenario.\n\nA thesis carries a single stance, so filling the bull/base/bear cards from\nthesis stance alone leaves two of three empty after any single analysis. The\nAdvanced Analysis verdict already produces all three cases together, with a\nshared horizon and likelihoods summing to 100 \u2014 this surfaces them so the\nscenario map reflects what was actually published.",
        "properties": {
          "action": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/DecisionActionDto",
                "description": "Conditional action published for this scenario, not a live recommendation."
              }
            ]
          },
          "case": {
            "description": "`bull`, `base`, or `bear`.",
            "type": "string"
          },
          "estimatedLikelihoodPct": {
            "description": "Evidence-weighted judgment, not a calibrated forecast. Always render it\nwith `likelihood_disclosure`.",
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "expectedRange": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/DecisionExpectedRangeDto",
                "description": "Published report range, in its original units and with its evidence basis.\nThis is contextual research, not an inferred target for the hub symbol."
              }
            ]
          },
          "horizon": {
            "type": [
              "string",
              "null"
            ]
          },
          "likelihoodBasis": {
            "type": [
              "string",
              "null"
            ]
          },
          "likelihoodDisclosure": {
            "description": "Verbatim disclosure published alongside the likelihoods.",
            "type": [
              "string",
              "null"
            ]
          },
          "outcome": {
            "type": [
              "string",
              "null"
            ]
          },
          "summary": {
            "type": [
              "string",
              "null"
            ]
          },
          "triggers": {
            "description": "Observable conditions that would confirm this case.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "case",
          "triggers"
        ],
        "type": "object"
      },
      "TickerHubStrategy": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "relationship": {
            "type": "string"
          },
          "role": {
            "type": [
              "string",
              "null"
            ]
          },
          "sparkline": {
            "description": "Historical backtest equity as cumulative return percentages, bounded\nfor compact public strategy-card rendering.",
            "items": {
              "format": "double",
              "type": "number"
            },
            "type": "array"
          },
          "thesis": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "relationship"
        ],
        "type": "object"
      },
      "TickerHubTranscriptDigest": {
        "properties": {
          "artifactVersion": {
            "type": "string"
          },
          "availableCount": {
            "format": "int64",
            "type": "integer"
          },
          "latest": {
            "$ref": "#/components/schemas/TickerHubTranscriptHeaderDigest"
          }
        },
        "required": [
          "latest",
          "availableCount",
          "artifactVersion"
        ],
        "type": "object"
      },
      "TickerHubTranscriptHeaderDigest": {
        "properties": {
          "eventDate": {
            "format": "date",
            "type": "string"
          },
          "fiscalPeriod": {
            "type": [
              "string",
              "null"
            ]
          },
          "hasQa": {
            "type": "boolean"
          },
          "readPath": {
            "type": [
              "string",
              "null"
            ]
          },
          "sourceUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "transcriptId": {
            "type": "string"
          },
          "wordCount": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "transcriptId",
          "eventDate",
          "hasQa"
        ],
        "type": "object"
      },
      "TickerHubUnavailableMetric": {
        "properties": {
          "metric": {
            "type": "string"
          },
          "reasonCode": {
            "type": "string"
          }
        },
        "required": [
          "metric",
          "reasonCode"
        ],
        "type": "object"
      },
      "VolatilityTermPointDto": {
        "properties": {
          "label": {
            "type": "string"
          },
          "observedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "symbol": {
            "type": "string"
          },
          "tenorDays": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "value": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "symbol",
          "label",
          "tenorDays",
          "value"
        ],
        "type": "object"
      },
      "YahooCompanyOfficer": {
        "properties": {
          "age": {
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          },
          "exercisedValueUsd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "fiscalYear": {
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          },
          "isChiefExecutive": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "totalPayUsd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "unexercisedValueUsd": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "title",
          "isChiefExecutive"
        ],
        "type": "object"
      },
      "YahooEstimateRange": {
        "properties": {
          "analystCount": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "average": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "growthPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "high": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "low": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "yearAgo": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "YahooForecastPeriod": {
        "properties": {
          "earnings": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/YahooEstimateRange"
              }
            ]
          },
          "endDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "period": {
            "type": "string"
          },
          "revenue": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/YahooEstimateRange"
              }
            ]
          }
        },
        "required": [
          "period"
        ],
        "type": "object"
      },
      "YahooRecommendationTrend": {
        "properties": {
          "buy": {
            "format": "int64",
            "type": "integer"
          },
          "hold": {
            "format": "int64",
            "type": "integer"
          },
          "key": {
            "type": [
              "string",
              "null"
            ]
          },
          "mean": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "period": {
            "type": "string"
          },
          "sell": {
            "format": "int64",
            "type": "integer"
          },
          "strongBuy": {
            "format": "int64",
            "type": "integer"
          },
          "strongSell": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "period",
          "strongBuy",
          "buy",
          "hold",
          "sell",
          "strongSell"
        ],
        "type": "object"
      },
      "YahooShortInterest": {
        "properties": {
          "daysToCover": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "observedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "percentOfFloat": {
            "description": "Percentage points of reported float, not a 0-1 fraction.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "priorPeriodSharesShort": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "sharesShort": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "sharesShortChange": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "sharesShortChangePct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "source": {
            "type": "string"
          }
        },
        "required": [
          "source"
        ],
        "type": "object"
      },
      "SandboxUsageSnapshot": {
        "type": "object",
        "required": [
          "asOf",
          "externalUserId",
          "licenseId",
          "notifications",
          "reports",
          "retailEntitlements",
          "usage"
        ],
        "properties": {
          "asOf": {
            "type": "string"
          },
          "externalUserId": {
            "type": "string"
          },
          "licenseId": {
            "type": "string"
          },
          "notifications": {
            "type": "object"
          },
          "reports": {
            "type": "object"
          },
          "retailEntitlements": {
            "type": "object"
          },
          "usage": {
            "type": "object"
          }
        },
        "description": "The existing read-only production usage envelope with fixed synthetic amounts. These are not observed live entitlements."
      },
      "BOptionsInstrument": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "call",
              "put"
            ]
          },
          "strike": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]{1,8})?$",
            "maxLength": 32
          },
          "expiry": {
            "type": "string",
            "format": "date"
          },
          "multiplier": {
            "type": "integer",
            "const": 100
          },
          "settlement": {
            "type": "string",
            "const": "physical"
          }
        },
        "required": [
          "kind",
          "strike",
          "expiry",
          "multiplier",
          "settlement"
        ]
      },
      "BOptionsDeclaredLeg": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "instrument": {
            "$ref": "#/components/schemas/BOptionsInstrument"
          },
          "quantity": {
            "type": "string",
            "pattern": "^-?0*(?:[1-9][0-9]?|100)(?:\\.0{1,8})?$",
            "maxLength": 32,
            "description": "Signed whole contracts, nonzero, absolute value at most100."
          },
          "premium": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]{1,8})?$",
            "maxLength": 32
          },
          "volatility": {
            "type": "number",
            "minimum": 0.001,
            "maximum": 5
          }
        },
        "required": [
          "instrument",
          "quantity",
          "premium",
          "volatility"
        ]
      },
      "BOptionsDeclaredStrategy": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          "fees_usd": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]{1,8})?$",
            "maxLength": 32
          },
          "legs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BOptionsDeclaredLeg"
            },
            "minItems": 1,
            "maxItems": 4
          }
        },
        "required": [
          "id",
          "fees_usd",
          "legs"
        ]
      },
      "BOptionsDeclaredScenario": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "spot": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]{1,8})?$",
            "maxLength": 32
          },
          "weight": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]{1,8})?$",
            "maxLength": 32
          }
        },
        "required": [
          "spot",
          "weight"
        ]
      },
      "BOptionsDeclaredRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "market_symbol": {
            "type": "string",
            "pattern": "^[A-Z][A-Z0-9.-]{0,14}$"
          },
          "as_of": {
            "type": "string",
            "format": "date-time"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "spot": {
            "type": "number",
            "minimum": 0.01,
            "maximum": 1000000
          },
          "risk_free_rate": {
            "type": "number",
            "minimum": -0.2,
            "maximum": 1
          },
          "dividend_yield": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "strategies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BOptionsDeclaredStrategy"
            },
            "minItems": 1,
            "maxItems": 4
          },
          "scenarios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BOptionsDeclaredScenario"
            },
            "minItems": 1,
            "maxItems": 21
          }
        },
        "required": [
          "market_symbol",
          "as_of",
          "expires_at",
          "spot",
          "risk_free_rate",
          "dividend_yield",
          "strategies",
          "scenarios"
        ],
        "description": "Explicit declared inputs. Unique strategy IDs and scenario spots; all option expiries match expires_at; nonnegative weights sum exactly1. Spots, premiums and total fees <=1,000,000 USD;8 decimal places. No market-probability or Oracle prediction claim."
      },
      "BOptionsCompareRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "externalUserId": {
            "type": "string",
            "format": "uuid"
          },
          "calculation": {
            "$ref": "#/components/schemas/BOptionsDeclaredRequest"
          }
        },
        "required": [
          "externalUserId",
          "calculation"
        ]
      },
      "BOptionsGreeks": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "delta": {
            "type": "number"
          },
          "gamma": {
            "type": "number"
          },
          "theta": {
            "type": "number"
          },
          "vega": {
            "type": "number"
          }
        },
        "required": [
          "delta",
          "gamma",
          "theta",
          "vega"
        ]
      },
      "BOptionsGreekUnits": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "delta": {
            "type": "string"
          },
          "gamma": {
            "type": "string"
          },
          "theta": {
            "type": "string"
          },
          "vega": {
            "type": "string"
          }
        },
        "required": [
          "delta",
          "gamma",
          "theta",
          "vega"
        ]
      },
      "BOptionsScenarioPayoff": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "spot": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]{1,8})?$",
            "maxLength": 32
          },
          "weight": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]{1,8})?$",
            "maxLength": 32
          },
          "pnl_usd": {
            "type": "string",
            "pattern": "^-?[0-9]+(?:\\.[0-9]{1,28})?$",
            "maxLength": 64
          }
        },
        "required": [
          "spot",
          "weight",
          "pnl_usd"
        ]
      },
      "BOptionsStrategyComparison": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "strategy_id": {
            "type": "string"
          },
          "net_greeks": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BOptionsGreeks"
              },
              {
                "type": "null"
              }
            ]
          },
          "model_status": {
            "type": "string",
            "enum": [
              "available",
              "stale_or_expired_inputs"
            ]
          },
          "expected_pnl_usd": {
            "type": "string",
            "pattern": "^-?[0-9]+(?:\\.[0-9]{1,28})?$",
            "maxLength": 64
          },
          "probability_profit": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]{1,8})?$",
            "maxLength": 32
          },
          "probability_loss": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]{1,8})?$",
            "maxLength": 32
          },
          "probability_flat": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]{1,8})?$",
            "maxLength": 32
          },
          "payoffs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BOptionsScenarioPayoff"
            },
            "minItems": 1,
            "maxItems": 21
          }
        },
        "required": [
          "strategy_id",
          "net_greeks",
          "model_status",
          "expected_pnl_usd",
          "probability_profit",
          "probability_loss",
          "probability_flat",
          "payoffs"
        ]
      },
      "BOptionsComparison": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "schema_version": {
            "type": "integer",
            "const": 1
          },
          "market_symbol": {
            "type": "string"
          },
          "as_of": {
            "type": "string",
            "format": "date-time"
          },
          "calculated_at": {
            "type": "string",
            "format": "date-time"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "evidence_class": {
            "type": "string",
            "const": "declared_scenarios"
          },
          "source": {
            "type": "string",
            "enum": [
              "caller_declared_inputs",
              "synthetic_fixture"
            ]
          },
          "method": {
            "type": "string",
            "const": "european_bsm_declared_expiry_scenarios_v1"
          },
          "assumptions": {
            "$ref": "#/components/schemas/BOptionsDeclaredRequest"
          },
          "greeks_units": {
            "$ref": "#/components/schemas/BOptionsGreekUnits"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BOptionsStrategyComparison"
            },
            "minItems": 1,
            "maxItems": 4
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 1
          },
          "provider_calls": {
            "type": "integer",
            "const": 0
          },
          "financial_effects": {
            "type": "boolean",
            "const": false
          }
        },
        "required": [
          "schema_version",
          "market_symbol",
          "as_of",
          "calculated_at",
          "expires_at",
          "evidence_class",
          "source",
          "method",
          "assumptions",
          "greeks_units",
          "results",
          "limitations",
          "provider_calls",
          "financial_effects"
        ]
      },
      "BOptionsListedContract": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "contract_id": {
            "type": "string"
          },
          "strike": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]{1,8})?$",
            "maxLength": 32
          },
          "bid": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ]
          },
          "ask": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ]
          },
          "last": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ]
          },
          "implied_volatility": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ]
          },
          "open_interest": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ]
          },
          "volume": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ]
          },
          "last_trade_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "contract_id",
          "strike",
          "bid",
          "ask",
          "last",
          "implied_volatility",
          "open_interest",
          "volume",
          "last_trade_at"
        ]
      },
      "BOptionsListedChain": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "schema_version": {
            "type": "integer"
          },
          "market_symbol": {
            "type": "string"
          },
          "as_of": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "underlying_price": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "expirations": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date"
            },
            "minItems": 0
          },
          "expiry": {
            "type": "string",
            "format": "date"
          },
          "calls": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BOptionsListedContract"
            },
            "minItems": 0,
            "maxItems": 400
          },
          "puts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BOptionsListedContract"
            },
            "minItems": 0,
            "maxItems": 400
          },
          "delayed": {
            "type": "boolean"
          },
          "source": {
            "type": "string"
          }
        },
        "required": [
          "schema_version",
          "market_symbol",
          "as_of",
          "underlying_price",
          "currency",
          "expirations",
          "expiry",
          "calls",
          "puts",
          "delayed",
          "source"
        ],
        "description": "Existing ListedChain DTO: delayed listed-contract data with IV. No provider Greeks field. Synthetic sandbox uses identical shape and explicit synthetic source."
      },
      "CqInstrumentSearch": {
        "type": "object",
        "properties": {
          "instruments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CqInstrument"
            },
            "maxItems": 20
          },
          "next_after_symbol": {
            "type": [
              "string",
              "null"
            ]
          },
          "support_scope": {
            "const": "verified_market_registry"
          },
          "quote_availability": {
            "const": "not_checked"
          }
        },
        "required": [
          "instruments",
          "next_after_symbol",
          "support_scope",
          "quote_availability"
        ],
        "additionalProperties": false
      },
      "CqInstrument": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "asset_class": {
            "type": "string"
          }
        },
        "required": [
          "symbol",
          "name",
          "asset_class"
        ],
        "additionalProperties": false
      },
      "CqStockPrice": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string"
          },
          "price": {
            "type": "string"
          },
          "timestamp": {
            "type": "integer"
          },
          "currentQuote": {
            "$ref": "#/components/schemas/CqCurrentQuote"
          }
        },
        "required": [
          "symbol",
          "price",
          "timestamp",
          "currentQuote"
        ],
        "additionalProperties": false
      },
      "CqCurrentQuote": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "price": {
            "type": [
              "number",
              "null"
            ]
          },
          "previousClose": {
            "type": [
              "number",
              "null"
            ]
          },
          "currency": {
            "type": [
              "string",
              "null"
            ]
          },
          "source": {
            "type": "string"
          },
          "observedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "fetchedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "exchange": {
            "type": [
              "string",
              "null"
            ]
          },
          "exchangeTimezone": {
            "type": [
              "string",
              "null"
            ]
          },
          "sessionStart": {
            "type": [
              "integer",
              "null"
            ]
          },
          "sessionEnd": {
            "type": [
              "integer",
              "null"
            ]
          },
          "providerDelayMinutes": {
            "type": [
              "integer",
              "null"
            ]
          },
          "marketSession": {
            "type": "string"
          },
          "reason": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "symbol",
          "state",
          "price",
          "previousClose",
          "currency",
          "source",
          "observedAt",
          "fetchedAt",
          "exchange",
          "exchangeTimezone",
          "sessionStart",
          "sessionEnd",
          "providerDelayMinutes",
          "marketSession",
          "reason"
        ],
        "additionalProperties": false
      },
      "StockOhlcvResponse": {
        "description": "Stock OHLCV response with candle data.",
        "properties": {
          "data": {
            "description": "Array of OHLCV candles",
            "items": {
              "$ref": "#/components/schemas/StockOhlcvCandle"
            },
            "type": "array"
          },
          "freshness": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/MarketDataFreshness"
              }
            ]
          },
          "symbol": {
            "description": "Stock ticker symbol",
            "example": "AAPL",
            "type": "string"
          },
          "timeframe": {
            "description": "Timeframe",
            "example": "h1",
            "type": "string"
          }
        },
        "required": [
          "symbol",
          "timeframe",
          "data"
        ],
        "type": "object"
      },
      "StockOhlcvCandle": {
        "description": "Single stock OHLCV candle.",
        "properties": {
          "close": {
            "description": "Close price",
            "example": "190.00",
            "type": "string"
          },
          "high": {
            "description": "High price",
            "example": "191.25",
            "type": "string"
          },
          "low": {
            "description": "Low price",
            "example": "188.75",
            "type": "string"
          },
          "open": {
            "description": "Open price",
            "example": "189.50",
            "type": "string"
          },
          "open_time": {
            "description": "Candle open timestamp in milliseconds",
            "example": 1700000000000,
            "format": "int64",
            "type": "integer"
          },
          "volume": {
            "description": "Volume",
            "example": "12345678",
            "type": "string"
          }
        },
        "required": [
          "open_time",
          "open",
          "high",
          "low",
          "close",
          "volume"
        ],
        "type": "object"
      },
      "MarketDataFreshness": {
        "properties": {
          "coordinate": {
            "description": "Canonical provider coordinate, e.g. STOCK:GC=F (a futures proxy, not spot).",
            "type": "string"
          },
          "last_successful_fetch_at": {
            "description": "Exact successful worker completion, never populated from a cache read.",
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "latest_available_session": {
            "description": "Unknown without an authoritative exchange calendar and candle finality.",
            "type": [
              "string",
              "null"
            ]
          },
          "latest_candle_open_time": {
            "description": "Open time of the newest returned candle, in UTC milliseconds. Not a quote timestamp.",
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "market_observed_at": {
            "description": "Unknown until the source supplies an actual market observation timestamp.",
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "provider_latency": {
            "description": "No latency guarantee is inferred from a recently fetched candle.",
            "type": "string"
          },
          "refresh_state": {
            "$ref": "#/components/schemas/RefreshState"
          },
          "retry_after_ms": {
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "coordinate",
          "provider_latency",
          "refresh_state"
        ],
        "type": "object"
      },
      "RefreshState": {
        "enum": [
          "queued",
          "completed",
          "empty",
          "failed",
          "timed_out",
          "unavailable",
          "historical"
        ],
        "type": "string"
      },
      "OhlcvResponse": {
        "description": "OHLCV response with candle data.",
        "properties": {
          "data": {
            "description": "Array of OHLCV candles",
            "items": {
              "$ref": "#/components/schemas/OhlcvCandle"
            },
            "type": "array"
          },
          "freshness": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/MarketDataFreshness"
              }
            ]
          },
          "symbol": {
            "description": "Symbol ticker",
            "example": "BTC",
            "type": "string"
          },
          "timeframe": {
            "description": "Timeframe",
            "example": "h1",
            "type": "string"
          }
        },
        "required": [
          "symbol",
          "timeframe",
          "data"
        ],
        "type": "object"
      },
      "OhlcvCandle": {
        "description": "Single OHLCV candle.",
        "properties": {
          "close": {
            "description": "Close price",
            "example": "42300.75",
            "type": "string"
          },
          "high": {
            "description": "High price",
            "example": "42500.00",
            "type": "string"
          },
          "low": {
            "description": "Low price",
            "example": "41800.25",
            "type": "string"
          },
          "open": {
            "description": "Open price",
            "example": "42000.50",
            "type": "string"
          },
          "open_time": {
            "description": "Candle open timestamp in milliseconds",
            "example": 1700000000000,
            "format": "int64",
            "type": "integer"
          },
          "volume": {
            "description": "Volume",
            "example": "1234.56",
            "type": "string"
          }
        },
        "required": [
          "open_time",
          "open",
          "high",
          "low",
          "close",
          "volume"
        ],
        "type": "object"
      },
      "BatchQuoteResponse": {
        "description": "Lightweight per-symbol quote for ticker chips (ORGANIC_IMPROVEMENTS \u00a78).\nOnly the fields needed to render a sparkline + % change \u2014 no full OHLCV\nobjects or indicators. Reads return immediately from memory or Parquet.\nSupported cold symbols are admitted to the distributed provider queue and\nreport their readiness so the client can poll without blocking this call.",
        "properties": {
          "results": {
            "additionalProperties": {
              "$ref": "#/components/schemas/BatchQuoteItem"
            },
            "description": "Results keyed by uppercase symbol.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "results"
        ],
        "type": "object"
      },
      "BatchQuoteItem": {
        "properties": {
          "as_of": {
            "description": "Open time of the newest historical candle in UTC milliseconds. This is\nnot a quote observation time; use current_quote for current values.",
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "closes": {
            "description": "Recent closes. The default is 24 hourly bars; `range=1y` returns up to\n252 cached daily bars.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "current_quote": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/CurrentQuote"
              }
            ]
          },
          "freshness": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/MarketDataFreshness"
              }
            ]
          },
          "prev_close": {
            "description": "Previous trading day's close (stocks only, best-effort).",
            "type": [
              "string",
              "null"
            ]
          },
          "retry_after_ms": {
            "description": "Suggested client poll delay while `status` is `queued` or `retryable`.",
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "status": {
            "$ref": "#/components/schemas/MarketDataReadiness",
            "description": "Whether chart data is ready, queued, temporarily retryable, or unsupported."
          },
          "symbol": {
            "type": "string"
          },
          "unchartable": {
            "description": "True means the instrument is unsupported for charting; omitted/false does not prove readiness. Inspect status and retry_after_ms to distinguish cold or retryable supported data.",
            "type": "boolean"
          },
          "unchartable_reason": {
            "description": "Why the instrument is unchartable. Only set alongside `unchartable`.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "symbol",
          "status"
        ],
        "type": "object"
      },
      "MarketDataReadiness": {
        "enum": [
          "ready",
          "queued",
          "retryable",
          "unsupported"
        ],
        "type": "string"
      },
      "MarketHubAnalyticsResponse": {
        "properties": {
          "capitalReturns": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsCapitalReturns",
                "description": "Filing-sourced distributions, FCF coverage, cohort percentiles, and a\ngoverned dividend continuation scenario. Present for listed stocks even\nwhen individual evidence gates fail."
              }
            ]
          },
          "checks": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsCheck"
            },
            "type": "array"
          },
          "commentary": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsCommentary",
                "description": "LLM-generated overview/rewards/risks prose (z.ai GLM, daily cron).\nNull unless `features.company_commentary` is enabled and a\n`company_commentary` row exists for the symbol."
              }
            ]
          },
          "computedAt": {
            "format": "date-time",
            "type": "string"
          },
          "dividend": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsDividendAnalysis",
                "description": "Observed cash distributions and deterministic income-quality metrics.\n`None` means the source was unavailable; a successful no-dividend\nfinding is a populated object with `paysDividend: false`."
              }
            ]
          },
          "fairValue": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsFairValue",
                "description": "Compatibility forecast shape retained while clients migrate.\nNull unless `features.ml_valuation` is enabled and a\n`company_valuation` row exists for the symbol."
              }
            ]
          },
          "financingCostCoverage": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsFinancingCostCoverage"
              }
            ]
          },
          "historicalValuationCoverage": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsHistoricalValuationCoverage"
              }
            ]
          },
          "intrinsicValue": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsIntrinsicValue",
                "description": "Decision-eligible owner-earnings DCF for supported equities. The object\nremains present with failed checks and null values when inputs fail."
              }
            ]
          },
          "modelForecast": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsModelForecast",
                "description": "Preferred forecast contract. Unlike `fairValue`, this shape separates\nthe scoring anchor, point forecast, and calibrated range."
              }
            ]
          },
          "news": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsNewsItem"
            },
            "type": "array"
          },
          "peerCohort": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsPeerCohort",
                "description": "Construction of the peer set above. Null when no cohort could be built."
              }
            ]
          },
          "peers": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsPeer"
            },
            "type": "array"
          },
          "priceSalesHistory": {
            "description": "Reserved compatibility list. Empty until historical capitalization and\ndenominator provenance support comparable ratios.",
            "items": {
              "$ref": "#/components/schemas/AnalyticsPriceSalesObservation"
            },
            "type": "array"
          },
          "readiness": {
            "$ref": "#/components/schemas/AnalyticsReadiness"
          },
          "returns": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsReturns"
              }
            ]
          },
          "snowflake": {
            "$ref": "#/components/schemas/AnalyticsSnowflake"
          },
          "symbol": {
            "type": "string"
          },
          "technicals": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsTechnicals",
                "description": "Price-derived technical context. Null for non-equity asset classes and\nsymbols with no local daily history."
              }
            ]
          },
          "valuation": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsValuation"
              }
            ]
          },
          "verdict": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsVerdict",
                "description": "Disclosed 0-100 composite. Null when no dimension is computable."
              }
            ]
          },
          "volatility": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsVolatility"
              }
            ]
          }
        },
        "required": [
          "symbol",
          "computedAt",
          "readiness",
          "priceSalesHistory",
          "peers",
          "snowflake",
          "checks",
          "news"
        ],
        "type": "object"
      },
      "AnalyticsCapitalReturns": {
        "description": "Filing-sourced capital distributions and derived coverage measures.",
        "properties": {
          "artifactVersion": {
            "type": "string"
          },
          "asOf": {
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "cashDividendsPaid": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "checks": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsCapitalReturnCheck"
            },
            "type": "array"
          },
          "dividendFcfPayoutRatioPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "dividendForecast": {
            "$ref": "#/components/schemas/AnalyticsDividendForecast"
          },
          "filedDividendYieldPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "fiscalPeriod": {
            "type": [
              "string",
              "null"
            ]
          },
          "freeCashFlow": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "grossRepurchaseYieldPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "industry": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsCapitalReturnIndustry"
              }
            ]
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "marketCap": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "quoteObservedAt": {
            "description": "Last regular-market observation from the quote, not an independent cap timestamp.",
            "type": [
              "string",
              "null"
            ]
          },
          "reportingCurrency": {
            "type": [
              "string",
              "null"
            ]
          },
          "repurchaseCashFlow": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "source": {
            "type": "string"
          },
          "sourceUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "totalFcfPayoutRatioPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "totalShareholderYieldPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "source",
          "artifactVersion",
          "dividendForecast",
          "checks",
          "limitations"
        ],
        "type": "object"
      },
      "AnalyticsCapitalReturnCheck": {
        "description": "One published evidence gate behind a capital-return calculation.",
        "properties": {
          "code": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "passed": {
            "type": "boolean"
          }
        },
        "required": [
          "code",
          "label",
          "passed",
          "detail"
        ],
        "type": "object"
      },
      "AnalyticsDividendForecast": {
        "description": "Governed three-year dividend continuation scenario. Failed gates keep this\nobject present and its numerical forecast empty.",
        "properties": {
          "baseTtmPerShare": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "checks": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsCapitalReturnCheck"
            },
            "type": "array"
          },
          "decisionEligible": {
            "type": "boolean"
          },
          "growthRatePct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "modelVersion": {
            "type": "string"
          },
          "validationStatus": {
            "type": "string"
          },
          "years": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsDividendForecastYear"
            },
            "type": "array"
          }
        },
        "required": [
          "decisionEligible",
          "validationStatus",
          "modelVersion",
          "years",
          "checks",
          "limitations"
        ],
        "type": "object"
      },
      "AnalyticsDividendForecastYear": {
        "description": "One forecast calendar year in the deterministic dividend continuation\nscenario. This is not analyst consensus or a declared distribution.",
        "properties": {
          "amountPerShare": {
            "format": "double",
            "type": "number"
          },
          "year": {
            "format": "int32",
            "type": "integer"
          },
          "yieldOnCurrentPricePct": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "year",
          "amountPerShare",
          "yieldOnCurrentPricePct"
        ],
        "type": "object"
      },
      "AnalyticsCapitalReturnIndustry": {
        "description": "Percentile ranks against the same classified, size-aware comparison cohort\nused by the peer module. Each rank has its own evidence denominator.",
        "properties": {
          "basis": {
            "type": "string"
          },
          "cohortName": {
            "type": "string"
          },
          "filedDividendYieldPercentile": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "filedDividendYieldSampleSize": {
            "minimum": 0,
            "type": "integer"
          },
          "grossRepurchaseYieldPercentile": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "grossRepurchaseYieldSampleSize": {
            "minimum": 0,
            "type": "integer"
          },
          "totalShareholderYieldPercentile": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "totalShareholderYieldSampleSize": {
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "cohortName",
          "basis",
          "filedDividendYieldSampleSize",
          "grossRepurchaseYieldSampleSize",
          "totalShareholderYieldSampleSize"
        ],
        "type": "object"
      },
      "AnalyticsCheck": {
        "description": "One deterministic analytics check. `kind` is `reward` when the check\npassed and `risk` when it failed (labels are phrased positively).",
        "properties": {
          "axis": {
            "type": "string"
          },
          "detail": {
            "type": [
              "string",
              "null"
            ]
          },
          "kind": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "passed": {
            "type": "boolean"
          }
        },
        "required": [
          "axis",
          "kind",
          "label",
          "passed"
        ],
        "type": "object"
      },
      "AnalyticsCommentary": {
        "description": "LLM-generated company commentary (Simply Wall St-style prose), served\nfrom the `company_commentary` table (daily leader-gated cron job).\nPresent only when `features.company_commentary` is enabled and the symbol\nhas a row.",
        "properties": {
          "generatedAt": {
            "description": "When the prose was generated.",
            "format": "date-time",
            "type": "string"
          },
          "model": {
            "description": "LLM model that produced the prose (e.g. `glm-5.2`).",
            "type": "string"
          },
          "overview": {
            "description": "2-3 sentence prose overview of the company.",
            "type": "string"
          },
          "rewards": {
            "description": "2-4 reward bullets.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "risks": {
            "description": "1-3 risk bullets.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "sourceAsOf": {
            "description": "Latest financial period whose source inputs match this prose.",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "overview",
          "rewards",
          "risks",
          "model",
          "generatedAt"
        ],
        "type": "object"
      },
      "AnalyticsDividendAnalysis": {
        "description": "Decision-useful income analysis derived from observed corporate actions,\nthe cached market price, and reported trailing EPS.",
        "properties": {
          "annualGrowthPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "annualTotals": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsDividendAnnualTotal"
            },
            "type": "array"
          },
          "artifactVersion": {
            "type": "string"
          },
          "consecutiveYearsPaid": {
            "format": "int64",
            "type": "integer"
          },
          "currency": {
            "type": [
              "string",
              "null"
            ]
          },
          "earningsPayoutRatioPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "latestExDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "latestPaymentPerShare": {
            "type": [
              "string",
              "null"
            ]
          },
          "marketBenchmark": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AnalyticsDividendBenchmark"
              }
            ]
          },
          "paymentFrequency": {
            "type": [
              "string",
              "null"
            ]
          },
          "payments": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsDividendPayment"
            },
            "type": "array"
          },
          "paysDividend": {
            "type": "boolean"
          },
          "prior12mPerShare": {
            "type": [
              "string",
              "null"
            ]
          },
          "retrievedAt": {
            "format": "date-time",
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "sourceUrl": {
            "type": "string"
          },
          "trailing12mPerShare": {
            "type": [
              "string",
              "null"
            ]
          },
          "trailingYieldPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "source",
          "sourceUrl",
          "retrievedAt",
          "paysDividend",
          "consecutiveYearsPaid",
          "annualTotals",
          "payments",
          "artifactVersion"
        ],
        "type": "object"
      },
      "AnalyticsDividendAnnualTotal": {
        "description": "Calendar-year cash distributions per share. The current year is marked\npartial so a year-to-date bar is never compared as though it were final.",
        "properties": {
          "amountPerShare": {
            "type": "string"
          },
          "partial": {
            "type": "boolean"
          },
          "year": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "year",
          "amountPerShare",
          "partial"
        ],
        "type": "object"
      },
      "AnalyticsDividendBenchmark": {
        "description": "Broad-market trailing cash-yield reference calculated from the same\ncorporate-action source as the company yield.",
        "properties": {
          "label": {
            "type": "string"
          },
          "retrievedAt": {
            "format": "date-time",
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "sourceUrl": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "trailingYieldPct": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "symbol",
          "label",
          "trailingYieldPct",
          "source",
          "sourceUrl",
          "retrievedAt"
        ],
        "type": "object"
      },
      "AnalyticsDividendPayment": {
        "description": "One observed cash dividend, represented as an exact decimal string.",
        "properties": {
          "amountPerShare": {
            "type": "string"
          },
          "exDate": {
            "type": "string"
          }
        },
        "required": [
          "exDate",
          "amountPerShare"
        ],
        "type": "object"
      },
      "AnalyticsFairValue": {
        "description": "Compatibility shape for CommonQuant's one-year forecast price from the\nfirst-generation forward-return model, served from the\n`company_valuation` table. Present only when `features.ml_valuation` is\nenabled and the symbol has a scored row.",
        "properties": {
          "decisionEligible": {
            "description": "Always false in this compatibility shape. Decision eligibility is\nexposed only through `modelForecast`.",
            "type": "boolean"
          },
          "disclosure": {
            "description": "Fixed provenance disclosure; render verbatim.",
            "type": "string"
          },
          "fairValue": {
            "description": "Original model scalar. Currency and adjustment basis are unverified; not a quoted-price target.",
            "format": "double",
            "type": "number"
          },
          "history": {
            "description": "Bounded retained scorer records, ordered by feature date. Ingest timestamps\nare not proof of original publication or point-in-time availability.",
            "items": {
              "$ref": "#/components/schemas/AnalyticsModelPriceObservation"
            },
            "type": "array"
          },
          "horizonTradingDays": {
            "format": "int64",
            "type": "integer"
          },
          "label": {
            "description": "What this number is. Render alongside the value without presenting it\nas analyst consensus or a discounted-cash-flow calculation.",
            "type": "string"
          },
          "limitations": {
            "description": "Known methodological limits that the UI renders with the estimate.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "method": {
            "description": "The actual model task, kept separate from intrinsic-value methods.",
            "type": "string"
          },
          "modelRunKey": {
            "description": "Model version/run key that produced the estimate (e.g. `v2026-W31`).",
            "type": "string"
          },
          "predictedReturn1y": {
            "description": "Predicted 1y simple return as a fraction (0.25 = +25%).",
            "format": "double",
            "type": "number"
          },
          "scoredAt": {
            "description": "When the predictions were ingested.",
            "format": "date-time",
            "type": "string"
          },
          "upsidePct": {
            "description": "Always null until the model and current quote have a verified comparable basis.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "validationStatus": {
            "description": "Machine-readable trust state for the client.",
            "type": "string"
          }
        },
        "required": [
          "label",
          "disclosure",
          "decisionEligible",
          "validationStatus",
          "method",
          "horizonTradingDays",
          "limitations",
          "fairValue",
          "predictedReturn1y",
          "modelRunKey",
          "scoredAt",
          "history"
        ],
        "type": "object"
      },
      "AnalyticsModelPriceObservation": {
        "properties": {
          "anchorPrice": {
            "description": "Stored or reconstructed arithmetic anchor in original, unverified model units.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "featureDate": {
            "description": "Date of the model inputs; not the original forecast publication date.",
            "format": "date",
            "type": "string"
          },
          "modelImpliedPrice": {
            "format": "double",
            "type": "number"
          },
          "modelRunKey": {
            "type": "string"
          },
          "predictedReturn1y": {
            "format": "double",
            "type": "number"
          },
          "scoredAt": {
            "format": "date-time",
            "type": "string"
          },
          "specVersion": {
            "type": "string"
          },
          "targetDate": {
            "description": "Unavailable: 252 future trading observations do not establish a calendar target date.",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "featureDate",
          "modelImpliedPrice",
          "predictedReturn1y",
          "modelRunKey",
          "specVersion",
          "scoredAt"
        ],
        "type": "object"
      },
      "AnalyticsFinancingCostCoverage": {
        "properties": {
          "asOf": {
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "basis": {
            "type": [
              "string",
              "null"
            ]
          },
          "disclosure": {
            "type": "string"
          },
          "expense": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "operatingIncome": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "ratio": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "reportingCurrency": {
            "type": [
              "string",
              "null"
            ]
          },
          "sourcePeriods": {
            "description": "Exact financial periods used for both numerator and denominator.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "status": {
            "type": "string"
          },
          "unavailableReason": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "status",
          "sourcePeriods",
          "disclosure"
        ],
        "type": "object"
      },
      "AnalyticsHistoricalValuationCoverage": {
        "description": "Source coverage for historical multiples, separate from current valuation.",
        "properties": {
          "limitations": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "priceObservationCount": {
            "description": "Distinct retained non-future dates with positive finite closes.",
            "minimum": 0,
            "type": "integer"
          },
          "statementPeriodCount": {
            "description": "Distinct retained non-future financial endpoints; not verified cap inputs.",
            "minimum": 0,
            "type": "integer"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "status",
          "statementPeriodCount",
          "priceObservationCount",
          "limitations"
        ],
        "type": "object"
      },
      "AnalyticsIntrinsicValue": {
        "description": "Governed owner-earnings DCF. Failed input gates keep this object present\nbut suppress the value, so absence is never confused with zero.",
        "properties": {
          "asOf": {
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "calculationReady": {
            "type": "boolean"
          },
          "checks": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsIntrinsicValueCheck"
            },
            "type": "array"
          },
          "currentPrice": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "decisionEligible": {
            "type": "boolean"
          },
          "discountRatePct": {
            "format": "double",
            "type": "number"
          },
          "equityGapPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "equitySensitivity": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsEquityValueSensitivity"
            },
            "type": "array"
          },
          "equityValue": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "forecastYears": {
            "format": "int64",
            "type": "integer"
          },
          "intrinsicValue": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "label": {
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "marketCap": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "marketCapObservedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "method": {
            "type": "string"
          },
          "modelVersion": {
            "type": "string"
          },
          "normalizedOwnerEarnings": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "normalizedOwnerEarningsPerShare": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "priceAsOf": {
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "reportingCurrency": {
            "type": [
              "string",
              "null"
            ]
          },
          "sensitivity": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsIntrinsicValueSensitivity"
            },
            "type": "array"
          },
          "sourceFiscalYears": {
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "startingGrowthPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "terminalGrowthPct": {
            "format": "double",
            "type": "number"
          },
          "upsidePct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "validationStatus": {
            "type": "string"
          }
        },
        "required": [
          "calculationReady",
          "equitySensitivity",
          "label",
          "method",
          "modelVersion",
          "decisionEligible",
          "validationStatus",
          "forecastYears",
          "discountRatePct",
          "terminalGrowthPct",
          "sourceFiscalYears",
          "sensitivity",
          "checks",
          "limitations"
        ],
        "type": "object"
      },
      "AnalyticsIntrinsicValueCheck": {
        "description": "One published gate behind the intrinsic-value eligibility decision.",
        "properties": {
          "code": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "passed": {
            "type": "boolean"
          }
        },
        "required": [
          "code",
          "label",
          "passed",
          "detail"
        ],
        "type": "object"
      },
      "AnalyticsEquityValueSensitivity": {
        "description": "Company-wide scenario values; never listing prices.",
        "properties": {
          "discountRatePct": {
            "format": "double",
            "type": "number"
          },
          "equityValue": {
            "format": "double",
            "type": "number"
          },
          "terminalGrowthPct": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "discountRatePct",
          "terminalGrowthPct",
          "equityValue"
        ],
        "type": "object"
      },
      "AnalyticsIntrinsicValueSensitivity": {
        "description": "One cell in the fixed discount-rate / terminal-growth sensitivity matrix.",
        "properties": {
          "discountRatePct": {
            "format": "double",
            "type": "number"
          },
          "intrinsicValue": {
            "format": "double",
            "type": "number"
          },
          "terminalGrowthPct": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "discountRatePct",
          "terminalGrowthPct",
          "intrinsicValue"
        ],
        "type": "object"
      },
      "AnalyticsModelForecast": {
        "description": "Stable one-year model-forecast contract. During the compatibility window,\n`fairValue` remains available while clients migrate to this object.",
        "properties": {
          "anchorPrice": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "currentGapPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "decisionEligible": {
            "type": "boolean"
          },
          "disclosure": {
            "type": "string"
          },
          "featureDate": {
            "format": "date",
            "type": "string"
          },
          "highPrice": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "highReturn1y": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "history": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsModelPriceObservation"
            },
            "type": "array"
          },
          "horizonTradingDays": {
            "format": "int64",
            "type": "integer"
          },
          "intervalLevel": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "label": {
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "lowPrice": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "lowReturn1y": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "method": {
            "type": "string"
          },
          "modelRunKey": {
            "type": "string"
          },
          "observedCoverage": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "pointPrice": {
            "format": "double",
            "type": "number"
          },
          "predictedReturn1y": {
            "format": "double",
            "type": "number"
          },
          "scoredAt": {
            "format": "date-time",
            "type": "string"
          },
          "specVersion": {
            "type": "string"
          },
          "validationStatus": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "disclosure",
          "decisionEligible",
          "validationStatus",
          "method",
          "horizonTradingDays",
          "limitations",
          "pointPrice",
          "predictedReturn1y",
          "modelRunKey",
          "specVersion",
          "featureDate",
          "scoredAt",
          "history"
        ],
        "type": "object"
      },
      "AnalyticsNewsItem": {
        "properties": {
          "id": {
            "type": "string"
          },
          "publishedAt": {
            "type": "string"
          },
          "source": {
            "type": [
              "string",
              "null"
            ]
          },
          "summary": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "url",
          "publishedAt",
          "summary"
        ],
        "type": "object"
      },
      "AnalyticsPeerCohort": {
        "description": "How the peer set was constructed, so the comparison can be labelled rather\nthan presented as an anonymous \"peers\" list. A median computed on fewer\nthan [`PEER_MEDIAN_MIN_MEMBERS`] contributors is suppressed instead of\nrendered on a thin denominator.",
        "properties": {
          "basis": {
            "description": "Stable machine code for the tier that produced the set.",
            "type": "string"
          },
          "comparedCount": {
            "description": "Peers that actually contributed to at least one median.",
            "minimum": 0,
            "type": "integer"
          },
          "construction": {
            "description": "Human-readable construction rule.",
            "type": "string"
          },
          "memberCount": {
            "description": "Candidates in the winning tier before the display limit.",
            "minimum": 0,
            "type": "integer"
          },
          "name": {
            "description": "Display name of the cohort (e.g. the sub-industry or sector).",
            "type": "string"
          },
          "suppressedReason": {
            "description": "Set when peer-relative comparisons were suppressed.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "construction",
          "basis",
          "memberCount",
          "comparedCount"
        ],
        "type": "object"
      },
      "AnalyticsPeer": {
        "properties": {
          "asOf": {
            "type": [
              "string",
              "null"
            ]
          },
          "change1dPct": {
            "description": "Standard session move versus the previous close, in percent.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "debtToEquity": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "epsTtm": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "fiscalPeriod": {
            "type": [
              "string",
              "null"
            ]
          },
          "lastPrice": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "marketCap": {
            "description": "Null without a recent aggregate quote comparable to these statements.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "marketCapUnavailableReason": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "netMargin": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "operatingMargin": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "pbTtm": {
            "description": "Price to the latest filed positive common-equity balance.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "peTtm": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "priceCurrency": {
            "description": "Currency of the displayed price only; unknown for unlabelled local history.",
            "type": [
              "string",
              "null"
            ]
          },
          "psTtm": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "quoteCurrency": {
            "type": [
              "string",
              "null"
            ]
          },
          "quoteObservedAt": {
            "description": "Last regular-market observation, not an independent capitalization timestamp.",
            "type": [
              "string",
              "null"
            ]
          },
          "reportingCurrency": {
            "type": [
              "string",
              "null"
            ]
          },
          "revenueTtm": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "roe": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "snowflake": {
            "$ref": "#/components/schemas/AnalyticsSnowflake",
            "description": "Scores use the displayed comparison cohort's medians, so every peer is\nevaluated on the same basis within this gallery."
          },
          "symbol": {
            "type": "string"
          }
        },
        "required": [
          "symbol",
          "snowflake"
        ],
        "type": "object"
      },
      "AnalyticsSnowflake": {
        "description": "Snowflake scores, 0-6 per axis, derived from the deterministic checks.",
        "properties": {
          "dividend": {
            "description": "Null only when the dividend source was unavailable. A confirmed\nnon-payer scores zero rather than masquerading as missing data.",
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "future": {
            "format": "int64",
            "type": "integer"
          },
          "health": {
            "format": "int64",
            "type": "integer"
          },
          "past": {
            "format": "int64",
            "type": "integer"
          },
          "value": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "value",
          "future",
          "past",
          "health"
        ],
        "type": "object"
      },
      "AnalyticsPriceSalesObservation": {
        "description": "Legacy historical-multiple observation shape. Retained for wire compatibility;\ncurrent reads do not publish unverified adjusted-price/share reconstructions.",
        "properties": {
          "basis": {
            "description": "Stable disclosure code for the reconstruction method.",
            "type": "string"
          },
          "close": {
            "format": "double",
            "type": "number"
          },
          "fiscalPeriod": {
            "type": "string"
          },
          "fundamentalDate": {
            "format": "date",
            "type": "string"
          },
          "marketCap": {
            "format": "double",
            "type": "number"
          },
          "netIncomeTtm": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "pbTtm": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "peTtm": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "priceDate": {
            "format": "date",
            "type": "string"
          },
          "psTtm": {
            "format": "double",
            "type": "number"
          },
          "revenueTtm": {
            "format": "double",
            "type": "number"
          },
          "totalEquity": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "fundamentalDate",
          "priceDate",
          "fiscalPeriod",
          "close",
          "marketCap",
          "revenueTtm",
          "psTtm",
          "basis"
        ],
        "type": "object"
      },
      "AnalyticsReadiness": {
        "description": "Refresh state of the inputs behind this analytics payload. `refreshing`\nmeans one or more transient inputs (quote, market history) are still being\nfetched in the background and the client should poll again.",
        "properties": {
          "pending": {
            "description": "Inputs still being fetched: `quote` and/or `market_history`.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "retryAfterMs": {
            "description": "Suggested client poll delay while `status` is `refreshing`.",
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "status": {
            "$ref": "#/components/schemas/AnalyticsReadinessStatus"
          }
        },
        "required": [
          "status",
          "pending"
        ],
        "type": "object"
      },
      "AnalyticsReadinessStatus": {
        "enum": [
          "ready",
          "refreshing"
        ],
        "type": "string"
      },
      "AnalyticsReturns": {
        "properties": {
          "asOf": {
            "description": "Open time of the most recent candle behind these returns.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "periods": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsReturnPeriod"
            },
            "type": "array"
          }
        },
        "required": [
          "periods"
        ],
        "type": "object"
      },
      "AnalyticsReturnPeriod": {
        "description": "One lookback window of total price returns, in percent.",
        "properties": {
          "industryReturn": {
            "description": "Mean of the same-period returns of cohort peers whose candles are\nalready in the local memory/parquet stores. Null when none are.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "key": {
            "type": "string"
          },
          "marketReturn": {
            "description": "SPY same-period return. Null when SPY candles are unavailable locally.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "symbolReturn": {
            "description": "Null when the symbol has no usable close near the lookback date.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "key"
        ],
        "type": "object"
      },
      "AnalyticsTechnicals": {
        "description": "Price-derived technical context, computed request-time from the same daily\ncloses the returns and volatility sections use. Deliberately independent of\nthe indicator memory store, which is empty for any symbol that is not\nactively polled.",
        "properties": {
          "asOf": {
            "description": "Open time of the most recent candle behind these values.",
            "format": "date-time",
            "type": "string"
          },
          "crossState": {
            "description": "`golden` (50 above 200), `death` (50 below 200), or null below 200\ncloses \u2014 never defaulted.",
            "type": [
              "string",
              "null"
            ]
          },
          "distanceToSma200Pct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "distanceToSma50Pct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "drawdownFrom52wHighPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "gaps": {
            "description": "Recent unfilled gaps, newest first.",
            "items": {
              "$ref": "#/components/schemas/AnalyticsPriceGap"
            },
            "type": "array"
          },
          "high52w": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "historyPoints": {
            "description": "Daily closes available. Fields requiring more history stay null.",
            "minimum": 0,
            "type": "integer"
          },
          "lastPrice": {
            "format": "double",
            "type": "number"
          },
          "low52w": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "positionIn52wRangePct": {
            "description": "Position within the 52-week range: 0 at the low, 100 at the high.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "resistance": {
            "description": "Swing highs above the last price, nearest first.",
            "items": {
              "format": "double",
              "type": "number"
            },
            "type": "array"
          },
          "sma200": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "sma50": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "support": {
            "description": "Swing lows below the last price, nearest first.",
            "items": {
              "format": "double",
              "type": "number"
            },
            "type": "array"
          },
          "takeaway": {
            "description": "Deterministic prose assembled from the values above. Never an LLM call.",
            "type": "string"
          }
        },
        "required": [
          "asOf",
          "historyPoints",
          "lastPrice",
          "gaps",
          "support",
          "resistance",
          "takeaway"
        ],
        "type": "object"
      },
      "AnalyticsPriceGap": {
        "description": "One unfilled price gap: a session that opened away from the prior close and\nhas not yet traded back through the void.",
        "properties": {
          "date": {
            "description": "Session date the gap opened (ISO-8601 date).",
            "type": "string"
          },
          "direction": {
            "description": "`up` when the gap opened above the prior close, `down` below.",
            "type": "string"
          },
          "filled": {
            "description": "Whether price has since traded back through the void.",
            "type": "boolean"
          },
          "high": {
            "description": "Upper edge of the void.",
            "format": "double",
            "type": "number"
          },
          "low": {
            "description": "Lower edge of the void.",
            "format": "double",
            "type": "number"
          },
          "pct": {
            "description": "Signed size relative to the prior close, in percent.",
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "date",
          "low",
          "high",
          "pct",
          "direction",
          "filled"
        ],
        "type": "object"
      },
      "AnalyticsValuation": {
        "description": "Valuation and profitability snapshot. Money fields are raw values;\nmargins, ROE, and debt-to-equity are percents (snapshot ratios are stored\nas fractions and converted here).",
        "properties": {
          "asOf": {
            "description": "`period_end` of the filing these figures came from (ISO-8601 date), so\nthe reader can see how current they are.",
            "type": [
              "string",
              "null"
            ]
          },
          "debtToEquity": {
            "description": "Percent (40 means 40%).",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "epsTtm": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "fiscalPeriod": {
            "description": "Fiscal period of that filing (`FY`, `Q1`..`Q4`).",
            "type": [
              "string",
              "null"
            ]
          },
          "grossMargin": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "lastPrice": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "marketCap": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "marketCapUnavailableReason": {
            "description": "Why the aggregate capitalization cannot be used with these statements.",
            "type": [
              "string",
              "null"
            ]
          },
          "metricSelection": {
            "$ref": "#/components/schemas/AnalyticsMetricSelection",
            "description": "Deterministic choice of the most context-appropriate reported multiple."
          },
          "netMargin": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "operatingMargin": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "pbTtm": {
            "description": "Price to the latest filed positive common-equity balance.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "peTtm": {
            "description": "Null without comparable capitalization and positive aggregate TTM income.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "priceCurrency": {
            "description": "Currency of the displayed price only; unknown for unlabelled local history.",
            "type": [
              "string",
              "null"
            ]
          },
          "psTtm": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "quoteCurrency": {
            "description": "Provider quote and statement units, retained without guessed conversion.",
            "type": [
              "string",
              "null"
            ]
          },
          "quoteObservedAt": {
            "description": "Last regular-market observation from the quote, not an independent cap timestamp.",
            "type": [
              "string",
              "null"
            ]
          },
          "reportingCurrency": {
            "type": [
              "string",
              "null"
            ]
          },
          "roe": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "metricSelection"
        ],
        "type": "object"
      },
      "AnalyticsMetricSelection": {
        "properties": {
          "availability": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsMetricAvailability"
            },
            "type": "array"
          },
          "capitalIntensity": {
            "$ref": "#/components/schemas/AnalyticsMetricContext"
          },
          "cyclicality": {
            "$ref": "#/components/schemas/AnalyticsMetricContext"
          },
          "metric": {
            "type": [
              "string",
              "null"
            ]
          },
          "profitability": {
            "$ref": "#/components/schemas/AnalyticsMetricContext"
          },
          "rationale": {
            "type": "string"
          },
          "value": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "rationale",
          "profitability",
          "capitalIntensity",
          "cyclicality",
          "availability"
        ],
        "type": "object"
      },
      "AnalyticsMetricAvailability": {
        "properties": {
          "available": {
            "type": "boolean"
          },
          "metric": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "value": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "metric",
          "available",
          "reason"
        ],
        "type": "object"
      },
      "AnalyticsMetricContext": {
        "properties": {
          "detail": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "state": {
            "type": "string"
          }
        },
        "required": [
          "state",
          "label",
          "detail"
        ],
        "type": "object"
      },
      "AnalyticsVerdict": {
        "description": "Disclosed multi-dimension summary, 0-100.\n\nPublishes its contributions, weights, and coverage denominator, omits\nrather than imputes an unavailable dimension, and renormalizes weights over\nwhat is present. It is not a buy/sell signal and must never be rendered as\none (spec 012 FR-015).",
        "properties": {
          "components": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsVerdictComponent"
            },
            "type": "array"
          },
          "computedAt": {
            "format": "date-time",
            "type": "string"
          },
          "coverageLabel": {
            "description": "Pre-rendered coverage sentence, e.g. \"Computed from 4 of 5 dimensions\".",
            "type": "string"
          },
          "dimensionsAvailable": {
            "minimum": 0,
            "type": "integer"
          },
          "dimensionsTotal": {
            "minimum": 0,
            "type": "integer"
          },
          "disclosure": {
            "description": "Fixed non-advice disclosure; render verbatim.",
            "type": "string"
          },
          "methodVersion": {
            "description": "Formula version, so a weighting change is visible and attributable.",
            "format": "int64",
            "type": "integer"
          },
          "missing": {
            "description": "Dimensions omitted, each with the reason.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "score": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "score",
          "components",
          "dimensionsAvailable",
          "dimensionsTotal",
          "coverageLabel",
          "missing",
          "methodVersion",
          "disclosure",
          "computedAt"
        ],
        "type": "object"
      },
      "AnalyticsVerdictComponent": {
        "description": "One dimension's contribution to the composite verdict.",
        "properties": {
          "basis": {
            "description": "What the score was computed from.",
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "score": {
            "description": "This dimension's own 0-100 score.",
            "format": "int64",
            "type": "integer"
          },
          "weightBps": {
            "description": "Weight after renormalizing over the available dimensions, in basis\npoints (10000 = 100%).",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "key",
          "label",
          "score",
          "weightBps",
          "basis"
        ],
        "type": "object"
      },
      "AnalyticsVolatility": {
        "properties": {
          "asOf": {
            "description": "Open time of the most recent candle behind these values.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "industryWeeklyVol": {
            "description": "Mean annualized weekly volatility of cohort peers with usable history.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "marketWeeklyVol": {
            "description": "SPY annualized weekly volatility. Null when SPY history is unavailable.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "rv20": {
            "description": "20-day annualized realized volatility in percent (daily log returns).",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "rv60": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "stableVsMarket": {
            "description": "Whether the symbol's weekly volatility is below SPY's. Null when\neither side is unavailable.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "weeklyVol": {
            "description": "Annualized weekly volatility in percent. Null with < 8 weekly returns.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "BManagedReplace": {
        "additionalProperties": false,
        "properties": {
          "externalUserId": {
            "description": "Stable opaque UUID for one member in your system. Never reuse it for another person.",
            "format": "uuid",
            "type": "string"
          },
          "newExternalUserId": {
            "description": "Stable opaque UUID for one member in your system. Never reuse it for another person.",
            "format": "uuid",
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "requestId": {
            "description": "Client-generated idempotency key. Retry the same intent with the same ID and identical input; a different intent needs a new ID.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "requestId",
          "externalUserId",
          "newExternalUserId",
          "reason"
        ],
        "type": "object"
      },
      "BLicenses": {
        "additionalProperties": true,
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/BLicenseResult"
            },
            "type": "array"
          },
          "nextCursor": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "items",
          "nextCursor"
        ],
        "type": "object"
      },
      "BPartnerStatus": {
        "additionalProperties": true,
        "properties": {
          "agreementVersion": {
            "type": "string"
          },
          "approvalStatus": {
            "type": "string"
          },
          "business": {
            "$ref": "#/components/schemas/BPublicBusiness"
          },
          "identityModes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "maximumLicenses": {
            "anyOf": [
              {
                "format": "int64",
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "minimumLicenses": {
            "anyOf": [
              {
                "format": "int64",
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "nextStep": {
            "type": "string"
          },
          "partnerManagedResearch": {
            "additionalProperties": true,
            "description": "Extensible server response projection. Available fields depend on the operation and resource state; preserve accompanying identity, provenance and freshness fields when supplied.",
            "type": "object"
          },
          "readiness": {
            "additionalProperties": true,
            "description": "Extensible server response projection. Available fields depend on the operation and resource state; preserve accompanying identity, provenance and freshness fields when supplied.",
            "type": "object"
          },
          "researchApi": {
            "additionalProperties": true,
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "includedReports": {
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "suspended": {
            "type": "boolean"
          },
          "tiers": {
            "items": {
              "$ref": "#/components/schemas/BCapacityTier"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "BLicenseResult": {
        "additionalProperties": true,
        "properties": {
          "claimed": {
            "type": "boolean"
          },
          "coverageEnd": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "identityMode": {
            "enum": [
              "named",
              "partner_managed"
            ],
            "type": "string"
          },
          "includedReports": {
            "format": "int64",
            "type": "integer"
          },
          "launchUrl": {
            "anyOf": [
              {
                "format": "uri",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "license": {
            "$ref": "#/components/schemas/BLicense"
          },
          "message": {
            "type": "string"
          },
          "status": {
            "enum": [
              "replaced",
              "revoked",
              "suspended",
              "below_minimum",
              "awaiting_capacity",
              "capability_disabled",
              "detached",
              "awaiting_claim",
              "active"
            ],
            "type": "string"
          },
          "tier": {
            "enum": [
              "individual",
              "business_seat"
            ],
            "type": "string"
          }
        },
        "required": [
          "license",
          "tier",
          "status",
          "identityMode",
          "includedReports"
        ],
        "type": "object"
      },
      "BPublicBusiness": {
        "additionalProperties": true,
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "website": {
            "format": "uri",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "website"
        ],
        "type": "object"
      },
      "BLicense": {
        "additionalProperties": true,
        "properties": {
          "businessId": {
            "format": "uuid",
            "type": "string"
          },
          "carriedPeriodStart": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "carriedReports": {
            "format": "int64",
            "type": "integer"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "detachedAt": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "externalUserId": {
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "lastGenuineTransferAt": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "licenseType": {
            "enum": [
              "individual",
              "business_seat"
            ],
            "type": "string"
          },
          "organizationId": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "replacesLicenseId": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "revocationReason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "revokedAt": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "seatSlot": {
            "anyOf": [
              {
                "format": "int64",
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "userId": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "BCapacityTier": {
        "additionalProperties": true,
        "properties": {
          "approved": {
            "type": "boolean"
          },
          "availableUnits": {
            "format": "int64",
            "type": "integer"
          },
          "cancelAtPeriodEnd": {
            "type": "boolean"
          },
          "capabilities": {
            "additionalProperties": true,
            "description": "Extensible server response projection. Available fields depend on the operation and resource state; preserve accompanying identity, provenance and freshness fields when supplied.",
            "type": "object"
          },
          "checkoutUrl": {
            "anyOf": [
              {
                "format": "uri",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "monthlyMinor": {
            "anyOf": [
              {
                "format": "int64",
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "occupiedUnits": {
            "format": "int64",
            "type": "integer"
          },
          "pendingUnits": {
            "anyOf": [
              {
                "format": "int64",
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "periodEnd": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "periodStart": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "purchasedUnits": {
            "format": "int64",
            "type": "integer"
          },
          "requestedUnits": {
            "format": "int64",
            "type": "integer"
          },
          "retailMonthlyMinor": {
            "format": "int64",
            "type": "integer"
          },
          "status": {
            "enum": [
              "none",
              "active",
              "ending",
              "lapsed",
              "awaiting_payment",
              "checkout_open",
              "awaiting_checkout",
              "below_minimum"
            ],
            "type": "string"
          },
          "tier": {
            "enum": [
              "individual",
              "business_seat"
            ],
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "bearer_auth": {
        "bearerFormat": "JWT",
        "description": "JWT from the CommonQuant authentication flow.",
        "scheme": "bearer",
        "type": "http"
      },
      "business_key": {
        "description": "Self-serve sandbox key (cq_sandbox_...) created in the partner portal at https://partners.commonquant.ai. Valid until the expiry chosen when it was created. Never use a production key here; production rejects sandbox keys.",
        "in": "header",
        "name": "X-CQ-Business-Key",
        "type": "apiKey"
      },
      "cookieAuth": {
        "description": "HttpOnly CommonQuant session. Browser mutations also require the existing CSRF token/header. Use the hosted owner portal for payments.",
        "in": "cookie",
        "name": "cq_access",
        "type": "apiKey"
      },
      "growth_service_token": {
        "description": "Dedicated commonquant read-only Replikate Growth service credential; account and administrator JWTs do not authorize this integration",
        "scheme": "bearer",
        "type": "http"
      },
      "license_secret": {
        "description": "Accountless license secret issued once by create/rotate. Required together with X-CQ-Business-Key and the matching externalUserId. A license UUID alone grants no access.",
        "in": "header",
        "name": "X-CQ-License-Secret",
        "type": "apiKey"
      }
    }
  },
  "x-commonquant-source": {
    "repository": "Replikate-Labs/common-quant-backend",
    "baseline": "da3e52fb3cacd907f26a0f383605c54f400098ea",
    "openapiSHA256": "e9099b34a16e4226a094e98290a353336557365c176a9e34bdec07789197a3af"
  },
  "externalDocs": {
    "description": "CommonQuant sandbox integration documentation",
    "url": "https://sandbox.commonquant.ai/api"
  },
  "x-commonquant-options-source": {
    "integrationBase": "991df6b858f550187b5e2404361d7a2444f2166e",
    "authoringSource": "docs/business.openapi.json",
    "authoringSha256": "0bafd41fc3b79bb80fc6b50726599bdaecfd25be5588f93ad6d7727f0a4f2e42",
    "qualification": "source_only_uncompiled_unexecuted; prior x-commonquant-source records original bounded subset provenance"
  },
  "x-commonquant-consumer-fixtures": {
    "productionContractSha256": "bec2ddfed0ce0da5f862929647c3406a834174e264579cd3798474f4a0543654",
    "sourceBase": "802e6912dde623cfa6af98e989209320b28dca0c",
    "schemaReuse": "Selected response components only; no consumer/admin/paid routes mounted",
    "fixedHistoryRows": 8,
    "simulatedRegistry": [
      "AAPL",
      "BTC",
      "SPY"
    ],
    "runtimeQualification": "UNRUN; actual native captures and no-charge/isolation tests required"
  }
}
