{
  "_readme": "Seasonal edits live here. Anything marked PLACEHOLDER must be replaced with real details. Times are 24h HH:MM, local time. Day numbers: 0=Sun ... 6=Sat. Section switches live in 'show': set showSongs/showGallery/showStats to true when real content is ready.",
  "site": {
    "name": "The Lights of Christmas",
    "nameHighlight": "Christmas",
    "domain": "thelightsofchrist.com",
    "tagline": "Lights and music celebrating the reason we celebrate: the birth of Jesus. Pull over safely, tune your radio, and enjoy.",
    "eyebrow": "A free Christmas light show in Wichita, Kansas",
    "fm": "89.5",
    "address": "1857 N Ridge Road, Wichita, KS 67212",
    "addressDetail": "Main show faces 18th Street",
    "mapsQuery": "1857 N Ridge Road, Wichita, KS 67212",
    "xHandle": "",
    "xUrl": "",
    "verse": {
      "text": "The light shines in the darkness, and the darkness has not overcome it.",
      "ref": "John 1:5"
    },
    "nowPlayingUrl": "/api/now-playing",
    "pollSeconds": 12,
    "idlePollSeconds": 120,
    "fmLabelFormat": "{fm} FM",
    "_mapsHelp": "Apple devices open Apple Maps; Android opens the default maps app via geo:; others open Apple Maps on the web.",
    "musicLede": "Music that tells the Christmas story, from timeless carols to the modern remix. Each song is sequenced by hand. Each night features a different playlist drawn from our full song lineup below, and it loops all evening.",
    "behindLede": "Months of planning, a lot of wiring and cords (miles of it), and a little computer called the BeagleBone Black that runs it all.",
    "addressShort": "1857 N Ridge Road",
    "addressCity": "Wichita, KS 67212"
  },
  "season": {
    "rule": "thanksgiving-to-jan1",
    "label": "Thanksgiving through New Year's Day",
    "note": "Times may change",
    "_help": "Fixed every year: Thanksgiving night (4th Thursday of November) through New Year's Day. Dates are computed in the browser for the current/next season (America/Chicago)."
  },
  "weatherNote": "The show runs rain, shine, or hopefully snow! It's a complex setup, so now and then some lights or sections may be off. We'll get them back on as soon as we can.",
  "stats": [
    {
      "n": 0,
      "u": "",
      "label": "Lights & pixels",
      "d": "PLACEHOLDER"
    },
    {
      "n": 0,
      "u": "",
      "label": "Channels",
      "d": "PLACEHOLDER"
    },
    {
      "n": 1,
      "u": "",
      "label": "Show computer",
      "d": "A BeagleBone Black running Falcon Player (FPP) with a Kulp controller"
    },
    {
      "n": 0,
      "u": "hrs",
      "label": "Hours of programming",
      "d": "PLACEHOLDER: every song sequenced 1/40th of a second at a time"
    }
  ],
  "statsPlaceholder": true,
  "behindTheScenes": {
    "steps": [
      {
        "title": "Design",
        "text": "Every arch, stick, and flood is mapped in software, so each pixel knows exactly where it sits on the property."
      },
      {
        "title": "Sequence",
        "text": "Each song is programmed by hand right here in my living room, 1/40th of a second at a time. A single four-minute song can take dozens of hours."
      },
      {
        "title": "Play",
        "text": "A BeagleBone Black with a Kulp controller runs the show every night, sending light data to the controllers and music to the transmitter."
      },
      {
        "title": "Broadcast",
        "text": "A small, low-power FM transmitter sends the music to your car radio on 89.5 FM, in sync with the lights."
      }
    ]
  },
  "faq": [
    {
      "q": "Is it free?",
      "a": "Yes. No tickets or reservations. Just come enjoy the show."
    },
    {
      "q": "Where exactly is it?",
      "a": "<b>1857 N Ridge Road, Wichita, KS 67212</b>. The main show faces <b>18th Street</b>, so that's the best side to watch from."
    },
    {
      "id": "faq-music",
      "q": "How do I hear the music?",
      "a": "Tune your car radio to <b>{fm} FM</b> as you approach. The signal is low-power and only reaches a short distance, so you'll pick it up best once you can see the lights. The main show faces <b>18th Street</b>."
    },
    {
      "q": "Where do I park?",
      "a": "There's no off-road parking and there are no curbs, so pull over as far as you can and park in the street. Please don't block driveways or mailboxes, and don't use the neighbors' driveways to turn around."
    },
    {
      "q": "Is this connected to a church?",
      "a": "No, it's just our family. We're followers of Jesus and the show reflects that, but everyone is welcome here, whatever you believe."
    },
    {
      "q": "Can I donate?",
      "a": "Thank you for asking! The show is our gift, so no donation is needed. If you'd like to give back, consider dropping a gift at a local food bank, toy drive, or your church's Christmas outreach."
    },
    {
      "q": "What if it's raining (or snowing)?",
      "a": "The show runs rain, shine, or hopefully snow. It's a complex setup, so some lights or sections may occasionally be off. We'll get them back on as soon as we can."
    },
    {
      "q": "Can I request a song?",
      "a": "Not live, but send us your ideas through the contact form. We put several different playlists into rotation through the week."
    }
  ],
  "etiquette": [
    "<b>Pull over as far as you can.</b> There's no off-road parking and no curbs, so park in the street, well to the side.",
    "<b>Headlights off</b> once you're parked, to enjoy the show (and help others see it too).",
    "<b>Don't turn around in driveways.</b> Please don't use the neighbors' driveways to turn around.",
    "<b>Tune to {fm} FM.</b> Keep windows and volume neighbor-friendly.",
    "<b>Drivers, eyes on the road.</b> Let passengers film. Pull over to watch."
  ],
  "gallery": [
    {
      "src": "img/snowy-trees.jpg",
      "cls": "big",
      "alt": "Snow-covered trees uplit in red, purple, green and blue by bucket lights",
      "caption": "Snow covered trees with our bucket lights."
    },
    {
      "src": "img/house-front.jpg",
      "cls": "wide",
      "alt": "Our house at night in the snow, with roofline pixel lights, glowing trees and green bulbs on the fence",
      "caption": "We love the snow!"
    },
    {
      "src": "img/red-glow.jpg",
      "alt": "A red glowing mega-bulb covered in about 4 inches of snow, with the lit fence and tree behind",
      "caption": "A red glowing mega-bulb with 4 inches of snow!"
    },
    {
      "src": "img/snowman.jpg",
      "cls": "pos-top",
      "alt": "Grandma's lit wire-frame snowman with a blue top hat, standing in the snow",
      "caption": "Grandma's Snowman"
    }
  ],
  "galleryPlaceholder": false,
  "show": {
    "showSongs": true,
    "showGallery": true,
    "showStats": false,
    "_help": "Songs: real list from Randy (Nov 4). Gallery: Randy's 4 real photos (metadata stripped). Stats: hidden until real numbers."
  },
  "playlists": {
    "_help": "Internal reference only, never shown on the site: Randy's Playlist A/B/C membership per song (songs[].rotations: 1=A, 2=B, 3=C). Playlists have no set nights.",
    "rotations": [
      "1",
      "2",
      "3"
    ]
  },
  "_galleryHelp": "Real photos only. Run tools/process_photos.py (strips all metadata) to make img/<name>.jpg (1600px) and <name>-sm.jpg (800px), add {src, alt, cls: big|wide|pos-top} here, keep show.showGallery true.",
  "songs": [
    {
      "title": "A Holly Jolly Christmas",
      "artist": "Lady A",
      "len": "2:02",
      "rotations": [
        "2"
      ]
    },
    {
      "title": "Christmas Eve Sarajevo",
      "artist": "Trans-Siberian Orchestra",
      "len": "3:25",
      "rotations": [
        "1"
      ]
    },
    {
      "title": "Christmas This Year",
      "artist": "Toby Mac",
      "len": "3:30",
      "rotations": [
        "2"
      ]
    },
    {
      "title": "Ding Dong Merrily on High",
      "artist": "Rend Collective",
      "len": "1:57",
      "rotations": [
        "1"
      ]
    },
    {
      "title": "Dueling Jingle Bells",
      "artist": "US Navy Band",
      "len": "2:02",
      "rotations": [
        "3"
      ]
    },
    {
      "title": "Frosty the Snowman",
      "artist": "Safety Orange",
      "len": "2:40",
      "rotations": [
        "1"
      ]
    },
    {
      "title": "God Rest",
      "artist": "Awaken Music",
      "len": "3:58",
      "rotations": [
        "1",
        "2",
        "3"
      ],
      "isNew": true
    },
    {
      "title": "Here Comes Santa Claus",
      "artist": "Gene Autry",
      "len": "2:30",
      "rotations": [
        "3"
      ]
    },
    {
      "title": "Here We Come A-Wassailing",
      "artist": "Under the Streetlamp",
      "len": "2:26",
      "rotations": [
        "2"
      ]
    },
    {
      "title": "Joy to the World",
      "artist": "Mannheim Steamroller",
      "len": "3:34",
      "rotations": [
        "2"
      ]
    },
    {
      "title": "Joy to the World (Dubstep)",
      "artist": "Red Letter Hymnal",
      "len": "3:10",
      "rotations": [
        "3"
      ]
    },
    {
      "title": "Light of Christmas",
      "artist": "Owl City, Toby Mac",
      "len": "3:44",
      "rotations": [
        "1",
        "2",
        "3"
      ]
    },
    {
      "title": "Music Box Dancer",
      "artist": "DJ Schwede",
      "len": "3:13",
      "rotations": [
        "2"
      ]
    },
    {
      "title": "Oh Come All Ye Faithful",
      "artist": "Tenth Avenue North",
      "len": "2:47",
      "rotations": [
        "1"
      ]
    },
    {
      "title": "Wizards in Winter",
      "artist": "Trans-Siberian Orchestra",
      "len": "3:05",
      "rotations": [
        "3"
      ]
    }
  ],
  "hours": {
    "startAfterSunsetMin": 30,
    "end": "23:00",
    "lat": 37.718,
    "lon": -97.425,
    "tz": "America/Chicago",
    "_help": "Nightly from dusk (about 30 minutes after sunset) until 11:00 PM. Tonight's dusk time is computed in the browser from sunset at lat/lon (NOAA formula, no API)."
  }
}