{
  "schemaVersion": 2,
  "metroId": "dallas-fort-worth",
  "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-addison",
      "name": "Family day in Addison",
      "summary": "Three family-friendly stops in Addison - White Rhino Coffee, Dolce Paradiso, Java & Hopps.",
      "accent": "park",
      "stopIds": [
        "osm-node-12574617585",
        "osm-node-11771967843",
        "osm-way-169463454"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Addison",
      "lat": 32.95908,
      "lon": -96.82481,
      "generated": true
    },
    {
      "id": "gen-day-allen",
      "name": "Family day in Allen",
      "summary": "Family-friendly spots in Allen - Cinemark Allen 16, Life Time.",
      "accent": "festival",
      "stopIds": [
        "osm-way-372374329",
        "osm-way-321719443"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Allen",
      "lat": 33.14277,
      "lon": -96.67647,
      "generated": true
    },
    {
      "id": "gen-day-arlington",
      "name": "Family day in Arlington",
      "summary": "Three family-friendly stops in Arlington - Heritage Village Plaza, Eden Road Park, Park at Georgetown in the Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-591287826",
        "osm-way-1378129372",
        "osm-way-953861638"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Arlington",
      "lat": 32.70531,
      "lon": -97.15997,
      "generated": true
    },
    {
      "id": "gen-day-bedford",
      "name": "Family day in Bedford",
      "summary": "Three family-friendly stops in Bedford - Central Park, Movie Tavern Central Park, Fitness Connection.",
      "accent": "park",
      "stopIds": [
        "osm-way-663959065",
        "osm-node-6887255135",
        "osm-way-130321958"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Bedford",
      "lat": 32.83905,
      "lon": -97.12684,
      "generated": true
    },
    {
      "id": "gen-day-burleson",
      "name": "Family day in Burleson",
      "summary": "Three family-friendly stops in Burleson - Cindy Park, Heberle Park, AMC Burleson 14.",
      "accent": "park",
      "stopIds": [
        "osm-way-749648545",
        "osm-way-722026489",
        "osm-way-271669299"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Burleson",
      "lat": 32.56267,
      "lon": -97.32978,
      "generated": true
    },
    {
      "id": "gen-day-carrollton",
      "name": "Family day in Carrollton",
      "summary": "Three family-friendly stops in Carrollton - Elm Fork Nature Preserve, Clifford E. \"Bill\" Hall Park, R J McInnish Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-155061328",
        "osm-way-321513664",
        "osm-way-168484701"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Carrollton",
      "lat": 32.96367,
      "lon": -96.92267,
      "generated": true
    },
    {
      "id": "gen-day-cedar-hill",
      "name": "Family day in Cedar Hill",
      "summary": "Three family-friendly stops in Cedar Hill - Cedar Hill State Park, Community Center Park, Cedar Hill Recreation Center.",
      "accent": "park",
      "stopIds": [
        "osm-way-28662624",
        "osm-way-1272939149",
        "osm-way-507109681"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Cedar Hill",
      "lat": 32.59126,
      "lon": -96.97145,
      "generated": true
    },
    {
      "id": "gen-day-colleyville",
      "name": "Family day in Colleyville",
      "summary": "Family-friendly spots in Colleyville - McPherson Park, Life Time.",
      "accent": "park",
      "stopIds": [
        "osm-way-887911215",
        "osm-way-317396579"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Colleyville",
      "lat": 32.89666,
      "lon": -97.16028,
      "generated": true
    },
    {
      "id": "gen-day-corinth",
      "name": "Family day in Corinth",
      "summary": "Three family-friendly stops in Corinth - Fairview Park, Corinth Farms Park, Kensington Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-726974154",
        "osm-way-726974141",
        "osm-way-959905298"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Corinth",
      "lat": 33.13562,
      "lon": -97.05902,
      "generated": true
    },
    {
      "id": "gen-day-dallas",
      "name": "Family day in Dallas",
      "summary": "Three family-friendly stops in Dallas - The Exchange Food Hall, Pacific Plaza, Klyde Warren Park.",
      "accent": "park",
      "stopIds": [
        "osm-node-12338775968",
        "osm-way-179237495",
        "osm-way-419524736"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Dallas",
      "lat": 32.78414,
      "lon": -96.79918,
      "generated": true
    },
    {
      "id": "gen-events-dallas",
      "name": "Dallas family events",
      "summary": "Two upcoming family events in Dallas plus a nearby stop - Family Storytime | Kids STEAM Lab.",
      "accent": "festival",
      "stopIds": [
        "osm-node-12338775968"
      ],
      "eventIds": [
        "dallas-fort-worth-family-storytime-2026-05-12",
        "dallas-fort-worth-kids-steam-2026-05-13"
      ],
      "audiences": [
        "all"
      ],
      "city": "Dallas",
      "lat": 32.7776,
      "lon": -96.79798,
      "generated": true
    },
    {
      "id": "gen-day-denton",
      "name": "Family day in Denton",
      "summary": "Three family-friendly stops in Denton - Windsor Ridge Park, Cross Timbers Montecito Pond, Lawson Park.",
      "accent": "park",
      "stopIds": [
        "osm-relation-12916167",
        "osm-way-1017136929",
        "osm-way-41385429"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Denton",
      "lat": 33.10747,
      "lon": -97.08249,
      "generated": true
    },
    {
      "id": "gen-day-euless",
      "name": "Family day in Euless",
      "summary": "Family-friendly spots in Euless - Cinépolis Euless, Planet Fitness.",
      "accent": "festival",
      "stopIds": [
        "osm-way-545020346",
        "osm-node-12250839101"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Euless",
      "lat": 32.864,
      "lon": -97.09348,
      "generated": true
    },
    {
      "id": "gen-day-farmers-branch",
      "name": "Family day in Farmers Branch",
      "summary": "Family-friendly spots in Farmers Branch - Montgomery Park, Farmers Branch Historical Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-1105925278",
        "osm-way-448568192"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Farmers Branch",
      "lat": 32.92679,
      "lon": -96.88717,
      "generated": true
    },
    {
      "id": "gen-day-flower-mound",
      "name": "Family day in Flower Mound",
      "summary": "Three family-friendly stops in Flower Mound - Heritage Park of Flower Mound, Stone Creek Park, Westchester Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-465991413",
        "osm-way-41386476",
        "osm-way-41344690"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Flower Mound",
      "lat": 33.02205,
      "lon": -97.05585,
      "generated": true
    },
    {
      "id": "gen-day-fort-worth",
      "name": "Family day in Fort Worth",
      "summary": "Three family-friendly stops in Fort Worth - C.P. Hadley Park, Oakmont Park, Parkwood Hills Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-496531315",
        "osm-way-31905766",
        "osm-way-831481550"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Fort Worth",
      "lat": 32.72531,
      "lon": -97.3657,
      "generated": true
    },
    {
      "id": "gen-day-frisco",
      "name": "Family day in Frisco",
      "summary": "Three family-friendly stops in Frisco - Shepherd's Glen Park, Westlake Park, Oakwood Springs Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-470753870",
        "osm-way-636701954",
        "osm-way-1116110728"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Frisco",
      "lat": 33.08726,
      "lon": -96.90499,
      "generated": true
    },
    {
      "id": "gen-day-garland",
      "name": "Family day in Garland",
      "summary": "Three family-friendly stops in Garland - Halff Park, Spring Creek Forest Preserve Park, Lake Highlands Cafe.",
      "accent": "park",
      "stopIds": [
        "osm-way-589100725",
        "osm-way-280159375",
        "osm-node-11829371650"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Garland",
      "lat": 32.9295,
      "lon": -96.6799,
      "generated": true
    },
    {
      "id": "gen-day-grand-prairie",
      "name": "Family day in Grand Prairie",
      "summary": "Three family-friendly stops in Grand Prairie - Brass Bean Café, Talala Overlook, Chris Paris Park.",
      "accent": "park",
      "stopIds": [
        "osm-node-3195301007",
        "osm-node-353197151",
        "osm-way-468620011"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Grand Prairie",
      "lat": 32.67765,
      "lon": -96.96206,
      "generated": true
    },
    {
      "id": "gen-day-grapevine",
      "name": "Family day in Grapevine",
      "summary": "Three family-friendly stops in Grapevine - Katie's Woods Park, Lake View Park, Founder's Plaza.",
      "accent": "park",
      "stopIds": [
        "osm-way-612784485",
        "osm-way-1119984819",
        "osm-way-544651510"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Grapevine",
      "lat": 32.9516,
      "lon": -97.07769,
      "generated": true
    },
    {
      "id": "gen-day-haltom-city",
      "name": "Family day in Haltom City",
      "summary": "Three family-friendly stops in Haltom City - Birdville Trails Park, Revere Park, Whites Branch Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-523015703",
        "osm-way-523026175",
        "osm-way-522991686"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Haltom City",
      "lat": 32.82494,
      "lon": -97.26522,
      "generated": true
    },
    {
      "id": "gen-day-hickory-creek",
      "name": "Family day in Hickory Creek",
      "summary": "Three family-friendly stops in Hickory Creek - Oakland Park, Tanglewood Community Park, Arrowhead Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-636701953",
        "osm-way-685849605",
        "osm-way-364518186"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Hickory Creek",
      "lat": 33.10434,
      "lon": -97.01549,
      "generated": true
    },
    {
      "id": "gen-day-highland-village",
      "name": "Family day in Highland Village",
      "summary": "Three family-friendly stops in Highland Village - Lower Sellmeyer Park, Victoria Park, Copperas Branch Park.",
      "accent": "park",
      "stopIds": [
        "osm-relation-12909359",
        "osm-relation-12909360",
        "osm-relation-17556845"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Highland Village",
      "lat": 33.08198,
      "lon": -97.04165,
      "generated": true
    },
    {
      "id": "gen-day-hurst",
      "name": "Family day in Hurst",
      "summary": "Three family-friendly stops in Hurst - Rickel Park, Bellaire Park, Vivagene Copeland Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-471696049",
        "osm-way-471696964",
        "osm-way-471699253"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Hurst",
      "lat": 32.81695,
      "lon": -97.15798,
      "generated": true
    },
    {
      "id": "gen-day-irving",
      "name": "Family day in Irving",
      "summary": "Three family-friendly stops in Irving - North Park, Italian Cafe, The Elm Fork of the Trinity River.",
      "accent": "park",
      "stopIds": [
        "osm-way-1119702979",
        "osm-node-4017379847",
        "osm-node-9212638189"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Irving",
      "lat": 32.91783,
      "lon": -97.00699,
      "generated": true
    },
    {
      "id": "gen-day-lancaster",
      "name": "Family day in Lancaster",
      "summary": "Three family-friendly stops in Lancaster - Kids Square Park, Snake Encounters, Cinemark Movies 14.",
      "accent": "park",
      "stopIds": [
        "osm-way-1442895984",
        "osm-node-10881113869",
        "osm-way-664283965"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Lancaster",
      "lat": 32.59948,
      "lon": -96.81183,
      "generated": true
    },
    {
      "id": "gen-day-lewisville",
      "name": "Family day in Lewisville",
      "summary": "Three family-friendly stops in Lewisville - Austin Kent Ellis Park, Iris Park, Palisades Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-469776479",
        "osm-way-469776480",
        "osm-way-1490023195"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Lewisville",
      "lat": 33.0351,
      "lon": -97.02468,
      "generated": true
    },
    {
      "id": "gen-day-mansfield",
      "name": "Family day in Mansfield",
      "summary": "Three family-friendly stops in Mansfield - Chandler Park, Harold M. Bell Park, Cinemark 12 Mansfield.",
      "accent": "park",
      "stopIds": [
        "osm-way-471559782",
        "osm-way-880451490",
        "osm-way-713248938"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Mansfield",
      "lat": 32.57744,
      "lon": -97.12173,
      "generated": true
    },
    {
      "id": "gen-day-mckinney",
      "name": "Family day in McKinney",
      "summary": "Three family-friendly stops in McKinney - Glendover Park, Veterans Memorial Park, The Crape Myrtle Trails of McKinney.",
      "accent": "park",
      "stopIds": [
        "osm-way-372374992",
        "osm-way-703485897",
        "osm-way-518415642"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "McKinney",
      "lat": 33.13442,
      "lon": -96.70824,
      "generated": true
    },
    {
      "id": "gen-day-mesquite",
      "name": "Family day in Mesquite",
      "summary": "Three family-friendly stops in Mesquite - Samuell Farm, Atheneos Greek Village Cafe, Razzoo's Cajun Cafe.",
      "accent": "park",
      "stopIds": [
        "osm-way-473663230",
        "osm-node-11273197520",
        "osm-way-640651445"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Mesquite",
      "lat": 32.79413,
      "lon": -96.61516,
      "generated": true
    },
    {
      "id": "gen-day-midlothian",
      "name": "Family day in Midlothian",
      "summary": "Family-friendly spots in Midlothian - Mockingbird Nature Park, Kimmel Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-440817018",
        "osm-way-478509558"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Midlothian",
      "lat": 32.49074,
      "lon": -96.9824,
      "generated": true
    },
    {
      "id": "gen-day-north-richland-hills",
      "name": "Family day in North Richland Hills",
      "summary": "Three family-friendly stops in North Richland Hills - Dolce Plaza, Stormy Plaza, Cross Timbers Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-1454337784",
        "osm-way-468521158",
        "osm-way-344864727"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "North Richland Hills",
      "lat": 32.86479,
      "lon": -97.20372,
      "generated": true
    },
    {
      "id": "gen-day-plano",
      "name": "Family day in Plano",
      "summary": "Three family-friendly stops in Plano - Arrowhead Park, Parkwood Green Park, Caddo Park.",
      "accent": "park",
      "stopIds": [
        "osm-way-670730338",
        "osm-way-429910615",
        "osm-way-288927124"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Plano",
      "lat": 33.03414,
      "lon": -96.78574,
      "generated": true
    },
    {
      "id": "gen-day-richardson",
      "name": "Family day in Richardson",
      "summary": "Three family-friendly stops in Richardson - Shibam Coffee, Civil Pour, Jasmine Cafe & Hookah Lounge.",
      "accent": "park",
      "stopIds": [
        "osm-node-12078992335",
        "osm-node-13011837103",
        "osm-node-5942532311"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Richardson",
      "lat": 32.94957,
      "lon": -96.74467,
      "generated": true
    },
    {
      "id": "gen-day-southlake",
      "name": "Family day in Southlake",
      "summary": "Three family-friendly stops in Southlake - Southlake Strength & Fitness, Utopia Food & Fitness, Alive Studios.",
      "accent": "park",
      "stopIds": [
        "osm-node-13169234955",
        "osm-node-6170207604",
        "osm-node-12877601585"
      ],
      "eventIds": [],
      "audiences": [
        "all"
      ],
      "city": "Southlake",
      "lat": 32.93875,
      "lon": -97.11158,
      "generated": true
    }
  ]
}
