{
  "type": "stacked-area-chart",
  "description": "Stacked area chart driven by DuckDB SQL query.",
  "hasChildren": false,
  "propsSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "properties": {
      "sql": {
        "type": "string",
        "description": "DuckDB SQL query with {{udf_name}} and $param_name placeholders. Must return 'label', 'series', and 'value' columns."
      },
      "title": {
        "description": "Chart title displayed above",
        "type": "string"
      },
      "areaOpacity": {
        "default": 0.6,
        "description": "Opacity of each stacked area from 0 to 1.",
        "type": "number"
      },
      "curveType": {
        "default": "smooth",
        "description": "Interpolation curve type.",
        "type": "string",
        "enum": [
          "linear",
          "smooth",
          "step"
        ]
      },
      "showGrid": {
        "default": true,
        "description": "Show subtle grid lines behind the chart.",
        "type": "boolean"
      },
      "showLegend": {
        "default": true,
        "description": "Show legend for stacked series.",
        "type": "boolean"
      },
      "showBrush": {
        "default": true,
        "description": "Show brush slider for range selection.",
        "type": "boolean"
      },
      "brushHeight": {
        "default": 30,
        "description": "Height of brush slider in pixels.",
        "type": "number"
      },
      "rotateLabels": {
        "default": true,
        "description": "Rotate x-axis labels by -45 degrees.",
        "type": "boolean"
      },
      "xAxisFontSize": {
        "default": 11,
        "description": "X-axis label font size in pixels.",
        "type": "number"
      },
      "yAxisFontSize": {
        "default": 11,
        "description": "Y-axis label font size in pixels.",
        "type": "number"
      },
      "beginAtZero": {
        "default": true,
        "description": "Force y-axis to start at zero.",
        "type": "boolean"
      },
      "yMin": {
        "description": "Fixed minimum y-axis value.",
        "type": "number"
      },
      "yMax": {
        "description": "Fixed maximum y-axis value.",
        "type": "number"
      },
      "bottomMargin": {
        "description": "Override bottom margin in pixels.",
        "type": "number"
      },
      "animationMs": {
        "default": 300,
        "description": "Animation duration in milliseconds. 0 disables animation. Animation only plays on data changes, not on zoom/resize.",
        "type": "number"
      },
      "style": {
        "description": "Inline CSS styles as a plain CSS string.",
        "type": "string"
      }
    },
    "required": [
      "sql"
    ],
    "description": "A stacked area chart powered by DuckDB SQL. Query should return label, series, and value."
  }
}
