{
  "schemaVersion": 1,
  "operation": {
    "operationId": "createSavedExploration",
    "method": "POST",
    "path": "/api/v1/projects/{project}/saved-explorations",
    "summary": "Create a saved exploration",
    "description": "",
    "tags": [
      "Saved Explorations"
    ],
    "effect": "write",
    "confirmation": "conditional",
    "parameters": [
      {
        "name": "project",
        "in": "path",
        "required": true,
        "description": "",
        "schema": {
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
          "type": "string"
        }
      },
      {
        "name": "Idempotency-Key",
        "in": "header",
        "required": true,
        "description": "",
        "schema": {
          "maxLength": 200,
          "minLength": 1,
          "type": "string"
        }
      }
    ],
    "requestBody": {
      "required": true,
      "description": "",
      "content": [
        {
          "contentType": "application/json",
          "schema": {
            "$ref": "#/components/schemas/SavedExplorationCreateRequest"
          }
        }
      ]
    },
    "responses": [
      {
        "status": "201",
        "description": "The request has succeeded and a new resource has been created as a result.",
        "content": [
          {
            "contentType": "application/json",
            "schema": {
              "$ref": "#/components/schemas/SavedExplorationResponse"
            }
          }
        ]
      },
      {
        "status": "400",
        "description": "The server could not understand the request due to invalid syntax.",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "401",
        "description": "Access is unauthorized.",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "403",
        "description": "Access is forbidden.",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "404",
        "description": "The server cannot find the requested resource.",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "409",
        "description": "The request conflicts with the current state of the server.",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "412",
        "description": "Precondition failed.",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "413",
        "description": "Client error",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "415",
        "description": "Client error",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "422",
        "description": "Client error",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "429",
        "description": "Client error",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "500",
        "description": "Server error",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "502",
        "description": "Server error",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "503",
        "description": "Service unavailable.",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      }
    ]
  },
  "schemas": {
    "AbsoluteExplorationTimeRange": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationTimeRangeBase"
        }
      ],
      "description": "Absolute bounds may be open on either side, but at least one is required by validation.",
      "example": {
        "kind": "example",
        "lower": {
          "inclusive": true
        },
        "upper": {
          "inclusive": true
        }
      },
      "properties": {
        "kind": {
          "enum": [
            "absolute"
          ],
          "example": "example",
          "type": "string"
        },
        "lower": {
          "$ref": "#/components/schemas/ExplorationTimeBound"
        },
        "upper": {
          "$ref": "#/components/schemas/ExplorationTimeBound"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "BooleanExplorationFilterValue": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationFilterValueBase"
        }
      ],
      "example": {
        "kind": "example",
        "value": true
      },
      "properties": {
        "kind": {
          "enum": [
            "boolean"
          ],
          "example": "example",
          "type": "string"
        },
        "value": {
          "example": true,
          "type": "boolean"
        }
      },
      "required": [
        "kind",
        "value"
      ],
      "type": "object"
    },
    "CartesianExplorationVisualization": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationVisualizationConfigBase"
        }
      ],
      "example": {
        "kind": "example",
        "mark": "line",
        "series": {
          "field": "example"
        },
        "showSymbols": true,
        "smooth": true,
        "x": {
          "field": "example"
        },
        "y": [
          {
            "field": "example"
          }
        ]
      },
      "properties": {
        "kind": {
          "enum": [
            "cartesian"
          ],
          "example": "example",
          "type": "string"
        },
        "mark": {
          "$ref": "#/components/schemas/VisualizationCartesianMark"
        },
        "series": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "showSymbols": {
          "example": true,
          "type": "boolean"
        },
        "smooth": {
          "example": true,
          "type": "boolean"
        },
        "x": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "y": {
          "example": [
            {
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
          },
          "type": "array"
        }
      },
      "required": [
        "kind",
        "mark"
      ],
      "type": "object"
    },
    "CompactVisualizationFormat": {
      "allOf": [
        {
          "$ref": "#/components/schemas/VisualizationFormatBase"
        }
      ],
      "example": {
        "kind": "example",
        "maximumFractionDigits": 1
      },
      "properties": {
        "kind": {
          "enum": [
            "compact"
          ],
          "example": "example",
          "type": "string"
        },
        "maximumFractionDigits": {
          "example": 1,
          "format": "int32",
          "type": "integer"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "ComparisonExplorationFilterExpression": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationFilterExpressionBase"
        }
      ],
      "example": {
        "kind": "example",
        "operator": "example"
      },
      "properties": {
        "kind": {
          "enum": [
            "comparison"
          ],
          "example": "example",
          "type": "string"
        },
        "operator": {
          "enum": [
            "equals",
            "not_equals",
            "contains",
            "not_contains",
            "starts_with",
            "ends_with",
            "greater_than",
            "greater_than_or_equal",
            "less_than",
            "less_than_or_equal"
          ],
          "example": "example",
          "type": "string"
        },
        "value": {
          "$ref": "#/components/schemas/ExplorationFilterValue"
        }
      },
      "required": [
        "kind",
        "operator",
        "value"
      ],
      "type": "object"
    },
    "CurrencyVisualizationFormat": {
      "allOf": [
        {
          "$ref": "#/components/schemas/VisualizationFormatBase"
        }
      ],
      "description": "Currency display format; the default fraction range is 2..2. One-sided bounds follow the numeric format rule.",
      "example": {
        "currency": "example",
        "kind": "example",
        "maximumFractionDigits": 1,
        "minimumFractionDigits": 1
      },
      "properties": {
        "currency": {
          "example": "example",
          "type": "string"
        },
        "kind": {
          "enum": [
            "currency"
          ],
          "example": "example",
          "type": "string"
        },
        "maximumFractionDigits": {
          "example": 1,
          "format": "int32",
          "type": "integer"
        },
        "minimumFractionDigits": {
          "example": 1,
          "format": "int32",
          "type": "integer"
        }
      },
      "required": [
        "kind",
        "currency"
      ],
      "type": "object"
    },
    "DateExplorationFilterValue": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationFilterValueBase"
        }
      ],
      "example": {
        "kind": "example",
        "value": "2026-01-02"
      },
      "properties": {
        "kind": {
          "enum": [
            "date"
          ],
          "example": "example",
          "type": "string"
        },
        "value": {
          "example": "2026-01-02",
          "format": "date",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "value"
      ],
      "type": "object"
    },
    "DateExplorationTemporalValue": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationTemporalValueBase"
        }
      ],
      "example": {
        "kind": "example",
        "value": "2026-01-02"
      },
      "properties": {
        "kind": {
          "enum": [
            "date"
          ],
          "example": "example",
          "type": "string"
        },
        "value": {
          "example": "2026-01-02",
          "format": "date",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "value"
      ],
      "type": "object"
    },
    "DecimalExplorationFilterValue": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationFilterValueBase"
        }
      ],
      "example": {
        "kind": "example",
        "value": "example"
      },
      "properties": {
        "kind": {
          "enum": [
            "decimal"
          ],
          "example": "example",
          "type": "string"
        },
        "value": {
          "description": "Canonical decimal representation.",
          "example": "example",
          "minLength": 1,
          "pattern": "^-?(0|[1-9][0-9]*)(\\.[0-9]+)?$",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "value"
      ],
      "type": "object"
    },
    "DurationVisualizationFormat": {
      "allOf": [
        {
          "$ref": "#/components/schemas/VisualizationFormatBase"
        }
      ],
      "example": {
        "kind": "example",
        "unit": "example"
      },
      "properties": {
        "kind": {
          "enum": [
            "duration"
          ],
          "example": "example",
          "type": "string"
        },
        "unit": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "unit"
      ],
      "type": "object"
    },
    "ExplorationDimensionRef": {
      "description": "A dimension selection may carry its own time grain and output alias.",
      "example": {
        "alias": "example",
        "field": "example",
        "grain": "second"
      },
      "properties": {
        "alias": {
          "example": "example",
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
          "type": "string"
        },
        "field": {
          "example": "example",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_.:-]*$",
          "type": "string"
        },
        "grain": {
          "$ref": "#/components/schemas/ExplorationTimeGrain"
        }
      },
      "required": [
        "field"
      ],
      "type": "object"
    },
    "ExplorationFilter": {
      "description": "A typed semantic predicate, optionally scoped to a participating dataset.",
      "example": {
        "datasetId": "example",
        "field": "example"
      },
      "properties": {
        "datasetId": {
          "example": "example",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
          "type": "string"
        },
        "expression": {
          "$ref": "#/components/schemas/ExplorationFilterExpression"
        },
        "field": {
          "example": "example",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_.:-]*$",
          "type": "string"
        }
      },
      "required": [
        "field",
        "expression"
      ],
      "type": "object"
    },
    "ExplorationFilterBound": {
      "example": {
        "inclusive": true
      },
      "properties": {
        "inclusive": {
          "example": true,
          "type": "boolean"
        },
        "value": {
          "$ref": "#/components/schemas/ExplorationFilterValue"
        }
      },
      "required": [
        "value",
        "inclusive"
      ],
      "type": "object"
    },
    "ExplorationFilterExpression": {
      "discriminator": {
        "mapping": {
          "comparison": "#/components/schemas/ComparisonExplorationFilterExpression",
          "null_check": "#/components/schemas/NullCheckExplorationFilterExpression",
          "range": "#/components/schemas/RangeExplorationFilterExpression",
          "relative_period": "#/components/schemas/RelativePeriodExplorationFilterExpression",
          "set": "#/components/schemas/SetExplorationFilterExpression",
          "unfiltered": "#/components/schemas/UnfilteredExplorationFilterExpression"
        },
        "propertyName": "kind"
      },
      "oneOf": [
        {
          "$ref": "#/components/schemas/UnfilteredExplorationFilterExpression"
        },
        {
          "$ref": "#/components/schemas/NullCheckExplorationFilterExpression"
        },
        {
          "$ref": "#/components/schemas/SetExplorationFilterExpression"
        },
        {
          "$ref": "#/components/schemas/ComparisonExplorationFilterExpression"
        },
        {
          "$ref": "#/components/schemas/RangeExplorationFilterExpression"
        },
        {
          "$ref": "#/components/schemas/RelativePeriodExplorationFilterExpression"
        }
      ]
    },
    "ExplorationFilterExpressionBase": {
      "example": {
        "kind": "example"
      },
      "properties": {
        "kind": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "ExplorationFilterValue": {
      "discriminator": {
        "mapping": {
          "boolean": "#/components/schemas/BooleanExplorationFilterValue",
          "date": "#/components/schemas/DateExplorationFilterValue",
          "decimal": "#/components/schemas/DecimalExplorationFilterValue",
          "integer": "#/components/schemas/IntegerExplorationFilterValue",
          "string": "#/components/schemas/StringExplorationFilterValue",
          "timestamp": "#/components/schemas/TimestampExplorationFilterValue"
        },
        "propertyName": "kind"
      },
      "oneOf": [
        {
          "$ref": "#/components/schemas/StringExplorationFilterValue"
        },
        {
          "$ref": "#/components/schemas/BooleanExplorationFilterValue"
        },
        {
          "$ref": "#/components/schemas/IntegerExplorationFilterValue"
        },
        {
          "$ref": "#/components/schemas/DecimalExplorationFilterValue"
        },
        {
          "$ref": "#/components/schemas/DateExplorationFilterValue"
        },
        {
          "$ref": "#/components/schemas/TimestampExplorationFilterValue"
        }
      ]
    },
    "ExplorationFilterValueBase": {
      "description": "Typed scalar values prevent URL, agent, and execution layers from guessing types.",
      "example": {
        "kind": "example"
      },
      "properties": {
        "kind": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "ExplorationGeographicLayerKind": {
      "enum": [
        "choropleth",
        "point",
        "heat",
        "density",
        "reference",
        "path"
      ],
      "example": "choropleth",
      "type": "string"
    },
    "ExplorationKPIPresentation": {
      "description": "Optional authored KPI presentation; omitted properties retain renderer defaults.",
      "example": {
        "delta": "absolute",
        "displayUnits": "auto",
        "favorableDirection": "increase",
        "missingComparison": "show_unavailable",
        "mode": "compact",
        "note": "example",
        "ranges": [
          {
            "label": "example",
            "maximum": 1,
            "minimum": 1,
            "tone": "neutral"
          }
        ],
        "thresholds": [
          {
            "tone": "neutral",
            "value": 1
          }
        ],
        "tone": "neutral"
      },
      "properties": {
        "delta": {
          "$ref": "#/components/schemas/VisualizationKPIDeltaMode"
        },
        "displayUnits": {
          "$ref": "#/components/schemas/VisualizationDisplayUnits"
        },
        "favorableDirection": {
          "$ref": "#/components/schemas/VisualizationKPIDirection"
        },
        "missingComparison": {
          "$ref": "#/components/schemas/VisualizationKPIMissingComparison"
        },
        "mode": {
          "$ref": "#/components/schemas/VisualizationKPIMode"
        },
        "note": {
          "example": "example",
          "type": "string"
        },
        "ranges": {
          "example": [
            {
              "label": "example",
              "maximum": 1,
              "minimum": 1,
              "tone": "neutral"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/VisualizationKPIQualitativeRange"
          },
          "type": "array"
        },
        "thresholds": {
          "example": [
            {
              "tone": "neutral",
              "value": 1
            }
          ],
          "items": {
            "$ref": "#/components/schemas/VisualizationThreshold"
          },
          "type": "array"
        },
        "tone": {
          "$ref": "#/components/schemas/VisualizationTone"
        }
      },
      "type": "object"
    },
    "ExplorationKPITrend": {
      "example": {
        "category": {
          "field": "example"
        },
        "value": {
          "field": "example"
        }
      },
      "properties": {
        "category": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "value": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        }
      },
      "required": [
        "category",
        "value"
      ],
      "type": "object"
    },
    "ExplorationMetricRef": {
      "description": "A metric selection may carry an output alias.",
      "example": {
        "alias": "example",
        "field": "example"
      },
      "properties": {
        "alias": {
          "example": "example",
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
          "type": "string"
        },
        "field": {
          "example": "example",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_.:-]*$",
          "type": "string"
        }
      },
      "required": [
        "field"
      ],
      "type": "object"
    },
    "ExplorationPivotConfig": {
      "description": "Pivot query shape authored independently of renderer output state.",
      "example": {
        "columns": [
          {
            "alias": "example",
            "field": "example",
            "grain": "second"
          }
        ],
        "metrics": [
          {
            "alias": "example",
            "field": "example"
          }
        ],
        "rows": [
          {
            "alias": "example",
            "field": "example",
            "grain": "second"
          }
        ],
        "sort": [
          {
            "direction": "asc",
            "field": "example"
          }
        ],
        "totals": {
          "columns": true,
          "grand": true,
          "rows": true
        },
        "window": {
          "limit": 1,
          "offset": 1
        }
      },
      "properties": {
        "columns": {
          "example": [
            {
              "alias": "example",
              "field": "example",
              "grain": "second"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationDimensionRef"
          },
          "maxItems": 100,
          "type": "array"
        },
        "metrics": {
          "example": [
            {
              "alias": "example",
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationMetricRef"
          },
          "maxItems": 100,
          "type": "array"
        },
        "rows": {
          "example": [
            {
              "alias": "example",
              "field": "example",
              "grain": "second"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationDimensionRef"
          },
          "maxItems": 100,
          "type": "array"
        },
        "sort": {
          "example": [
            {
              "direction": "asc",
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationSort"
          },
          "maxItems": 100,
          "type": "array"
        },
        "totals": {
          "$ref": "#/components/schemas/ExplorationPivotTotals"
        },
        "window": {
          "$ref": "#/components/schemas/ExplorationPivotWindow"
        }
      },
      "required": [
        "rows",
        "columns",
        "metrics"
      ],
      "type": "object"
    },
    "ExplorationPivotTotals": {
      "example": {
        "columns": true,
        "grand": true,
        "rows": true
      },
      "properties": {
        "columns": {
          "example": true,
          "type": "boolean"
        },
        "grand": {
          "example": true,
          "type": "boolean"
        },
        "rows": {
          "example": true,
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "ExplorationPivotWindow": {
      "example": {
        "limit": 1,
        "offset": 1
      },
      "properties": {
        "limit": {
          "example": 1,
          "format": "int32",
          "maximum": 1000,
          "minimum": 1,
          "type": "integer"
        },
        "offset": {
          "example": 1,
          "format": "int32",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "limit"
      ],
      "type": "object"
    },
    "ExplorationQueryMode": {
      "description": "Aggregate groups selected fields; records preserves individual source rows.",
      "enum": [
        "aggregate",
        "records"
      ],
      "example": "aggregate",
      "type": "string"
    },
    "ExplorationRelativeAnchor": {
      "enum": [
        "current_time",
        "first_available",
        "last_available",
        "fixed"
      ],
      "example": "current_time",
      "type": "string"
    },
    "ExplorationRelativeDirection": {
      "enum": [
        "previous",
        "current",
        "next"
      ],
      "example": "previous",
      "type": "string"
    },
    "ExplorationRelativeUnit": {
      "enum": [
        "minute",
        "hour",
        "day",
        "week",
        "month",
        "quarter",
        "year"
      ],
      "example": "minute",
      "type": "string"
    },
    "ExplorationSort": {
      "description": "Ordered multi-sort over a selected semantic field or authored alias.",
      "example": {
        "direction": "asc",
        "field": "example"
      },
      "properties": {
        "direction": {
          "$ref": "#/components/schemas/ExplorationSortDirection"
        },
        "field": {
          "example": "example",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_.:-]*$",
          "type": "string"
        }
      },
      "required": [
        "field",
        "direction"
      ],
      "type": "object"
    },
    "ExplorationSortDirection": {
      "enum": [
        "asc",
        "desc"
      ],
      "example": "asc",
      "type": "string"
    },
    "ExplorationSpec": {
      "description": "Complete authored exploration state. This is deliberately not a\nVisualizationSpec or VisualizationEnvelope: it contains no compiled field\nschema, renderer ID, data revision/state, selection, rows, or diagnostics.",
      "example": {
        "datasetId": "example",
        "dimensions": [
          {
            "alias": "example",
            "field": "example",
            "grain": "second"
          }
        ],
        "filters": [
          {
            "datasetId": "example",
            "field": "example"
          }
        ],
        "limit": 1,
        "metrics": [
          {
            "alias": "example",
            "field": "example"
          }
        ],
        "mode": "aggregate",
        "modelId": "example",
        "pivot": {
          "columns": [
            {
              "alias": "example",
              "field": "example",
              "grain": "second"
            }
          ],
          "metrics": [
            {
              "alias": "example",
              "field": "example"
            }
          ],
          "rows": [
            {
              "alias": "example",
              "field": "example",
              "grain": "second"
            }
          ],
          "sort": [
            {
              "direction": "asc",
              "field": "example"
            }
          ],
          "totals": {
            "columns": true,
            "grand": true,
            "rows": true
          },
          "window": {
            "limit": 1,
            "offset": 1
          }
        },
        "schemaVersion": 1,
        "sort": [
          {
            "direction": "asc",
            "field": "example"
          }
        ],
        "table": {
          "columns": [
            {
              "field": "example",
              "label": "example",
              "width": 1
            }
          ],
          "density": "compact",
          "rowHeight": 1,
          "showHeader": true,
          "striped": true
        },
        "time": {
          "alias": "example",
          "field": "example",
          "grain": "second"
        }
      },
      "properties": {
        "datasetId": {
          "example": "example",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
          "type": "string"
        },
        "dimensions": {
          "example": [
            {
              "alias": "example",
              "field": "example",
              "grain": "second"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationDimensionRef"
          },
          "maxItems": 100,
          "type": "array"
        },
        "filters": {
          "example": [
            {
              "datasetId": "example",
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationFilter"
          },
          "maxItems": 100,
          "type": "array"
        },
        "limit": {
          "example": 1,
          "format": "int32",
          "maximum": 1000,
          "minimum": 1,
          "type": "integer"
        },
        "metrics": {
          "example": [
            {
              "alias": "example",
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationMetricRef"
          },
          "maxItems": 100,
          "type": "array"
        },
        "mode": {
          "$ref": "#/components/schemas/ExplorationQueryMode",
          "description": "Omitted means aggregate. Records preserves duplicate source rows."
        },
        "modelId": {
          "example": "example",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
          "type": "string"
        },
        "pivot": {
          "$ref": "#/components/schemas/ExplorationPivotConfig"
        },
        "schemaVersion": {
          "example": 1,
          "type": "integer"
        },
        "sort": {
          "example": [
            {
              "direction": "asc",
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationSort"
          },
          "maxItems": 100,
          "type": "array"
        },
        "table": {
          "$ref": "#/components/schemas/ExplorationTableDisplayConfig"
        },
        "time": {
          "$ref": "#/components/schemas/ExplorationTimeSelection"
        },
        "visualization": {
          "$ref": "#/components/schemas/ExplorationVisualizationConfig"
        }
      },
      "required": [
        "schemaVersion",
        "modelId",
        "dimensions",
        "metrics",
        "filters",
        "sort",
        "limit"
      ],
      "type": "object"
    },
    "ExplorationTableColumn": {
      "example": {
        "field": "example",
        "label": "example",
        "width": 1
      },
      "properties": {
        "field": {
          "example": "example",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_.:-]*$",
          "type": "string"
        },
        "format": {
          "$ref": "#/components/schemas/VisualizationFormat"
        },
        "label": {
          "example": "example",
          "type": "string"
        },
        "width": {
          "example": 1,
          "format": "int32",
          "maximum": 2000,
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "field"
      ],
      "type": "object"
    },
    "ExplorationTableDensity": {
      "enum": [
        "compact",
        "comfortable"
      ],
      "example": "compact",
      "type": "string"
    },
    "ExplorationTableDisplayConfig": {
      "description": "Durable table preferences; rows, loading state, and result data are excluded.",
      "example": {
        "columns": [
          {
            "field": "example",
            "label": "example",
            "width": 1
          }
        ],
        "density": "compact",
        "rowHeight": 1,
        "showHeader": true,
        "striped": true
      },
      "properties": {
        "columns": {
          "example": [
            {
              "field": "example",
              "label": "example",
              "width": 1
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationTableColumn"
          },
          "maxItems": 100,
          "type": "array"
        },
        "density": {
          "$ref": "#/components/schemas/ExplorationTableDensity"
        },
        "rowHeight": {
          "example": 1,
          "format": "int32",
          "maximum": 2000,
          "minimum": 1,
          "type": "integer"
        },
        "showHeader": {
          "example": true,
          "type": "boolean"
        },
        "striped": {
          "example": true,
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "ExplorationTemporalValue": {
      "discriminator": {
        "mapping": {
          "date": "#/components/schemas/DateExplorationTemporalValue",
          "timestamp": "#/components/schemas/TimestampExplorationTemporalValue"
        },
        "propertyName": "kind"
      },
      "oneOf": [
        {
          "$ref": "#/components/schemas/DateExplorationTemporalValue"
        },
        {
          "$ref": "#/components/schemas/TimestampExplorationTemporalValue"
        }
      ]
    },
    "ExplorationTemporalValueBase": {
      "example": {
        "kind": "example"
      },
      "properties": {
        "kind": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "ExplorationTimeBound": {
      "example": {
        "inclusive": true
      },
      "properties": {
        "inclusive": {
          "example": true,
          "type": "boolean"
        },
        "value": {
          "$ref": "#/components/schemas/ExplorationTemporalValue"
        }
      },
      "required": [
        "value",
        "inclusive"
      ],
      "type": "object"
    },
    "ExplorationTimeGrain": {
      "description": "The supported authored calendar grains.",
      "enum": [
        "second",
        "minute",
        "hour",
        "day",
        "week",
        "month",
        "quarter",
        "year"
      ],
      "example": "second",
      "type": "string"
    },
    "ExplorationTimeRange": {
      "discriminator": {
        "mapping": {
          "absolute": "#/components/schemas/AbsoluteExplorationTimeRange",
          "relative": "#/components/schemas/RelativeExplorationTimeRange"
        },
        "propertyName": "kind"
      },
      "oneOf": [
        {
          "$ref": "#/components/schemas/AbsoluteExplorationTimeRange"
        },
        {
          "$ref": "#/components/schemas/RelativeExplorationTimeRange"
        }
      ]
    },
    "ExplorationTimeRangeBase": {
      "example": {
        "kind": "example"
      },
      "properties": {
        "kind": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "ExplorationTimeSelection": {
      "example": {
        "alias": "example",
        "field": "example",
        "grain": "second"
      },
      "properties": {
        "alias": {
          "example": "example",
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
          "type": "string"
        },
        "field": {
          "example": "example",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_.:-]*$",
          "type": "string"
        },
        "grain": {
          "$ref": "#/components/schemas/ExplorationTimeGrain"
        },
        "range": {
          "$ref": "#/components/schemas/ExplorationTimeRange"
        }
      },
      "required": [
        "field",
        "grain"
      ],
      "type": "object"
    },
    "ExplorationVisualizationConfig": {
      "discriminator": {
        "mapping": {
          "cartesian": "#/components/schemas/CartesianExplorationVisualization",
          "geographic": "#/components/schemas/GeographicExplorationVisualization",
          "hierarchy": "#/components/schemas/HierarchyExplorationVisualization",
          "kpi": "#/components/schemas/KPIExplorationVisualization",
          "matrix": "#/components/schemas/MatrixExplorationVisualization",
          "pivot": "#/components/schemas/PivotExplorationVisualization",
          "point": "#/components/schemas/PointExplorationVisualization",
          "polar": "#/components/schemas/PolarExplorationVisualization",
          "proportional": "#/components/schemas/ProportionalExplorationVisualization",
          "table": "#/components/schemas/TableExplorationVisualization"
        },
        "propertyName": "kind"
      },
      "oneOf": [
        {
          "$ref": "#/components/schemas/CartesianExplorationVisualization"
        },
        {
          "$ref": "#/components/schemas/PointExplorationVisualization"
        },
        {
          "$ref": "#/components/schemas/ProportionalExplorationVisualization"
        },
        {
          "$ref": "#/components/schemas/HierarchyExplorationVisualization"
        },
        {
          "$ref": "#/components/schemas/PolarExplorationVisualization"
        },
        {
          "$ref": "#/components/schemas/TableExplorationVisualization"
        },
        {
          "$ref": "#/components/schemas/MatrixExplorationVisualization"
        },
        {
          "$ref": "#/components/schemas/PivotExplorationVisualization"
        },
        {
          "$ref": "#/components/schemas/KPIExplorationVisualization"
        },
        {
          "$ref": "#/components/schemas/GeographicExplorationVisualization"
        }
      ]
    },
    "ExplorationVisualizationConfigBase": {
      "example": {
        "displayUnits": "auto",
        "kind": "example",
        "legend": "hidden",
        "orientation": "horizontal",
        "stacking": "none",
        "subtitle": "example",
        "title": "example"
      },
      "properties": {
        "displayUnits": {
          "$ref": "#/components/schemas/VisualizationDisplayUnits"
        },
        "kind": {
          "example": "example",
          "type": "string"
        },
        "legend": {
          "$ref": "#/components/schemas/VisualizationLegendPosition"
        },
        "orientation": {
          "$ref": "#/components/schemas/VisualizationOrientation"
        },
        "stacking": {
          "$ref": "#/components/schemas/VisualizationStackingMode"
        },
        "subtitle": {
          "example": "example",
          "type": "string"
        },
        "title": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "ExplorationVisualizationFieldRef": {
      "description": "Authored visualization bindings use semantic IDs or authored aliases, never result data.",
      "example": {
        "field": "example"
      },
      "properties": {
        "field": {
          "example": "example",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_.:-]*$",
          "type": "string"
        },
        "format": {
          "$ref": "#/components/schemas/VisualizationFormat"
        }
      },
      "required": [
        "field"
      ],
      "type": "object"
    },
    "GeographicExplorationVisualization": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationVisualizationConfigBase"
        }
      ],
      "example": {
        "color": {
          "field": "example"
        },
        "kind": "example",
        "latitude": {
          "field": "example"
        },
        "layer": "choropleth",
        "longitude": {
          "field": "example"
        },
        "size": {
          "field": "example"
        }
      },
      "properties": {
        "color": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "kind": {
          "enum": [
            "geographic"
          ],
          "example": "example",
          "type": "string"
        },
        "latitude": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "layer": {
          "$ref": "#/components/schemas/ExplorationGeographicLayerKind"
        },
        "longitude": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "size": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        }
      },
      "required": [
        "kind",
        "layer",
        "latitude",
        "longitude"
      ],
      "type": "object"
    },
    "HierarchyExplorationVisualization": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationVisualizationConfigBase"
        }
      ],
      "example": {
        "kind": "example",
        "mark": "treemap",
        "node": {
          "field": "example"
        },
        "parent": {
          "field": "example"
        },
        "value": {
          "field": "example"
        }
      },
      "properties": {
        "kind": {
          "enum": [
            "hierarchy"
          ],
          "example": "example",
          "type": "string"
        },
        "mark": {
          "$ref": "#/components/schemas/VisualizationHierarchyMark"
        },
        "node": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "parent": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "value": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        }
      },
      "required": [
        "kind",
        "mark",
        "node"
      ],
      "type": "object"
    },
    "IntegerExplorationFilterValue": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationFilterValueBase"
        }
      ],
      "example": {
        "kind": "example",
        "value": "example"
      },
      "properties": {
        "kind": {
          "enum": [
            "integer"
          ],
          "example": "example",
          "type": "string"
        },
        "value": {
          "description": "Precision-safe integer representation.",
          "example": "example",
          "minLength": 1,
          "pattern": "^(0|-?[1-9][0-9]*)$",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "value"
      ],
      "type": "object"
    },
    "KPIExplorationVisualization": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationVisualizationConfigBase"
        }
      ],
      "example": {
        "comparison": {
          "field": "example"
        },
        "goal": {
          "field": "example"
        },
        "kind": "example",
        "presentation": {
          "delta": "absolute",
          "displayUnits": "auto",
          "favorableDirection": "increase",
          "missingComparison": "show_unavailable",
          "mode": "compact",
          "note": "example",
          "ranges": [
            {
              "label": "example",
              "maximum": 1,
              "minimum": 1,
              "tone": "neutral"
            }
          ],
          "thresholds": [
            {
              "tone": "neutral",
              "value": 1
            }
          ],
          "tone": "neutral"
        },
        "trend": {
          "category": {
            "field": "example"
          },
          "value": {
            "field": "example"
          }
        },
        "value": {
          "field": "example"
        }
      },
      "properties": {
        "comparison": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "goal": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "kind": {
          "enum": [
            "kpi"
          ],
          "example": "example",
          "type": "string"
        },
        "presentation": {
          "$ref": "#/components/schemas/ExplorationKPIPresentation"
        },
        "trend": {
          "$ref": "#/components/schemas/ExplorationKPITrend"
        },
        "value": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        }
      },
      "required": [
        "kind",
        "value"
      ],
      "type": "object"
    },
    "MatrixExplorationVisualization": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationVisualizationConfigBase"
        }
      ],
      "example": {
        "columns": [
          {
            "field": "example"
          }
        ],
        "kind": "example",
        "metrics": [
          {
            "field": "example"
          }
        ],
        "rows": [
          {
            "field": "example"
          }
        ]
      },
      "properties": {
        "columns": {
          "example": [
            {
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
          },
          "maxItems": 100,
          "type": "array"
        },
        "kind": {
          "enum": [
            "matrix"
          ],
          "example": "example",
          "type": "string"
        },
        "metrics": {
          "example": [
            {
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
          },
          "maxItems": 100,
          "type": "array"
        },
        "rows": {
          "example": [
            {
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
          },
          "maxItems": 100,
          "type": "array"
        }
      },
      "required": [
        "kind",
        "rows",
        "columns",
        "metrics"
      ],
      "type": "object"
    },
    "NullCheckExplorationFilterExpression": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationFilterExpressionBase"
        }
      ],
      "example": {
        "kind": "example",
        "operator": "example"
      },
      "properties": {
        "kind": {
          "enum": [
            "null_check"
          ],
          "example": "example",
          "type": "string"
        },
        "operator": {
          "enum": [
            "is_null",
            "is_not_null"
          ],
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "operator"
      ],
      "type": "object"
    },
    "NumberVisualizationFormat": {
      "allOf": [
        {
          "$ref": "#/components/schemas/VisualizationFormatBase"
        }
      ],
      "description": "Numeric display format. With no fraction bounds, values use 0..3 digits.\nA one-sided bound preserves that default on the unconstrained side unless\nit would make the range invalid: a maximum below the default minimum lowers\nthe minimum, and a minimum above the default maximum raises the maximum.",
      "example": {
        "kind": "example",
        "maximumFractionDigits": 1,
        "minimumFractionDigits": 1
      },
      "properties": {
        "kind": {
          "enum": [
            "number"
          ],
          "example": "example",
          "type": "string"
        },
        "maximumFractionDigits": {
          "example": 1,
          "format": "int32",
          "type": "integer"
        },
        "minimumFractionDigits": {
          "example": 1,
          "format": "int32",
          "type": "integer"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "PercentVisualizationFormat": {
      "allOf": [
        {
          "$ref": "#/components/schemas/VisualizationFormatBase"
        }
      ],
      "description": "Percent display format; the default fraction range is 0..1. One-sided bounds follow the numeric format rule.",
      "example": {
        "kind": "example",
        "maximumFractionDigits": 1,
        "minimumFractionDigits": 1
      },
      "properties": {
        "kind": {
          "enum": [
            "percent"
          ],
          "example": "example",
          "type": "string"
        },
        "maximumFractionDigits": {
          "example": 1,
          "format": "int32",
          "type": "integer"
        },
        "minimumFractionDigits": {
          "example": 1,
          "format": "int32",
          "type": "integer"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "PivotExplorationVisualization": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationVisualizationConfigBase"
        }
      ],
      "example": {
        "columns": [
          {
            "field": "example"
          }
        ],
        "kind": "example",
        "metrics": [
          {
            "field": "example"
          }
        ],
        "rows": [
          {
            "field": "example"
          }
        ]
      },
      "properties": {
        "columns": {
          "example": [
            {
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
          },
          "maxItems": 100,
          "type": "array"
        },
        "kind": {
          "enum": [
            "pivot"
          ],
          "example": "example",
          "type": "string"
        },
        "metrics": {
          "example": [
            {
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
          },
          "maxItems": 100,
          "type": "array"
        },
        "rows": {
          "example": [
            {
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
          },
          "maxItems": 100,
          "type": "array"
        }
      },
      "required": [
        "kind",
        "rows",
        "columns",
        "metrics"
      ],
      "type": "object"
    },
    "PointExplorationVisualization": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationVisualizationConfigBase"
        }
      ],
      "example": {
        "color": {
          "field": "example"
        },
        "identity": [
          {
            "field": "example"
          }
        ],
        "kind": "example",
        "mark": "example",
        "size": {
          "field": "example"
        },
        "x": {
          "field": "example"
        },
        "y": {
          "field": "example"
        }
      },
      "properties": {
        "color": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "identity": {
          "example": [
            {
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
          },
          "type": "array"
        },
        "kind": {
          "enum": [
            "point"
          ],
          "example": "example",
          "type": "string"
        },
        "mark": {
          "enum": [
            "point"
          ],
          "example": "example",
          "type": "string"
        },
        "size": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "x": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "y": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        }
      },
      "required": [
        "kind",
        "mark",
        "x",
        "y"
      ],
      "type": "object"
    },
    "PolarExplorationVisualization": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationVisualizationConfigBase"
        }
      ],
      "example": {
        "category": {
          "field": "example"
        },
        "kind": "example",
        "mark": "radar",
        "series": {
          "field": "example"
        },
        "value": {
          "field": "example"
        }
      },
      "properties": {
        "category": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "kind": {
          "enum": [
            "polar"
          ],
          "example": "example",
          "type": "string"
        },
        "mark": {
          "$ref": "#/components/schemas/VisualizationPolarMark"
        },
        "series": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "value": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        }
      },
      "required": [
        "kind",
        "mark",
        "value"
      ],
      "type": "object"
    },
    "ProblemDetails": {
      "example": {
        "code": "example",
        "detail": "example",
        "errors": [
          {
            "code": "example",
            "detail": "example",
            "field": "example"
          }
        ],
        "instance": "example",
        "requestId": "example",
        "status": 1,
        "title": "example",
        "type": "example"
      },
      "properties": {
        "code": {
          "example": "example",
          "type": "string"
        },
        "detail": {
          "example": "example",
          "type": "string"
        },
        "errors": {
          "example": [
            {
              "code": "example",
              "detail": "example",
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ProblemFieldError"
          },
          "type": "array"
        },
        "instance": {
          "example": "example",
          "type": "string"
        },
        "requestId": {
          "example": "example",
          "type": "string"
        },
        "status": {
          "example": 1,
          "format": "int32",
          "type": "integer"
        },
        "title": {
          "example": "example",
          "type": "string"
        },
        "type": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "type",
        "title",
        "status",
        "detail",
        "instance",
        "code",
        "requestId",
        "errors"
      ],
      "type": "object"
    },
    "ProblemFieldError": {
      "example": {
        "code": "example",
        "detail": "example",
        "field": "example"
      },
      "properties": {
        "code": {
          "example": "example",
          "type": "string"
        },
        "detail": {
          "example": "example",
          "type": "string"
        },
        "field": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "field",
        "code",
        "detail"
      ],
      "type": "object"
    },
    "ProportionalExplorationVisualization": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationVisualizationConfigBase"
        }
      ],
      "example": {
        "category": {
          "field": "example"
        },
        "kind": "example",
        "mark": "pie",
        "series": {
          "field": "example"
        },
        "value": {
          "field": "example"
        }
      },
      "properties": {
        "category": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "kind": {
          "enum": [
            "proportional"
          ],
          "example": "example",
          "type": "string"
        },
        "mark": {
          "$ref": "#/components/schemas/VisualizationProportionalMark"
        },
        "series": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        },
        "value": {
          "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
        }
      },
      "required": [
        "kind",
        "mark",
        "category",
        "value"
      ],
      "type": "object"
    },
    "RangeExplorationFilterExpression": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationFilterExpressionBase"
        }
      ],
      "example": {
        "kind": "example",
        "lower": {
          "inclusive": true
        },
        "upper": {
          "inclusive": true
        }
      },
      "properties": {
        "kind": {
          "enum": [
            "range"
          ],
          "example": "example",
          "type": "string"
        },
        "lower": {
          "$ref": "#/components/schemas/ExplorationFilterBound"
        },
        "upper": {
          "$ref": "#/components/schemas/ExplorationFilterBound"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "RelativeExplorationTimeRange": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationTimeRangeBase"
        }
      ],
      "example": {
        "anchor": "current_time",
        "count": 1,
        "direction": "previous",
        "includeCurrent": true,
        "kind": "example",
        "unit": "minute"
      },
      "properties": {
        "anchor": {
          "$ref": "#/components/schemas/ExplorationRelativeAnchor"
        },
        "anchorValue": {
          "$ref": "#/components/schemas/ExplorationTemporalValue"
        },
        "count": {
          "example": 1,
          "format": "int32",
          "minimum": 1,
          "type": "integer"
        },
        "direction": {
          "$ref": "#/components/schemas/ExplorationRelativeDirection"
        },
        "includeCurrent": {
          "example": true,
          "type": "boolean"
        },
        "kind": {
          "enum": [
            "relative"
          ],
          "example": "example",
          "type": "string"
        },
        "unit": {
          "$ref": "#/components/schemas/ExplorationRelativeUnit"
        }
      },
      "required": [
        "kind",
        "direction",
        "count",
        "unit",
        "includeCurrent",
        "anchor"
      ],
      "type": "object"
    },
    "RelativePeriodExplorationFilterExpression": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationFilterExpressionBase"
        }
      ],
      "example": {
        "anchor": "current_time",
        "count": 1,
        "direction": "previous",
        "includeCurrent": true,
        "kind": "example",
        "unit": "minute"
      },
      "properties": {
        "anchor": {
          "$ref": "#/components/schemas/ExplorationRelativeAnchor"
        },
        "anchorValue": {
          "$ref": "#/components/schemas/ExplorationFilterValue"
        },
        "count": {
          "example": 1,
          "format": "int32",
          "minimum": 1,
          "type": "integer"
        },
        "direction": {
          "$ref": "#/components/schemas/ExplorationRelativeDirection"
        },
        "includeCurrent": {
          "example": true,
          "type": "boolean"
        },
        "kind": {
          "enum": [
            "relative_period"
          ],
          "example": "example",
          "type": "string"
        },
        "unit": {
          "$ref": "#/components/schemas/ExplorationRelativeUnit"
        }
      },
      "required": [
        "kind",
        "direction",
        "count",
        "unit",
        "includeCurrent",
        "anchor"
      ],
      "type": "object"
    },
    "SavedExplorationCreateRequest": {
      "example": {
        "slug": "example",
        "spec": {
          "datasetId": "example",
          "dimensions": [
            {
              "alias": "example",
              "field": "example",
              "grain": "second"
            }
          ],
          "filters": [
            {
              "datasetId": "example",
              "field": "example"
            }
          ],
          "limit": 1,
          "metrics": [
            {
              "alias": "example",
              "field": "example"
            }
          ],
          "mode": "aggregate",
          "modelId": "example",
          "pivot": {
            "columns": [
              {
                "alias": "example",
                "field": "example",
                "grain": "second"
              }
            ],
            "metrics": [
              {
                "alias": "example",
                "field": "example"
              }
            ],
            "rows": [
              {
                "alias": "example",
                "field": "example",
                "grain": "second"
              }
            ],
            "sort": [
              {
                "direction": "asc",
                "field": "example"
              }
            ],
            "totals": {
              "columns": true,
              "grand": true,
              "rows": true
            },
            "window": {
              "limit": 1,
              "offset": 1
            }
          },
          "schemaVersion": 1,
          "sort": [
            {
              "direction": "asc",
              "field": "example"
            }
          ],
          "table": {
            "columns": [
              {
                "field": "example",
                "label": "example",
                "width": 1
              }
            ],
            "density": "compact",
            "rowHeight": 1,
            "showHeader": true,
            "striped": true
          },
          "time": {
            "alias": "example",
            "field": "example",
            "grain": "second"
          }
        },
        "title": "example",
        "visibility": "private"
      },
      "properties": {
        "slug": {
          "example": "example",
          "type": "string"
        },
        "spec": {
          "$ref": "#/components/schemas/ExplorationSpec"
        },
        "title": {
          "example": "example",
          "type": "string"
        },
        "visibility": {
          "$ref": "#/components/schemas/SavedExplorationVisibility"
        }
      },
      "required": [
        "title",
        "visibility",
        "spec"
      ],
      "type": "object"
    },
    "SavedExplorationResponse": {
      "allOf": [
        {
          "$ref": "#/components/schemas/SavedExplorationSummaryResponse"
        }
      ],
      "description": "GET is the reopen operation: it returns a detached, editable authored\nworking copy and the exact source revision token used by PATCH.",
      "example": {
        "spec": {
          "datasetId": "example",
          "dimensions": [
            {
              "alias": "example",
              "field": "example",
              "grain": "second"
            }
          ],
          "filters": [
            {
              "datasetId": "example",
              "field": "example"
            }
          ],
          "limit": 1,
          "metrics": [
            {
              "alias": "example",
              "field": "example"
            }
          ],
          "mode": "aggregate",
          "modelId": "example",
          "pivot": {
            "columns": [
              {
                "alias": "example",
                "field": "example",
                "grain": "second"
              }
            ],
            "metrics": [
              {
                "alias": "example",
                "field": "example"
              }
            ],
            "rows": [
              {
                "alias": "example",
                "field": "example",
                "grain": "second"
              }
            ],
            "sort": [
              {
                "direction": "asc",
                "field": "example"
              }
            ],
            "totals": {
              "columns": true,
              "grand": true,
              "rows": true
            },
            "window": {
              "limit": 1,
              "offset": 1
            }
          },
          "schemaVersion": 1,
          "sort": [
            {
              "direction": "asc",
              "field": "example"
            }
          ],
          "table": {
            "columns": [
              {
                "field": "example",
                "label": "example",
                "width": 1
              }
            ],
            "density": "compact",
            "rowHeight": 1,
            "showHeader": true,
            "striped": true
          },
          "time": {
            "alias": "example",
            "field": "example",
            "grain": "second"
          }
        }
      },
      "properties": {
        "spec": {
          "$ref": "#/components/schemas/ExplorationSpec"
        }
      },
      "required": [
        "spec"
      ],
      "type": "object"
    },
    "SavedExplorationRevisionToken": {
      "description": "The immutable revision identity returned by saved-exploration reads. The\ncomplete token is also the value accepted in If-Match for mutations; it is\nnever inferred from a title, slug, or payload hash alone.",
      "example": {
        "contentHash": "example",
        "number": 1,
        "revisionId": "example"
      },
      "properties": {
        "contentHash": {
          "example": "example",
          "type": "string"
        },
        "number": {
          "example": 1,
          "format": "int64",
          "minimum": 1,
          "type": "integer"
        },
        "revisionId": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "revisionId",
        "number",
        "contentHash"
      ],
      "type": "object"
    },
    "SavedExplorationStatus": {
      "enum": [
        "active",
        "archived"
      ],
      "example": "active",
      "type": "string"
    },
    "SavedExplorationSummaryResponse": {
      "example": {
        "archivedAt": "2026-01-02T15:04:05Z",
        "createdAt": "2026-01-02T15:04:05Z",
        "id": "example",
        "ownerPrincipalId": "example",
        "revision": {
          "contentHash": "example",
          "number": 1,
          "revisionId": "example"
        },
        "semanticModelId": "example",
        "slug": "example",
        "status": "active",
        "title": "example",
        "updatedAt": "2026-01-02T15:04:05Z",
        "visibility": "private"
      },
      "properties": {
        "archivedAt": {
          "example": "2026-01-02T15:04:05Z",
          "format": "date-time",
          "type": "string"
        },
        "createdAt": {
          "example": "2026-01-02T15:04:05Z",
          "format": "date-time",
          "type": "string"
        },
        "id": {
          "example": "example",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
          "type": "string"
        },
        "ownerPrincipalId": {
          "example": "example",
          "type": "string"
        },
        "revision": {
          "$ref": "#/components/schemas/SavedExplorationRevisionToken"
        },
        "semanticModelId": {
          "example": "example",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
          "type": "string"
        },
        "slug": {
          "example": "example",
          "type": "string"
        },
        "status": {
          "$ref": "#/components/schemas/SavedExplorationStatus"
        },
        "title": {
          "example": "example",
          "type": "string"
        },
        "updatedAt": {
          "example": "2026-01-02T15:04:05Z",
          "format": "date-time",
          "type": "string"
        },
        "visibility": {
          "$ref": "#/components/schemas/SavedExplorationVisibility"
        }
      },
      "required": [
        "id",
        "ownerPrincipalId",
        "title",
        "slug",
        "visibility",
        "semanticModelId",
        "status",
        "createdAt",
        "updatedAt",
        "revision"
      ],
      "type": "object"
    },
    "SavedExplorationVisibility": {
      "enum": [
        "private",
        "organization"
      ],
      "example": "private",
      "type": "string"
    },
    "SetExplorationFilterExpression": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationFilterExpressionBase"
        }
      ],
      "example": {
        "kind": "example",
        "operator": "example",
        "values": []
      },
      "properties": {
        "kind": {
          "enum": [
            "set"
          ],
          "example": "example",
          "type": "string"
        },
        "operator": {
          "enum": [
            "in",
            "not_in"
          ],
          "example": "example",
          "type": "string"
        },
        "values": {
          "example": [],
          "items": {
            "$ref": "#/components/schemas/ExplorationFilterValue"
          },
          "maxItems": 100,
          "minItems": 1,
          "type": "array"
        }
      },
      "required": [
        "kind",
        "operator",
        "values"
      ],
      "type": "object"
    },
    "StringExplorationFilterValue": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationFilterValueBase"
        }
      ],
      "example": {
        "kind": "example",
        "value": "example"
      },
      "properties": {
        "kind": {
          "enum": [
            "string"
          ],
          "example": "example",
          "type": "string"
        },
        "value": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "value"
      ],
      "type": "object"
    },
    "TableExplorationVisualization": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationVisualizationConfigBase"
        }
      ],
      "example": {
        "columns": [
          {
            "field": "example"
          }
        ],
        "kind": "example"
      },
      "properties": {
        "columns": {
          "example": [
            {
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ExplorationVisualizationFieldRef"
          },
          "maxItems": 100,
          "type": "array"
        },
        "kind": {
          "enum": [
            "table"
          ],
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "columns"
      ],
      "type": "object"
    },
    "TemporalVisualizationFormat": {
      "allOf": [
        {
          "$ref": "#/components/schemas/VisualizationFormatBase"
        }
      ],
      "example": {
        "dateStyle": "example",
        "kind": "example",
        "timeStyle": "example"
      },
      "properties": {
        "dateStyle": {
          "example": "example",
          "type": "string"
        },
        "kind": {
          "enum": [
            "temporal"
          ],
          "example": "example",
          "type": "string"
        },
        "timeStyle": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "TimestampExplorationFilterValue": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationFilterValueBase"
        }
      ],
      "example": {
        "kind": "example",
        "value": "2026-01-02T15:04:05Z"
      },
      "properties": {
        "kind": {
          "enum": [
            "timestamp"
          ],
          "example": "example",
          "type": "string"
        },
        "value": {
          "example": "2026-01-02T15:04:05Z",
          "format": "date-time",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "value"
      ],
      "type": "object"
    },
    "TimestampExplorationTemporalValue": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationTemporalValueBase"
        }
      ],
      "example": {
        "kind": "example",
        "value": "2026-01-02T15:04:05Z"
      },
      "properties": {
        "kind": {
          "enum": [
            "timestamp"
          ],
          "example": "example",
          "type": "string"
        },
        "value": {
          "example": "2026-01-02T15:04:05Z",
          "format": "date-time",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "value"
      ],
      "type": "object"
    },
    "UnfilteredExplorationFilterExpression": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExplorationFilterExpressionBase"
        }
      ],
      "example": {
        "kind": "example"
      },
      "properties": {
        "kind": {
          "enum": [
            "unfiltered"
          ],
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "VisualizationCartesianMark": {
      "enum": [
        "line",
        "area",
        "bar",
        "column",
        "histogram",
        "combo",
        "waterfall",
        "candlestick",
        "boxplot",
        "heatmap"
      ],
      "example": "line",
      "type": "string"
    },
    "VisualizationDisplayUnits": {
      "enum": [
        "auto",
        "none",
        "thousands",
        "millions",
        "billions",
        "trillions"
      ],
      "example": "auto",
      "type": "string"
    },
    "VisualizationFormat": {
      "discriminator": {
        "mapping": {
          "compact": "#/components/schemas/CompactVisualizationFormat",
          "currency": "#/components/schemas/CurrencyVisualizationFormat",
          "duration": "#/components/schemas/DurationVisualizationFormat",
          "number": "#/components/schemas/NumberVisualizationFormat",
          "percent": "#/components/schemas/PercentVisualizationFormat",
          "temporal": "#/components/schemas/TemporalVisualizationFormat"
        },
        "propertyName": "kind"
      },
      "oneOf": [
        {
          "$ref": "#/components/schemas/NumberVisualizationFormat"
        },
        {
          "$ref": "#/components/schemas/CurrencyVisualizationFormat"
        },
        {
          "$ref": "#/components/schemas/PercentVisualizationFormat"
        },
        {
          "$ref": "#/components/schemas/CompactVisualizationFormat"
        },
        {
          "$ref": "#/components/schemas/DurationVisualizationFormat"
        },
        {
          "$ref": "#/components/schemas/TemporalVisualizationFormat"
        }
      ]
    },
    "VisualizationFormatBase": {
      "example": {
        "kind": "example"
      },
      "properties": {
        "kind": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "VisualizationHierarchyMark": {
      "enum": [
        "treemap",
        "sunburst",
        "tree",
        "sankey",
        "graph"
      ],
      "example": "treemap",
      "type": "string"
    },
    "VisualizationKPIDeltaMode": {
      "enum": [
        "absolute",
        "relative"
      ],
      "example": "absolute",
      "type": "string"
    },
    "VisualizationKPIDirection": {
      "enum": [
        "increase",
        "decrease",
        "neutral"
      ],
      "example": "increase",
      "type": "string"
    },
    "VisualizationKPIMissingComparison": {
      "enum": [
        "show_unavailable",
        "hide"
      ],
      "example": "show_unavailable",
      "type": "string"
    },
    "VisualizationKPIMode": {
      "enum": [
        "compact",
        "bullet",
        "progress"
      ],
      "example": "compact",
      "type": "string"
    },
    "VisualizationKPIQualitativeRange": {
      "example": {
        "label": "example",
        "maximum": 1,
        "minimum": 1,
        "tone": "neutral"
      },
      "properties": {
        "label": {
          "example": "example",
          "type": "string"
        },
        "maximum": {
          "example": 1,
          "format": "double",
          "type": "number"
        },
        "minimum": {
          "example": 1,
          "format": "double",
          "type": "number"
        },
        "tone": {
          "$ref": "#/components/schemas/VisualizationTone"
        }
      },
      "required": [
        "label",
        "tone"
      ],
      "type": "object"
    },
    "VisualizationLegendPosition": {
      "enum": [
        "hidden",
        "top",
        "right",
        "bottom",
        "left"
      ],
      "example": "hidden",
      "type": "string"
    },
    "VisualizationOrientation": {
      "enum": [
        "horizontal",
        "vertical"
      ],
      "example": "horizontal",
      "type": "string"
    },
    "VisualizationPolarMark": {
      "enum": [
        "radar",
        "gauge"
      ],
      "example": "radar",
      "type": "string"
    },
    "VisualizationProportionalMark": {
      "enum": [
        "pie",
        "donut",
        "funnel"
      ],
      "example": "pie",
      "type": "string"
    },
    "VisualizationStackingMode": {
      "enum": [
        "none",
        "normal",
        "percent"
      ],
      "example": "none",
      "type": "string"
    },
    "VisualizationThreshold": {
      "example": {
        "tone": "neutral",
        "value": 1
      },
      "properties": {
        "tone": {
          "$ref": "#/components/schemas/VisualizationTone"
        },
        "value": {
          "example": 1,
          "format": "double",
          "type": "number"
        }
      },
      "required": [
        "value",
        "tone"
      ],
      "type": "object"
    },
    "VisualizationTone": {
      "enum": [
        "neutral",
        "ink",
        "success",
        "warning",
        "danger"
      ],
      "example": "neutral",
      "type": "string"
    }
  }
}
