{
  "_meta": {
    "project": "Monterrey 2026 — Mobility Map",
    "_copyright": "© 2025 moleai.io — All rights reserved. Unauthorized use or reproduction prohibited.",
    "_author": "moleai.io",
    "_fingerprint": "MMX-2026-MOLEAI-v9",
    "svgViewBox": "0 0 1266 1280",
    "projection": {
      "v1_boundary_frame": {
        "x": "(lng + 100.509860) / 0.439121 * 1266",
        "y": "(25.871620 - lat) / 0.395757 * 1280"
      },
      "v2_stadium_anchor": {
        "x": "(lng + 100.508609) / 0.439121 * 1266",
        "y": "(25.874979 - lat) / 0.395757 * 1280",
        "anchor_gps": "25.66896920407271, -100.24440754924593",
        "anchor_canvas": "761.7, 666.3"
      },
      "v3_path17315_anchor": {
        "x": "(lng + 100.515025) / 0.439121 * 1266",
        "y": "(25.872475 - lat) / 0.395757 * 1280",
        "anchor_gps": "25.66896920407271, -100.24440754924593",
        "anchor_canvas": "780.2, 658.2",
        "anchor_path": "path17315-0 (base-map.svg)"
      },
      "v4_adjusted": {
        "x": "(lng + 100.514679) / 0.439121 * 1266",
        "y": "(25.872166 - lat) / 0.395757 * 1280",
        "anchor_gps": "25.66896920407271, -100.24440754924593",
        "anchor_canvas": "779.2, 657.2",
        "note": "v3 anchor shifted -1px left, -1px up"
      },
      "v5_adjusted": {
        "x": "(lng + 100.514679) / 0.439121 * 1266",
        "y": "(25.871857 - lat) / 0.395757 * 1280",
        "anchor_gps": "25.66896920407271, -100.24440754924593",
        "anchor_canvas": "779.2, 656.2",
        "note": "v4 anchor shifted -1px up"
      },
      "v6_stadium_measured": {
        "x": "(lng + 100.514740) / 0.439121 * 1266",
        "y": "(25.871898 - lat) / 0.395757 * 1280",
        "anchor_gps": "25.669010911306785, -100.24446874373703",
        "anchor_canvas": "779.2, 656.2",
        "note": "anchor updated to measured stadium center"
      },
      "v7_two_point": {
        "x": "(lng + 100.496786) / 0.418453 * 1266",
        "y": "(25.870708 - lat) / 0.401665 * 1280",
        "anchor_a": "Macroplaza 25.6696,-100.3098 → (565.6,640.9)",
        "anchor_b": "Aeropuerto 25.7771,-100.1081 → (1175.9,298.4)",
        "note": "2-point calibration fixes scale + translation"
      },
      "v8_three_point_lsq": {
        "x": "(lng + 100.500369) / 0.422200 * 1266",
        "y": "(25.870700 - lat) / 0.401630 * 1280",
        "anchor_a": "Aeropuerto 25.7771,-100.1081 → (1175.9,298.4) confirmed",
        "anchor_b": "Macroplaza 25.6696,-100.3099 → (570.6,640.9) +5px x corrected",
        "anchor_c": "Estadio 25.6690,-100.2445 → (768.4,642.8) +5px x corrected",
        "note": "superseded by v9"
      },
      "v9_svg_anchors": {
        "x": "(lng + 100.507014) / 0.427865 * 1266",
        "y": "(25.865565 - lat) / 0.382057 * 1280",
        "anchor_a": "Aeropuerto GPS(25.775627,-100.106370) → canvas(1185.2,301.2) — SVG layer2 ellipse cx=283.6127,cy=72.188026",
        "anchor_b": "Estadio GPS(25.669186,-100.244429) → canvas(778.1,657.4) — SVG layer2 ellipse cx=186.19244,cy=157.42023",
        "anchor_c": "Arena/FanFest GPS(25.680904,-100.288341) → canvas(646.1,619.3) — SVG layer2 ellipse cx=154.60043,cy=148.30849",
        "note": "3-point LSQ from SVG anchor layer (layer2, translate(0.04424506,-0.08849012)) — no visual estimation, max residual 1.2px"
      },
      "active": "v9",
      "x": "(lng + 100.507014) / 0.427865 * 1266",
      "y": "(25.865565 - lat) / 0.382057 * 1280"
    },
    "lastUpdated": "2026-06-06",
    "status": "L1/L2/L3 GPS zoom-19. Pendiente: unidad_modelo, alfonso_reyes, edison, del_golfo (L1 estimados).",
    "showBoundingBox": false,
    "markerSizes": {
      "stationTransfer": 10,
      "stationInner": 6,
      "stationTerminus": 8,
      "stationAcc": 7,
      "stationSimple": 7,
      "poi": 5,
      "parkRide": 10
    },
    "metroStationSubtitle": "Metro station",
    "ghostPoints": {
      "note": "Invisible SVG path vertices that shape routes without rendering anything",
      "routeA": [
        {
          "lat": 25.67944118934329,
          "lng": -100.2344698529439,
          "svg": {
            "x": 806.4,
            "y": 623.6
          },
          "note": "start"
        },
        {
          "lat": 25.66445374928197,
          "lng": -100.31083614170711,
          "svg": {
            "x": 580.5,
            "y": 673.8
          }
        },
        {
          "lat": 25.669019478744186,
          "lng": -100.33405326753426,
          "svg": {
            "x": 511.8,
            "y": 658.5
          }
        },
        {
          "lat": 25.65434594041105,
          "lng": -100.33812153578887,
          "svg": {
            "x": 499.7,
            "y": 707.6
          }
        },
        {
          "lat": 25.656829403315747,
          "lng": -100.34138981452334,
          "svg": {
            "x": 490.1,
            "y": 699.3
          }
        },
        {
          "lat": 25.692597397143796,
          "lng": -100.24257378439809,
          "svg": {
            "x": 782.4,
            "y": 579.5
          },
          "note": "terminus — shared with routeB ghost 4"
        }
      ],
      "routeB": [
        {
          "lat": 25.68984726004425,
          "lng": -100.14511031086963,
          "svg": {
            "x": 1070.8,
            "y": 588.7
          }
        },
        {
          "lat": 25.696657944966322,
          "lng": -100.17958100072829,
          "svg": {
            "x": 968.8,
            "y": 565.9
          }
        },
        {
          "lat": 25.694271670603467,
          "lng": -100.20196987800215,
          "svg": {
            "x": 902.6,
            "y": 573.9
          }
        },
        {
          "lat": 25.692597397143796,
          "lng": -100.24257378439809,
          "svg": {
            "x": 782.4,
            "y": 579.5
          }
        },
        {
          "lat": 25.67944118934329,
          "lng": -100.24434411735287,
          "svg": {
            "x": 777.2,
            "y": 623.6
          },
          "note": "terminus"
        }
      ]
    },
    "alegreAnchors": [
      {
        "note": "Invisible path anchor between stops 5 (Parque España) and 6 (Exposición) — shapes the real corridor route",
        "between": [
          5,
          6
        ],
        "lat": 25.676361289083918,
        "lng": -100.27170629931997,
        "svg": {
          "x": 696.2,
          "y": 633.9
        }
      }
    ]
  },
  "metroLines": {
    "l1": {
      "label": "Línea 1",
      "cssVar": "--l1",
      "trainDuration": "13s",
      "trainStations": [
        "san_bernabe",
        "unidad_modelo",
        "aztlan",
        "penitenciaria",
        "alfonso_reyes",
        "mitras",
        "simon_bolivar",
        "hospital_general",
        "edison",
        "central",
        "del_golfo",
        "felix_u_gomez",
        "parque_fundidora",
        "y_griega",
        "eloy_cavazos",
        "lerdo",
        "exposicion"
      ],
      "stations": [
        "san_bernabe",
        "unidad_modelo",
        "aztlan",
        "penitenciaria",
        "alfonso_reyes",
        "mitras",
        "simon_bolivar",
        "hospital_general",
        "edison",
        "central",
        "del_golfo",
        "felix_u_gomez",
        "parque_fundidora",
        "y_griega",
        "eloy_cavazos",
        "lerdo",
        "exposicion"
      ]
    },
    "l2": {
      "label": "Línea 2",
      "cssVar": "--l2",
      "trainDuration": "16s",
      "trainStations": [
        "sendero",
        "tapia",
        "san_nicolas",
        "anahuac",
        "universidad",
        "ninos_heroes",
        "regina",
        "general_anaya",
        "cuauhtemoc",
        "padre_mier",
        "zaragoza"
      ],
      "stations": [
        "sendero",
        "tapia",
        "san_nicolas",
        "anahuac",
        "universidad",
        "ninos_heroes",
        "regina",
        "general_anaya",
        "cuauhtemoc",
        "padre_mier",
        "zaragoza"
      ]
    },
    "l3": {
      "label": "Línea 3",
      "cssVar": "--l3",
      "trainDuration": "10s",
      "trainStations": [
        "hospital_metro",
        "moderna",
        "felix_u_gomez",
        "santa_lucia",
        "zaragoza"
      ],
      "stations": [
        "hospital_metro",
        "los_angeles",
        "ruiz_cortines",
        "moderna",
        "metalurgicos",
        "felix_u_gomez",
        "santa_lucia",
        "zaragoza"
      ]
    }
  },
  "metroStations": [
    {
      "id": "unidad_modelo",
      "name": "Unidad Modelo",
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "accessible": true,
      "lat": 25.74183925776619,
      "lng": -100.35513622363119,
      "svg": {
        "x": 458.1,
        "y": 414.7
      },
      "label": {
        "text": "U. Modelo",
        "position": "top-right"
      }
    },
    {
      "id": "aztlan",
      "name": "Aztlán",
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "lat": 25.7321329,
      "lng": -100.34736,
      "svg": {
        "x": 480.6,
        "y": 446.2
      },
      "label": {
        "position": "bottom-left"
      }
    },
    {
      "id": "penitenciaria",
      "name": "Penitenciaría",
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "lat": 25.7228942,
      "lng": -100.3432455,
      "svg": {
        "x": 492.5,
        "y": 476.2
      },
      "label": {
        "position": "top-right"
      }
    },
    {
      "id": "alfonso_reyes",
      "name": "Alfonso Reyes",
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "lat": 25.715788308427715,
      "lng": -100.34247029000946,
      "svg": {
        "x": 494.7,
        "y": 499.2
      },
      "label": {
        "text": "A. Reyes",
        "position": "bottom-left"
      }
    },
    {
      "id": "mitras",
      "name": "Mitras",
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "lat": 25.705914,
      "lng": -100.3432565,
      "svg": {
        "x": 492.5,
        "y": 531.2
      },
      "label": {
        "position": "top-right"
      }
    },
    {
      "id": "hospital_general",
      "name": "Hospital General",
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "lat": 25.6911183,
      "lng": -100.3447106,
      "svg": {
        "x": 488.3,
        "y": 579.2
      },
      "label": {
        "text": "Hosp. General",
        "position": "bottom-left"
      }
    },
    {
      "id": "edison",
      "name": "Edison",
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "lat": 25.686981828707673,
      "lng": -100.33365609675664,
      "svg": {
        "x": 520.2,
        "y": 592.6
      },
      "label": {
        "position": "top-right"
      }
    },
    {
      "id": "central",
      "name": "Central",
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "lat": 25.6869018,
      "lng": -100.3251395,
      "svg": {
        "x": 544.8,
        "y": 592.8
      },
      "label": {
        "position": "bottom-left"
      }
    },
    {
      "id": "del_golfo",
      "name": "Del Golfo",
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "lat": 25.68562365963811,
      "lng": -100.30702276491596,
      "svg": {
        "x": 597.2,
        "y": 597
      },
      "label": {
        "text": "Del Golfo",
        "position": "top-right"
      }
    },
    {
      "id": "felix_u_gomez",
      "name": "Félix U. Gómez",
      "homeLine": "l1",
      "lines": [
        "l1",
        "l3"
      ],
      "accessible": true,
      "transferRingLine": "l3",
      "transferLabel": "Transfer L3",
      "lat": 25.6841026,
      "lng": -100.2968204,
      "svg": {
        "x": 626.7,
        "y": 601.9
      },
      "label": {
        "text": "Félix U. Gómez ⇄",
        "position": "bottom-left"
      }
    },
    {
      "id": "parque_fundidora",
      "name": "Parque Fundidora",
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "transferLabel": "Fan Fest · Paseo Santa Lucía",
      "lat": 25.683780294719348,
      "lng": -100.28811762437284,
      "svg": {
        "x": 647.7,
        "y": 609.0
      },
      "label": {
        "text": "P. Fundidora ⇄",
        "position": "top-right"
      }
    },
    {
      "id": "y_griega",
      "name": "Y Griega",
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "lat": 25.6823983,
      "lng": -100.2794289,
      "svg": {
        "x": 676.9,
        "y": 607.4
      },
      "spotLabel": "a",
      "label": {
        "text": "Y Griega",
        "position": "bottom-left"
      }
    },
    {
      "id": "eloy_cavazos",
      "name": "Eloy Cavazos",
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "lat": 25.68008682795827,
      "lng": -100.26426114633908,
      "svg": {
        "x": 720.7,
        "y": 614.9
      },
      "label": {
        "text": "Eloy Cavazos",
        "position": "bottom"
      }
    },
    {
      "id": "lerdo",
      "name": "Lerdo de Tejada",
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "lat": 25.680080891605318,
      "lng": -100.25219406321033,
      "svg": {
        "x": 755.6,
        "y": 615
      },
      "label": {
        "text": "Lerdo de Tejada",
        "position": "top"
      }
    },
    {
      "id": "exposicion",
      "name": "Exposición",
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "terminus": "east",
      "accessible": true,
      "spotLabel": "a",
      "transferLabel": "Ruta A al Estadio",
      "lat": 25.67961677273114,
      "lng": -100.24545635442806,
      "svg": {
        "x": 775.1,
        "y": 626.5
      },
      "label": {
        "text": "Exposición",
        "position": "bottom"
      }
    },
    {
      "id": "sendero",
      "name": "Sendero",
      "homeLine": "l2",
      "lines": [
        "l2"
      ],
      "terminus": "north",
      "accessible": true,
      "lat": 25.7686474,
      "lng": -100.2930094,
      "svg": {
        "x": 637.7,
        "y": 327.8
      },
      "label": {
        "text": "Sendero",
        "position": "right"
      }
    },
    {
      "id": "anahuac",
      "name": "Anáhuac",
      "homeLine": "l2",
      "lines": [
        "l2"
      ],
      "lat": 25.7406818,
      "lng": -100.3025759,
      "svg": {
        "x": 610,
        "y": 418.5
      },
      "label": {
        "text": "Anáhuac",
        "position": "left"
      }
    },
    {
      "id": "san_nicolas",
      "name": "San Nicolás",
      "homeLine": "l2",
      "lines": [
        "l2"
      ],
      "accessible": true,
      "lat": 25.7522135,
      "lng": -100.2981416,
      "svg": {
        "x": 622.8,
        "y": 381.1
      },
      "label": {
        "text": "San Nicolás",
        "position": "right"
      }
    },
    {
      "id": "universidad",
      "name": "Universidad",
      "homeLine": "l2",
      "lines": [
        "l2"
      ],
      "lat": 25.7248579,
      "lng": -100.3079839,
      "svg": {
        "x": 594.4,
        "y": 469.8
      },
      "label": {
        "position": "left"
      }
    },
    {
      "id": "regina",
      "name": "Regina",
      "homeLine": "l2",
      "lines": [
        "l2"
      ],
      "lat": 25.708025588902583,
      "lng": -100.31421349379652,
      "svg": {
        "x": 576.4,
        "y": 524.4
      },
      "label": {
        "position": "right"
      }
    },
    {
      "id": "ninos_heroes",
      "name": "Niños Héroes",
      "homeLine": "l2",
      "lines": [
        "l2"
      ],
      "lat": 25.7164788,
      "lng": -100.3108385,
      "svg": {
        "x": 586.1,
        "y": 497
      },
      "label": {
        "text": "Niños Héroes",
        "position": "left"
      }
    },
    {
      "id": "general_anaya",
      "name": "General Anaya",
      "homeLine": "l2",
      "lines": [
        "l2"
      ],
      "lat": 25.696968393697457,
      "lng": -100.31700540350289,
      "svg": {
        "x": 568.3,
        "y": 560.2
      },
      "label": {
        "text": "Gral. Anaya",
        "position": "right"
      }
    },
    {
      "id": "cuauhtemoc",
      "name": "Cuauhtémoc",
      "homeLine": "l2",
      "lines": [
        "l1",
        "l2"
      ],
      "accessible": true,
      "transferRingLine": "l2",
      "transferLabel": "Transfer L1",
      "lat": 25.6858807,
      "lng": -100.3173349,
      "svg": {
        "x": 567.4,
        "y": 596.1
      },
      "label": {
        "text": "Cuauhtémoc ⇄",
        "position": "left"
      }
    },
    {
      "id": "padre_mier",
      "name": "Padre Mier",
      "homeLine": "l2",
      "lines": [
        "l2"
      ],
      "lat": 25.66869800778503,
      "lng": -100.31545017466792,
      "svg": {
        "x": 572.8,
        "y": 651.9
      },
      "label": {
        "text": "Padre Mier",
        "position": "right"
      }
    },
    {
      "id": "zaragoza",
      "name": "Gral. I. Zaragoza",
      "homeLine": "l2",
      "lines": [
        "l2",
        "l3"
      ],
      "accessible": true,
      "transferRingLine": "l3",
      "transferLabel": "Transfer L3",
      "lat": 25.66785100840405,
      "lng": -100.31023704583231,
      "svg": {
        "x": 587.9,
        "y": 654.6
      },
      "label": {
        "text": "Zaragoza ⇄",
        "position": "left"
      }
    },
    {
      "id": "hospital_metro",
      "name": "Hospital Metropolitano",
      "homeLine": "l3",
      "lines": [
        "l3"
      ],
      "terminus": "north",
      "accessible": true,
      "lat": 25.7142322,
      "lng": -100.2731834,
      "svg": {
        "x": 695,
        "y": 504.2
      },
      "label": {
        "text": "Hosp. Metro",
        "position": "right"
      }
    },
    {
      "id": "los_angeles",
      "name": "Los Ángeles",
      "homeLine": "l3",
      "lines": [
        "l3"
      ],
      "lat": 25.7077388,
      "lng": -100.2830525,
      "svg": {
        "x": 666.4,
        "y": 525.3
      },
      "label": {
        "text": "Los Ángeles",
        "position": "right"
      }
    },
    {
      "id": "ruiz_cortines",
      "name": "Ruiz Cortines",
      "homeLine": "l3",
      "lines": [
        "l3"
      ],
      "lat": 25.703852,
      "lng": -100.2901054,
      "svg": {
        "x": 646.1,
        "y": 537.9
      },
      "label": {
        "text": "Ruiz Cortines",
        "position": "right"
      }
    },
    {
      "id": "moderna",
      "name": "Moderna",
      "homeLine": "l3",
      "lines": [
        "l3"
      ],
      "lat": 25.70059,
      "lng": -100.2929375,
      "svg": {
        "x": 637.9,
        "y": 548.5
      },
      "label": {
        "text": "Moderna",
        "position": "left"
      }
    },
    {
      "id": "santa_lucia",
      "name": "P. Santa Lucía",
      "homeLine": "l3",
      "lines": [
        "l3"
      ],
      "lat": 25.6718277,
      "lng": -100.2984069,
      "svg": {
        "x": 622.1,
        "y": 641.7
      },
      "label": {
        "text": "P. Santa Lucía",
        "position": "right"
      }
    },
    {
      "id": "metalurgicos",
      "name": "Metalúrgicos",
      "line": "L3",
      "lat": 25.689778,
      "lng": -100.2960969,
      "svg": {
        "x": 628.7,
        "y": 583.5
      },
      "homeLine": "l3",
      "lines": [
        "l3"
      ],
      "label": {
        "text": "Metalúrgicos",
        "position": "left"
      }
    },
    {
      "id": "tapia",
      "name": "Santiago Tapia",
      "line": "L2",
      "lat": 25.7591658,
      "lng": -100.2962634,
      "svg": {
        "x": 628.3,
        "y": 358.6
      },
      "homeLine": "l2",
      "lines": [
        "l2"
      ],
      "label": {
        "text": "Tapia",
        "position": "right"
      }
    },
    {
      "id": "san_bernabe",
      "name": "San Bernabé",
      "line": "L1",
      "lat": 25.748564045537044,
      "lng": -100.36176062433633,
      "svg": {
        "x": 439,
        "y": 392.9
      },
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "terminus": "west",
      "label": {
        "text": "San Bernabé",
        "position": "bottom-left"
      }
    },
    {
      "id": "simon_bolivar",
      "name": "Simón Bolívar",
      "line": "L1",
      "lat": 25.6984928,
      "lng": -100.3438108,
      "svg": {
        "x": 490.9,
        "y": 555.3
      },
      "homeLine": "l1",
      "lines": [
        "l1"
      ],
      "label": {
        "text": "Simón Bolívar",
        "position": "top-right"
      }
    }
  ],
  "poi": [
    {
      "id": "macroplaza",
      "name": "Macroplaza / Gran Plaza",
      "desc": "Historic 400×200 m downtown square.",
      "svg": {
        "x": 588.8,
        "y": 649.7
      },
      "label": {
        "text": "Macroplaza",
        "dx": -10,
        "dy": -12,
        "anchor": "middle"
      },
      "lat": 25.669347557807864,
      "lng": -100.30985989689647,
      "style": "pill"
    },
    {
      "id": "santa_lucia_poi",
      "name": "Paseo Santa Lucía",
      "desc": "2.5 km navigable riverwalk to Fundidora.",
      "svg": {
        "x": 599.6,
        "y": 643.9
      },
      "label": {
        "text": "P. Santa Lucía",
        "dx": 11,
        "dy": -3
      },
      "lat": 25.671143781824405,
      "lng": -100.30617878118373,
      "style": "pill",
      "icon": "river-trees"
    },
    {
      "id": "marco",
      "name": "MARCO — Museo de Arte Contemporáneo",
      "desc": "Leading modern art museum.",
      "svg": {
        "x": 589,
        "y": 664.5
      },
      "label": {
        "text": "MARCO",
        "dx": 11,
        "dy": 4
      },
      "lat": 25.664763409730543,
      "lng": -100.30979567306248,
      "style": "pill",
      "icon": "landmark"
    },
    {
      "id": "obispado",
      "name": "Mirador del Obispado",
      "desc": "Panoramic 360° city view.",
      "svg": {
        "x": 428.5,
        "y": 635
      },
      "label": {
        "text": "Obispado",
        "dx": 11,
        "dy": 4
      },
      "lat": 25.675924261870254,
      "lng": -100.34594536113174,
      "style": "pill",
      "icon": "landmark"
    },
    {
      "id": "zoo_pastora",
      "name": "Zoológico La Pastora",
      "desc": "Zoo & park next to the stadium.",
      "svg": {
        "x": 767.1,
        "y": 660.5
      },
      "label": {
        "text": "Zoo La Pastora",
        "position": "left"
      },
      "lat": 25.66602992199922,
      "lng": -100.24823571067297,
      "style": "pill"
    },
    {
      "id": "arena_monterrey",
      "name": "Arena Monterrey",
      "desc": "Sala de conciertos",
      "svg": {
        "x": 646.9,
        "y": 618.7
      },
      "label": {
        "text": "Arena Monterrey",
        "align": "end",
        "dx": -15,
        "dy": 4,
        "anchor": "end"
      },
      "lat": 25.680896860088993,
      "lng": -100.28839219034744,
      "style": "pill",
      "icon": "landmark"
    },
    {
      "id": "parque_del_agua",
      "name": "Parque del Agua",
      "desc": "State park along Río la Silla. Green corridors, walking paths, and a natural buffer on the way to the stadium.",
      "svg": {
        "x": 760.3,
        "y": 676.0
      },
      "label": {
        "text": "Parque del Agua",
        "dx": 11,
        "dy": 4
      },
      "lat": 25.663776298840112,
      "lng": -100.25006431197835,
      "style": "pill"
    },
    {
      "id": "parque_tolteca",
      "name": "Parque Tolteca",
      "desc": "State park near Estadio Monterrey. Green area along the walking route to the stadium.",
      "svg": {
        "x": 798.9,
        "y": 638.1
      },
      "label": {
        "text": "Parque Tolteca",
        "dx": 11,
        "dy": 4,
        "align": "end"
      },
      "lat": 25.675097459988926,
      "lng": -100.23701084617372,
      "style": "pill",
      "color": "#FF1644"
    },
    {
      "id": "parque_espana",
      "name": "Parque España",
      "desc": "Park along the festive corridor.",
      "style": "pill",
      "icon": "trees",
      "label": {
        "text": "Parque España"
      },
      "lat": 25.672083204652992,
      "lng": -100.27983186722561
    },
    {
      "id": "gran_parque_rio_la_silla",
      "name": "Gran Parque Rio La Silla",
      "desc": "Large riverside park along Río la Silla.",
      "style": "pill",
      "icon": "trees",
      "label": {
        "text": "Gran Parque Rio La Silla"
      },
      "lat": 25.665061408300748,
      "lng": -100.25637038644477
    }
  ],
  "naturalLandmarks": [
    {
      "id": "cerro_silla",
      "name": "Cerro de la Silla",
      "desc": "Monterrey's iconic peak, 1820 m.",
      "lat": 25.633714071000476,
      "lng": -100.23483224381445,
      "scale": 2,
      "svg": {
        "x": 805.8,
        "y": 765.3
      }
    },
    {
      "id": "chipinque_nat",
      "name": "Reserva Natural Chipinque",
      "desc": "Ecological park in the Sierra Madre. Hiking and wildlife.",
      "lat": 25.619520853444595,
      "lng": -100.36005072358941,
      "scale": 2,
      "svg": {
        "x": 443.9,
        "y": 811.3
      }
    },
    {
      "id": "sierra_mitras",
      "name": "Sierra Las Mitras",
      "desc": "Mountain range west of Monterrey.",
      "lat": 25.701341,
      "lng": -100.404078,
      "scale": 2,
      "svg": {
        "x": 316.7,
        "y": 546
      }
    },
    {
      "id": "topo_chico",
      "name": "Cerro del Topo Chico",
      "desc": "Volcanic hill north of the city.",
      "lat": 25.75717,
      "lng": -100.335886,
      "scale": 2,
      "svg": {
        "x": 513.8,
        "y": 365
      }
    }
  ],
  "parkAndRide": [
    {
      "id": "pr_plaza_nativa",
      "name": "P+R Plaza Nativa",
      "desc": "Av Alfonso Reyes 901, San Pedro Garza García. West access point.",
      "lat": 25.65981364493217,
      "lng": -100.41549388771,
      "svg": {
        "x": 283.7,
        "y": 680.7
      }
    },
    {
      "id": "pr_ocampo",
      "name": "P+R Ocampo",
      "desc": "Melchor Ocampo 431, Centro, Monterrey. Downtown access.",
      "lat": 25.66759731759917,
      "lng": -100.32272921884615,
      "svg": {
        "x": 551.8,
        "y": 655.4
      }
    },
    {
      "id": "pr_far_west",
      "name": "P+R Far West",
      "desc": "Av. Los Angeles, San Nicolás de los Garza. North access.",
      "lat": 25.71895083494168,
      "lng": -100.309500532338,
      "svg": {
        "x": 590,
        "y": 488.9
      }
    },
    {
      "id": "pr_pabellon_tec",
      "name": "P+R Pabellón Tec",
      "desc": "Av. Eugenio Garza Sada 427, Distrito Tec, Monterrey.",
      "lat": 25.64719259529078,
      "lng": -100.28938369001108,
      "svg": {
        "x": 648.1,
        "y": 721.6
      }
    },
    {
      "id": "pr_zona_tec_e1",
      "name": "P+R Zona Tec — E1",
      "desc": "Av. Fernando García Roel s/n, Distrito Tec (Campus Tec access).",
      "lat": 25.65321997647244,
      "lng": -100.28795771884653,
      "svg": {
        "x": 652.3,
        "y": 702
      }
    },
    {
      "id": "pr_tec_milenio",
      "name": "P+R Tec Milenio (Las Torres)",
      "desc": "Paseo del Acueducto 2610, Del Paseo Residencial, Monterrey.",
      "lat": 25.628244683989568,
      "lng": -100.30400157651843,
      "svg": {
        "x": 605.9,
        "y": 783
      }
    },
    {
      "id": "pr_esfera",
      "name": "P+R Esfera",
      "desc": "Carr Nacional 777-b, Monterrey. South access point.",
      "lat": 25.57632087243128,
      "lng": -100.24480225135319,
      "svg": {
        "x": 777,
        "y": 951.3
      }
    }
  ],
  "venues": [
    {
      "id": "estadio-bbva",
      "type": "stadium",
      "name": "Estadio Monterrey",
      "desc": "2026 venue · ~53,500 capacity. Metro Exposición (L1) + Route A.",
      "lat": 25.669010911306785,
      "lng": -100.24446874373703,
      "label": {
        "text": "Estadio Monterrey",
        "position": "top",
        "dx": 0,
        "dy": -22,
        "anchor": "middle"
      },
      "children": [
        {
          "id": "p1",
          "name": "G1",
          "lat": 25.66809561958109,
          "lng": -100.24503692261175
        },
        {
          "id": "p2",
          "name": "G2",
          "lat": 25.66830840490518,
          "lng": -100.24535456090346
        },
        {
          "id": "p3",
          "name": "G3",
          "lat": 25.66983271049424,
          "lng": -100.24536743813795
        },
        {
          "id": "p4",
          "name": "G4",
          "lat": 25.670200243187434,
          "lng": -100.2450197529808
        },
        {
          "id": "p5",
          "name": "G5",
          "lat": 25.67027374959009,
          "lng": -100.24481800974146
        },
        {
          "id": "p6",
          "name": "G6",
          "lat": 25.670153818067647,
          "lng": -100.24380070872607
        },
        {
          "id": "p7",
          "name": "G7",
          "lat": 25.669852054348436,
          "lng": -100.24342297670347
        },
        {
          "id": "p8",
          "name": "G8",
          "lat": 25.669592846441294,
          "lng": -100.2433542981539
        },
        {
          "id": "p9",
          "name": "G9",
          "lat": 25.66813043901124,
          "lng": -100.24375778462529
        },
        {
          "id": "p10",
          "name": "G10",
          "lat": 25.667991161179597,
          "lng": -100.24422136483484
        }
      ]
    }
  ],
  "walkingRoutes": [
    {
      "id": "festive_corridor",
      "name": "Festive Corridor",
      "class": "alegre-line",
      "points": [
        {"lat":25.6678505,"lng":-100.3102502},{"lat":25.6651642,"lng":-100.3106219},{"lat":25.6654029,"lng":-100.3105881},{"lat":25.6656417,"lng":-100.3106219},{"lat":25.6658805,"lng":-100.3105205},{"lat":25.6671043,"lng":-100.3104868},{"lat":25.6674625,"lng":-100.3099798},{"lat":25.6677311,"lng":-100.3098446},{"lat":25.668537,"lng":-100.3098784},{"lat":25.6690146,"lng":-100.3096418},{"lat":25.6693728,"lng":-100.3095066},{"lat":25.6706861,"lng":-100.3092025},{"lat":25.6710443,"lng":-100.3093715},{"lat":25.6713726,"lng":-100.3091011},{"lat":25.6717009,"lng":-100.3086279},{"lat":25.6716114,"lng":-100.3080534},{"lat":25.6710443,"lng":-100.3070057},{"lat":25.6710144,"lng":-100.3062622},{"lat":25.6710741,"lng":-100.303964},{"lat":25.6720889,"lng":-100.3017334},{"lat":25.6724173,"lng":-100.3006519},{"lat":25.6722382,"lng":-100.2987255},{"lat":25.6729247,"lng":-100.2974751},{"lat":25.673253,"lng":-100.2964612},{"lat":25.6737008,"lng":-100.2951431},{"lat":25.6740589,"lng":-100.2944334},{"lat":25.6737903,"lng":-100.2926759},{"lat":25.6737604,"lng":-100.2912903},{"lat":25.67385,"lng":-100.2905468},{"lat":25.6742082,"lng":-100.2893977},{"lat":25.6751335,"lng":-100.2885528},{"lat":25.6753424,"lng":-100.2868629},{"lat":25.6756707,"lng":-100.2844634},{"lat":25.6751932,"lng":-100.2831453},{"lat":25.6751633,"lng":-100.2827059},{"lat":25.6750738,"lng":-100.2816245},{"lat":25.6748947,"lng":-100.2818948}
      ]
    },
    {
      "id": "south_gate",
      "name": "To South Gate",
      "class": "walk-route",
      "distance": "6.9 km",
      "duration": "1hr 34min",
      "points": [
        {"lat":25.6750439,"lng":-100.2819962},
        {"lat":25.672394689759066,"lng":-100.28165094348104},
        {"lat":25.6706562,"lng":-100.2791573},{"lat":25.6764468,"lng":-100.271722},{"lat":25.6766259,"lng":-100.2585076},{"lat":25.6712233,"lng":-100.2583724},{"lat":25.6706861,"lng":-100.258102},{"lat":25.6690444,"lng":-100.2563784},{"lat":25.6679699,"lng":-100.2563108},{"lat":25.6675222,"lng":-100.2558714},{"lat":25.6672834,"lng":-100.2549927},{"lat":25.6672535,"lng":-100.2529311},{"lat":25.6670744,"lng":-100.2520186},{"lat":25.6695817,"lng":-100.2503964},{"lat":25.6691937,"lng":-100.2499908},{"lat":25.6682684,"lng":-100.2507006},{"lat":25.6675819,"lng":-100.2510385},{"lat":25.6672237,"lng":-100.2509709},{"lat":25.666567,"lng":-100.2515455},{"lat":25.6653731,"lng":-100.2490107},{"lat":25.6654328,"lng":-100.2488755},{"lat":25.664597,"lng":-100.2488417},{"lat":25.6658208,"lng":-100.2467464},{"lat":25.6659402,"lng":-100.2461042},{"lat":25.666179,"lng":-100.2458676},{"lat":25.6661492,"lng":-100.2455635},{"lat":25.666567,"lng":-100.24482}
      ]
    },
    {
      "id": "north_gate",
      "name": "To North Gate",
      "class": "walk-route",
      "color": "#124015",
      "distance": "6.5 km",
      "duration": "1hr 29min",
      "points": [
        {"lat": 25.6720934, "lng": -100.2439023},
        {"lat": 25.6734665, "lng": -100.2458978},
        {"lat": 25.6792102, "lng": -100.2452112},
        {"lat": 25.6795776, "lng": -100.2484084},
        {"lat": 25.6767155, "lng": -100.2486015},
        {"lat": 25.6765608, "lng": -100.2585364}
      ]
    }
  ]
}