{
  "schemaVersion": 2,
  "metroId": "philadelphia",
  "note": "Editor-curated starter plans + auto-generated per-city plans. Hand-written plans (no generated:true) are kept across runs; generated entries are rebuilt by scripts/generate-featured-plans.mjs each ingest. Each entry carries lat/lon + city so the frontend can show plans near the user's map view.",
  "plans": [
    {
      "id": "gen-day-ambler",
      "name": "Family day in Ambler",
      "summary": "Family-friendly spots in Ambler - Prophecy Creek Park, Ambler Theater.",
      "accent": "park",
      "stopIds": [
        "osm-way-1423071311",
        "osm-node-1581048825"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Ambler",
      "lat": 40.1504,
      "lon": -75.23506,
      "generated": true
    },
    {
      "id": "gen-day-ardmore",
      "name": "Family day in Ardmore",
      "summary": "Three family-friendly stops in Ardmore - Tsaōcaa Fresh Tea, Tubby Robot Ice Cream Factory, Valerio Coffee Roasters.",
      "accent": "park",
      "stopIds": [
        "osm-node-11072156869",
        "osm-node-11073875045",
        "osm-node-11073875047"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Ardmore",
      "lat": 40.02599,
      "lon": -75.22466,
      "generated": true
    },
    {
      "id": "gen-day-bala-cynwyd",
      "name": "Family day in Bala Cynwyd",
      "summary": "Three family-friendly stops in Bala Cynwyd - Bala Avenue Park, Lewis J. Smith Park, McMoran Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-670643000",
        "osm-way-791962212",
        "osm-way-1486893672"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Bala Cynwyd",
      "lat": 40.01615,
      "lon": -75.23667,
      "generated": true
    },
    {
      "id": "gen-day-bensalem",
      "name": "Family day in Bensalem",
      "summary": "Three family-friendly stops in Bensalem - Willingboro Lakes Park, Linconia Park, Sunflower Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-869082533",
        "osm-way-971400090",
        "osm-way-671743549"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Bensalem",
      "lat": 40.10562,
      "lon": -74.94705,
      "generated": true
    },
    {
      "id": "gen-day-boothwyn",
      "name": "Family day in Boothwyn",
      "summary": "Family-friendly spots in Boothwyn - Anytime Fitness, Bowlero.",
      "accent": "park",
      "stopIds": [
        "osm-node-13015520058",
        "osm-way-708165879"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Boothwyn",
      "lat": 39.85103,
      "lon": -75.44845,
      "generated": true
    },
    {
      "id": "gen-day-camden",
      "name": "Family day in Camden",
      "summary": "Three family-friendly stops in Camden - Market Street Pizzeria, Scenic View - Mantua Creek, Camden Children's Garden.",
      "accent": "park",
      "stopIds": [
        "osm-node-3669256637",
        "osm-node-7435962667",
        "osm-way-1031861147"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Camden",
      "lat": 39.88892,
      "lon": -75.13203,
      "generated": true
    },
    {
      "id": "gen-day-cherry-hill",
      "name": "Family day in Cherry Hill",
      "summary": "Three family-friendly stops in Cherry Hill - Veteran's Park of Berlin, Veterans Avenue Memorial Park, Mount Laurel State Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-1418944992",
        "osm-way-1418950147",
        "osm-way-34382957"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Cherry Hill",
      "lat": 39.8533,
      "lon": -74.92482,
      "generated": true
    },
    {
      "id": "gen-day-collingswood",
      "name": "Family day in Collingswood",
      "summary": "Family-friendly spots in Collingswood - Collingswood Community Garden, Barnes & Noble.",
      "accent": "park",
      "stopIds": [
        "osm-way-1433111961",
        "osm-node-5360112773"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Collingswood",
      "lat": 39.85194,
      "lon": -75.05281,
      "generated": true
    },
    {
      "id": "gen-day-conshohocken",
      "name": "Family day in Conshohocken",
      "summary": "Three family-friendly stops in Conshohocken - Regal Plymouth Meeting 10, Club Pilates, Orangetheory Fitness.",
      "accent": "festival",
      "stopIds": [
        "osm-way-225276321",
        "osm-way-222036130",
        "osm-way-891357101"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Conshohocken",
      "lat": 40.09524,
      "lon": -75.29165,
      "generated": true
    },
    {
      "id": "gen-day-deptford",
      "name": "Family day in Deptford",
      "summary": "Three family-friendly stops in Deptford - AMC, Round1, The Edge Fitness Club.",
      "accent": "festival",
      "stopIds": [
        "osm-way-28655262",
        "osm-node-11575262980",
        "osm-node-13356958006"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Deptford",
      "lat": 39.83184,
      "lon": -75.10324,
      "generated": true
    },
    {
      "id": "gen-day-fort-washington",
      "name": "Family day in Fort Washington",
      "summary": "Family-friendly spots in Fort Washington - Luther Klosterman Park, Life Time.",
      "accent": "park",
      "stopIds": [
        "osm-way-1211519459",
        "osm-way-1211505655"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Fort Washington",
      "lat": 40.13843,
      "lon": -75.20041,
      "generated": true
    },
    {
      "id": "gen-day-glassboro",
      "name": "Family day in Glassboro",
      "summary": "Three family-friendly stops in Glassboro - New Street Dog Park, New Street Park Dog Park, Heritage Glass Museum.",
      "accent": "park",
      "stopIds": [
        "osm-way-761514043",
        "osm-way-761514044",
        "osm-way-238220936"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Glassboro",
      "lat": 39.70386,
      "lon": -75.10266,
      "generated": true
    },
    {
      "id": "gen-day-haverford",
      "name": "Family day in Haverford",
      "summary": "Family-friendly spots in Haverford - Sharpe Park Bird Sanctuary, Community Recreation & Environmental Center.",
      "accent": "park",
      "stopIds": [
        "osm-way-791961115",
        "osm-way-551428739"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Haverford",
      "lat": 40.00418,
      "lon": -75.32211,
      "generated": true
    },
    {
      "id": "gen-day-huntingdon-valley",
      "name": "Family day in Huntingdon Valley",
      "summary": "Three family-friendly stops in Huntingdon Valley - Masons Mill Park, Penn Cinema Huntingdon Valley, Crunch Fitness.",
      "accent": "park",
      "stopIds": [
        "osm-way-225865424",
        "osm-way-740454519",
        "osm-way-131285364"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Huntingdon Valley",
      "lat": 40.13815,
      "lon": -75.08288,
      "generated": true
    },
    {
      "id": "gen-day-jenkintown",
      "name": "Family day in Jenkintown",
      "summary": "Three family-friendly stops in Jenkintown - Abington Art Center, Alverthorpe Park, Ukrainian Educational and Cultural Center.",
      "accent": "park",
      "stopIds": [
        "osm-way-621862432",
        "osm-way-45578382",
        "osm-way-141910221"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Jenkintown",
      "lat": 40.0897,
      "lon": -75.10839,
      "generated": true
    },
    {
      "id": "gen-day-king-of-prussia",
      "name": "Family day in King of Prussia",
      "summary": "Three family-friendly stops in King of Prussia - Upper Merion Township Park, Norview Farm Park, Upper Merion Community Center/Volpi Commons.",
      "accent": "park",
      "stopIds": [
        "osm-way-1359603226",
        "osm-way-1359615773",
        "osm-way-1359625423"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "King of Prussia",
      "lat": 40.10376,
      "lon": -75.37555,
      "generated": true
    },
    {
      "id": "gen-day-malvern",
      "name": "Family day in Malvern",
      "summary": "Family-friendly spots in Malvern - People's Light & Theatre, Goldfish Swim School.",
      "accent": "festival",
      "stopIds": [
        "osm-node-2277737164",
        "osm-node-9908096616"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Malvern",
      "lat": 40.04248,
      "lon": -75.5406,
      "generated": true
    },
    {
      "id": "gen-day-marlton",
      "name": "Family day in Marlton",
      "summary": "Family-friendly spots in Marlton - AMC Marlton 8, LA Fitness.",
      "accent": "festival",
      "stopIds": [
        "osm-way-434311075",
        "osm-way-493167506"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Marlton",
      "lat": 39.90802,
      "lon": -74.93887,
      "generated": true
    },
    {
      "id": "gen-day-media",
      "name": "Family day in Media",
      "summary": "Three family-friendly stops in Media - Martha Burton Community Park, Rushton Woods Preserve, NPE Playground.",
      "accent": "park",
      "stopIds": [
        "osm-way-1182102879",
        "osm-way-1509795710",
        "osm-way-1143707357"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Media",
      "lat": 39.92492,
      "lon": -75.41392,
      "generated": true
    },
    {
      "id": "gen-day-moorestown",
      "name": "Family day in Moorestown",
      "summary": "Family-friendly spots in Moorestown - Retro Fitness, Crunch Fitness.",
      "accent": "park",
      "stopIds": [
        "osm-node-5425340081",
        "osm-node-13274863407"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Moorestown",
      "lat": 39.94944,
      "lon": -74.9719,
      "generated": true
    },
    {
      "id": "gen-day-narberth",
      "name": "Family day in Narberth",
      "summary": "Family-friendly spots in Narberth - Reel Cinemas, Narberth Bookshop.",
      "accent": "festival",
      "stopIds": [
        "osm-node-445838150",
        "osm-node-3763949888"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Narberth",
      "lat": 40.00603,
      "lon": -75.26062,
      "generated": true
    },
    {
      "id": "gen-day-norristown",
      "name": "Family day in Norristown",
      "summary": "Three family-friendly stops in Norristown - McCann Park, Bartash Park, Engro Field.",
      "accent": "park",
      "stopIds": [
        "osm-way-521637706",
        "osm-way-516624607",
        "osm-way-789972783"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Norristown",
      "lat": 40.11702,
      "lon": -75.32977,
      "generated": true
    },
    {
      "id": "gen-day-north-wales",
      "name": "Family day in North Wales",
      "summary": "Three family-friendly stops in North Wales - Friendship Park, AMC 309 Cinema 9, LA Fitness.",
      "accent": "park",
      "stopIds": [
        "osm-way-974517240",
        "osm-way-368071343",
        "osm-way-373438107"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "North Wales",
      "lat": 40.21913,
      "lon": -75.22845,
      "generated": true
    },
    {
      "id": "gen-day-oaks",
      "name": "Family day in Oaks",
      "summary": "Three family-friendly stops in Oaks - American Treasure Tour Museum, Philadelphia Rock Gym, Retro Fitness.",
      "accent": "festival",
      "stopIds": [
        "osm-way-43245336",
        "osm-node-3946101509",
        "osm-node-3946101510"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Oaks",
      "lat": 40.12573,
      "lon": -75.45401,
      "generated": true
    },
    {
      "id": "gen-day-philadelphia",
      "name": "Family day in Philadelphia",
      "summary": "Three family-friendly stops in Philadelphia - Gather Food Hall, The Rail Park, Corinthian Gardens.",
      "accent": "park",
      "stopIds": [
        "osm-node-13334209326",
        "osm-way-583267164",
        "osm-way-705643189"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Philadelphia",
      "lat": 39.96103,
      "lon": -75.17142,
      "generated": true
    },
    {
      "id": "gen-events-philadelphia",
      "name": "Philadelphia family events",
      "summary": "Two upcoming family events in Philadelphia plus a nearby stop - Kids STEAM Lab | Family Nature Program.",
      "accent": "festival",
      "stopIds": [
        "osm-node-13334209326"
      ],
      "eventIds": [
        "philadelphia-kids-steam-2026-05-13",
        "philadelphia-family-nature-2026-05-16"
      ],
      "audiences": [
        "all"
      ],
      "city": "Philadelphia",
      "lat": 39.95346,
      "lon": -75.17151,
      "generated": true
    },
    {
      "id": "gen-day-phoenixville",
      "name": "Family day in Phoenixville",
      "summary": "Three family-friendly stops in Phoenixville - The Schuylkill River Heritage Center, Colonial Theatre, Anytime Fitness.",
      "accent": "festival",
      "stopIds": [
        "osm-way-182797470",
        "osm-way-494846699",
        "osm-node-4848554648"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Phoenixville",
      "lat": 40.13472,
      "lon": -75.49561,
      "generated": true
    },
    {
      "id": "gen-day-plymouth-meeting",
      "name": "Family day in Plymouth Meeting",
      "summary": "Three family-friendly stops in Plymouth Meeting - AMC Plymouth Meeting Mall 12, The Edge Fitness Clubs, Plymouth Meeting Mall.",
      "accent": "festival",
      "stopIds": [
        "osm-way-58745057",
        "osm-node-12827411512",
        "osm-way-58745026"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Plymouth Meeting",
      "lat": 40.11508,
      "lon": -75.28142,
      "generated": true
    },
    {
      "id": "gen-day-ridley-township",
      "name": "Family day in Ridley Township",
      "summary": "Family-friendly spots in Ridley Township - S. SWARTHMORE AVE PARK, Planet Fitness.",
      "accent": "park",
      "stopIds": [
        "osm-way-1290075370",
        "osm-way-989796586"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Ridley Township",
      "lat": 39.8808,
      "lon": -75.323,
      "generated": true
    },
    {
      "id": "gen-day-rose-valley",
      "name": "Family day in Rose Valley",
      "summary": "Family-friendly spots in Rose Valley - Hedgerow Theatre, The Rose Valley Museum at Thunderbird Lodge.",
      "accent": "festival",
      "stopIds": [
        "osm-node-5521429397",
        "osm-node-13085574695"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Rose Valley",
      "lat": 39.89814,
      "lon": -75.38732,
      "generated": true
    },
    {
      "id": "gen-day-springfield",
      "name": "Family day in Springfield",
      "summary": "Three family-friendly stops in Springfield - Smedley Park, AMC Marple 10, LA Fitness.",
      "accent": "park",
      "stopIds": [
        "osm-way-48429371",
        "osm-way-48531532",
        "osm-way-575357110"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Springfield",
      "lat": 39.92298,
      "lon": -75.35049,
      "generated": true
    },
    {
      "id": "gen-day-upper-darby",
      "name": "Family day in Upper Darby",
      "summary": "Three family-friendly stops in Upper Darby - Out West Philly, Sycamore Park, Grange Field Park.",
      "accent": "park",
      "stopIds": [
        "osm-node-13074363001",
        "osm-way-1083620301",
        "osm-way-1182560869"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Upper Darby",
      "lat": 39.95862,
      "lon": -75.26013,
      "generated": true
    },
    {
      "id": "gen-day-villanova",
      "name": "Family day in Villanova",
      "summary": "Family-friendly spots in Villanova - Stoneleigh Natural Garden, Appleford Estate.",
      "accent": "park",
      "stopIds": [
        "osm-way-596070869",
        "osm-way-791958594"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Villanova",
      "lat": 40.04794,
      "lon": -75.33165,
      "generated": true
    },
    {
      "id": "gen-day-voorhees",
      "name": "Family day in Voorhees",
      "summary": "Family-friendly spots in Voorhees - AMC Voorhees 16, Giant Fitness.",
      "accent": "festival",
      "stopIds": [
        "osm-way-440284536",
        "osm-way-440118591"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Voorhees",
      "lat": 39.84659,
      "lon": -74.99174,
      "generated": true
    },
    {
      "id": "gen-day-warminster",
      "name": "Family day in Warminster",
      "summary": "Family-friendly spots in Warminster - Craven Hall, Thunderbird Lanes.",
      "accent": "festival",
      "stopIds": [
        "osm-way-259774087",
        "osm-way-436743922"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Warminster",
      "lat": 40.20587,
      "lon": -75.09693,
      "generated": true
    },
    {
      "id": "gen-day-warrington",
      "name": "Family day in Warrington",
      "summary": "Family-friendly spots in Warrington - Fit4Mom, The MAX Challenge.",
      "accent": "park",
      "stopIds": [
        "osm-node-5805096889",
        "osm-node-5755313363"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Warrington",
      "lat": 40.23176,
      "lon": -75.13574,
      "generated": true
    },
    {
      "id": "gen-day-wayne",
      "name": "Family day in Wayne",
      "summary": "Three family-friendly stops in Wayne - McKaig Nature Education Center, LAA Art Collective, Radnor Historical Society.",
      "accent": "park",
      "stopIds": [
        "osm-way-23746271",
        "osm-node-989578516",
        "osm-node-5404175804"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Wayne",
      "lat": 40.05435,
      "lon": -75.38625,
      "generated": true
    },
    {
      "id": "gen-day-west-berlin",
      "name": "Family day in West Berlin",
      "summary": "Family-friendly spots in West Berlin - Diggerland USA, Retro Fitness.",
      "accent": "festival",
      "stopIds": [
        "osm-way-1124313572",
        "osm-way-572500844"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "West Berlin",
      "lat": 39.80854,
      "lon": -74.93028,
      "generated": true
    },
    {
      "id": "gen-day-west-chester",
      "name": "Family day in West Chester",
      "summary": "Three family-friendly stops in West Chester - Ashbridge Preserve, West Chester Griswolds, Anytime Fitness.",
      "accent": "park",
      "stopIds": [
        "osm-way-1509806198",
        "osm-node-11429554059",
        "osm-node-6431729122"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "West Chester",
      "lat": 39.97559,
      "lon": -75.52021,
      "generated": true
    },
    {
      "id": "gen-day-wynnewood",
      "name": "Family day in Wynnewood",
      "summary": "Family-friendly spots in Wynnewood - Sabrina's Cafe, Center for Creative Works.",
      "accent": "festival",
      "stopIds": [
        "osm-node-10884033879",
        "osm-node-11708172258"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Wynnewood",
      "lat": 40.00273,
      "lon": -75.2779,
      "generated": true
    }
  ]
}
