{
  "$schema": "flyplay/weather@1",
  "$meta": {
    "owner": "ENV",
    "src": "ENV tables. Sun and moon positions come from the legacy astro.js (NOAA / Meeus, fact). The shape of the diurnal curve and its September-in-Taipei anchors are a model. Every probability, dwell time and effect size below is a design number (see each row's basis). Nothing here is measured at the scale of a 2.3 mm fly.",
    "unit": {
      "hours": "game hours (1 game hour = 1 real minute)",
      "tempC": "degrees C",
      "rh": "relative humidity as a fraction 0..1 (offsets are added to the fraction)",
      "sunLoadC": "degrees C added by direct sun at the zenith, open sky, clear weather",
      "wind": "multiplier on the zone wind, 1 = clear weather (at intensity 1)",
      "zones.intensity": "per weather kind: how much stronger (> 1) or weaker (< 1) that weather is in the zone than the town's weather, a multiplier on the intensity (the result stays in 0..1)",
      "clock.starts": "named start times of a run: local hour of game day 0 (newRun({start: 'dusk'}))",
      "veil.rgb": "display colour 0..1 of the screen tint at intensity 1 (veil.a is its strength; the heat kind has a = 0: the heat shimmer is the camera post pass reading the HEAT uniform, no warm cast on top)",
      "lightning.meanGapS": "real seconds between flashes at full storm",
      "lightning.delayS": "real seconds from flash to thunder",
      "lightning.flashS": "real seconds a flash lasts"
    },
    "note": "Intensity of a weather segment rises from 0 to its peak and falls back to 0 (rise and fall are fractions of the segment), so a kind never starts or ends with a visible jump. The first segment of every run is fair weather (opening), so the first minutes of play are never a storm."
  },
  "clock": {
    "nightBelowDeg": -6,
    "dayAboveDeg": 15,
    "starts": { "dawn": 6, "morning": 9, "noon": 12, "afternoon": 15, "dusk": 17.5, "evening": 20, "night": 23, "midnight": 0 }
  },
  "opening": {
    "kind": "clear",
    "untilHour": 11
  },
  "baseline": {
    "tminC": 21.5,
    "tmaxC": 31.5,
    "tminHour": 5.5,
    "tmaxHour": 14.5,
    "rhMean": 0.74,
    "rhPerC": 0.025,
    "rhMin": 0.2,
    "dayJitterC": 1.5,
    "sunLoadC": 3.5,
    "basis": "model"
  },
  "kinds": {
    "clear": {
      "basis": "design",
      "hours": [4, 9],
      "peak": [0, 0],
      "rise": [0.1, 0.2],
      "fall": [0.1, 0.2],
      "tempC": 0,
      "dtrMul": 1,
      "rh": 0,
      "rhFloor": 0,
      "light": 1,
      "uv": 1,
      "sunMul": 1,
      "precip": 0,
      "lightning": 0,
      "wind": { "speedMul": 1, "gustMul": 1 },
      "veil": { "rgb": [1, 1, 1], "a": 0 }
    },
    "overcast": {
      "basis": "design",
      "hours": [2, 6],
      "peak": [0.35, 0.9],
      "rise": [0.15, 0.35],
      "fall": [0.15, 0.35],
      "tempC": -1.5,
      "dtrMul": 0.65,
      "rh": 0.06,
      "rhFloor": 0,
      "light": 0.45,
      "uv": 0.35,
      "sunMul": 0.35,
      "precip": 0,
      "lightning": 0,
      "wind": { "speedMul": 1.15, "gustMul": 1.3 },
      "veil": { "rgb": [0.62, 0.66, 0.72], "a": 0.1 }
    },
    "rain": {
      "basis": "design",
      "hours": [0.8, 2.5],
      "peak": [0.3, 0.9],
      "rise": [0.2, 0.35],
      "fall": [0.2, 0.35],
      "tempC": -3.5,
      "dtrMul": 0.45,
      "rh": 0.14,
      "rhFloor": 0.9,
      "light": 0.3,
      "uv": 0.15,
      "sunMul": 0.15,
      "precip": 1,
      "lightning": 0,
      "wind": { "speedMul": 1.4, "gustMul": 1.8 },
      "veil": { "rgb": [0.4, 0.45, 0.52], "a": 0.18 }
    },
    "storm": {
      "basis": "design",
      "hours": [0.75, 1.5],
      "peak": [0.7, 1],
      "rise": [0.2, 0.3],
      "fall": [0.2, 0.3],
      "tempC": -6,
      "dtrMul": 0.35,
      "rh": 0.2,
      "rhFloor": 0.92,
      "light": 0.15,
      "uv": 0.05,
      "sunMul": 0.05,
      "precip": 1,
      "lightning": 1,
      "wind": { "speedMul": 2.5, "gustMul": 3 },
      "veil": { "rgb": [0.18, 0.2, 0.27], "a": 0.34 }
    },
    "heat": {
      "basis": "design",
      "hours": [2.5, 6],
      "peak": [0.5, 1],
      "rise": [0.15, 0.35],
      "fall": [0.15, 0.35],
      "tempC": 4.5,
      "dtrMul": 1.25,
      "rh": -0.12,
      "rhFloor": 0,
      "light": 1,
      "uv": 1.15,
      "sunMul": 1.25,
      "precip": 0,
      "lightning": 0,
      "wind": { "speedMul": 0.7, "gustMul": 0.6 },
      "veil": { "rgb": [1, 0.94, 0.82], "a": 0 }
    },
    "fog": {
      "basis": "design",
      "hours": [1, 3],
      "peak": [0.4, 1],
      "rise": [0.15, 0.35],
      "fall": [0.15, 0.35],
      "tempC": -1.5,
      "dtrMul": 0.6,
      "rh": 0.2,
      "rhFloor": 0.97,
      "light": 0.55,
      "uv": 0.45,
      "sunMul": 0.4,
      "precip": 0,
      "lightning": 0,
      "wind": { "speedMul": 0.5, "gustMul": 0.4 },
      "veil": { "rgb": [0.85, 0.88, 0.9], "a": 0.42 }
    }
  },
  "transitions": {
    "clear": { "overcast": 0.5, "heat": 0.22, "fog": 0.15, "rain": 0.08, "storm": 0.05 },
    "overcast": { "clear": 0.42, "rain": 0.2, "storm": 0.06, "fog": 0.1, "heat": 0.22 },
    "rain": { "overcast": 0.45, "storm": 0.18, "clear": 0.22, "fog": 0.15 },
    "storm": { "rain": 0.6, "overcast": 0.3, "clear": 0.1 },
    "heat": { "clear": 0.3, "overcast": 0.25, "storm": 0.3, "rain": 0.15 },
    "fog": { "clear": 0.5, "overcast": 0.35, "rain": 0.15 }
  },
  "bandBias": {
    "dawn": { "fog": 2.5, "heat": 0.2 },
    "day": { "heat": 1.6, "fog": 0.3 },
    "dusk": { "storm": 1.4, "rain": 1.2, "fog": 0.7, "heat": 0.7 },
    "night": { "heat": 0.05, "fog": 1.3 }
  },
  "zones": {
    "room": {
      "indoor": true,
      "tempC": 0,
      "rh": 0,
      "intensity": {},
      "shadeRangeM": 3.5,
      "interior": { "tempC": 22, "follow": 0.15, "rh": 0.58, "rhFollow": 0.3, "lamp": 0.25, "window": 0.55, "uv": 0.12 }
    },
    "park": {
      "indoor": false,
      "tempC": -1.5,
      "rh": 0.07,
      "intensity": { "fog": 1.25, "heat": 0.85 },
      "shadeRangeM": 25
    },
    "city": {
      "indoor": false,
      "tempC": -1,
      "rh": -0.07,
      "intensity": { "fog": 0.6, "heat": 1.15 },
      "shadeRangeM": 40
    }
  },
  "wetness": {
    "riseHours": 0.15,
    "dryHours": 1.6,
    "gain": 1.4,
    "rhGain": 0.1
  },
  "lightning": {
    "meanGapS": 11,
    "delayS": [0.35, 3.2],
    "flashS": 0.22,
    "minIntensity": 0.45
  }
}
