{
  "charts": [
    {
      "id": "zone_area_share_timeseries",
      "type": "stacked_area",
      "x": "window_end",
      "y": "class_area_share_pct",
      "series": "class_code",
      "filters": [
        "region_id",
        "method"
      ],
      "note": "Rolling 30-year climatologies; not annual weather."
    },
    {
      "id": "poleward_shift",
      "type": "line",
      "x": "window_end",
      "y": "poleward_centroid_shift_km",
      "series": "class_code",
      "filters": [
        "region_id",
        "method=koppen_geiger"
      ]
    },
    {
      "id": "aridity_drift",
      "type": "line",
      "x": "window_end",
      "y": "ai_mean",
      "series": "region_id",
      "filters": [
        "method=aridity_index"
      ]
    },
    {
      "id": "dryland_share",
      "type": "line",
      "x": "window_end",
      "y": "dryland_area_share_pct",
      "series": "region_id",
      "filters": [
        "method=aridity_index"
      ]
    },
    {
      "id": "proxy_confirmation",
      "type": "small_multiples",
      "x": "year",
      "y": [
        "SPEI_12",
        "soil_moisture_anomaly",
        "snow_anomaly",
        "fire_weather",
        "Rx1day"
      ],
      "note": "Proxy panel is independent validation, not a climate-zone classifier."
    },
    {
      "id": "period_map_compare",
      "type": "map_swipe",
      "period_a": "1961-1990",
      "period_b": "1991-2020",
      "methods": [
        "koppen_geiger",
        "aridity_index"
      ]
    }
  ]
}