{
  "name": "Meadowlight 64",
  "version": 1,
  "notes": "Source of truth. Ramps dark->light. Reference as ramp.step (e.g. meadow.2). Index encoding: ramp_index * 5 + step (ramp order below), glow = 60..63, 255 = transparent.",
  "ramp_order": ["ink_stone", "meadow", "sungrass", "pinewood", "barkroot", "clayfire", "strawlight", "deeppool", "sunpetal", "poppy", "berrybloom", "violetmoth"],
  "ramps": {
    "ink_stone":  ["#14101F", "#241D33", "#362F4B", "#4B4866", "#6A6792"],
    "meadow":     ["#1C3F33", "#2D5C40", "#45804B", "#6BA557", "#97C96B"],
    "sungrass":   ["#4A6B2E", "#6C8F3A", "#93B347", "#BBD45E", "#E2EF85"],
    "pinewood":   ["#122B26", "#1C4136", "#2A5A44", "#3D7656", "#579470"],
    "barkroot":   ["#2E1F17", "#4A3323", "#6B4B2F", "#8F6A40", "#B58D58"],
    "clayfire":   ["#5C2F22", "#84452C", "#AC6038", "#CE8148", "#E8A663"],
    "strawlight": ["#9A8758", "#C0AB72", "#DECB8F", "#F1E5B4", "#FFFBE8"],
    "deeppool":   ["#143C42", "#1D5A5C", "#2D7E78", "#48A694", "#7FD0B4"],
    "sunpetal":   ["#7A4A1A", "#A86A22", "#D18F2E", "#F0B53F", "#FBDC7C"],
    "poppy":      ["#5E1F26", "#8E2E33", "#C24640", "#E76B52", "#F9986F"],
    "berrybloom": ["#4D1B3E", "#7C2B5D", "#B04483", "#DB69A6", "#F69BC4"],
    "violetmoth": ["#2A1C4D", "#45307E", "#6A4DB0", "#9472D8", "#C3A3F2"]
  },
  "glow": { "pollen": "#F4FF8A", "spirit": "#8AF2D0", "ember": "#FF8A5C", "bloom": "#FF9BE0" },
  "roles": {
    "stage": ["ink_stone", "meadow", "sungrass", "pinewood", "barkroot", "clayfire", "strawlight", "deeppool"],
    "cast":  ["sunpetal", "poppy", "berrybloom", "violetmoth"]
  },
  "rules": {
    "creature_accent": "every creature carries >=1 cast color or emissive glow",
    "shadows": "always ink_stone steps, never black/gray",
    "glow_usage": "emissive parts, FX, palette cycling only",
    "shading": "step along ramps only; never lighten/darken by math"
  },
  "variant_recipes": {
    "blighted": {
      "stage_remap": { "meadow": "ink_stone", "sungrass": "strawlight", "clayfire": "ink_stone", "barkroot": "ink_stone", "deeppool": "ink_stone", "pinewood": "ink_stone" },
      "cast_remap": { "sunpetal": "strawlight", "poppy": "ink_stone", "berrybloom": "ink_stone", "violetmoth": "ink_stone" },
      "glow_remap_to": "ink_stone.3",
      "note": "ashen: the Withering drains every ramp to gloam; only bone-pale accents survive (human pick 2026-06-11)"
    },
    "glow_bright": {
      "glow_remap": { "pollen": "strawlight.4", "spirit": "sungrass.4", "ember": "sunpetal.4", "bloom": "strawlight.3" },
      "note": "full-capacity flare (game request 2026-06-11): indices 0-59 stay canon; each glow steps to its brightest harmonious neighbor - pollen flares to bone-white sunlight, spirit to chlorophyll-bright, ember runs golden-hot, bloom over-exposes to warm petal-cream"
    },
    "tells": {
      "note": "recessive-tell locus rows (Locus Tell, ratified 2026-07-09, QUIET tier shipped): six global rows tell_<element>, each canon everywhere except the quiet locus cells 46/47 (poppy .1/.2) and 51/52 (berrybloom .1/.2), remapped toward the element's kin_egg chord. Cells 48/53 (the loud .3 tier) stay canon in shipped rows - the loud tier lives only as rendered alternatives in build/experiments. Freeze law: no coat row, expression mask, or future combo row may write locus cells 46-48/51-53; only tell_* rows do. gale drops one strawlight step (kin_egg gale precedent) so the tell stays shadow-valued; stone lifts ink_stone off the shadow steps (kin_egg stone precedent).",
      "locus_cells": { "quiet": [46, 47, 51, 52], "loud_reserved": [48, 53] },
      "elements": {
        "ember":   ["clayfire.1", "clayfire.2"],
        "verdant": ["meadow.1", "meadow.2"],
        "tide":    ["deeppool.1", "deeppool.2"],
        "gale":    ["strawlight.0", "strawlight.1"],
        "gloam":   ["violetmoth.1", "violetmoth.2"],
        "stone":   ["ink_stone.2", "ink_stone.3"]
      }
    }
  }
}
