{
  "components": [
    {
      "t": "gauge",
      "id": "load",
      "name": "HAARP load",
      "w": 96,
      "min": 0,
      "max": 150,
      "label": "HAARP LOAD",
      "unit": "%",
      "ticks": [
        0,
        50,
        100,
        150
      ],
      "red": 100,
      "desc": "Demand against the transmitter power level. Over 100% is overload.",
      "category": "Readout",
      "groups": [
        "bay-machine",
        "mod-arraymeters"
      ],
      "path": "Machine bay › Array"
    },
    {
      "t": "seg",
      "id": "demand",
      "name": "Demand",
      "digits": 3,
      "h": 10,
      "label": "DEMAND %",
      "desc": "Total forcing demand.",
      "category": "Readout",
      "groups": [
        "bay-machine",
        "mod-arraymeters"
      ],
      "path": "Machine bay › Array"
    },
    {
      "t": "seg",
      "id": "coil",
      "name": "Coil temperature",
      "digits": 3,
      "h": 10,
      "label": "COIL °C",
      "desc": "Antenna coil temperature. Thermal fault at 85 °C.",
      "category": "Readout",
      "groups": [
        "bay-machine",
        "mod-arraymeters"
      ],
      "path": "Machine bay › Array"
    },
    {
      "t": "seg",
      "id": "capchg",
      "name": "Capacitor charge",
      "digits": 3,
      "h": 10,
      "label": "CAP %",
      "desc": "Stored charge.",
      "category": "Readout",
      "groups": [
        "bay-machine",
        "mod-arraymeters"
      ],
      "path": "Machine bay › Array"
    },
    {
      "t": "elmap",
      "id": "elmap",
      "name": "Antenna element map",
      "w": 80,
      "desc": "The 180 crossed-dipole elements (12 × 15) of the real array. Lit while transmitting; brighter with load.",
      "category": "Readout",
      "groups": [
        "bay-machine",
        "mod-arraymeters"
      ],
      "path": "Machine bay › Array"
    },
    {
      "t": "dial",
      "id": "fdial",
      "name": "Frequency dial",
      "w": 230,
      "desc": "Glass dial window. Red: your transmit frequency. Blue: critical frequency foF2 of the ionosphere above the target, which moves with day, night and season. Stay below the blue needle.",
      "category": "Readout",
      "groups": [
        "bay-machine",
        "mod-tx"
      ],
      "path": "Machine bay › Transmitter"
    },
    {
      "t": "knob",
      "id": "freq",
      "name": "Frequency",
      "min": 2.7,
      "max": 10,
      "step": 0.01,
      "def": 4.5,
      "d": 42,
      "label": "FREQUENCY",
      "unit": "MHz",
      "lo": "2.7",
      "hi": "10",
      "knurl": true,
      "desc": "Flywheel tuning knob, 2.7–10 MHz like the real array. Tune under foF2 so the ionosphere absorbs the energy.",
      "category": "Control",
      "groups": [
        "bay-machine",
        "mod-tx"
      ],
      "path": "Machine bay › Transmitter"
    },
    {
      "t": "lamp",
      "id": "ionomatch",
      "name": "Iono match lamp",
      "col": "g",
      "label": "IONO MATCH",
      "desc": "Lit when the frequency is below foF2.",
      "category": "Readout",
      "groups": [
        "bay-machine",
        "mod-tx"
      ],
      "path": "Machine bay › Transmitter"
    },
    {
      "t": "knob",
      "id": "txpower",
      "name": "Power level",
      "min": 0,
      "max": 3.6,
      "step": 0.05,
      "def": 2.4,
      "d": 34,
      "label": "POWER",
      "unit": "MW",
      "lo": "0",
      "hi": "3.6",
      "desc": "Transmitter output, up to the real array’s 3.6 MW. This is the power budget every strip draws from.",
      "category": "Control",
      "groups": [
        "bay-machine",
        "mod-tx"
      ],
      "path": "Machine bay › Transmitter"
    },
    {
      "t": "knob",
      "id": "coolant",
      "name": "Coolant flow",
      "min": 0,
      "max": 200,
      "step": 1,
      "def": 100,
      "d": 30,
      "label": "FLOW",
      "unit": "%",
      "lo": "0",
      "hi": "200",
      "desc": "Coolant pump flow. More flow cools the coils and draws a little power.",
      "category": "Control",
      "groups": [
        "bay-machine",
        "mod-cooling"
      ],
      "path": "Machine bay › Cooling"
    },
    {
      "t": "knob",
      "id": "captarget",
      "name": "Charge",
      "min": 0,
      "max": 100,
      "step": 1,
      "def": 60,
      "d": 28,
      "label": "CHARGE",
      "unit": "%",
      "lo": "0",
      "hi": "100",
      "desc": "Charge level the capacitor bank holds. Charging draws power while it fills.",
      "category": "Control",
      "groups": [
        "bay-machine",
        "mod-caps"
      ],
      "path": "Machine bay › Capacitors · EMP"
    },
    {
      "t": "key",
      "id": "empkey",
      "name": "EMP arming key",
      "pos": [
        "SAFE",
        "ARMED"
      ],
      "def": 0,
      "label": "EMP ARM",
      "desc": "Arming key. A two-key version would put a second key about 1 m away so two visitors must turn them together.",
      "category": "Control",
      "groups": [
        "bay-machine",
        "mod-caps"
      ],
      "path": "Machine bay › Capacitors · EMP"
    },
    {
      "t": "gbtn",
      "id": "empfire",
      "name": "EMP fire",
      "label": "EMP FIRE",
      "desc": "Guarded momentary button. Lift the spring cover, then press. Fires the EMP when the key is ARMED and the bank holds 20%. Blacks out cities within 250 km. The cover closes by itself.",
      "def": 0,
      "category": "Control",
      "groups": [
        "bay-machine",
        "mod-caps"
      ],
      "path": "Machine bay › Capacitors · EMP"
    },
    {
      "t": "ledbar",
      "id": "upper-draw",
      "name": "Upper atmosphere power draw",
      "n": 20,
      "h": true,
      "desc": "Share of the transmitter power this family is drawing.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-upper"
      ],
      "path": "Sky bay › Upper atmosphere family"
    },
    {
      "t": "vfd",
      "id": "aurora-read",
      "name": "Aurora touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-aurora"
      ],
      "path": "Sky bay › Upper atmosphere family › Aurora strip"
    },
    {
      "t": "vfd",
      "id": "airglow-read",
      "name": "Airglow touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-airglow"
      ],
      "path": "Sky bay › Upper atmosphere family › Airglow strip"
    },
    {
      "t": "vfd",
      "id": "blackout-read",
      "name": "Radio blackout touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-blackout"
      ],
      "path": "Sky bay › Upper atmosphere family › Radio blackout strip"
    },
    {
      "t": "vfd",
      "id": "jet-read",
      "name": "Jet stream touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-jet"
      ],
      "path": "Sky bay › Upper atmosphere family › Jet stream strip"
    },
    {
      "t": "ledbar",
      "id": "air-draw",
      "name": "Air mass power draw",
      "n": 20,
      "h": true,
      "desc": "Share of the transmitter power this family is drawing.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-air"
      ],
      "path": "Sky bay › Air mass family"
    },
    {
      "t": "vfd",
      "id": "temp-read",
      "name": "Temperature touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-temp"
      ],
      "path": "Sky bay › Air mass family › Temperature strip"
    },
    {
      "t": "vfd",
      "id": "humidity-read",
      "name": "Humidity touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-humidity"
      ],
      "path": "Sky bay › Air mass family › Humidity strip"
    },
    {
      "t": "vfd",
      "id": "pressure-read",
      "name": "Pressure touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-pressure"
      ],
      "path": "Sky bay › Air mass family › Pressure strip"
    },
    {
      "t": "vfd",
      "id": "wind-read",
      "name": "Wind touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-wind"
      ],
      "path": "Sky bay › Air mass family › Wind strip"
    },
    {
      "t": "ledbar",
      "id": "cloud-draw",
      "name": "Cloud & precipitation power draw",
      "n": 20,
      "h": true,
      "desc": "Share of the transmitter power this family is drawing.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-cloud"
      ],
      "path": "Sky bay › Cloud & precipitation family"
    },
    {
      "t": "vfd",
      "id": "clouds-read",
      "name": "Clouds touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-clouds"
      ],
      "path": "Sky bay › Cloud & precipitation family › Clouds strip"
    },
    {
      "t": "vfd",
      "id": "fog-read",
      "name": "Fog touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-fog"
      ],
      "path": "Sky bay › Cloud & precipitation family › Fog strip"
    },
    {
      "t": "vfd",
      "id": "precip-read",
      "name": "Precipitation touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-precip"
      ],
      "path": "Sky bay › Cloud & precipitation family › Precipitation strip"
    },
    {
      "t": "vfd",
      "id": "lightning-read",
      "name": "Lightning touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-lightning"
      ],
      "path": "Sky bay › Cloud & precipitation family › Lightning strip"
    },
    {
      "t": "lamps",
      "id": "aurora-lamps",
      "name": "Aurora status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Target in daylight. The aurora is drawn faint.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-aurora"
      ],
      "path": "Sky bay › Upper atmosphere family › Aurora strip"
    },
    {
      "t": "knob",
      "id": "aurora-size",
      "name": "Aurora size",
      "label": "SIZE",
      "min": 200,
      "max": 3000,
      "step": 10,
      "def": 900,
      "unit": "km",
      "lo": "200",
      "hi": "3000",
      "d": 30,
      "cap": "var(--f-upper)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-aurora"
      ],
      "path": "Sky bay › Upper atmosphere family › Aurora strip"
    },
    {
      "t": "knob",
      "id": "aurora-char",
      "name": "Aurora colour",
      "label": "COLOUR",
      "min": 0,
      "max": 100,
      "step": 1,
      "def": 15,
      "lo": "GRN",
      "hi": "VIO",
      "d": 30,
      "cap": "var(--f-upper)",
      "desc": "Emission colour: oxygen green (557 nm), high-altitude oxygen red (630 nm) or nitrogen violet.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-aurora"
      ],
      "path": "Sky bay › Upper atmosphere family › Aurora strip"
    },
    {
      "t": "btn",
      "id": "aurora-burst",
      "name": "Aurora flare",
      "legend": "FLARE",
      "mode": "mom",
      "lit": "lr",
      "desc": "Substorm flare: a brief brightening. Planned named event; this panel preview only pulses its output indicator.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-aurora"
      ],
      "path": "Sky bay › Upper atmosphere family › Aurora strip"
    },
    {
      "t": "fader",
      "id": "aurora-fader",
      "name": "Aurora level",
      "min": 0,
      "max": 9,
      "step": 0.1,
      "unit": "Kp",
      "lo": "0",
      "hi": "9",
      "def": 0,
      "cap": "var(--f-upper)",
      "travel": 100,
      "desc": "Unipolar fader on the real scale. Auroral activity at the target on the Kp scale.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-aurora"
      ],
      "path": "Sky bay › Upper atmosphere family › Aurora strip"
    },
    {
      "t": "ledbar",
      "id": "aurora-meter",
      "name": "Aurora output meter",
      "n": 14,
      "bip": false,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-aurora"
      ],
      "path": "Sky bay › Upper atmosphere family › Aurora strip"
    },
    {
      "t": "lamps",
      "id": "airglow-lamps",
      "name": "Airglow status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Target in sunlight.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-airglow"
      ],
      "path": "Sky bay › Upper atmosphere family › Airglow strip"
    },
    {
      "t": "knob",
      "id": "airglow-size",
      "name": "Airglow size",
      "label": "SIZE",
      "min": 50,
      "max": 1500,
      "step": 10,
      "def": 300,
      "unit": "km",
      "lo": "50",
      "hi": "1500",
      "d": 30,
      "cap": "var(--f-upper)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-airglow"
      ],
      "path": "Sky bay › Upper atmosphere family › Airglow strip"
    },
    {
      "t": "fader",
      "id": "airglow-fader",
      "name": "Airglow level",
      "min": 0,
      "max": 100,
      "step": 1,
      "unit": "%",
      "lo": "0",
      "hi": "100",
      "def": 0,
      "cap": "var(--f-upper)",
      "travel": 100,
      "desc": "Unipolar fader on the real scale. Artificial airglow from heating the ionosphere. The one sky effect HAARP has actually produced.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-airglow"
      ],
      "path": "Sky bay › Upper atmosphere family › Airglow strip"
    },
    {
      "t": "ledbar",
      "id": "airglow-meter",
      "name": "Airglow output meter",
      "n": 14,
      "bip": false,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-airglow"
      ],
      "path": "Sky bay › Upper atmosphere family › Airglow strip"
    },
    {
      "t": "lamps",
      "id": "blackout-lamps",
      "name": "Radio blackout status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Never blocked.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-blackout"
      ],
      "path": "Sky bay › Upper atmosphere family › Radio blackout strip"
    },
    {
      "t": "knob",
      "id": "blackout-size",
      "name": "Radio blackout size",
      "label": "SIZE",
      "min": 500,
      "max": 4000,
      "step": 50,
      "def": 1500,
      "unit": "km",
      "lo": "500",
      "hi": "4000",
      "d": 30,
      "cap": "var(--f-upper)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-blackout"
      ],
      "path": "Sky bay › Upper atmosphere family › Radio blackout strip"
    },
    {
      "t": "rsw",
      "id": "blackout-char",
      "name": "Radio blackout band",
      "label": "BAND",
      "pos": [
        "HF",
        "TV",
        "GPS",
        "ALL"
      ],
      "def": 0,
      "d": 22,
      "r": 4.6,
      "desc": "Which signals fade. TV turns the news feed to static; GPS makes the target coordinates jitter.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-blackout"
      ],
      "path": "Sky bay › Upper atmosphere family › Radio blackout strip"
    },
    {
      "t": "fader",
      "id": "blackout-fader",
      "name": "Radio blackout level",
      "min": 0,
      "max": 30,
      "step": 0.5,
      "unit": "dB",
      "lo": "0",
      "hi": "30",
      "def": 0,
      "cap": "var(--f-upper)",
      "travel": 100,
      "desc": "Unipolar fader on the real scale. Absorption of radio signals in the lower ionosphere.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-blackout"
      ],
      "path": "Sky bay › Upper atmosphere family › Radio blackout strip"
    },
    {
      "t": "ledbar",
      "id": "blackout-meter",
      "name": "Radio blackout output meter",
      "n": 14,
      "bip": false,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-blackout"
      ],
      "path": "Sky bay › Upper atmosphere family › Radio blackout strip"
    },
    {
      "t": "lamps",
      "id": "jet-lamps",
      "name": "Jet stream status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Never blocked. Steers the drift of every storm.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-jet"
      ],
      "path": "Sky bay › Upper atmosphere family › Jet stream strip"
    },
    {
      "t": "knob",
      "id": "jet-size",
      "name": "Jet stream width",
      "label": "WIDTH",
      "min": 200,
      "max": 1500,
      "step": 10,
      "def": 600,
      "unit": "km",
      "lo": "200",
      "hi": "1500",
      "d": 30,
      "cap": "var(--f-upper)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-jet"
      ],
      "path": "Sky bay › Upper atmosphere family › Jet stream strip"
    },
    {
      "t": "fader",
      "id": "jet-fader",
      "name": "Jet stream level",
      "min": -100,
      "max": 100,
      "step": 1,
      "unit": "%",
      "lo": "SLACK",
      "hi": "ROAR",
      "def": 0,
      "cap": "var(--f-upper)",
      "travel": 100,
      "desc": "Bipolar fader. Centre detent = NATURE (the natural weather, unchanged). Speed of the upper-level wind that steers weather systems.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-jet"
      ],
      "path": "Sky bay › Upper atmosphere family › Jet stream strip"
    },
    {
      "t": "ledbar",
      "id": "jet-meter",
      "name": "Jet stream output meter",
      "n": 14,
      "bip": true,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-upper",
        "strip-jet"
      ],
      "path": "Sky bay › Upper atmosphere family › Jet stream strip"
    },
    {
      "t": "lamps",
      "id": "temp-lamps",
      "name": "Temperature status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Never blocked.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-temp"
      ],
      "path": "Sky bay › Air mass family › Temperature strip"
    },
    {
      "t": "knob",
      "id": "temp-size",
      "name": "Temperature size",
      "label": "SIZE",
      "min": 100,
      "max": 3000,
      "step": 10,
      "def": 1100,
      "unit": "km",
      "lo": "100",
      "hi": "3000",
      "d": 30,
      "cap": "var(--f-air)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-temp"
      ],
      "path": "Sky bay › Air mass family › Temperature strip"
    },
    {
      "t": "fader",
      "id": "temp-fader",
      "name": "Temperature level",
      "min": -30,
      "max": 30,
      "step": 0.5,
      "unit": "°C",
      "lo": "COLD",
      "hi": "HOT",
      "def": 0,
      "cap": "var(--f-air)",
      "travel": 100,
      "desc": "Bipolar fader. Centre detent = NATURE (the natural weather, unchanged). Adds to or subtracts from the natural temperature at the target.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-temp"
      ],
      "path": "Sky bay › Air mass family › Temperature strip"
    },
    {
      "t": "ledbar",
      "id": "temp-meter",
      "name": "Temperature output meter",
      "n": 14,
      "bip": true,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-temp"
      ],
      "path": "Sky bay › Air mass family › Temperature strip"
    },
    {
      "t": "lamps",
      "id": "humidity-lamps",
      "name": "Humidity status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Never blocked. Gates fog and precipitation.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-humidity"
      ],
      "path": "Sky bay › Air mass family › Humidity strip"
    },
    {
      "t": "knob",
      "id": "humidity-size",
      "name": "Humidity size",
      "label": "SIZE",
      "min": 100,
      "max": 3000,
      "step": 10,
      "def": 1100,
      "unit": "km",
      "lo": "100",
      "hi": "3000",
      "d": 30,
      "cap": "var(--f-air)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-humidity"
      ],
      "path": "Sky bay › Air mass family › Humidity strip"
    },
    {
      "t": "knob",
      "id": "humidity-char",
      "name": "Humidity haze",
      "label": "HAZE",
      "min": 0,
      "max": 100,
      "step": 1,
      "def": 20,
      "unit": "%",
      "lo": "CLEAR",
      "hi": "HAZY",
      "d": 30,
      "cap": "var(--f-air)",
      "desc": "Visibility through the moist air.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-humidity"
      ],
      "path": "Sky bay › Air mass family › Humidity strip"
    },
    {
      "t": "fader",
      "id": "humidity-fader",
      "name": "Humidity level",
      "min": -100,
      "max": 100,
      "step": 1,
      "unit": "%",
      "lo": "DRY",
      "hi": "SAT",
      "def": 0,
      "cap": "var(--f-air)",
      "travel": 100,
      "desc": "Bipolar fader. Centre detent = NATURE (the natural weather, unchanged). Dries or saturates the air. Shown as dew point on the readout.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-humidity"
      ],
      "path": "Sky bay › Air mass family › Humidity strip"
    },
    {
      "t": "ledbar",
      "id": "humidity-meter",
      "name": "Humidity output meter",
      "n": 14,
      "bip": true,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-humidity"
      ],
      "path": "Sky bay › Air mass family › Humidity strip"
    },
    {
      "t": "lamps",
      "id": "pressure-lamps",
      "name": "Pressure status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Never blocked. Low pressure over warm sea opens the cyclone gate.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-pressure"
      ],
      "path": "Sky bay › Air mass family › Pressure strip"
    },
    {
      "t": "knob",
      "id": "pressure-size",
      "name": "Pressure size",
      "label": "SIZE",
      "min": 100,
      "max": 3000,
      "step": 10,
      "def": 1400,
      "unit": "km",
      "lo": "100",
      "hi": "3000",
      "d": 30,
      "cap": "var(--f-air)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-pressure"
      ],
      "path": "Sky bay › Air mass family › Pressure strip"
    },
    {
      "t": "fader",
      "id": "pressure-fader",
      "name": "Pressure level",
      "min": -40,
      "max": 40,
      "step": 1,
      "unit": "hPa",
      "lo": "LOW",
      "hi": "HIGH",
      "def": 0,
      "cap": "var(--f-air)",
      "travel": 100,
      "desc": "Bipolar fader. Centre detent = NATURE (the natural weather, unchanged). High pressure brings stable, clear weather; low brings storms.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-pressure"
      ],
      "path": "Sky bay › Air mass family › Pressure strip"
    },
    {
      "t": "ledbar",
      "id": "pressure-meter",
      "name": "Pressure output meter",
      "n": 14,
      "bip": true,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-pressure"
      ],
      "path": "Sky bay › Air mass family › Pressure strip"
    },
    {
      "t": "lamps",
      "id": "wind-lamps",
      "name": "Wind status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Never blocked.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-wind"
      ],
      "path": "Sky bay › Air mass family › Wind strip"
    },
    {
      "t": "knob",
      "id": "wind-size",
      "name": "Wind size",
      "label": "SIZE",
      "min": 100,
      "max": 3000,
      "step": 10,
      "def": 1100,
      "unit": "km",
      "lo": "100",
      "hi": "3000",
      "d": 30,
      "cap": "var(--f-air)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-wind"
      ],
      "path": "Sky bay › Air mass family › Wind strip"
    },
    {
      "t": "knob",
      "id": "wind-char",
      "name": "Wind direction",
      "label": "DIRECTION",
      "min": 0,
      "max": 359,
      "step": 1,
      "def": 270,
      "endless": true,
      "d": 30,
      "cap": "var(--f-air)",
      "desc": "Direction the wind blows from. Endless knob with a compass rose.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-wind"
      ],
      "path": "Sky bay › Air mass family › Wind strip"
    },
    {
      "t": "btn",
      "id": "wind-burst",
      "name": "Wind gust",
      "legend": "GUST",
      "mode": "mom",
      "lit": "lr",
      "desc": "Gust front. Planned named event; this panel preview only pulses its output indicator.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-wind"
      ],
      "path": "Sky bay › Air mass family › Wind strip"
    },
    {
      "t": "fader",
      "id": "wind-fader",
      "name": "Wind level",
      "min": -100,
      "max": 100,
      "step": 1,
      "unit": "%",
      "lo": "CALM",
      "hi": "GALE",
      "def": 0,
      "cap": "var(--f-air)",
      "travel": 100,
      "desc": "Bipolar fader. Centre detent = NATURE (the natural weather, unchanged). Calms or strengthens the natural wind.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-wind"
      ],
      "path": "Sky bay › Air mass family › Wind strip"
    },
    {
      "t": "ledbar",
      "id": "wind-meter",
      "name": "Wind output meter",
      "n": 14,
      "bip": true,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-air",
        "strip-wind"
      ],
      "path": "Sky bay › Air mass family › Wind strip"
    },
    {
      "t": "lamps",
      "id": "clouds-lamps",
      "name": "Clouds status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Never blocked.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-clouds"
      ],
      "path": "Sky bay › Cloud & precipitation family › Clouds strip"
    },
    {
      "t": "knob",
      "id": "clouds-size",
      "name": "Clouds size",
      "label": "SIZE",
      "min": 100,
      "max": 3000,
      "step": 10,
      "def": 1100,
      "unit": "km",
      "lo": "100",
      "hi": "3000",
      "d": 30,
      "cap": "var(--f-cloud)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-clouds"
      ],
      "path": "Sky bay › Cloud & precipitation family › Clouds strip"
    },
    {
      "t": "knob",
      "id": "clouds-char",
      "name": "Clouds ceiling",
      "label": "CEILING",
      "min": 0.2,
      "max": 12,
      "step": 0.1,
      "def": 1.5,
      "unit": "km",
      "lo": "LOW",
      "hi": "HIGH",
      "d": 30,
      "cap": "var(--f-cloud)",
      "desc": "Cloud base height: low stratus to high cirrus. Visible in the cloud layer over the target.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-clouds"
      ],
      "path": "Sky bay › Cloud & precipitation family › Clouds strip"
    },
    {
      "t": "fader",
      "id": "clouds-fader",
      "name": "Clouds level",
      "min": -100,
      "max": 100,
      "step": 1,
      "unit": "%",
      "lo": "CLEAR",
      "hi": "OVCST",
      "def": 0,
      "cap": "var(--f-cloud)",
      "travel": 100,
      "desc": "Bipolar fader. Centre detent = NATURE (the natural weather, unchanged). Clears or thickens cloud cover.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-clouds"
      ],
      "path": "Sky bay › Cloud & precipitation family › Clouds strip"
    },
    {
      "t": "ledbar",
      "id": "clouds-meter",
      "name": "Clouds output meter",
      "n": 14,
      "bip": true,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-clouds"
      ],
      "path": "Sky bay › Cloud & precipitation family › Clouds strip"
    },
    {
      "t": "lamps",
      "id": "fog-lamps",
      "name": "Fog status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Humidity too low: the fog evaporates.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-fog"
      ],
      "path": "Sky bay › Cloud & precipitation family › Fog strip"
    },
    {
      "t": "knob",
      "id": "fog-size",
      "name": "Fog size",
      "label": "SIZE",
      "min": 20,
      "max": 1500,
      "step": 5,
      "def": 300,
      "unit": "km",
      "lo": "20",
      "hi": "1500",
      "d": 30,
      "cap": "var(--f-cloud)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-fog"
      ],
      "path": "Sky bay › Cloud & precipitation family › Fog strip"
    },
    {
      "t": "knob",
      "id": "fog-char",
      "name": "Fog depth",
      "label": "DEPTH",
      "min": 10,
      "max": 500,
      "step": 5,
      "def": 80,
      "unit": "m",
      "lo": "THIN",
      "hi": "DEEP",
      "d": 30,
      "cap": "var(--f-cloud)",
      "desc": "Fog thickness. Thin or deep fog over the target region.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-fog"
      ],
      "path": "Sky bay › Cloud & precipitation family › Fog strip"
    },
    {
      "t": "fader",
      "id": "fog-fader",
      "name": "Fog level",
      "min": -100,
      "max": 100,
      "step": 1,
      "unit": "%",
      "lo": "CLEAR",
      "hi": "DENSE",
      "def": 0,
      "cap": "var(--f-cloud)",
      "travel": 100,
      "desc": "Bipolar fader. Centre detent = NATURE (the natural weather, unchanged). Lifts or thickens fog.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-fog"
      ],
      "path": "Sky bay › Cloud & precipitation family › Fog strip"
    },
    {
      "t": "ledbar",
      "id": "fog-meter",
      "name": "Fog output meter",
      "n": 14,
      "bip": true,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-fog"
      ],
      "path": "Sky bay › Cloud & precipitation family › Fog strip"
    },
    {
      "t": "lamps",
      "id": "precip-lamps",
      "name": "Precipitation status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: The chosen type is impossible here (snow above +3 °C, hail without a thunderstorm). Falls as AUTO.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-precip"
      ],
      "path": "Sky bay › Cloud & precipitation family › Precipitation strip"
    },
    {
      "t": "knob",
      "id": "precip-size",
      "name": "Precipitation size",
      "label": "SIZE",
      "min": 50,
      "max": 3000,
      "step": 10,
      "def": 1100,
      "unit": "km",
      "lo": "50",
      "hi": "3000",
      "d": 30,
      "cap": "var(--f-cloud)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-precip"
      ],
      "path": "Sky bay › Cloud & precipitation family › Precipitation strip"
    },
    {
      "t": "rsw",
      "id": "precip-char",
      "name": "Precipitation type",
      "label": "TYPE",
      "pos": [
        "AUTO",
        "DRZL",
        "RAIN",
        "FRZ",
        "SLEET",
        "SNOW",
        "HAIL"
      ],
      "full": [
        "Auto",
        "Drizzle",
        "Rain",
        "Freezing rain",
        "Sleet",
        "Snow",
        "Hail"
      ],
      "def": 0,
      "d": 22,
      "r": 4.6,
      "desc": "What falls. AUTO lets the temperature decide.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-precip"
      ],
      "path": "Sky bay › Cloud & precipitation family › Precipitation strip"
    },
    {
      "t": "fader",
      "id": "precip-fader",
      "name": "Precipitation level",
      "min": -100,
      "max": 100,
      "step": 1,
      "unit": "%",
      "lo": "DRY",
      "hi": "DELUGE",
      "def": 0,
      "cap": "var(--f-cloud)",
      "travel": 100,
      "desc": "Bipolar fader. Centre detent = NATURE (the natural weather, unchanged). Dries up or intensifies rain, snow and hail. Replaces the separate Rain and Snowfall channels.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-precip"
      ],
      "path": "Sky bay › Cloud & precipitation family › Precipitation strip"
    },
    {
      "t": "ledbar",
      "id": "precip-meter",
      "name": "Precipitation output meter",
      "n": 14,
      "bip": true,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-precip"
      ],
      "path": "Sky bay › Cloud & precipitation family › Precipitation strip"
    },
    {
      "t": "lamps",
      "id": "lightning-lamps",
      "name": "Lightning status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: No clouds.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-lightning"
      ],
      "path": "Sky bay › Cloud & precipitation family › Lightning strip"
    },
    {
      "t": "knob",
      "id": "lightning-size",
      "name": "Lightning size",
      "label": "SIZE",
      "min": 20,
      "max": 1500,
      "step": 10,
      "def": 300,
      "unit": "km",
      "lo": "20",
      "hi": "1500",
      "d": 30,
      "cap": "var(--f-cloud)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-lightning"
      ],
      "path": "Sky bay › Cloud & precipitation family › Lightning strip"
    },
    {
      "t": "rsw",
      "id": "lightning-char",
      "name": "Lightning type",
      "label": "TYPE",
      "pos": [
        "IC",
        "CG",
        "SPRITE"
      ],
      "full": [
        "In-cloud",
        "Cloud-to-ground",
        "Sprites"
      ],
      "def": 1,
      "d": 22,
      "r": 4.6,
      "desc": "In-cloud flashes, cloud-to-ground strikes, or sprites above the storm.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-lightning"
      ],
      "path": "Sky bay › Cloud & precipitation family › Lightning strip"
    },
    {
      "t": "btn",
      "id": "lightning-burst",
      "name": "Lightning strike",
      "legend": "STRIKE",
      "mode": "mom",
      "lit": "lr",
      "desc": "A single bolt at the target. Can ignite a wildfire. Planned named event; this panel preview only pulses its output indicator.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-lightning"
      ],
      "path": "Sky bay › Cloud & precipitation family › Lightning strip"
    },
    {
      "t": "fader",
      "id": "lightning-fader",
      "name": "Lightning level",
      "min": 0,
      "max": 60,
      "step": 1,
      "unit": "/min",
      "lo": "0",
      "hi": "60",
      "def": 0,
      "cap": "var(--f-cloud)",
      "travel": 100,
      "desc": "Unipolar fader on the real scale. Strike rate at the target.",
      "category": "Control",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-lightning"
      ],
      "path": "Sky bay › Cloud & precipitation family › Lightning strip"
    },
    {
      "t": "ledbar",
      "id": "lightning-meter",
      "name": "Lightning output meter",
      "n": 14,
      "bip": false,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-sky",
        "fam-cloud",
        "strip-lightning"
      ],
      "path": "Sky bay › Cloud & precipitation family › Lightning strip"
    },
    {
      "t": "seg",
      "id": "lat",
      "name": "Latitude",
      "digits": 5,
      "h": 10,
      "label": "LAT °",
      "desc": "Target latitude.",
      "category": "Readout",
      "groups": [
        "bay-aim",
        "mod-position"
      ],
      "path": "Aim bay › Position"
    },
    {
      "t": "seg",
      "id": "lon",
      "name": "Longitude",
      "digits": 6,
      "h": 10,
      "label": "LON °",
      "desc": "Target longitude.",
      "category": "Readout",
      "groups": [
        "bay-aim",
        "mod-position"
      ],
      "path": "Aim bay › Position"
    },
    {
      "t": "seg",
      "id": "alt",
      "name": "Altitude",
      "digits": 5,
      "h": 10,
      "label": "VIEW HEIGHT km",
      "desc": "Viewing altitude above Earth. Separate from terrain elevation and ocean depth; zoom chooses probe detail, not sampling height.",
      "category": "Readout",
      "groups": [
        "bay-aim",
        "mod-position"
      ],
      "path": "Aim bay › Position"
    },
    {
      "t": "lamp",
      "id": "t-land",
      "name": "Land lamp",
      "col": "g",
      "label": "LAND",
      "desc": "Target surface. Target surface and light conditions, used by the condition explanations.",
      "category": "Readout",
      "groups": [
        "bay-aim",
        "mod-position"
      ],
      "path": "Aim bay › Position"
    },
    {
      "t": "lamp",
      "id": "t-sea",
      "name": "Sea lamp",
      "col": "b",
      "label": "SEA",
      "desc": "Target surface. Target surface and light conditions, used by the condition explanations.",
      "category": "Readout",
      "groups": [
        "bay-aim",
        "mod-position"
      ],
      "path": "Aim bay › Position"
    },
    {
      "t": "lamp",
      "id": "t-ice",
      "name": "Ice lamp",
      "col": "b",
      "label": "ICE",
      "desc": "Target surface. Target surface and light conditions, used by the condition explanations.",
      "category": "Readout",
      "groups": [
        "bay-aim",
        "mod-position"
      ],
      "path": "Aim bay › Position"
    },
    {
      "t": "lamp",
      "id": "t-city",
      "name": "City lamp",
      "col": "a",
      "label": "CITY",
      "desc": "Target surface. Target surface and light conditions, used by the condition explanations.",
      "category": "Readout",
      "groups": [
        "bay-aim",
        "mod-position"
      ],
      "path": "Aim bay › Position"
    },
    {
      "t": "lamp",
      "id": "t-night",
      "name": "Night lamp",
      "col": "a",
      "label": "NIGHT",
      "desc": "Target surface. Target surface and light conditions, used by the condition explanations.",
      "category": "Readout",
      "groups": [
        "bay-aim",
        "mod-position"
      ],
      "path": "Aim bay › Position"
    },
    {
      "t": "scope",
      "id": "rfscope",
      "name": "RF scope",
      "w": 150,
      "h": 46,
      "label": "RF SCOPE",
      "desc": "Transmitted carrier: frequency and power level.",
      "category": "Readout",
      "groups": [
        "bay-aim",
        "mod-position"
      ],
      "path": "Aim bay › Position"
    },
    {
      "t": "rsw",
      "id": "city",
      "name": "City selector",
      "pos": [
        "OFF",
        "LON",
        "PAR",
        "MOW",
        "IST",
        "CAI",
        "NYC",
        "LAX",
        "SAO",
        "DXB",
        "BOM",
        "SIN",
        "HKG",
        "TYO",
        "SYD",
        "CPT"
      ],
      "def": 0,
      "d": 44,
      "label": "CITY",
      "r": 6,
      "desc": "16-position selector engraved with city codes. Press GO to centre the globe on that city.",
      "full": [
        "No city",
        "London",
        "Paris",
        "Moscow",
        "Istanbul",
        "Cairo",
        "New York",
        "Los Angeles",
        "São Paulo",
        "Dubai",
        "Mumbai",
        "Singapore",
        "Hong Kong",
        "Tokyo",
        "Sydney",
        "Cape Town"
      ],
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-target"
      ],
      "path": "Aim bay › Target"
    },
    {
      "t": "btn",
      "id": "go",
      "name": "Go to city",
      "mode": "mom",
      "lit": "lg",
      "legend": "GO",
      "bw": 34,
      "bh": 18,
      "desc": "Centres the globe on the selected city; keeps the current globe-scale height.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-target"
      ],
      "path": "Aim bay › Target"
    },
    {
      "t": "knob",
      "id": "scrbright",
      "name": "Screen brightness",
      "min": 0,
      "max": 100,
      "step": 1,
      "def": 80,
      "d": 26,
      "label": "BRIGHT",
      "unit": "%",
      "lo": "0",
      "hi": "100",
      "desc": "Main screen brightness. Never drops below 30% (software minimum), so the next visitor never finds it dark.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-screens"
      ],
      "path": "Aim bay › Screens"
    },
    {
      "t": "lever",
      "id": "units",
      "name": "Units",
      "pos": [
        "METRIC",
        "IMPERIAL"
      ],
      "def": 0,
      "label": "UNITS",
      "desc": "Metric or imperial on screen and on the displays.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-screens"
      ],
      "path": "Aim bay › Screens"
    },
    {
      "t": "btn",
      "id": "labels",
      "name": "City labels",
      "mode": "latch",
      "lit": "lg",
      "legend": "LABELS",
      "bw": 34,
      "def": true,
      "desc": "City names on the globe.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-screens"
      ],
      "path": "Aim bay › Screens"
    },
    {
      "t": "btn",
      "id": "captions",
      "name": "Captions",
      "mode": "latch",
      "lit": "lg",
      "legend": "CAPTIONS",
      "bw": 34,
      "desc": "Subtitles for the news anchor and radio.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-screens"
      ],
      "path": "Aim bay › Screens"
    },
    {
      "t": "whl",
      "id": "zoom",
      "name": "Zoom wheel",
      "d": 96,
      "label": "ZOOM",
      "desc": "Large weighted endless wheel. Changes globe viewing height and probe detail. Surface measurements stay anchored under the crosshair; no city camera.",
      "def": 0.25,
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-nav"
      ],
      "path": "Aim bay › Navigation"
    },
    {
      "t": "tb",
      "id": "trackball",
      "name": "Trackball",
      "d": 190,
      "label": "TRACKBALL",
      "desc": "Rolls the globe and moves the surface probe under the crosshair.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-nav"
      ],
      "path": "Aim bay › Navigation"
    },
    {
      "t": "btn",
      "id": "layer-sat",
      "name": "Layer: Satellite",
      "mode": "latch",
      "lit": "lg",
      "legend": "SAT",
      "bw": 34,
      "bh": 13,
      "def": true,
      "desc": "Overlay on the globe. Changes no forcing.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-layers"
      ],
      "path": "Aim bay › Layers"
    },
    {
      "t": "btn",
      "id": "layer-clouds",
      "name": "Layer: Clouds",
      "mode": "latch",
      "lit": "lg",
      "legend": "CLOUDS",
      "bw": 34,
      "bh": 13,
      "def": false,
      "desc": "Overlay on the globe. Changes no forcing.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-layers"
      ],
      "path": "Aim bay › Layers"
    },
    {
      "t": "btn",
      "id": "layer-rain",
      "name": "Layer: Rain",
      "mode": "latch",
      "lit": "lg",
      "legend": "RAIN",
      "bw": 34,
      "bh": 13,
      "def": false,
      "desc": "Overlay on the globe. Changes no forcing.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-layers"
      ],
      "path": "Aim bay › Layers"
    },
    {
      "t": "btn",
      "id": "layer-wind",
      "name": "Layer: Wind",
      "mode": "latch",
      "lit": "lg",
      "legend": "WIND",
      "bw": 34,
      "bh": 13,
      "def": false,
      "desc": "Overlay on the globe. Changes no forcing.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-layers"
      ],
      "path": "Aim bay › Layers"
    },
    {
      "t": "btn",
      "id": "layer-temp",
      "name": "Layer: Temp",
      "mode": "latch",
      "lit": "lg",
      "legend": "TEMP",
      "bw": 34,
      "bh": 13,
      "def": false,
      "desc": "Overlay on the globe. Changes no forcing.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-layers"
      ],
      "path": "Aim bay › Layers"
    },
    {
      "t": "btn",
      "id": "layer-press",
      "name": "Layer: Pressure isobars",
      "mode": "latch",
      "lit": "lg",
      "legend": "PRESS",
      "bw": 34,
      "bh": 13,
      "def": false,
      "desc": "Overlay on the globe. Changes no forcing.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-layers"
      ],
      "path": "Aim bay › Layers"
    },
    {
      "t": "btn",
      "id": "layer-current",
      "name": "Layer: Current",
      "mode": "latch",
      "lit": "lg",
      "legend": "CURRENT",
      "bw": 34,
      "bh": 13,
      "def": false,
      "desc": "Overlay on the globe. Changes no forcing.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-layers"
      ],
      "path": "Aim bay › Layers"
    },
    {
      "t": "btn",
      "id": "layer-iono",
      "name": "Layer: Ionosphere TEC",
      "mode": "latch",
      "lit": "lg",
      "legend": "IONO",
      "bw": 34,
      "bh": 13,
      "def": false,
      "desc": "Overlay on the globe. Changes no forcing.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-layers"
      ],
      "path": "Aim bay › Layers"
    },
    {
      "t": "btn",
      "id": "layer-lightng",
      "name": "Layer: Lightning",
      "mode": "latch",
      "lit": "lg",
      "legend": "LIGHTNG",
      "bw": 34,
      "bh": 13,
      "def": false,
      "desc": "Overlay on the globe. Changes no forcing.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-layers"
      ],
      "path": "Aim bay › Layers"
    },
    {
      "t": "btn",
      "id": "layer-night",
      "name": "Layer: Night lights",
      "mode": "latch",
      "lit": "lg",
      "legend": "NIGHT",
      "bw": 34,
      "bh": 13,
      "def": false,
      "desc": "Overlay on the globe. Changes no forcing.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-layers"
      ],
      "path": "Aim bay › Layers"
    },
    {
      "t": "btn",
      "id": "layer-seismic",
      "name": "Layer: Seismic",
      "mode": "latch",
      "lit": "lg",
      "legend": "SEISMIC",
      "bw": 34,
      "bh": 13,
      "def": false,
      "desc": "Overlay on the globe. Changes no forcing.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-layers"
      ],
      "path": "Aim bay › Layers"
    },
    {
      "t": "btn",
      "id": "grid",
      "name": "Graticule",
      "mode": "latch",
      "lit": "lg",
      "legend": "GRID",
      "bw": 34,
      "bh": 13,
      "desc": "Latitude/longitude grid.",
      "category": "Control",
      "groups": [
        "bay-aim",
        "mod-layers"
      ],
      "path": "Aim bay › Layers"
    },
    {
      "t": "ledbar",
      "id": "storm-draw",
      "name": "Storms power draw",
      "n": 20,
      "h": true,
      "desc": "Share of the transmitter power this family is drawing.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-storm"
      ],
      "path": "Earth bay › Storms family"
    },
    {
      "t": "vfd",
      "id": "tstorm-read",
      "name": "Thunderstorm cell touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-tstorm"
      ],
      "path": "Earth bay › Storms family › Thunderstorm cell strip"
    },
    {
      "t": "vfd",
      "id": "cyclone-read",
      "name": "Cyclone touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-cyclone"
      ],
      "path": "Earth bay › Storms family › Cyclone strip"
    },
    {
      "t": "vfd",
      "id": "tornado-read",
      "name": "Tornado touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-tornado"
      ],
      "path": "Earth bay › Storms family › Tornado strip"
    },
    {
      "t": "vfd",
      "id": "dust-read",
      "name": "Dust storm touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-dust"
      ],
      "path": "Earth bay › Storms family › Dust storm strip"
    },
    {
      "t": "ledbar",
      "id": "ocean-draw",
      "name": "Ocean power draw",
      "n": 20,
      "h": true,
      "desc": "Share of the transmitter power this family is drawing.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ocean"
      ],
      "path": "Earth bay › Ocean family"
    },
    {
      "t": "vfd",
      "id": "sealevel-read",
      "name": "Sea level touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-sealevel"
      ],
      "path": "Earth bay › Ocean family › Sea level strip"
    },
    {
      "t": "vfd",
      "id": "seastate-read",
      "name": "Sea state touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-seastate"
      ],
      "path": "Earth bay › Ocean family › Sea state strip"
    },
    {
      "t": "vfd",
      "id": "current-read",
      "name": "Ocean current touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-current"
      ],
      "path": "Earth bay › Ocean family › Ocean current strip"
    },
    {
      "t": "vfd",
      "id": "sst-read",
      "name": "Sea temperature touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-sst"
      ],
      "path": "Earth bay › Ocean family › Sea temperature strip"
    },
    {
      "t": "ledbar",
      "id": "ground-draw",
      "name": "Ground power draw",
      "n": 20,
      "h": true,
      "desc": "Share of the transmitter power this family is drawing.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ground"
      ],
      "path": "Earth bay › Ground family"
    },
    {
      "t": "vfd",
      "id": "soil-read",
      "name": "Soil moisture touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-soil"
      ],
      "path": "Earth bay › Ground family › Soil moisture strip"
    },
    {
      "t": "vfd",
      "id": "fire-read",
      "name": "Wildfire touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-fire"
      ],
      "path": "Earth bay › Ground family › Wildfire strip"
    },
    {
      "t": "vfd",
      "id": "quake-read",
      "name": "Earthquake touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-quake"
      ],
      "path": "Earth bay › Ground family › Earthquake strip"
    },
    {
      "t": "vfd",
      "id": "volcano-read",
      "name": "Volcano touch-to-read display",
      "desc": "Shows the value of whichever control on this strip you touch, in physical units.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-volcano"
      ],
      "path": "Earth bay › Ground family › Volcano strip"
    },
    {
      "t": "scope",
      "id": "wavescope",
      "name": "Wave oscilloscope",
      "w": 150,
      "h": 46,
      "label": "WAVE SCOPE",
      "desc": "Sea surface at the target: swell from Sea state, tide from Sea level, and the long tsunami wave when a shallow seaquake makes one. Flat when the target is on land.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "mod-waves"
      ],
      "path": "Earth bay › Sea surface"
    },
    {
      "t": "seg",
      "id": "tsunami-height",
      "name": "Tsunami wave height",
      "digits": 4,
      "h": 8,
      "label": "TSUNAMI m",
      "desc": "Tsunami wave height at the sea target. Separate from ordinary wave height. Numeric values in this layout are illustrative.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "mod-waves"
      ],
      "path": "Earth bay › Sea surface"
    },
    {
      "t": "seg",
      "id": "elapsed",
      "name": "Simulation elapsed",
      "digits": 6,
      "h": 9,
      "label": "ELAPSED D.HH.MM",
      "desc": "Simulated time since the shift started.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "mod-clocks"
      ],
      "path": "Earth bay › Simulation"
    },
    {
      "t": "seg",
      "id": "rate",
      "name": "Simulation rate",
      "digits": 4,
      "h": 9,
      "label": "RATE ×",
      "desc": "Current simulation speed.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "mod-clocks"
      ],
      "path": "Earth bay › Simulation"
    },
    {
      "t": "beacon",
      "id": "beacon",
      "name": "Beacon",
      "label": "BEACON",
      "desc": "Rotating beacon. Spins by itself on major disasters, and during LAMP TEST.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "mod-clocks"
      ],
      "path": "Earth bay › Simulation"
    },
    {
      "t": "rsw",
      "id": "report",
      "name": "Report source",
      "pos": [
        "CITY",
        "AVIATION",
        "HARBOUR",
        "RESEARCH"
      ],
      "def": 0,
      "d": 24,
      "label": "REPORT",
      "r": 7,
      "desc": "Choose short, captioned reports that react to events at the target. Planned automatic mix; no radio tuning or squelch.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "mod-comms"
      ],
      "path": "Earth bay › Reports"
    },
    {
      "t": "readout",
      "id": "report-text",
      "name": "Report caption display",
      "label": "REPORT CAPTIONS",
      "w": 190,
      "wide": true,
      "unit": "EXAMPLE CAPTION",
      "sample": "CITY · No major disruption",
      "desc": "Caption display for the selected report. Text here previews the panel; recorded speech and event-driven content are future work.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "mod-comms"
      ],
      "path": "Earth bay › Reports"
    },
    {
      "t": "lamps",
      "id": "tstorm-lamps",
      "name": "Thunderstorm cell status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: No instability (cold, dry air).",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-tstorm"
      ],
      "path": "Earth bay › Storms family › Thunderstorm cell strip"
    },
    {
      "t": "knob",
      "id": "tstorm-size",
      "name": "Thunderstorm cell size",
      "label": "SIZE",
      "min": 10,
      "max": 200,
      "step": 1,
      "def": 60,
      "unit": "km",
      "lo": "10",
      "hi": "200",
      "d": 30,
      "cap": "var(--f-storm)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-tstorm"
      ],
      "path": "Earth bay › Storms family › Thunderstorm cell strip"
    },
    {
      "t": "rsw",
      "id": "tstorm-char",
      "name": "Thunderstorm cell organise",
      "label": "ORGANISE",
      "pos": [
        "SGL",
        "MULTI",
        "LINE",
        "SUPER"
      ],
      "full": [
        "Single cell",
        "Multicell",
        "Squall line",
        "Supercell"
      ],
      "def": 0,
      "d": 22,
      "r": 4.6,
      "desc": "Single cell, multicell, squall line or supercell. Supercells can spawn tornadoes.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-tstorm"
      ],
      "path": "Earth bay › Storms family › Thunderstorm cell strip"
    },
    {
      "t": "btn",
      "id": "tstorm-burst",
      "name": "Thunderstorm microburst",
      "legend": "MICROBURST",
      "mode": "mom",
      "lit": "lr",
      "desc": "Microburst. Planned named event; this panel preview only pulses its output indicator.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-tstorm"
      ],
      "path": "Earth bay › Storms family › Thunderstorm cell strip"
    },
    {
      "t": "fader",
      "id": "tstorm-fader",
      "name": "Thunderstorm cell level",
      "min": 0,
      "max": 100,
      "step": 1,
      "unit": "%",
      "lo": "0",
      "hi": "100",
      "def": 0,
      "cap": "var(--f-storm)",
      "travel": 100,
      "desc": "Unipolar fader on the real scale. Convective storm cell at the target.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-tstorm"
      ],
      "path": "Earth bay › Storms family › Thunderstorm cell strip"
    },
    {
      "t": "ledbar",
      "id": "tstorm-meter",
      "name": "Thunderstorm cell output meter",
      "n": 14,
      "bip": false,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-tstorm"
      ],
      "path": "Earth bay › Storms family › Thunderstorm cell strip"
    },
    {
      "t": "lamps",
      "id": "cyclone-lamps",
      "name": "Cyclone status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Over land, or sea colder than 26 °C: it weakens.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-cyclone"
      ],
      "path": "Earth bay › Storms family › Cyclone strip"
    },
    {
      "t": "knob",
      "id": "cyclone-size",
      "name": "Cyclone size",
      "label": "SIZE",
      "min": 200,
      "max": 2000,
      "step": 10,
      "def": 700,
      "unit": "km",
      "lo": "200",
      "hi": "2000",
      "d": 30,
      "cap": "var(--f-storm)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-cyclone"
      ],
      "path": "Earth bay › Storms family › Cyclone strip"
    },
    {
      "t": "knob",
      "id": "cyclone-char",
      "name": "Cyclone track",
      "label": "TRACK",
      "min": 0,
      "max": 359,
      "step": 1,
      "def": 300,
      "endless": true,
      "d": 30,
      "cap": "var(--f-storm)",
      "desc": "Heading the cyclone travels. Aim it at a city.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-cyclone"
      ],
      "path": "Earth bay › Storms family › Cyclone strip"
    },
    {
      "t": "btn",
      "id": "cyclone-arm",
      "name": "Cyclone arm",
      "legend": "ARM",
      "lit": "lr",
      "desc": "Lock-to-arm: press ARM, then raise the fader. It re-locks by itself after 10 s at zero. Momentary lit button; the software holds the state.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-cyclone"
      ],
      "path": "Earth bay › Storms family › Cyclone strip"
    },
    {
      "t": "fader",
      "id": "cyclone-fader",
      "name": "Cyclone level",
      "min": 0,
      "max": 5,
      "step": 0.1,
      "unit": "CAT",
      "lo": "0",
      "hi": "5",
      "def": 0,
      "cap": "var(--f-storm)",
      "travel": 100,
      "desc": "Unipolar fader on the real scale. Tropical cyclone on the Saffir-Simpson scale.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-cyclone"
      ],
      "path": "Earth bay › Storms family › Cyclone strip"
    },
    {
      "t": "ledbar",
      "id": "cyclone-meter",
      "name": "Cyclone output meter",
      "n": 14,
      "bip": false,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-cyclone"
      ],
      "path": "Earth bay › Storms family › Cyclone strip"
    },
    {
      "t": "lamps",
      "id": "tornado-lamps",
      "name": "Tornado status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: No thunderstorm (best with a supercell).",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-tornado"
      ],
      "path": "Earth bay › Storms family › Tornado strip"
    },
    {
      "t": "knob",
      "id": "tornado-size",
      "name": "Tornado path",
      "label": "PATH",
      "min": 1,
      "max": 80,
      "step": 1,
      "def": 15,
      "unit": "km",
      "lo": "1",
      "hi": "80",
      "d": 30,
      "cap": "var(--f-storm)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-tornado"
      ],
      "path": "Earth bay › Storms family › Tornado strip"
    },
    {
      "t": "knob",
      "id": "tornado-char",
      "name": "Tornado shape",
      "label": "SHAPE",
      "min": 0,
      "max": 100,
      "step": 1,
      "def": 30,
      "lo": "ROPE",
      "hi": "WEDGE",
      "d": 30,
      "cap": "var(--f-storm)",
      "desc": "Thin rope or broad wedge funnel.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-tornado"
      ],
      "path": "Earth bay › Storms family › Tornado strip"
    },
    {
      "t": "btn",
      "id": "tornado-arm",
      "name": "Tornado arm",
      "legend": "ARM",
      "lit": "lr",
      "desc": "Lock-to-arm: press ARM, then raise the fader. It re-locks by itself after 10 s at zero. Momentary lit button; the software holds the state.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-tornado"
      ],
      "path": "Earth bay › Storms family › Tornado strip"
    },
    {
      "t": "btn",
      "id": "tornado-burst",
      "name": "Tornado touchdown",
      "legend": "TOUCHDOWN",
      "mode": "mom",
      "lit": "lr",
      "desc": "Touchdown. Planned named event; this panel preview only pulses its output indicator.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-tornado"
      ],
      "path": "Earth bay › Storms family › Tornado strip"
    },
    {
      "t": "fader",
      "id": "tornado-fader",
      "name": "Tornado level",
      "min": 0,
      "max": 5,
      "step": 0.1,
      "unit": "EF",
      "lo": "0",
      "hi": "5",
      "def": 0,
      "cap": "var(--f-storm)",
      "travel": 100,
      "desc": "Unipolar fader on the real scale. Tornado on the Enhanced Fujita scale.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-tornado"
      ],
      "path": "Earth bay › Storms family › Tornado strip"
    },
    {
      "t": "ledbar",
      "id": "tornado-meter",
      "name": "Tornado output meter",
      "n": 14,
      "bip": false,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-tornado"
      ],
      "path": "Earth bay › Storms family › Tornado strip"
    },
    {
      "t": "lamps",
      "id": "dust-lamps",
      "name": "Dust storm status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Wet ground or sea.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-dust"
      ],
      "path": "Earth bay › Storms family › Dust storm strip"
    },
    {
      "t": "knob",
      "id": "dust-size",
      "name": "Dust storm size",
      "label": "SIZE",
      "min": 50,
      "max": 1500,
      "step": 10,
      "def": 400,
      "unit": "km",
      "lo": "50",
      "hi": "1500",
      "d": 30,
      "cap": "var(--f-storm)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-dust"
      ],
      "path": "Earth bay › Storms family › Dust storm strip"
    },
    {
      "t": "knob",
      "id": "dust-char",
      "name": "Dust storm wall",
      "label": "WALL",
      "min": 100,
      "max": 3000,
      "step": 50,
      "def": 1200,
      "unit": "m",
      "lo": "LOW",
      "hi": "HIGH",
      "d": 30,
      "cap": "var(--f-storm)",
      "desc": "Height of the dust wall.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-dust"
      ],
      "path": "Earth bay › Storms family › Dust storm strip"
    },
    {
      "t": "fader",
      "id": "dust-fader",
      "name": "Dust storm level",
      "min": 0,
      "max": 100,
      "step": 1,
      "unit": "%",
      "lo": "0",
      "hi": "100",
      "def": 0,
      "cap": "var(--f-storm)",
      "travel": 100,
      "desc": "Unipolar fader on the real scale. Desert dust storm. Made for Cairo and Dubai.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-dust"
      ],
      "path": "Earth bay › Storms family › Dust storm strip"
    },
    {
      "t": "ledbar",
      "id": "dust-meter",
      "name": "Dust storm output meter",
      "n": 14,
      "bip": false,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-storm",
        "strip-dust"
      ],
      "path": "Earth bay › Storms family › Dust storm strip"
    },
    {
      "t": "lamps",
      "id": "sealevel-lamps",
      "name": "Sea level status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Target inland.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-sealevel"
      ],
      "path": "Earth bay › Ocean family › Sea level strip"
    },
    {
      "t": "knob",
      "id": "sealevel-size",
      "name": "Sea level size",
      "label": "SIZE",
      "min": 50,
      "max": 2000,
      "step": 10,
      "def": 600,
      "unit": "km",
      "lo": "50",
      "hi": "2000",
      "d": 30,
      "cap": "var(--f-ocean)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-sealevel"
      ],
      "path": "Earth bay › Ocean family › Sea level strip"
    },
    {
      "t": "knob",
      "id": "sealevel-char",
      "name": "Sea level tide",
      "label": "TIDE",
      "min": 0,
      "max": 100,
      "step": 1,
      "def": 40,
      "lo": "NEAP",
      "hi": "SPRING",
      "d": 30,
      "cap": "var(--f-ocean)",
      "desc": "Tidal range from neap to spring tide.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-sealevel"
      ],
      "path": "Earth bay › Ocean family › Sea level strip"
    },
    {
      "t": "fader",
      "id": "sealevel-fader",
      "name": "Sea level level",
      "min": -5,
      "max": 5,
      "step": 0.1,
      "unit": "m",
      "lo": "LOW",
      "hi": "SURGE",
      "def": 0,
      "cap": "var(--f-ocean)",
      "travel": 100,
      "desc": "Bipolar fader. Centre detent = NATURE (the natural weather, unchanged). Raises or lowers the sea at the target.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-sealevel"
      ],
      "path": "Earth bay › Ocean family › Sea level strip"
    },
    {
      "t": "ledbar",
      "id": "sealevel-meter",
      "name": "Sea level output meter",
      "n": 14,
      "bip": true,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-sealevel"
      ],
      "path": "Earth bay › Ocean family › Sea level strip"
    },
    {
      "t": "lamps",
      "id": "seastate-lamps",
      "name": "Sea state status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Target on land.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-seastate"
      ],
      "path": "Earth bay › Ocean family › Sea state strip"
    },
    {
      "t": "knob",
      "id": "seastate-size",
      "name": "Sea state size",
      "label": "SIZE",
      "min": 50,
      "max": 2000,
      "step": 10,
      "def": 800,
      "unit": "km",
      "lo": "50",
      "hi": "2000",
      "d": 30,
      "cap": "var(--f-ocean)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-seastate"
      ],
      "path": "Earth bay › Ocean family › Sea state strip"
    },
    {
      "t": "knob",
      "id": "seastate-char",
      "name": "Sea state swell",
      "label": "SWELL",
      "min": 2,
      "max": 20,
      "step": 0.5,
      "def": 8,
      "unit": "s",
      "lo": "CHOP",
      "hi": "LONG",
      "d": 30,
      "cap": "var(--f-ocean)",
      "desc": "Wave period: short chop to long ocean swell.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-seastate"
      ],
      "path": "Earth bay › Ocean family › Sea state strip"
    },
    {
      "t": "btn",
      "id": "seastate-burst",
      "name": "Rogue wave",
      "legend": "ROGUE WAVE",
      "mode": "mom",
      "lit": "lr",
      "desc": "Rogue wave. Planned named event; this panel preview only pulses its output indicator.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-seastate"
      ],
      "path": "Earth bay › Ocean family › Sea state strip"
    },
    {
      "t": "fader",
      "id": "seastate-fader",
      "name": "Sea state level",
      "min": -100,
      "max": 100,
      "step": 1,
      "unit": "%",
      "lo": "GLASSY",
      "hi": "PHENOM",
      "def": 0,
      "cap": "var(--f-ocean)",
      "travel": 100,
      "desc": "Bipolar fader. Centre detent = NATURE (the natural weather, unchanged). Calms or roughens the waves (Douglas sea state).",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-seastate"
      ],
      "path": "Earth bay › Ocean family › Sea state strip"
    },
    {
      "t": "ledbar",
      "id": "seastate-meter",
      "name": "Sea state output meter",
      "n": 14,
      "bip": true,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-seastate"
      ],
      "path": "Earth bay › Ocean family › Sea state strip"
    },
    {
      "t": "lamps",
      "id": "current-lamps",
      "name": "Ocean current status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Target on land.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-current"
      ],
      "path": "Earth bay › Ocean family › Ocean current strip"
    },
    {
      "t": "knob",
      "id": "current-size",
      "name": "Ocean current size",
      "label": "SIZE",
      "min": 50,
      "max": 3000,
      "step": 10,
      "def": 1000,
      "unit": "km",
      "lo": "50",
      "hi": "3000",
      "d": 30,
      "cap": "var(--f-ocean)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-current"
      ],
      "path": "Earth bay › Ocean family › Ocean current strip"
    },
    {
      "t": "knob",
      "id": "current-char",
      "name": "Ocean current direction",
      "label": "DIRECTION",
      "min": 0,
      "max": 359,
      "step": 1,
      "def": 90,
      "endless": true,
      "d": 30,
      "cap": "var(--f-ocean)",
      "desc": "Direction the current flows toward.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-current"
      ],
      "path": "Earth bay › Ocean family › Ocean current strip"
    },
    {
      "t": "fader",
      "id": "current-fader",
      "name": "Ocean current level",
      "min": -100,
      "max": 100,
      "step": 1,
      "unit": "%",
      "lo": "REV",
      "hi": "FAST",
      "def": 0,
      "cap": "var(--f-ocean)",
      "travel": 100,
      "desc": "Bipolar fader. Centre detent = NATURE (the natural weather, unchanged). Slows, reverses or speeds up the surface current.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-current"
      ],
      "path": "Earth bay › Ocean family › Ocean current strip"
    },
    {
      "t": "ledbar",
      "id": "current-meter",
      "name": "Ocean current output meter",
      "n": 14,
      "bip": true,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-current"
      ],
      "path": "Earth bay › Ocean family › Ocean current strip"
    },
    {
      "t": "lamps",
      "id": "sst-lamps",
      "name": "Sea temperature status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Target on land.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-sst"
      ],
      "path": "Earth bay › Ocean family › Sea temperature strip"
    },
    {
      "t": "knob",
      "id": "sst-size",
      "name": "Sea temperature size",
      "label": "SIZE",
      "min": 50,
      "max": 3000,
      "step": 10,
      "def": 1000,
      "unit": "km",
      "lo": "50",
      "hi": "3000",
      "d": 30,
      "cap": "var(--f-ocean)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-sst"
      ],
      "path": "Earth bay › Ocean family › Sea temperature strip"
    },
    {
      "t": "fader",
      "id": "sst-fader",
      "name": "Sea temperature level",
      "min": -6,
      "max": 6,
      "step": 0.1,
      "unit": "°C",
      "lo": "COLD",
      "hi": "WARM",
      "def": 0,
      "cap": "var(--f-ocean)",
      "travel": 100,
      "desc": "Bipolar fader. Centre detent = NATURE (the natural weather, unchanged). Warms or cools the sea surface.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-sst"
      ],
      "path": "Earth bay › Ocean family › Sea temperature strip"
    },
    {
      "t": "ledbar",
      "id": "sst-meter",
      "name": "Sea temperature output meter",
      "n": 14,
      "bip": true,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ocean",
        "strip-sst"
      ],
      "path": "Earth bay › Ocean family › Sea temperature strip"
    },
    {
      "t": "lamps",
      "id": "soil-lamps",
      "name": "Soil moisture status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Target on the ocean.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-soil"
      ],
      "path": "Earth bay › Ground family › Soil moisture strip"
    },
    {
      "t": "knob",
      "id": "soil-size",
      "name": "Soil moisture size",
      "label": "SIZE",
      "min": 50,
      "max": 3000,
      "step": 10,
      "def": 900,
      "unit": "km",
      "lo": "50",
      "hi": "3000",
      "d": 30,
      "cap": "var(--f-ground)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-soil"
      ],
      "path": "Earth bay › Ground family › Soil moisture strip"
    },
    {
      "t": "fader",
      "id": "soil-fader",
      "name": "Soil moisture level",
      "min": -100,
      "max": 100,
      "step": 1,
      "unit": "%",
      "lo": "DROUGHT",
      "hi": "WET",
      "def": 0,
      "cap": "var(--f-ground)",
      "travel": 100,
      "desc": "Bipolar fader. Centre detent = NATURE (the natural weather, unchanged). Drought to waterlogged ground. Replaces the Drought channel.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-soil"
      ],
      "path": "Earth bay › Ground family › Soil moisture strip"
    },
    {
      "t": "ledbar",
      "id": "soil-meter",
      "name": "Soil moisture output meter",
      "n": 14,
      "bip": true,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-soil"
      ],
      "path": "Earth bay › Ground family › Soil moisture strip"
    },
    {
      "t": "lamps",
      "id": "fire-lamps",
      "name": "Wildfire status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Wet soil, snow or sea.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-fire"
      ],
      "path": "Earth bay › Ground family › Wildfire strip"
    },
    {
      "t": "knob",
      "id": "fire-size",
      "name": "Wildfire size",
      "label": "SIZE",
      "min": 5,
      "max": 800,
      "step": 5,
      "def": 120,
      "unit": "km",
      "lo": "5",
      "hi": "800",
      "d": 30,
      "cap": "var(--f-ground)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-fire"
      ],
      "path": "Earth bay › Ground family › Wildfire strip"
    },
    {
      "t": "btn",
      "id": "fire-burst",
      "name": "Wildfire ignition",
      "legend": "IGNITE",
      "mode": "mom",
      "lit": "lr",
      "desc": "Ignition: spawns a new fire at the target. Planned named event; this panel preview only pulses its output indicator.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-fire"
      ],
      "path": "Earth bay › Ground family › Wildfire strip"
    },
    {
      "t": "fader",
      "id": "fire-fader",
      "name": "Wildfire level",
      "min": 0,
      "max": 100,
      "step": 1,
      "unit": "%",
      "lo": "0",
      "hi": "100",
      "def": 0,
      "cap": "var(--f-ground)",
      "travel": 100,
      "desc": "Unipolar fader on the real scale. Wildfire intensity. IGNITE spawns a fire; the fader feeds it.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-fire"
      ],
      "path": "Earth bay › Ground family › Wildfire strip"
    },
    {
      "t": "ledbar",
      "id": "fire-meter",
      "name": "Wildfire output meter",
      "n": 14,
      "bip": false,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-fire"
      ],
      "path": "Earth bay › Ground family › Wildfire strip"
    },
    {
      "t": "lamps",
      "id": "quake-lamps",
      "name": "Earthquake status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Never blocked.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-quake"
      ],
      "path": "Earth bay › Ground family › Earthquake strip"
    },
    {
      "t": "knob",
      "id": "quake-size",
      "name": "Earthquake rupture",
      "label": "RUPTURE",
      "min": 10,
      "max": 800,
      "step": 5,
      "def": 120,
      "unit": "km",
      "lo": "10",
      "hi": "800",
      "d": 30,
      "cap": "var(--f-ground)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-quake"
      ],
      "path": "Earth bay › Ground family › Earthquake strip"
    },
    {
      "t": "knob",
      "id": "quake-char",
      "name": "Earthquake depth",
      "label": "DEPTH",
      "min": 5,
      "max": 300,
      "step": 1,
      "def": 20,
      "unit": "km",
      "lo": "5",
      "hi": "300",
      "d": 30,
      "cap": "var(--f-ground)",
      "desc": "Hypocentre depth. Shallow quakes at sea with Mw ≥ 7 light the TSUNAMI tile.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-quake"
      ],
      "path": "Earth bay › Ground family › Earthquake strip"
    },
    {
      "t": "btn",
      "id": "quake-arm",
      "name": "Earthquake arm",
      "legend": "ARM",
      "lit": "lr",
      "desc": "Lock-to-arm: press ARM, then raise the fader. It re-locks by itself after 10 s at zero. Momentary lit button; the software holds the state.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-quake"
      ],
      "path": "Earth bay › Ground family › Earthquake strip"
    },
    {
      "t": "btn",
      "id": "quake-burst",
      "name": "Seismic tremor",
      "legend": "TREMOR",
      "mode": "mom",
      "lit": "lr",
      "desc": "Aftershock. Planned named event; this panel preview only pulses its output indicator.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-quake"
      ],
      "path": "Earth bay › Ground family › Earthquake strip"
    },
    {
      "t": "fader",
      "id": "quake-fader",
      "name": "Earthquake level",
      "min": 0,
      "max": 9.5,
      "step": 0.1,
      "unit": "Mw",
      "lo": "0",
      "hi": "9.5",
      "def": 0,
      "cap": "var(--f-ground)",
      "travel": 100,
      "desc": "Unipolar fader on the real scale. Earthquake on the moment-magnitude scale.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-quake"
      ],
      "path": "Earth bay › Ground family › Earthquake strip"
    },
    {
      "t": "ledbar",
      "id": "quake-meter",
      "name": "Earthquake output meter",
      "n": 14,
      "bip": false,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-quake"
      ],
      "path": "Earth bay › Ground family › Earthquake strip"
    },
    {
      "t": "lamps",
      "id": "volcano-lamps",
      "name": "Volcano status lamps",
      "desc": "Amber ACTIVE · red CONDITION. Reason: Never blocked. An underwater vent makes a steam plume.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-volcano"
      ],
      "path": "Earth bay › Ground family › Volcano strip"
    },
    {
      "t": "knob",
      "id": "volcano-size",
      "name": "Volcano plume",
      "label": "PLUME",
      "min": 10,
      "max": 2000,
      "step": 10,
      "def": 300,
      "unit": "km",
      "lo": "10",
      "hi": "2000",
      "d": 30,
      "cap": "var(--f-ground)",
      "desc": "Footprint of the effect on the globe.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-volcano"
      ],
      "path": "Earth bay › Ground family › Volcano strip"
    },
    {
      "t": "knob",
      "id": "volcano-char",
      "name": "Volcano style",
      "label": "STYLE",
      "min": 0,
      "max": 100,
      "step": 1,
      "def": 60,
      "lo": "EFFUS",
      "hi": "EXPLO",
      "d": 30,
      "cap": "var(--f-ground)",
      "desc": "Lava flows or an explosive ash column.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-volcano"
      ],
      "path": "Earth bay › Ground family › Volcano strip"
    },
    {
      "t": "btn",
      "id": "volcano-arm",
      "name": "Volcano arm",
      "legend": "ARM",
      "lit": "lr",
      "desc": "Lock-to-arm: press ARM, then raise the fader. It re-locks by itself after 10 s at zero. Momentary lit button; the software holds the state.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-volcano"
      ],
      "path": "Earth bay › Ground family › Volcano strip"
    },
    {
      "t": "btn",
      "id": "volcano-burst",
      "name": "Volcanic eruption",
      "legend": "ERUPT",
      "mode": "mom",
      "lit": "lr",
      "desc": "Eruption. Planned named event; this panel preview only pulses its output indicator.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-volcano"
      ],
      "path": "Earth bay › Ground family › Volcano strip"
    },
    {
      "t": "fader",
      "id": "volcano-fader",
      "name": "Volcano level",
      "min": 0,
      "max": 8,
      "step": 0.1,
      "unit": "VEI",
      "lo": "0",
      "hi": "8",
      "def": 0,
      "cap": "var(--f-ground)",
      "travel": 100,
      "desc": "Unipolar fader on the real scale. Eruption on the Volcanic Explosivity Index.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-volcano"
      ],
      "path": "Earth bay › Ground family › Volcano strip"
    },
    {
      "t": "ledbar",
      "id": "volcano-meter",
      "name": "Volcano output meter",
      "n": 14,
      "bip": false,
      "desc": "Live output. Centre-zero on bipolar strips.",
      "category": "Readout",
      "groups": [
        "bay-earth",
        "fam-ground",
        "strip-volcano"
      ],
      "path": "Earth bay › Ground family › Volcano strip"
    },
    {
      "t": "knob",
      "id": "meteor-size",
      "name": "Meteor diameter",
      "min": 10,
      "max": 1000,
      "step": 10,
      "def": 100,
      "d": 34,
      "label": "DIAMETER",
      "unit": "m",
      "lo": "10",
      "hi": "1000",
      "desc": "Size of the incoming meteor. Uses the surface target under the crosshair; aim with the existing trackball. The 10–1000 m range is provisional for panel planning.",
      "category": "Control",
      "groups": [
        "bay-earth",
        "mod-meteor"
      ],
      "path": "Earth bay › Meteor · at crosshair"
    },
    {
      "t": "gbtn",
      "id": "meteor-impact",
      "name": "Meteor impact",
      "label": "IMPACT",
      "desc": "Lift the cover, then press to send one meteor at the current surface target. Size comes from DIAMETER. This panel preview confirms the chosen size and location; impact visuals and physics are not simulated.",
      "def": 0,
      "category": "Control",
      "groups": [
        "bay-earth",
        "mod-meteor"
      ],
      "path": "Earth bay › Meteor · at crosshair"
    },
    {
      "t": "tile",
      "id": "ann-flood",
      "name": "Annunciator: Flood",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-surge",
      "name": "Annunciator: Storm surge",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-tsunami",
      "name": "Annunciator: Tsunami",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-wildfire",
      "name": "Annunciator: Wildfire",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-blizzard",
      "name": "Annunciator: Blizzard",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-ice",
      "name": "Annunciator: Ice storm",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-hail",
      "name": "Annunciator: Hail",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-heat",
      "name": "Annunciator: Heat stress",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-crop",
      "name": "Annunciator: Crop failure",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-slide",
      "name": "Annunciator: Landslide",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-cityblack",
      "name": "Annunciator: City blackout",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-radioblack",
      "name": "Annunciator: Radio blackout",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-gps",
      "name": "Annunciator: Gps loss",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-airport",
      "name": "Annunciator: Airport closed",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-ship",
      "name": "Annunciator: Shipping halted",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-ash",
      "name": "Annunciator: Ash cloud",
      "desc": "World hazard tile. Lights when the combination of strips produces it.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-overload",
      "name": "Annunciator: Overload",
      "desc": "Machine fault tile.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-thermal",
      "name": "Annunciator: Thermal",
      "desc": "Machine fault tile.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-rfmis",
      "name": "Annunciator: Rf mismatch",
      "desc": "Machine fault tile.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-coolant",
      "name": "Annunciator: Coolant low",
      "desc": "Machine fault tile.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-nooutput",
      "name": "Annunciator: No output",
      "desc": "Machine fault tile.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-emparmed",
      "name": "Annunciator: Emp armed",
      "desc": "Machine fault tile.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-caplow",
      "name": "Annunciator: Cap low",
      "desc": "Machine fault tile.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "tile",
      "id": "ann-interlock",
      "name": "Annunciator: Interlock",
      "desc": "Machine fault tile.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "btn",
      "id": "ack",
      "name": "Acknowledge",
      "mode": "mom",
      "lit": "la",
      "legend": "ACK",
      "bw": 30,
      "bh": 11,
      "desc": "Stops flashing tiles and silences the horn.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "btn",
      "id": "anntest",
      "name": "Annunciator test",
      "mode": "mom",
      "lit": "la",
      "legend": "TEST",
      "bw": 30,
      "bh": 11,
      "desc": "Lights every tile while held.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-annunciator"
      ],
      "path": "Consequences bay › Annunciator"
    },
    {
      "t": "rec",
      "id": "chart",
      "name": "Seismograph paper",
      "w": 120,
      "h": 56,
      "desc": "Rolling seismic trace at the target.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-recorder"
      ],
      "path": "Consequences bay › Seismograph"
    },
    {
      "t": "rsw",
      "id": "recgain",
      "name": "Seismograph gain",
      "pos": [
        "×1",
        "×2",
        "×4",
        "×8"
      ],
      "def": 0,
      "d": 16,
      "label": "GAIN",
      "desc": "Pen amplitude.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-recorder"
      ],
      "path": "Consequences bay › Seismograph"
    },
    {
      "t": "btn",
      "id": "rechold",
      "name": "Hold trace",
      "mode": "latch",
      "lit": "la",
      "legend": "HOLD",
      "bw": 22,
      "desc": "Freezes the pen while the simulation continues.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-recorder"
      ],
      "path": "Consequences bay › Seismograph"
    },
    {
      "t": "rsw",
      "id": "speed",
      "name": "Simulation speed",
      "pos": [
        "PAUSE",
        "1×",
        "10×",
        "60×",
        "600×",
        "3600×"
      ],
      "def": 3,
      "d": 36,
      "label": "SPEED",
      "r": 6,
      "desc": "Detented switch: pause, real time, or up to one simulated hour per real second. Absolute, so it always shows the true speed.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-time"
      ],
      "path": "Consequences bay › Time"
    },
    {
      "t": "rsw",
      "id": "month",
      "name": "Month",
      "pos": [
        "JAN",
        "FEB",
        "MAR",
        "APR",
        "MAY",
        "JUN",
        "JUL",
        "AUG",
        "SEP",
        "OCT",
        "NOV",
        "DEC"
      ],
      "def": 9,
      "d": 30,
      "label": "MONTH",
      "r": 5,
      "desc": "Season: snow lines, aurora darkness, cyclone season and the foF2 needle.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-time"
      ],
      "path": "Consequences bay › Time"
    },
    {
      "t": "knob",
      "id": "hour",
      "name": "Hour",
      "min": 0,
      "max": 23,
      "step": 1,
      "def": 12,
      "d": 30,
      "label": "HOUR UTC",
      "endless": true,
      "desc": "Sun position (time of day, UTC). Day and night on the globe and the foF2 needle follow it. The simulation clock moves the weather, not the sun, so the knob is always true.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-time"
      ],
      "path": "Consequences bay › Time"
    },
    {
      "t": "estop",
      "id": "estop",
      "name": "Emergency stop",
      "label": "E-STOP",
      "desc": "Momentary mushroom. The software latches STOP: all forcing drops to natural weather, hazard ARM lamps go out, and the STOPPED lamp stays lit for 10 s, then releases by itself. Knobs and faders stay where they are.",
      "def": false,
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-system"
      ],
      "path": "Consequences bay › System"
    },
    {
      "t": "btn",
      "id": "whatsthis",
      "name": "What’s this?",
      "mode": "latch",
      "lit": "lb",
      "legend": "WHAT’S THIS?",
      "bw": 62,
      "bh": 15,
      "desc": "Press, then touch any control: the screen explains it.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-system"
      ],
      "path": "Consequences bay › System"
    },
    {
      "t": "key",
      "id": "modekey",
      "name": "Mode key",
      "pos": [
        "VISITOR",
        "OPERATOR",
        "ENGINEER"
      ],
      "def": 0,
      "label": "MODE KEY",
      "desc": "Staff key. ENGINEER unlocks volume limit, idle timeout and minimum lamp brightness.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-system"
      ],
      "path": "Consequences bay › System"
    },
    {
      "t": "rsw",
      "id": "lang",
      "name": "Language",
      "pos": [
        "EN",
        "DE",
        "FR",
        "IT",
        "ES",
        "HR"
      ],
      "def": 0,
      "d": 26,
      "label": "LANGUAGE",
      "desc": "Language of captions and the WHAT’S THIS? explanations.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-system"
      ],
      "path": "Consequences bay › System"
    },
    {
      "t": "fader",
      "id": "master",
      "name": "Master volume",
      "label": "MASTER",
      "min": 0,
      "max": 100,
      "step": 1,
      "def": 70,
      "unit": "%",
      "lo": "0",
      "hi": "10",
      "cap": "var(--cap-black)",
      "travel": 100,
      "desc": "One master level. Ambience, machine, target, reports, news and alarms are mixed automatically in the planned exhibit; the panel mockup does not render audio.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-audio"
      ],
      "path": "Consequences bay › Audio"
    },
    {
      "t": "readout",
      "id": "probe-elevation",
      "name": "Terrain elevation",
      "label": "ELEVATION",
      "unit": "m MSL",
      "detail": 0,
      "surface": "land",
      "sample": "284",
      "desc": "Height of the ground above mean sea level. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-depth",
      "name": "Ocean depth",
      "label": "OCEAN DEPTH",
      "unit": "m below sea",
      "detail": 0,
      "surface": "sea",
      "sample": "3420",
      "desc": "Bathymetric depth below sea level. Never the camera altitude. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-airtemp",
      "name": "Air temperature",
      "label": "AIR TEMP",
      "unit": "°C · 2 m",
      "detail": 0,
      "surface": "both",
      "sample": "18.4",
      "desc": "Air temperature 2 m above the surface under the crosshair. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-humidity",
      "name": "Relative humidity",
      "label": "HUMIDITY",
      "unit": "% RH · 2 m",
      "detail": 1,
      "surface": "both",
      "sample": "72",
      "desc": "Relative humidity at the surface probe. The humidity strip readout is also retained. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-pressure",
      "name": "Sea-level pressure",
      "label": "PRESSURE",
      "unit": "hPa · MSL",
      "detail": 0,
      "surface": "both",
      "sample": "1012",
      "desc": "Atmospheric pressure reduced to mean sea level, not pressure at camera altitude. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-wind",
      "name": "Wind speed",
      "label": "WIND SPEED",
      "unit": "m/s · 10 m",
      "detail": 1,
      "surface": "both",
      "sample": "8.2",
      "desc": "Wind speed 10 m above the surface. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-winddir",
      "name": "Wind direction",
      "label": "WIND FROM",
      "unit": "° true",
      "detail": 1,
      "surface": "both",
      "sample": "265",
      "desc": "Bearing from which the surface wind blows. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-dewpoint",
      "name": "Dew point",
      "label": "DEW POINT",
      "unit": "°C · 2 m",
      "detail": 2,
      "surface": "both",
      "sample": "13.2",
      "desc": "Surface dew point. Context for fog and condensation. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-precip",
      "name": "Precipitation rate",
      "label": "PRECIP RATE",
      "unit": "mm/h water eq.",
      "detail": 1,
      "surface": "both",
      "sample": "2.4",
      "desc": "Current liquid-water-equivalent precipitation rate. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-visibility",
      "name": "Visibility",
      "label": "VISIBILITY",
      "unit": "km",
      "detail": 1,
      "surface": "both",
      "sample": "12.0",
      "desc": "Horizontal visibility near the surface. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-cloud",
      "name": "Cloud cover",
      "label": "CLOUD COVER",
      "unit": "%",
      "detail": 0,
      "surface": "both",
      "sample": "64",
      "desc": "Cloud cover in the column over the target. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-cloudbase",
      "name": "Cloud base",
      "label": "CLOUD BASE",
      "unit": "km AGL",
      "detail": 2,
      "surface": "both",
      "sample": "0.85",
      "desc": "Base of the lowest cloud above ground level. Clear sky is shown as CLEAR. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-freezing",
      "name": "Freezing level",
      "label": "FREEZING LVL",
      "unit": "km MSL",
      "detail": 2,
      "surface": "both",
      "sample": "2.6",
      "desc": "Altitude of the freezing level above mean sea level in the target column. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-sst",
      "name": "Sea-surface temperature",
      "label": "SEA TEMP",
      "unit": "°C · surface",
      "detail": 0,
      "surface": "sea",
      "sample": "22.1",
      "desc": "Sea-surface temperature. The Sea temperature strip readout is also retained. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-wave",
      "name": "Significant wave height",
      "label": "WAVE HEIGHT",
      "unit": "m · Hs",
      "detail": 1,
      "surface": "sea",
      "sample": "2.3",
      "desc": "Significant wave height; separate from a tsunami wave-height readout. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-period",
      "name": "Peak wave period",
      "label": "WAVE PERIOD",
      "unit": "s · peak",
      "detail": 2,
      "surface": "sea",
      "sample": "8.0",
      "desc": "Dominant wave period at the target. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-swelldir",
      "name": "Primary swell direction",
      "label": "SWELL FROM",
      "unit": "° true",
      "detail": 2,
      "surface": "sea",
      "sample": "240",
      "desc": "Direction from which the primary swell arrives; it may differ from local wind. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-current",
      "name": "Surface current speed",
      "label": "CURRENT",
      "unit": "m/s",
      "detail": 1,
      "surface": "sea",
      "sample": "0.7",
      "desc": "Ocean surface current speed. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-currentdir",
      "name": "Surface current direction",
      "label": "CURRENT TO",
      "unit": "° true",
      "detail": 2,
      "surface": "sea",
      "sample": "95",
      "desc": "Direction toward which the ocean surface current flows. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-sealevel",
      "name": "Sea level anomaly",
      "label": "SEA LEVEL",
      "unit": "m anomaly",
      "detail": 0,
      "surface": "sea",
      "sample": "+0.3",
      "desc": "Sea level relative to the local reference level. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-soil",
      "name": "Soil moisture",
      "label": "SOIL MOISTURE",
      "unit": "% saturation",
      "detail": 1,
      "surface": "land",
      "sample": "48",
      "desc": "Surface soil moisture as a saturation index. The Soil moisture strip readout stays. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-snow",
      "name": "Snow cover",
      "label": "SNOW COVER",
      "unit": "% of local cell",
      "detail": 1,
      "surface": "land",
      "sample": "0",
      "desc": "Snow already lying on the ground, distinct from falling snow. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "readout",
      "id": "probe-ice",
      "name": "Sea-ice cover",
      "label": "SEA ICE",
      "unit": "% of local cell",
      "detail": 0,
      "surface": "sea",
      "sample": "0",
      "desc": "Sea-ice fraction in the target cell. Zoom selects displayed detail; the sample location remains under the crosshair. Mockup values are examples.",
      "category": "Readout",
      "groups": [
        "bay-con",
        "mod-probe"
      ],
      "path": "Consequences bay › Surface probe · example readings"
    },
    {
      "t": "knob",
      "id": "lt-panel",
      "name": "Panel lamps",
      "min": 0,
      "max": 100,
      "step": 1,
      "def": 85,
      "d": 26,
      "label": "PANEL",
      "unit": "%",
      "lo": "0",
      "hi": "10",
      "desc": "Brightness of every lamp and lit button. Never drops below 25% (software minimum), so the next visitor never finds it dark.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-light"
      ],
      "path": "Consequences bay › Light"
    },
    {
      "t": "knob",
      "id": "lt-meters",
      "name": "Meter backlight",
      "min": 0,
      "max": 100,
      "step": 1,
      "def": 80,
      "d": 26,
      "label": "METERS",
      "unit": "%",
      "lo": "0",
      "hi": "10",
      "desc": "Backlight of the needle gauges and dial. Never drops below 30% (software minimum), so the next visitor never finds it dark.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-light"
      ],
      "path": "Consequences bay › Light"
    },
    {
      "t": "knob",
      "id": "lt-displays",
      "name": "Display brightness",
      "min": 0,
      "max": 100,
      "step": 1,
      "def": 85,
      "d": 26,
      "label": "DISPLAYS",
      "unit": "%",
      "lo": "0",
      "hi": "10",
      "desc": "7-segment and VFD brightness. Never drops below 30% (software minimum), so the next visitor never finds it dark.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-light"
      ],
      "path": "Consequences bay › Light"
    },
    {
      "t": "rsw",
      "id": "ltmode",
      "name": "Light mode",
      "pos": [
        "DAY",
        "NIGHT",
        "ALERT"
      ],
      "def": 0,
      "d": 26,
      "label": "MODE",
      "desc": "NIGHT: red control-room lighting. ALERT: everything turns red while an annunciator tile is lit.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-light"
      ],
      "path": "Consequences bay › Light"
    },
    {
      "t": "btn",
      "id": "lamptest",
      "name": "Lamp test",
      "mode": "mom",
      "lit": "la",
      "legend": "LAMP TEST",
      "bw": 44,
      "bh": 14,
      "desc": "Lights every lamp and spins the beacon while held.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-light"
      ],
      "path": "Consequences bay › Light"
    },
    {
      "t": "btn",
      "id": "disptest",
      "name": "Display test",
      "mode": "mom",
      "lit": "la",
      "legend": "DISP TEST",
      "bw": 44,
      "bh": 14,
      "desc": "Every display shows 8 while held.",
      "category": "Control",
      "groups": [
        "bay-con",
        "mod-light"
      ],
      "path": "Consequences bay › Light"
    }
  ],
  "groups": {
    "bay-machine": {
      "name": "Machine bay",
      "ids": [
        "load",
        "demand",
        "coil",
        "capchg",
        "elmap",
        "fdial",
        "freq",
        "ionomatch",
        "txpower",
        "coolant",
        "captarget",
        "empkey",
        "empfire"
      ],
      "level": "bay"
    },
    "mod-arraymeters": {
      "name": "Array",
      "ids": [
        "load",
        "demand",
        "coil",
        "capchg",
        "elmap"
      ],
      "level": "module"
    },
    "mod-tx": {
      "name": "Transmitter",
      "ids": [
        "fdial",
        "freq",
        "ionomatch",
        "txpower"
      ],
      "level": "module"
    },
    "mod-cooling": {
      "name": "Cooling",
      "ids": [
        "coolant"
      ],
      "level": "module"
    },
    "mod-caps": {
      "name": "Capacitors · EMP",
      "ids": [
        "captarget",
        "empkey",
        "empfire"
      ],
      "level": "module"
    },
    "bay-sky": {
      "name": "Sky bay",
      "ids": [
        "upper-draw",
        "aurora-read",
        "airglow-read",
        "blackout-read",
        "jet-read",
        "air-draw",
        "temp-read",
        "humidity-read",
        "pressure-read",
        "wind-read",
        "cloud-draw",
        "clouds-read",
        "fog-read",
        "precip-read",
        "lightning-read",
        "aurora-lamps",
        "aurora-size",
        "aurora-char",
        "aurora-burst",
        "aurora-fader",
        "aurora-meter",
        "airglow-lamps",
        "airglow-size",
        "airglow-fader",
        "airglow-meter",
        "blackout-lamps",
        "blackout-size",
        "blackout-char",
        "blackout-fader",
        "blackout-meter",
        "jet-lamps",
        "jet-size",
        "jet-fader",
        "jet-meter",
        "temp-lamps",
        "temp-size",
        "temp-fader",
        "temp-meter",
        "humidity-lamps",
        "humidity-size",
        "humidity-char",
        "humidity-fader",
        "humidity-meter",
        "pressure-lamps",
        "pressure-size",
        "pressure-fader",
        "pressure-meter",
        "wind-lamps",
        "wind-size",
        "wind-char",
        "wind-burst",
        "wind-fader",
        "wind-meter",
        "clouds-lamps",
        "clouds-size",
        "clouds-char",
        "clouds-fader",
        "clouds-meter",
        "fog-lamps",
        "fog-size",
        "fog-char",
        "fog-fader",
        "fog-meter",
        "precip-lamps",
        "precip-size",
        "precip-char",
        "precip-fader",
        "precip-meter",
        "lightning-lamps",
        "lightning-size",
        "lightning-char",
        "lightning-burst",
        "lightning-fader",
        "lightning-meter"
      ],
      "level": "bay"
    },
    "fam-upper": {
      "name": "Upper atmosphere family",
      "ids": [
        "upper-draw",
        "aurora-read",
        "airglow-read",
        "blackout-read",
        "jet-read",
        "aurora-lamps",
        "aurora-size",
        "aurora-char",
        "aurora-burst",
        "aurora-fader",
        "aurora-meter",
        "airglow-lamps",
        "airglow-size",
        "airglow-fader",
        "airglow-meter",
        "blackout-lamps",
        "blackout-size",
        "blackout-char",
        "blackout-fader",
        "blackout-meter",
        "jet-lamps",
        "jet-size",
        "jet-fader",
        "jet-meter"
      ],
      "level": "family"
    },
    "strip-aurora": {
      "name": "Aurora strip",
      "ids": [
        "aurora-read",
        "aurora-lamps",
        "aurora-size",
        "aurora-char",
        "aurora-burst",
        "aurora-fader",
        "aurora-meter"
      ],
      "level": "strip"
    },
    "strip-airglow": {
      "name": "Airglow strip",
      "ids": [
        "airglow-read",
        "airglow-lamps",
        "airglow-size",
        "airglow-fader",
        "airglow-meter"
      ],
      "level": "strip"
    },
    "strip-blackout": {
      "name": "Radio blackout strip",
      "ids": [
        "blackout-read",
        "blackout-lamps",
        "blackout-size",
        "blackout-char",
        "blackout-fader",
        "blackout-meter"
      ],
      "level": "strip"
    },
    "strip-jet": {
      "name": "Jet stream strip",
      "ids": [
        "jet-read",
        "jet-lamps",
        "jet-size",
        "jet-fader",
        "jet-meter"
      ],
      "level": "strip"
    },
    "fam-air": {
      "name": "Air mass family",
      "ids": [
        "air-draw",
        "temp-read",
        "humidity-read",
        "pressure-read",
        "wind-read",
        "temp-lamps",
        "temp-size",
        "temp-fader",
        "temp-meter",
        "humidity-lamps",
        "humidity-size",
        "humidity-char",
        "humidity-fader",
        "humidity-meter",
        "pressure-lamps",
        "pressure-size",
        "pressure-fader",
        "pressure-meter",
        "wind-lamps",
        "wind-size",
        "wind-char",
        "wind-burst",
        "wind-fader",
        "wind-meter"
      ],
      "level": "family"
    },
    "strip-temp": {
      "name": "Temperature strip",
      "ids": [
        "temp-read",
        "temp-lamps",
        "temp-size",
        "temp-fader",
        "temp-meter"
      ],
      "level": "strip"
    },
    "strip-humidity": {
      "name": "Humidity strip",
      "ids": [
        "humidity-read",
        "humidity-lamps",
        "humidity-size",
        "humidity-char",
        "humidity-fader",
        "humidity-meter"
      ],
      "level": "strip"
    },
    "strip-pressure": {
      "name": "Pressure strip",
      "ids": [
        "pressure-read",
        "pressure-lamps",
        "pressure-size",
        "pressure-fader",
        "pressure-meter"
      ],
      "level": "strip"
    },
    "strip-wind": {
      "name": "Wind strip",
      "ids": [
        "wind-read",
        "wind-lamps",
        "wind-size",
        "wind-char",
        "wind-burst",
        "wind-fader",
        "wind-meter"
      ],
      "level": "strip"
    },
    "fam-cloud": {
      "name": "Cloud & precipitation family",
      "ids": [
        "cloud-draw",
        "clouds-read",
        "fog-read",
        "precip-read",
        "lightning-read",
        "clouds-lamps",
        "clouds-size",
        "clouds-char",
        "clouds-fader",
        "clouds-meter",
        "fog-lamps",
        "fog-size",
        "fog-char",
        "fog-fader",
        "fog-meter",
        "precip-lamps",
        "precip-size",
        "precip-char",
        "precip-fader",
        "precip-meter",
        "lightning-lamps",
        "lightning-size",
        "lightning-char",
        "lightning-burst",
        "lightning-fader",
        "lightning-meter"
      ],
      "level": "family"
    },
    "strip-clouds": {
      "name": "Clouds strip",
      "ids": [
        "clouds-read",
        "clouds-lamps",
        "clouds-size",
        "clouds-char",
        "clouds-fader",
        "clouds-meter"
      ],
      "level": "strip"
    },
    "strip-fog": {
      "name": "Fog strip",
      "ids": [
        "fog-read",
        "fog-lamps",
        "fog-size",
        "fog-char",
        "fog-fader",
        "fog-meter"
      ],
      "level": "strip"
    },
    "strip-precip": {
      "name": "Precipitation strip",
      "ids": [
        "precip-read",
        "precip-lamps",
        "precip-size",
        "precip-char",
        "precip-fader",
        "precip-meter"
      ],
      "level": "strip"
    },
    "strip-lightning": {
      "name": "Lightning strip",
      "ids": [
        "lightning-read",
        "lightning-lamps",
        "lightning-size",
        "lightning-char",
        "lightning-burst",
        "lightning-fader",
        "lightning-meter"
      ],
      "level": "strip"
    },
    "bay-aim": {
      "name": "Aim bay",
      "ids": [
        "lat",
        "lon",
        "alt",
        "t-land",
        "t-sea",
        "t-ice",
        "t-city",
        "t-night",
        "rfscope",
        "city",
        "go",
        "scrbright",
        "units",
        "labels",
        "captions",
        "zoom",
        "trackball",
        "layer-sat",
        "layer-clouds",
        "layer-rain",
        "layer-wind",
        "layer-temp",
        "layer-press",
        "layer-current",
        "layer-iono",
        "layer-lightng",
        "layer-night",
        "layer-seismic",
        "grid"
      ],
      "level": "bay"
    },
    "mod-position": {
      "name": "Position",
      "ids": [
        "lat",
        "lon",
        "alt",
        "t-land",
        "t-sea",
        "t-ice",
        "t-city",
        "t-night",
        "rfscope"
      ],
      "level": "module"
    },
    "mod-target": {
      "name": "Target",
      "ids": [
        "city",
        "go"
      ],
      "level": "module"
    },
    "mod-screens": {
      "name": "Screens",
      "ids": [
        "scrbright",
        "units",
        "labels",
        "captions"
      ],
      "level": "module"
    },
    "mod-nav": {
      "name": "Navigation",
      "ids": [
        "zoom",
        "trackball"
      ],
      "level": "module"
    },
    "mod-layers": {
      "name": "Layers",
      "ids": [
        "layer-sat",
        "layer-clouds",
        "layer-rain",
        "layer-wind",
        "layer-temp",
        "layer-press",
        "layer-current",
        "layer-iono",
        "layer-lightng",
        "layer-night",
        "layer-seismic",
        "grid"
      ],
      "level": "module"
    },
    "bay-earth": {
      "name": "Earth bay",
      "ids": [
        "storm-draw",
        "tstorm-read",
        "cyclone-read",
        "tornado-read",
        "dust-read",
        "ocean-draw",
        "sealevel-read",
        "seastate-read",
        "current-read",
        "sst-read",
        "ground-draw",
        "soil-read",
        "fire-read",
        "quake-read",
        "volcano-read",
        "wavescope",
        "tsunami-height",
        "elapsed",
        "rate",
        "beacon",
        "report",
        "report-text",
        "tstorm-lamps",
        "tstorm-size",
        "tstorm-char",
        "tstorm-burst",
        "tstorm-fader",
        "tstorm-meter",
        "cyclone-lamps",
        "cyclone-size",
        "cyclone-char",
        "cyclone-arm",
        "cyclone-fader",
        "cyclone-meter",
        "tornado-lamps",
        "tornado-size",
        "tornado-char",
        "tornado-arm",
        "tornado-burst",
        "tornado-fader",
        "tornado-meter",
        "dust-lamps",
        "dust-size",
        "dust-char",
        "dust-fader",
        "dust-meter",
        "sealevel-lamps",
        "sealevel-size",
        "sealevel-char",
        "sealevel-fader",
        "sealevel-meter",
        "seastate-lamps",
        "seastate-size",
        "seastate-char",
        "seastate-burst",
        "seastate-fader",
        "seastate-meter",
        "current-lamps",
        "current-size",
        "current-char",
        "current-fader",
        "current-meter",
        "sst-lamps",
        "sst-size",
        "sst-fader",
        "sst-meter",
        "soil-lamps",
        "soil-size",
        "soil-fader",
        "soil-meter",
        "fire-lamps",
        "fire-size",
        "fire-burst",
        "fire-fader",
        "fire-meter",
        "quake-lamps",
        "quake-size",
        "quake-char",
        "quake-arm",
        "quake-burst",
        "quake-fader",
        "quake-meter",
        "volcano-lamps",
        "volcano-size",
        "volcano-char",
        "volcano-arm",
        "volcano-burst",
        "volcano-fader",
        "volcano-meter",
        "meteor-size",
        "meteor-impact"
      ],
      "level": "bay"
    },
    "fam-storm": {
      "name": "Storms family",
      "ids": [
        "storm-draw",
        "tstorm-read",
        "cyclone-read",
        "tornado-read",
        "dust-read",
        "tstorm-lamps",
        "tstorm-size",
        "tstorm-char",
        "tstorm-burst",
        "tstorm-fader",
        "tstorm-meter",
        "cyclone-lamps",
        "cyclone-size",
        "cyclone-char",
        "cyclone-arm",
        "cyclone-fader",
        "cyclone-meter",
        "tornado-lamps",
        "tornado-size",
        "tornado-char",
        "tornado-arm",
        "tornado-burst",
        "tornado-fader",
        "tornado-meter",
        "dust-lamps",
        "dust-size",
        "dust-char",
        "dust-fader",
        "dust-meter"
      ],
      "level": "family"
    },
    "strip-tstorm": {
      "name": "Thunderstorm cell strip",
      "ids": [
        "tstorm-read",
        "tstorm-lamps",
        "tstorm-size",
        "tstorm-char",
        "tstorm-burst",
        "tstorm-fader",
        "tstorm-meter"
      ],
      "level": "strip"
    },
    "strip-cyclone": {
      "name": "Cyclone strip",
      "ids": [
        "cyclone-read",
        "cyclone-lamps",
        "cyclone-size",
        "cyclone-char",
        "cyclone-arm",
        "cyclone-fader",
        "cyclone-meter"
      ],
      "level": "strip"
    },
    "strip-tornado": {
      "name": "Tornado strip",
      "ids": [
        "tornado-read",
        "tornado-lamps",
        "tornado-size",
        "tornado-char",
        "tornado-arm",
        "tornado-burst",
        "tornado-fader",
        "tornado-meter"
      ],
      "level": "strip"
    },
    "strip-dust": {
      "name": "Dust storm strip",
      "ids": [
        "dust-read",
        "dust-lamps",
        "dust-size",
        "dust-char",
        "dust-fader",
        "dust-meter"
      ],
      "level": "strip"
    },
    "fam-ocean": {
      "name": "Ocean family",
      "ids": [
        "ocean-draw",
        "sealevel-read",
        "seastate-read",
        "current-read",
        "sst-read",
        "sealevel-lamps",
        "sealevel-size",
        "sealevel-char",
        "sealevel-fader",
        "sealevel-meter",
        "seastate-lamps",
        "seastate-size",
        "seastate-char",
        "seastate-burst",
        "seastate-fader",
        "seastate-meter",
        "current-lamps",
        "current-size",
        "current-char",
        "current-fader",
        "current-meter",
        "sst-lamps",
        "sst-size",
        "sst-fader",
        "sst-meter"
      ],
      "level": "family"
    },
    "strip-sealevel": {
      "name": "Sea level strip",
      "ids": [
        "sealevel-read",
        "sealevel-lamps",
        "sealevel-size",
        "sealevel-char",
        "sealevel-fader",
        "sealevel-meter"
      ],
      "level": "strip"
    },
    "strip-seastate": {
      "name": "Sea state strip",
      "ids": [
        "seastate-read",
        "seastate-lamps",
        "seastate-size",
        "seastate-char",
        "seastate-burst",
        "seastate-fader",
        "seastate-meter"
      ],
      "level": "strip"
    },
    "strip-current": {
      "name": "Ocean current strip",
      "ids": [
        "current-read",
        "current-lamps",
        "current-size",
        "current-char",
        "current-fader",
        "current-meter"
      ],
      "level": "strip"
    },
    "strip-sst": {
      "name": "Sea temperature strip",
      "ids": [
        "sst-read",
        "sst-lamps",
        "sst-size",
        "sst-fader",
        "sst-meter"
      ],
      "level": "strip"
    },
    "fam-ground": {
      "name": "Ground family",
      "ids": [
        "ground-draw",
        "soil-read",
        "fire-read",
        "quake-read",
        "volcano-read",
        "soil-lamps",
        "soil-size",
        "soil-fader",
        "soil-meter",
        "fire-lamps",
        "fire-size",
        "fire-burst",
        "fire-fader",
        "fire-meter",
        "quake-lamps",
        "quake-size",
        "quake-char",
        "quake-arm",
        "quake-burst",
        "quake-fader",
        "quake-meter",
        "volcano-lamps",
        "volcano-size",
        "volcano-char",
        "volcano-arm",
        "volcano-burst",
        "volcano-fader",
        "volcano-meter"
      ],
      "level": "family"
    },
    "strip-soil": {
      "name": "Soil moisture strip",
      "ids": [
        "soil-read",
        "soil-lamps",
        "soil-size",
        "soil-fader",
        "soil-meter"
      ],
      "level": "strip"
    },
    "strip-fire": {
      "name": "Wildfire strip",
      "ids": [
        "fire-read",
        "fire-lamps",
        "fire-size",
        "fire-burst",
        "fire-fader",
        "fire-meter"
      ],
      "level": "strip"
    },
    "strip-quake": {
      "name": "Earthquake strip",
      "ids": [
        "quake-read",
        "quake-lamps",
        "quake-size",
        "quake-char",
        "quake-arm",
        "quake-burst",
        "quake-fader",
        "quake-meter"
      ],
      "level": "strip"
    },
    "strip-volcano": {
      "name": "Volcano strip",
      "ids": [
        "volcano-read",
        "volcano-lamps",
        "volcano-size",
        "volcano-char",
        "volcano-arm",
        "volcano-burst",
        "volcano-fader",
        "volcano-meter"
      ],
      "level": "strip"
    },
    "mod-waves": {
      "name": "Sea surface",
      "ids": [
        "wavescope",
        "tsunami-height"
      ],
      "level": "module"
    },
    "mod-clocks": {
      "name": "Simulation",
      "ids": [
        "elapsed",
        "rate",
        "beacon"
      ],
      "level": "module"
    },
    "mod-comms": {
      "name": "Reports",
      "ids": [
        "report",
        "report-text"
      ],
      "level": "module"
    },
    "mod-meteor": {
      "name": "Meteor · at crosshair",
      "ids": [
        "meteor-size",
        "meteor-impact"
      ],
      "level": "module"
    },
    "bay-con": {
      "name": "Consequences bay",
      "ids": [
        "ann-flood",
        "ann-surge",
        "ann-tsunami",
        "ann-wildfire",
        "ann-blizzard",
        "ann-ice",
        "ann-hail",
        "ann-heat",
        "ann-crop",
        "ann-slide",
        "ann-cityblack",
        "ann-radioblack",
        "ann-gps",
        "ann-airport",
        "ann-ship",
        "ann-ash",
        "ann-overload",
        "ann-thermal",
        "ann-rfmis",
        "ann-coolant",
        "ann-nooutput",
        "ann-emparmed",
        "ann-caplow",
        "ann-interlock",
        "ack",
        "anntest",
        "chart",
        "recgain",
        "rechold",
        "speed",
        "month",
        "hour",
        "estop",
        "whatsthis",
        "modekey",
        "lang",
        "master",
        "probe-elevation",
        "probe-depth",
        "probe-airtemp",
        "probe-humidity",
        "probe-pressure",
        "probe-wind",
        "probe-winddir",
        "probe-dewpoint",
        "probe-precip",
        "probe-visibility",
        "probe-cloud",
        "probe-cloudbase",
        "probe-freezing",
        "probe-sst",
        "probe-wave",
        "probe-period",
        "probe-swelldir",
        "probe-current",
        "probe-currentdir",
        "probe-sealevel",
        "probe-soil",
        "probe-snow",
        "probe-ice",
        "lt-panel",
        "lt-meters",
        "lt-displays",
        "ltmode",
        "lamptest",
        "disptest"
      ],
      "level": "bay"
    },
    "mod-annunciator": {
      "name": "Annunciator",
      "ids": [
        "ann-flood",
        "ann-surge",
        "ann-tsunami",
        "ann-wildfire",
        "ann-blizzard",
        "ann-ice",
        "ann-hail",
        "ann-heat",
        "ann-crop",
        "ann-slide",
        "ann-cityblack",
        "ann-radioblack",
        "ann-gps",
        "ann-airport",
        "ann-ship",
        "ann-ash",
        "ann-overload",
        "ann-thermal",
        "ann-rfmis",
        "ann-coolant",
        "ann-nooutput",
        "ann-emparmed",
        "ann-caplow",
        "ann-interlock",
        "ack",
        "anntest"
      ],
      "level": "module"
    },
    "mod-recorder": {
      "name": "Seismograph",
      "ids": [
        "chart",
        "recgain",
        "rechold"
      ],
      "level": "module"
    },
    "mod-time": {
      "name": "Time",
      "ids": [
        "speed",
        "month",
        "hour"
      ],
      "level": "module"
    },
    "mod-system": {
      "name": "System",
      "ids": [
        "estop",
        "whatsthis",
        "modekey",
        "lang"
      ],
      "level": "module"
    },
    "mod-audio": {
      "name": "Audio",
      "ids": [
        "master"
      ],
      "level": "module"
    },
    "mod-probe": {
      "name": "Surface probe · example readings",
      "ids": [
        "probe-elevation",
        "probe-depth",
        "probe-airtemp",
        "probe-humidity",
        "probe-pressure",
        "probe-wind",
        "probe-winddir",
        "probe-dewpoint",
        "probe-precip",
        "probe-visibility",
        "probe-cloud",
        "probe-cloudbase",
        "probe-freezing",
        "probe-sst",
        "probe-wave",
        "probe-period",
        "probe-swelldir",
        "probe-current",
        "probe-currentdir",
        "probe-sealevel",
        "probe-soil",
        "probe-snow",
        "probe-ice"
      ],
      "level": "module"
    },
    "mod-light": {
      "name": "Light",
      "ids": [
        "lt-panel",
        "lt-meters",
        "lt-displays",
        "ltmode",
        "lamptest",
        "disptest"
      ],
      "level": "module"
    }
  },
  "bays": [
    {
      "id": "machine",
      "name": "Machine",
      "w": 260,
      "bridge": "machineBridge",
      "desk": "machineDesk"
    },
    {
      "id": "sky",
      "name": "Sky",
      "w": 700,
      "fams": [
        "upper",
        "air",
        "cloud"
      ]
    },
    {
      "id": "aim",
      "name": "Aim",
      "w": 400,
      "bridge": "aimBridge",
      "desk": "aimDesk"
    },
    {
      "id": "earth",
      "name": "Earth",
      "w": 700,
      "fams": [
        "storm",
        "ocean",
        "ground"
      ],
      "bridge": "earthBridge",
      "desk": "earthDesk"
    },
    {
      "id": "con",
      "name": "Consequences",
      "w": 440,
      "bridge": "conBridge",
      "desk": "conDesk"
    }
  ],
  "families": [
    {
      "id": "upper",
      "name": "Upper atmosphere",
      "color": "var(--f-upper)",
      "bay": "sky",
      "strips": [
        {
          "id": "aurora",
          "name": "Aurora",
          "short": "AURORA",
          "f": {
            "min": 0,
            "max": 9,
            "step": 0.1,
            "unit": "Kp",
            "lo": "0",
            "hi": "9"
          },
          "size": {
            "min": 200,
            "max": 3000,
            "step": 10,
            "def": 900
          },
          "char": {
            "label": "COLOUR",
            "min": 0,
            "max": 100,
            "step": 1,
            "def": 15,
            "lo": "GRN",
            "hi": "VIO",
            "desc": "Emission colour: oxygen green (557 nm), high-altitude oxygen red (630 nm) or nitrogen violet."
          },
          "burst": "Substorm flare: a brief brightening.",
          "gate": "Target in daylight. The aurora is drawn faint.",
          "desc": "Auroral activity at the target on the Kp scale."
        },
        {
          "id": "airglow",
          "name": "Airglow",
          "short": "AIRGLOW",
          "f": {
            "min": 0,
            "max": 100,
            "step": 1,
            "unit": "%",
            "lo": "0",
            "hi": "100"
          },
          "size": {
            "min": 50,
            "max": 1500,
            "step": 10,
            "def": 300
          },
          "char": null,
          "burst": "Glow ring at the beam spot.",
          "gate": "Target in sunlight.",
          "desc": "Artificial airglow from heating the ionosphere. The one sky effect HAARP has actually produced."
        },
        {
          "id": "blackout",
          "name": "Radio blackout",
          "short": "BLACKOUT",
          "f": {
            "min": 0,
            "max": 30,
            "step": 0.5,
            "unit": "dB",
            "lo": "0",
            "hi": "30"
          },
          "size": {
            "min": 500,
            "max": 4000,
            "step": 50,
            "def": 1500
          },
          "char": {
            "label": "BAND",
            "pos": [
              "HF",
              "TV",
              "GPS",
              "ALL"
            ],
            "def": 0,
            "desc": "Which signals fade. TV turns the news feed to static; GPS makes the target coordinates jitter."
          },
          "burst": "Sudden fade.",
          "gate": "Never blocked.",
          "desc": "Absorption of radio signals in the lower ionosphere."
        },
        {
          "id": "jet",
          "name": "Jet stream",
          "short": "JET",
          "f": {
            "min": -100,
            "max": 100,
            "step": 1,
            "unit": "%",
            "lo": "SLACK",
            "hi": "ROAR"
          },
          "size": {
            "label": "WIDTH",
            "min": 200,
            "max": 1500,
            "step": 10,
            "def": 600
          },
          "char": null,
          "burst": "Kink: sends a cold-air outbreak south.",
          "gate": "Never blocked. Steers the drift of every storm.",
          "desc": "Speed of the upper-level wind that steers weather systems."
        }
      ]
    },
    {
      "id": "air",
      "name": "Air mass",
      "color": "var(--f-air)",
      "bay": "sky",
      "strips": [
        {
          "id": "temp",
          "name": "Temperature",
          "short": "TEMP",
          "f": {
            "min": -30,
            "max": 30,
            "step": 0.5,
            "unit": "°C",
            "lo": "COLD",
            "hi": "HOT"
          },
          "size": {
            "min": 100,
            "max": 3000,
            "step": 10,
            "def": 1100
          },
          "char": null,
          "burst": "Heat or cold pulse.",
          "gate": "Never blocked.",
          "desc": "Adds to or subtracts from the natural temperature at the target."
        },
        {
          "id": "humidity",
          "name": "Humidity",
          "short": "HUMID",
          "f": {
            "min": -100,
            "max": 100,
            "step": 1,
            "unit": "%",
            "lo": "DRY",
            "hi": "SAT"
          },
          "size": {
            "min": 100,
            "max": 3000,
            "step": 10,
            "def": 1100
          },
          "char": {
            "label": "HAZE",
            "min": 0,
            "max": 100,
            "step": 1,
            "def": 20,
            "unit": "%",
            "lo": "CLEAR",
            "hi": "HAZY",
            "desc": "Visibility through the moist air."
          },
          "burst": "Moisture plume.",
          "gate": "Never blocked. Gates fog and precipitation.",
          "desc": "Dries or saturates the air. Shown as dew point on the readout."
        },
        {
          "id": "pressure",
          "name": "Pressure",
          "short": "PRESS",
          "f": {
            "min": -40,
            "max": 40,
            "step": 1,
            "unit": "hPa",
            "lo": "LOW",
            "hi": "HIGH"
          },
          "size": {
            "min": 100,
            "max": 3000,
            "step": 10,
            "def": 1400
          },
          "char": null,
          "burst": "Pressure jump.",
          "gate": "Never blocked. Low pressure over warm sea opens the cyclone gate.",
          "desc": "High pressure brings stable, clear weather; low brings storms."
        },
        {
          "id": "wind",
          "name": "Wind",
          "short": "WIND",
          "f": {
            "min": -100,
            "max": 100,
            "step": 1,
            "unit": "%",
            "lo": "CALM",
            "hi": "GALE"
          },
          "size": {
            "min": 100,
            "max": 3000,
            "step": 10,
            "def": 1100
          },
          "char": {
            "label": "DIRECTION",
            "min": 0,
            "max": 359,
            "step": 1,
            "def": 270,
            "endless": true,
            "desc": "Direction the wind blows from. Endless knob with a compass rose."
          },
          "burst": "Gust front.",
          "gate": "Never blocked.",
          "desc": "Calms or strengthens the natural wind."
        }
      ]
    },
    {
      "id": "cloud",
      "name": "Cloud & precipitation",
      "color": "var(--f-cloud)",
      "bay": "sky",
      "strips": [
        {
          "id": "clouds",
          "name": "Clouds",
          "short": "CLOUDS",
          "f": {
            "min": -100,
            "max": 100,
            "step": 1,
            "unit": "%",
            "lo": "CLEAR",
            "hi": "OVCST"
          },
          "size": {
            "min": 100,
            "max": 3000,
            "step": 10,
            "def": 1100
          },
          "char": {
            "label": "CEILING",
            "min": 0.2,
            "max": 12,
            "step": 0.1,
            "def": 1.5,
            "unit": "km",
            "lo": "LOW",
            "hi": "HIGH",
            "desc": "Cloud base height: low stratus to high cirrus. Visible in the cloud layer over the target."
          },
          "burst": "Cloud burst.",
          "gate": "Never blocked.",
          "desc": "Clears or thickens cloud cover."
        },
        {
          "id": "fog",
          "name": "Fog",
          "short": "FOG",
          "f": {
            "min": -100,
            "max": 100,
            "step": 1,
            "unit": "%",
            "lo": "CLEAR",
            "hi": "DENSE"
          },
          "size": {
            "min": 20,
            "max": 1500,
            "step": 5,
            "def": 300
          },
          "char": {
            "label": "DEPTH",
            "min": 10,
            "max": 500,
            "step": 5,
            "def": 80,
            "unit": "m",
            "lo": "THIN",
            "hi": "DEEP",
            "desc": "Fog thickness. Thin or deep fog over the target region."
          },
          "burst": "Fog bank rolls in.",
          "gate": "Humidity too low: the fog evaporates.",
          "desc": "Lifts or thickens fog."
        },
        {
          "id": "precip",
          "name": "Precipitation",
          "short": "PRECIP",
          "f": {
            "min": -100,
            "max": 100,
            "step": 1,
            "unit": "%",
            "lo": "DRY",
            "hi": "DELUGE"
          },
          "size": {
            "min": 50,
            "max": 3000,
            "step": 10,
            "def": 1100
          },
          "char": {
            "label": "TYPE",
            "pos": [
              "AUTO",
              "DRZL",
              "RAIN",
              "FRZ",
              "SLEET",
              "SNOW",
              "HAIL"
            ],
            "full": [
              "Auto",
              "Drizzle",
              "Rain",
              "Freezing rain",
              "Sleet",
              "Snow",
              "Hail"
            ],
            "def": 0,
            "desc": "What falls. AUTO lets the temperature decide."
          },
          "burst": "Downpour (microburst).",
          "gate": "The chosen type is impossible here (snow above +3 °C, hail without a thunderstorm). Falls as AUTO.",
          "desc": "Dries up or intensifies rain, snow and hail. Replaces the separate Rain and Snowfall channels."
        },
        {
          "id": "lightning",
          "name": "Lightning",
          "short": "LIGHTNG",
          "f": {
            "min": 0,
            "max": 60,
            "step": 1,
            "unit": "/min",
            "lo": "0",
            "hi": "60"
          },
          "size": {
            "min": 20,
            "max": 1500,
            "step": 10,
            "def": 300
          },
          "char": {
            "label": "TYPE",
            "pos": [
              "IC",
              "CG",
              "SPRITE"
            ],
            "full": [
              "In-cloud",
              "Cloud-to-ground",
              "Sprites"
            ],
            "def": 1,
            "desc": "In-cloud flashes, cloud-to-ground strikes, or sprites above the storm."
          },
          "burst": "A single bolt at the target. Can ignite a wildfire.",
          "gate": "No clouds.",
          "desc": "Strike rate at the target."
        }
      ]
    },
    {
      "id": "storm",
      "name": "Storms",
      "color": "var(--f-storm)",
      "bay": "earth",
      "strips": [
        {
          "id": "tstorm",
          "name": "Thunderstorm cell",
          "short": "T-STORM",
          "f": {
            "min": 0,
            "max": 100,
            "step": 1,
            "unit": "%",
            "lo": "0",
            "hi": "100"
          },
          "size": {
            "min": 10,
            "max": 200,
            "step": 1,
            "def": 60
          },
          "char": {
            "label": "ORGANISE",
            "pos": [
              "SGL",
              "MULTI",
              "LINE",
              "SUPER"
            ],
            "full": [
              "Single cell",
              "Multicell",
              "Squall line",
              "Supercell"
            ],
            "def": 0,
            "desc": "Single cell, multicell, squall line or supercell. Supercells can spawn tornadoes."
          },
          "burst": "Microburst.",
          "gate": "No instability (cold, dry air).",
          "desc": "Convective storm cell at the target.",
          "hazard": true
        },
        {
          "id": "cyclone",
          "lock": true,
          "name": "Cyclone",
          "short": "CYCLONE",
          "f": {
            "min": 0,
            "max": 5,
            "step": 0.1,
            "unit": "CAT",
            "lo": "0",
            "hi": "5"
          },
          "size": {
            "min": 200,
            "max": 2000,
            "step": 10,
            "def": 700
          },
          "char": {
            "label": "TRACK",
            "min": 0,
            "max": 359,
            "step": 1,
            "def": 300,
            "endless": true,
            "desc": "Heading the cyclone travels. Aim it at a city."
          },
          "burst": "Eyewall surge.",
          "gate": "Over land, or sea colder than 26 °C: it weakens.",
          "desc": "Tropical cyclone on the Saffir-Simpson scale.",
          "hazard": true
        },
        {
          "id": "tornado",
          "lock": true,
          "name": "Tornado",
          "short": "TORNADO",
          "f": {
            "min": 0,
            "max": 5,
            "step": 0.1,
            "unit": "EF",
            "lo": "0",
            "hi": "5"
          },
          "size": {
            "label": "PATH",
            "min": 1,
            "max": 80,
            "step": 1,
            "def": 15
          },
          "char": {
            "label": "SHAPE",
            "min": 0,
            "max": 100,
            "step": 1,
            "def": 30,
            "lo": "ROPE",
            "hi": "WEDGE",
            "desc": "Thin rope or broad wedge funnel."
          },
          "burst": "Touchdown.",
          "gate": "No thunderstorm (best with a supercell).",
          "desc": "Tornado on the Enhanced Fujita scale.",
          "hazard": true
        },
        {
          "id": "dust",
          "name": "Dust storm",
          "short": "DUST",
          "f": {
            "min": 0,
            "max": 100,
            "step": 1,
            "unit": "%",
            "lo": "0",
            "hi": "100"
          },
          "size": {
            "min": 50,
            "max": 1500,
            "step": 10,
            "def": 400
          },
          "char": {
            "label": "WALL",
            "min": 100,
            "max": 3000,
            "step": 50,
            "def": 1200,
            "unit": "m",
            "lo": "LOW",
            "hi": "HIGH",
            "desc": "Height of the dust wall."
          },
          "burst": "Haboob wall.",
          "gate": "Wet ground or sea.",
          "desc": "Desert dust storm. Made for Cairo and Dubai.",
          "hazard": true
        }
      ]
    },
    {
      "id": "ocean",
      "name": "Ocean",
      "color": "var(--f-ocean)",
      "bay": "earth",
      "strips": [
        {
          "id": "sealevel",
          "name": "Sea level",
          "short": "SEA LVL",
          "f": {
            "min": -5,
            "max": 5,
            "step": 0.1,
            "unit": "m",
            "lo": "LOW",
            "hi": "SURGE"
          },
          "size": {
            "min": 50,
            "max": 2000,
            "step": 10,
            "def": 600
          },
          "char": {
            "label": "TIDE",
            "min": 0,
            "max": 100,
            "step": 1,
            "def": 40,
            "lo": "NEAP",
            "hi": "SPRING",
            "desc": "Tidal range from neap to spring tide."
          },
          "burst": "Surge pulse.",
          "gate": "Target inland.",
          "desc": "Raises or lowers the sea at the target."
        },
        {
          "id": "seastate",
          "name": "Sea state",
          "short": "SEA ST",
          "f": {
            "min": -100,
            "max": 100,
            "step": 1,
            "unit": "%",
            "lo": "GLASSY",
            "hi": "PHENOM"
          },
          "size": {
            "min": 50,
            "max": 2000,
            "step": 10,
            "def": 800
          },
          "char": {
            "label": "SWELL",
            "min": 2,
            "max": 20,
            "step": 0.5,
            "def": 8,
            "unit": "s",
            "lo": "CHOP",
            "hi": "LONG",
            "desc": "Wave period: short chop to long ocean swell."
          },
          "burst": "Rogue wave.",
          "gate": "Target on land.",
          "desc": "Calms or roughens the waves (Douglas sea state)."
        },
        {
          "id": "current",
          "name": "Ocean current",
          "short": "CURRENT",
          "f": {
            "min": -100,
            "max": 100,
            "step": 1,
            "unit": "%",
            "lo": "REV",
            "hi": "FAST"
          },
          "size": {
            "min": 50,
            "max": 3000,
            "step": 10,
            "def": 1000
          },
          "char": {
            "label": "DIRECTION",
            "min": 0,
            "max": 359,
            "step": 1,
            "def": 90,
            "endless": true,
            "desc": "Direction the current flows toward."
          },
          "burst": "Eddy.",
          "gate": "Target on land.",
          "desc": "Slows, reverses or speeds up the surface current."
        },
        {
          "id": "sst",
          "name": "Sea temperature",
          "short": "SEA TMP",
          "f": {
            "min": -6,
            "max": 6,
            "step": 0.1,
            "unit": "°C",
            "lo": "COLD",
            "hi": "WARM"
          },
          "size": {
            "min": 50,
            "max": 3000,
            "step": 10,
            "def": 1000
          },
          "char": null,
          "burst": "Marine heatwave.",
          "gate": "Target on land.",
          "desc": "Warms or cools the sea surface."
        }
      ]
    },
    {
      "id": "ground",
      "name": "Ground",
      "color": "var(--f-ground)",
      "bay": "earth",
      "strips": [
        {
          "id": "soil",
          "name": "Soil moisture",
          "short": "SOIL",
          "f": {
            "min": -100,
            "max": 100,
            "step": 1,
            "unit": "%",
            "lo": "DROUGHT",
            "hi": "WET"
          },
          "size": {
            "min": 50,
            "max": 3000,
            "step": 10,
            "def": 900
          },
          "char": null,
          "burst": "Flash flood.",
          "gate": "Target on the ocean.",
          "desc": "Drought to waterlogged ground. Replaces the Drought channel."
        },
        {
          "id": "fire",
          "name": "Wildfire",
          "short": "FIRE",
          "f": {
            "min": 0,
            "max": 100,
            "step": 1,
            "unit": "%",
            "lo": "0",
            "hi": "100"
          },
          "size": {
            "min": 5,
            "max": 800,
            "step": 5,
            "def": 120
          },
          "char": null,
          "burst": "Ignition: spawns a new fire at the target.",
          "gate": "Wet soil, snow or sea.",
          "desc": "Wildfire intensity. IGNITE spawns a fire; the fader feeds it.",
          "hazard": true
        },
        {
          "id": "quake",
          "lock": true,
          "name": "Earthquake",
          "short": "QUAKE",
          "f": {
            "min": 0,
            "max": 9.5,
            "step": 0.1,
            "unit": "Mw",
            "lo": "0",
            "hi": "9.5"
          },
          "size": {
            "label": "RUPTURE",
            "min": 10,
            "max": 800,
            "step": 5,
            "def": 120
          },
          "char": {
            "label": "DEPTH",
            "min": 5,
            "max": 300,
            "step": 1,
            "def": 20,
            "unit": "km",
            "lo": "5",
            "hi": "300",
            "desc": "Hypocentre depth. Shallow quakes at sea with Mw ≥ 7 light the TSUNAMI tile."
          },
          "burst": "Aftershock.",
          "gate": "Never blocked.",
          "desc": "Earthquake on the moment-magnitude scale.",
          "hazard": true
        },
        {
          "id": "volcano",
          "lock": true,
          "name": "Volcano",
          "short": "VOLCANO",
          "f": {
            "min": 0,
            "max": 8,
            "step": 0.1,
            "unit": "VEI",
            "lo": "0",
            "hi": "8"
          },
          "size": {
            "label": "PLUME",
            "min": 10,
            "max": 2000,
            "step": 10,
            "def": 300
          },
          "char": {
            "label": "STYLE",
            "min": 0,
            "max": 100,
            "step": 1,
            "def": 60,
            "lo": "EFFUS",
            "hi": "EXPLO",
            "desc": "Lava flows or an explosive ash column."
          },
          "burst": "Eruption.",
          "gate": "Never blocked. An underwater vent makes a steam plume.",
          "desc": "Eruption on the Volcanic Explosivity Index.",
          "hazard": true
        }
      ]
    }
  ],
  "counts": {
    "controls": 125,
    "readouts": 148,
    "total": 273
  },
  "groupCounts": [
    {
      "id": "bay-machine",
      "name": "Machine bay",
      "level": "bay",
      "controls": 6,
      "readouts": 7,
      "total": 13
    },
    {
      "id": "mod-arraymeters",
      "name": "Array",
      "level": "module",
      "controls": 0,
      "readouts": 5,
      "total": 5
    },
    {
      "id": "mod-tx",
      "name": "Transmitter",
      "level": "module",
      "controls": 2,
      "readouts": 2,
      "total": 4
    },
    {
      "id": "mod-cooling",
      "name": "Cooling",
      "level": "module",
      "controls": 1,
      "readouts": 0,
      "total": 1
    },
    {
      "id": "mod-caps",
      "name": "Capacitors · EMP",
      "level": "module",
      "controls": 3,
      "readouts": 0,
      "total": 3
    },
    {
      "id": "bay-sky",
      "name": "Sky bay",
      "level": "bay",
      "controls": 35,
      "readouts": 39,
      "total": 74
    },
    {
      "id": "fam-upper",
      "name": "Upper atmosphere family",
      "level": "family",
      "controls": 11,
      "readouts": 13,
      "total": 24
    },
    {
      "id": "strip-aurora",
      "name": "Aurora strip",
      "level": "strip",
      "controls": 4,
      "readouts": 3,
      "total": 7
    },
    {
      "id": "strip-airglow",
      "name": "Airglow strip",
      "level": "strip",
      "controls": 2,
      "readouts": 3,
      "total": 5
    },
    {
      "id": "strip-blackout",
      "name": "Radio blackout strip",
      "level": "strip",
      "controls": 3,
      "readouts": 3,
      "total": 6
    },
    {
      "id": "strip-jet",
      "name": "Jet stream strip",
      "level": "strip",
      "controls": 2,
      "readouts": 3,
      "total": 5
    },
    {
      "id": "fam-air",
      "name": "Air mass family",
      "level": "family",
      "controls": 11,
      "readouts": 13,
      "total": 24
    },
    {
      "id": "strip-temp",
      "name": "Temperature strip",
      "level": "strip",
      "controls": 2,
      "readouts": 3,
      "total": 5
    },
    {
      "id": "strip-humidity",
      "name": "Humidity strip",
      "level": "strip",
      "controls": 3,
      "readouts": 3,
      "total": 6
    },
    {
      "id": "strip-pressure",
      "name": "Pressure strip",
      "level": "strip",
      "controls": 2,
      "readouts": 3,
      "total": 5
    },
    {
      "id": "strip-wind",
      "name": "Wind strip",
      "level": "strip",
      "controls": 4,
      "readouts": 3,
      "total": 7
    },
    {
      "id": "fam-cloud",
      "name": "Cloud & precipitation family",
      "level": "family",
      "controls": 13,
      "readouts": 13,
      "total": 26
    },
    {
      "id": "strip-clouds",
      "name": "Clouds strip",
      "level": "strip",
      "controls": 3,
      "readouts": 3,
      "total": 6
    },
    {
      "id": "strip-fog",
      "name": "Fog strip",
      "level": "strip",
      "controls": 3,
      "readouts": 3,
      "total": 6
    },
    {
      "id": "strip-precip",
      "name": "Precipitation strip",
      "level": "strip",
      "controls": 3,
      "readouts": 3,
      "total": 6
    },
    {
      "id": "strip-lightning",
      "name": "Lightning strip",
      "level": "strip",
      "controls": 4,
      "readouts": 3,
      "total": 7
    },
    {
      "id": "bay-aim",
      "name": "Aim bay",
      "level": "bay",
      "controls": 20,
      "readouts": 9,
      "total": 29
    },
    {
      "id": "mod-position",
      "name": "Position",
      "level": "module",
      "controls": 0,
      "readouts": 9,
      "total": 9
    },
    {
      "id": "mod-target",
      "name": "Target",
      "level": "module",
      "controls": 2,
      "readouts": 0,
      "total": 2
    },
    {
      "id": "mod-screens",
      "name": "Screens",
      "level": "module",
      "controls": 4,
      "readouts": 0,
      "total": 4
    },
    {
      "id": "mod-nav",
      "name": "Navigation",
      "level": "module",
      "controls": 2,
      "readouts": 0,
      "total": 2
    },
    {
      "id": "mod-layers",
      "name": "Layers",
      "level": "module",
      "controls": 12,
      "readouts": 0,
      "total": 12
    },
    {
      "id": "bay-earth",
      "name": "Earth bay",
      "level": "bay",
      "controls": 46,
      "readouts": 45,
      "total": 91
    },
    {
      "id": "fam-storm",
      "name": "Storms family",
      "level": "family",
      "controls": 16,
      "readouts": 13,
      "total": 29
    },
    {
      "id": "strip-tstorm",
      "name": "Thunderstorm cell strip",
      "level": "strip",
      "controls": 4,
      "readouts": 3,
      "total": 7
    },
    {
      "id": "strip-cyclone",
      "name": "Cyclone strip",
      "level": "strip",
      "controls": 4,
      "readouts": 3,
      "total": 7
    },
    {
      "id": "strip-tornado",
      "name": "Tornado strip",
      "level": "strip",
      "controls": 5,
      "readouts": 3,
      "total": 8
    },
    {
      "id": "strip-dust",
      "name": "Dust storm strip",
      "level": "strip",
      "controls": 3,
      "readouts": 3,
      "total": 6
    },
    {
      "id": "fam-ocean",
      "name": "Ocean family",
      "level": "family",
      "controls": 12,
      "readouts": 13,
      "total": 25
    },
    {
      "id": "strip-sealevel",
      "name": "Sea level strip",
      "level": "strip",
      "controls": 3,
      "readouts": 3,
      "total": 6
    },
    {
      "id": "strip-seastate",
      "name": "Sea state strip",
      "level": "strip",
      "controls": 4,
      "readouts": 3,
      "total": 7
    },
    {
      "id": "strip-current",
      "name": "Ocean current strip",
      "level": "strip",
      "controls": 3,
      "readouts": 3,
      "total": 6
    },
    {
      "id": "strip-sst",
      "name": "Sea temperature strip",
      "level": "strip",
      "controls": 2,
      "readouts": 3,
      "total": 5
    },
    {
      "id": "fam-ground",
      "name": "Ground family",
      "level": "family",
      "controls": 15,
      "readouts": 13,
      "total": 28
    },
    {
      "id": "strip-soil",
      "name": "Soil moisture strip",
      "level": "strip",
      "controls": 2,
      "readouts": 3,
      "total": 5
    },
    {
      "id": "strip-fire",
      "name": "Wildfire strip",
      "level": "strip",
      "controls": 3,
      "readouts": 3,
      "total": 6
    },
    {
      "id": "strip-quake",
      "name": "Earthquake strip",
      "level": "strip",
      "controls": 5,
      "readouts": 3,
      "total": 8
    },
    {
      "id": "strip-volcano",
      "name": "Volcano strip",
      "level": "strip",
      "controls": 5,
      "readouts": 3,
      "total": 8
    },
    {
      "id": "mod-waves",
      "name": "Sea surface",
      "level": "module",
      "controls": 0,
      "readouts": 2,
      "total": 2
    },
    {
      "id": "mod-clocks",
      "name": "Simulation",
      "level": "module",
      "controls": 0,
      "readouts": 3,
      "total": 3
    },
    {
      "id": "mod-comms",
      "name": "Reports",
      "level": "module",
      "controls": 1,
      "readouts": 1,
      "total": 2
    },
    {
      "id": "mod-meteor",
      "name": "Meteor · at crosshair",
      "level": "module",
      "controls": 2,
      "readouts": 0,
      "total": 2
    },
    {
      "id": "bay-con",
      "name": "Consequences bay",
      "level": "bay",
      "controls": 18,
      "readouts": 48,
      "total": 66
    },
    {
      "id": "mod-annunciator",
      "name": "Annunciator",
      "level": "module",
      "controls": 2,
      "readouts": 24,
      "total": 26
    },
    {
      "id": "mod-recorder",
      "name": "Seismograph",
      "level": "module",
      "controls": 2,
      "readouts": 1,
      "total": 3
    },
    {
      "id": "mod-time",
      "name": "Time",
      "level": "module",
      "controls": 3,
      "readouts": 0,
      "total": 3
    },
    {
      "id": "mod-system",
      "name": "System",
      "level": "module",
      "controls": 4,
      "readouts": 0,
      "total": 4
    },
    {
      "id": "mod-audio",
      "name": "Audio",
      "level": "module",
      "controls": 1,
      "readouts": 0,
      "total": 1
    },
    {
      "id": "mod-probe",
      "name": "Surface probe · example readings",
      "level": "module",
      "controls": 0,
      "readouts": 23,
      "total": 23
    },
    {
      "id": "mod-light",
      "name": "Light",
      "level": "module",
      "controls": 6,
      "readouts": 0,
      "total": 6
    }
  ],
  "source": {
    "chat": "Codex prototype knobs assessment",
    "revision": 7,
    "date": "2026-10-19",
    "previousControls": 123,
    "previousReadouts": 148,
    "changes": [
      "Meteor diameter knob and guarded IMPACT at the current crosshair",
      "Clickable catalog type and grouping links with count thumbnails",
      "Other candidate effects declined; revision 6 controls and probe readouts retained"
    ],
    "previewOnly": true
  }
}
