{
  "type": "heatmap-chart",
  "description": "Heatmap 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 'x', 'y', and 'value' columns."
      },
      "title": {
        "description": "Chart title displayed above",
        "type": "string"
      },
      "showValues": {
        "default": false,
        "description": "Show numeric values inside each cell.",
        "type": "boolean"
      },
      "cellGap": {
        "default": 4,
        "description": "Gap between heatmap cells in pixels.",
        "type": "number"
      },
      "minCellHeight": {
        "default": 28,
        "description": "Minimum cell height in pixels.",
        "type": "number"
      },
      "lowColor": {
        "default": "#111827",
        "description": "Color for the minimum value.",
        "type": "string"
      },
      "highColor": {
        "default": "#E8FF59",
        "description": "Color for the maximum value.",
        "type": "string"
      },
      "xLabel": {
        "description": "Optional x-axis title.",
        "type": "string"
      },
      "yLabel": {
        "description": "Optional y-axis title.",
        "type": "string"
      },
      "style": {
        "description": "Inline CSS styles as a plain CSS string.",
        "type": "string"
      }
    },
    "required": [
      "sql"
    ],
    "description": "A matrix heatmap powered by DuckDB SQL. Query must return x, y, and value columns."
  }
}
