{
  "_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 on Ridge Road",
    "fm": "89.5",
    "address": "1857 N Ridge Road",
    "addressDetail": "Main show faces 18th Street",
    "mapsQuery": "1857 N Ridge Road",
    "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": "PLACEHOLDER: add city + state to mapsQuery (e.g. '1857 N Ridge Road, Town, ST') so map apps find the right Ridge Road. Apple devices open Apple Maps; Android opens the default maps app via geo:; others open Apple Maps on the web. No Google links.",
    "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."
  },
  "season": {
    "open": "2026-11-26",
    "close": "2027-01-01",
    "label": "Thanksgiving night through New Year's Day",
    "placeholder": true,
    "note": "Times may change"
  },
  "schedule": [
    {
      "label": "Sunday – Thursday",
      "days": [
        0,
        1,
        2,
        3,
        4
      ],
      "start": "17:30",
      "end": "22:00"
    },
    {
      "label": "Friday & Saturday",
      "days": [
        5,
        6
      ],
      "start": "17:30",
      "end": "23:00",
      "note": "Extended weekend hours"
    },
    {
      "label": "Christmas Eve & Christmas Day",
      "dates": [
        "12-24",
        "12-25"
      ],
      "start": "17:00",
      "end": "24:00",
      "note": "Running till midnight"
    },
    {
      "label": "New Year's Eve",
      "dates": [
        "12-31"
      ],
      "start": "17:30",
      "end": "24:30",
      "note": "Last show of the season"
    }
  ],
  "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, always. No tickets and no reservations. Just come enjoy the show."
    },
    {
      "q": "Where exactly is it?",
      "a": "<b>1857 N Ridge Road</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": "Are pets and kids welcome?",
      "a": "Of course! Watching from the car is safest on a busy road. If you're out walking, please hold little hands, keep pets leashed, and stay well back from the road and the displays (they have cables and power)."
    },
    {
      "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": [],
  "galleryPlaceholder": false,
  "show": {
    "showSongs": true,
    "showGallery": false,
    "showStats": false,
    "_help": "Songs: real list from Randy (Nov 4). Gallery: hidden until real photos (no stock). 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": "Add real photos: put a 1200px JPG in /img plus a 640px '-640.jpg' copy, add {\"src\":\"img/name.jpg\",\"alt\":\"…\",\"cls\":\"big|wide\"} here, then set show.showGallery to 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"
      ]
    }
  ]
}