{
  "on": {
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 1,
    "supports_manual": true
  },
  "off": {
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 0,
    "supports_manual": true
  },
  "colour_cycle": {
    "supports_reverse": true,
    "n1": "Step rate",
    "mode": {
      "0": "Scroll palette gradient",
      "1": "Rainbow wheel (preset colours ignored)"
    },
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 10,
    "supports_manual": true
  },
  "transition": {
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 10,
    "supports_manual": false
  },
  "chase": {
    "supports_reverse": true,
    "n1": "Colour 1 Length",
    "n2": "Colour 2 Length",
    "n3": "Step 1",
    "n4": "Step 2",
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 2,
    "has_background": true,
    "supports_manual": true,
    "mode": {
      "0": "Two-colour chase",
      "1": "Marquee dashes (n1 on length, n2 off, n3 step)"
    }
  },
  "pulse": {
    "n1": "Attack",
    "n2": "Hold",
    "n3": "Decay",
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 10,
    "has_background": true,
    "supports_manual": true
  },
  "circle": {
    "n1": "Head Rate",
    "n2": "Max Length",
    "n3": "Tail Rate",
    "n4": "Min Length",
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 2,
    "has_background": true,
    "supports_manual": false
  },
  "blink": {
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 10,
    "has_background": true,
    "supports_manual": false
  },
  "flicker": {
    "n1": "Min brightness",
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 10,
    "supports_manual": true
  },
  "flame": {
    "n1": "Min brightness",
    "n2": "Breath period (ms)",
    "n3": "Spark gap min (ms, 0=default 10\u201330 s, -1=off)",
    "n4": "Spark gap max (ms)",
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 10,
    "supports_manual": false
  },
  "twinkle": {
    "n1": "Twinkle activity (1\u2013255, higher = more changes)",
    "n2": "Density (0\u2013255, higher = more of the strip lit)",
    "n3": "Min adjacent LEDs per twinkle (same as max for fixed length)",
    "n4": "Max adjacent LEDs per twinkle (same as min for fixed length)",
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 10,
    "has_background": true,
    "supports_manual": true
  },
  "radiate": {
    "n1": "Node spacing (LEDs)",
    "n2": "Out time (ms)",
    "n3": "In time (ms)",
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 10,
    "has_background": true,
    "supports_manual": true
  },
  "plasma": {
    "n1": "Scale",
    "n2": "Speed",
    "n3": "Contrast",
    "max_colors": 10,
    "min_delay": 10,
    "max_delay": 10000,
    "supports_manual": false
  },
  "bar_graph": {
    "n1": "Level percent",
    "max_colors": 10,
    "min_delay": 10,
    "max_delay": 10000,
    "has_background": true,
    "supports_manual": false
  },
  "strobe_burst": {
    "n1": "Burst count",
    "n2": "Burst gap",
    "n3": "Cooldown",
    "max_colors": 10,
    "min_delay": 10,
    "max_delay": 10000,
    "has_background": true,
    "supports_manual": true
  },
  "rain_drops": {
    "n1": "Drop rate",
    "n2": "Ripple width",
    "max_colors": 10,
    "min_delay": 10,
    "max_delay": 10000,
    "has_background": true,
    "supports_manual": true
  },
  "clock_sweep": {
    "n1": "Hand width",
    "n2": "Marker interval",
    "max_colors": 10,
    "min_delay": 10,
    "max_delay": 10000,
    "has_background": true,
    "supports_manual": true
  },
  "aurora": {
    "supports_reverse": true,
    "n1": "Band count (0) or spatial period LEDs (1)",
    "n2": "Shimmer (0) or blend strength (1)",
    "n3": "Unused (0) or drift speed (1)",
    "mode": {
      "0": "Colour bands + shimmer",
      "1": "Sine northern wave"
    },
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 10,
    "has_background": true,
    "supports_manual": true
  },
  "icicles": {
    "supports_reverse": true,
    "n1": "Anchor spacing (LEDs)",
    "n2": "Max icicle length (LEDs)",
    "n3": "Phase step per refresh",
    "max_colors": 10,
    "min_delay": 10,
    "max_delay": 10000,
    "has_background": true,
    "supports_manual": true
  },
  "blizzard": {
    "supports_reverse": true,
    "n1": "Flake density",
    "n2": "Fall speed",
    "n3": "Wind (128 = centred; lower/raise for drift bias)",
    "max_colors": 10,
    "min_delay": 10,
    "max_delay": 10000,
    "has_background": true,
    "supports_manual": true
  },
  "rime": {
    "n1": "Crystallisation rate",
    "n2": "Melt (decay) per refresh",
    "n3": "Spark cap (LEDs refreshed per cycle)",
    "max_colors": 10,
    "min_delay": 10,
    "max_delay": 10000,
    "has_background": true,
    "supports_manual": true
  },
  "candle_glow": {
    "n1": "Candle count",
    "n2": "Glow width (LEDs)",
    "n3": "Flicker strength",
    "max_colors": 10,
    "min_delay": 10,
    "max_delay": 10000,
    "has_background": true,
    "supports_manual": true
  },
  "orbit": {
    "n1": "Orbit count",
    "n2": "Base speed",
    "max_colors": 10,
    "min_delay": 10,
    "max_delay": 10000,
    "has_background": true,
    "supports_manual": true
  },
  "palette_morph": {
    "n1": "Morph ms",
    "n2": "Warp rate",
    "n3": "Turbulence",
    "max_colors": 10,
    "min_delay": 10,
    "max_delay": 10000,
    "supports_manual": false
  },
  "meteor": {
    "supports_reverse": true,
    "n1": "Tail length (0–1) or eye width (2)",
    "n2": "Speed (LEDs per frame)",
    "n3": "Fade amount (0), comet gap (1), or end pause frames (2)",
    "mode": {
      "0": "Fading meteor",
      "1": "Dual comets",
      "2": "Bouncing scanner"
    },
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 10,
    "has_background": true,
    "supports_manual": true
  },
  "particles": {
    "supports_reverse": true,
    "n1": "Flake density (0) or spawn rate (1)",
    "n2": "Fall speed (LEDs per frame)",
    "n3": "Unused (0) or streak length (1)",
    "mode": {
      "0": "Snowfall flakes",
      "1": "Starfall streaks"
    },
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 10,
    "has_background": true,
    "supports_manual": true
  },
  "sparkle": {
    "n1": "Spark density (0–1) or firefly count (2)",
    "n2": "Trail decay (0) or twinkle speed (2)",
    "n3": "Ice halo width LEDs (1); unused in 0 and 2",
    "mode": {
      "0": "Sparkle trail",
      "1": "Ice burst + halo",
      "2": "Fireflies"
    },
    "min_delay": 10,
    "max_delay": 10000,
    "max_colors": 10,
    "has_background": true,
    "supports_manual": true
  }
}
