{
  "schema": 1,
  "version": "2026-10-08.1",
  "researchedAt": "2026-10-08",
  "scope": "Famiglie e varianti visive documentate della flotta milanese. Assegnazione simulata, non matricole live.",
  "colors": "Stime visive da fotografie reali; non specifiche RAL certificate.",
  "dimensionNotes": "Misure nominali pubblicate; centri di articolazione e dettagli stilizzati, non rilievo ingegneristico.",
  "models": [
    {
      "id": "tram-peter-witt-1500",
      "label": "ATM 1500 / tipo 1928 / Carrelli / Ventotto",
      "mode": "tram",
      "length": 13.89,
      "width": 2.35,
      "height": 3.23,
      "segments": 1,
      "segmentLengths": [
        13.89
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "1",
        "5",
        "10",
        "19",
        "33"
      ],
      "assignment": "representative",
      "detail": "models/fleet/tram-peter-witt-1500-detail.glb",
      "simple": "models/fleet/tram-peter-witt-1500-simple.glb",
      "paint": "#E4AC35",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-tram-fleet.py",
      "research": "docs/fleet-research/trams.json",
      "sourceUrls": [
        "https://it.wikipedia.org/wiki/Tram_ATM_serie_1500",
        "https://www2.comune.milano.it/documents/20126/464279766/19032608%2B15%2Bincidenti%2Bmezzi%2BATM%2Btram%2Bbidirezionali.pdf/8aa99e1f-0e22-79ac-5f31-b8665294269e?t=1774514285107"
      ],
      "notes": [
        "published dimensions; body-height and pantograph conventions vary; not engineering blueprint",
        "medium: published contemporary enthusiast fleet summary; plausible family compatibility only, not official daily allocations or GTFS vehicle IDs",
        "Rounded ends with distinct segmented front windshield, narrower than modern trams.",
        "Tall separate rectangular side windows with upper transoms, cream framing; three right-side folding doors.",
        "High floor; visible two bogies with four wheelsets; brown underframe/skirt.",
        "Contemporary photographed vehicles have one single-arm pantograph near the middle roof; do not model historic trolley pole or assume diamond pantograph.",
        "Front has one large round centre headlamp and two smaller round lower lamps; rear has four small round lamps plus thin horizontal red stripe, no centre headlamp.",
        "Rounded roof shoulders, dark brown ribbed bumpers and visible tow couplings."
      ],
      "simulationEligible": true
    },
    {
      "id": "tram-stanga-4700",
      "label": "ATM 4700 Stanga/TIBB",
      "mode": "tram",
      "length": 19.8,
      "width": 2.4,
      "height": 3.712,
      "segments": 2,
      "segmentLengths": [
        10.0,
        9.45
      ],
      "anchors": [
        4.9,
        -5.174999999999999
      ],
      "lines": [
        "2",
        "19",
        "3",
        "16"
      ],
      "assignment": "representative",
      "detail": "models/fleet/tram-stanga-4700-detail.glb",
      "simple": "models/fleet/tram-stanga-4700-simple.glb",
      "paint": "#E4AC35",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-tram-fleet.py",
      "research": "docs/fleet-research/trams.json",
      "sourceUrls": [
        "https://www.trametreni.it/serie-4600-4700-scheda.html",
        "https://www2.comune.milano.it/documents/20126/464279766/19032608%2B15%2Bincidenti%2Bmezzi%2BATM%2Btram%2Bbidirezionali.pdf/8aa99e1f-0e22-79ac-5f31-b8665294269e?t=1774514285107"
      ],
      "notes": [
        "published dimensions; body-height and pantograph conventions vary; not engineering blueprint",
        "medium: published contemporary enthusiast fleet summary; plausible family compatibility only, not official daily allocations or GTFS vehicle IDs",
        "Two high-floor rounded bodies joined by one narrow black accordion bellows.",
        "Rounded bulbous front with multi-part windshield, stacked line box and small lamps.",
        "Three right-side folding door groups: front, aft end first body near articulation, rear.",
        "Long continuous rows of smaller rectangular windows with opening transoms.",
        "Three bogies including shared centre bogie; contemporary photographs show a single-arm pantograph and large rounded HVAC pod above the driving cab.",
        "Front has one rectangular central lamp and two small round lamps; visor above broad windshield, curved high roof, thin brown belt under cream window band."
      ],
      "simulationEligible": true
    },
    {
      "id": "tram-jumbotram-4900-original",
      "label": "ATM 4900 Jumbotram originale",
      "mode": "tram",
      "length": 29.21,
      "width": 2.38,
      "height": 3.75,
      "segments": 3,
      "segmentLengths": [
        10.15,
        8.85,
        9.45
      ],
      "anchors": [
        9.530000000000001,
        -0.35000000000000053,
        -9.88
      ],
      "lines": [
        "2",
        "3",
        "12",
        "16",
        "24",
        "27"
      ],
      "assignment": "representative",
      "detail": "models/fleet/tram-jumbotram-4900-original-detail.glb",
      "simple": "models/fleet/tram-jumbotram-4900-original-simple.glb",
      "paint": "#E4AC35",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-tram-fleet.py",
      "research": "docs/fleet-research/trams.json",
      "sourceUrls": [
        "https://www.trametreni.it/serie-4900-scheda.html",
        "https://www2.comune.milano.it/documents/20126/464279766/19032608%2B15%2Bincidenti%2Bmezzi%2BATM%2Btram%2Bbidirezionali.pdf/8aa99e1f-0e22-79ac-5f31-b8665294269e?t=1774514285107"
      ],
      "notes": [
        "published dimensions; body-height and pantograph conventions vary; not engineering blueprint",
        "medium: published contemporary enthusiast fleet summary; plausible family compatibility only, not official daily allocations or GTFS vehicle IDs",
        "Three high-floor angular bodies, two black accordion joints, four bogies.",
        "Characteristic asymmetric tapered cab nose; do not reuse rounded Sirio cab.",
        "Five right-side folding door groups; rows of rectangular windows with upper opening transoms.",
        "Roof electrical/HVAC equipment and single-arm pantograph; original asymmetrical front uses broad glass and projecting roof destination housing.",
        "Ministerial orange is a historical livery; current remaining original units have Giallo Milano repaint from2023, evidenced4984 inMay2025.",
        "Original front has a central horizontal serial/lamp housing with rectangular headlamp and small square marker lamps toward the corners; not six circular lamps of revamp."
      ],
      "simulationEligible": true
    },
    {
      "id": "tram-jumbotram-4900-revamp",
      "label": "ATM 4900 Jumbotram revamping",
      "mode": "tram",
      "length": 29.6,
      "width": 2.38,
      "height": 3.75,
      "segments": 3,
      "segmentLengths": [
        10.38,
        8.85,
        9.61
      ],
      "anchors": [
        9.61,
        -0.3850000000000007,
        -9.995000000000001
      ],
      "lines": [
        "2",
        "3",
        "12",
        "16",
        "24",
        "27"
      ],
      "assignment": "representative",
      "detail": "models/fleet/tram-jumbotram-4900-revamp-detail.glb",
      "simple": "models/fleet/tram-jumbotram-4900-revamp-simple.glb",
      "paint": "#E4AC35",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-tram-fleet.py",
      "research": "docs/fleet-research/trams.json",
      "sourceUrls": [
        "https://www2.comune.milano.it/documents/20126/464279766/19032608%2B15%2Bincidenti%2Bmezzi%2BATM%2Btram%2Bbidirezionali.pdf/8aa99e1f-0e22-79ac-5f31-b8665294269e?t=1774514285107"
      ],
      "notes": [
        "published dimensions; body-height and pantograph conventions vary; not engineering blueprint",
        "medium: published contemporary enthusiast fleet summary; plausible family compatibility only, not official daily allocations or GTFS vehicle IDs",
        "Three angular high-floor bodies but rebuilt smoother symmetric cab fronts.",
        "Large black framed front windshield and destination matrix on black upper front panel.",
        "Five right-side doors, cream upper window band and ochre lower panels.",
        "Additional roof HVAC boxes; single-arm pantograph, two bellows, four bogies.",
        "Front has very large slanted windshield plus broad black destination panel; six small circular lamps in shallow curved black lamp belt; ochre lower nose with dark centre serial patch.",
        "Standard revamp livery includes a broad brown curved belt fading into ochre, edged by a thin red line; this differs from flat yellow paint on original 4900 repaint."
      ],
      "simulationEligible": true
    },
    {
      "id": "tram-eurotram-7000",
      "label": "ATM 7000 ADtranz/Bombardier Eurotram",
      "mode": "tram",
      "length": 34.105,
      "width": 2.473,
      "height": 3.188,
      "segments": 7,
      "segmentLengths": [
        4.05,
        7.23,
        1.8,
        7.23,
        1.8,
        7.23,
        3.055
      ],
      "anchors": [
        15.027500000000002,
        9.102500000000001,
        4.3025,
        -0.4974999999999996,
        -5.2975,
        -10.0975,
        -15.525
      ],
      "lines": [
        "15"
      ],
      "assignment": "representative",
      "detail": "models/fleet/tram-eurotram-7000-detail.glb",
      "simple": "models/fleet/tram-eurotram-7000-simple.glb",
      "paint": "#398849",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-tram-fleet.py",
      "research": "docs/fleet-research/trams.json",
      "sourceUrls": [
        "https://www.trametreni.it/serie-7000-scheda.html",
        "https://www2.comune.milano.it/documents/20126/464279766/19032608%2B15%2Bincidenti%2Bmezzi%2BATM%2Btram%2Bbidirezionali.pdf/8aa99e1f-0e22-79ac-5f31-b8665294269e?t=1774514285107"
      ],
      "notes": [
        "published dimensions; body-height and pantograph conventions vary; not engineering blueprint",
        "medium: published contemporary enthusiast fleet summary; plausible family compatibility only, not official daily allocations or GTFS vehicle IDs",
        "Seven modules: short bogie modules A,C,E,G alternating long suspended passenger modules B,D,F; six bellows.",
        "Very low broad Zagato nose, strongly sloping panoramic windshield; short cab module A rather than same-length modern tram cab.",
        "Huge panoramic dark windows, green horizontal belts above/below glass, silver grey low skirts; four mostly concealed bogies.",
        "Wide right-side entrance apertures on long suspended modules B,D,F; no passenger doors on left.",
        "One single-arm pantograph over first long suspended module, not tail.",
        "2024 ATM restyling confirmed, yellow-grey scheme proposed; no verified yellow passenger-service photo obtained atcutoff. Model current evidenced green-grey exterior; record yellow as uncertainty.",
        "Rear is almost upright with a large square pane and high route box; paired round red/marker lamps low corners. Do not copy the wedge-shaped driving cab to the tail."
      ],
      "simulationEligible": true
    },
    {
      "id": "tram-sirio-7100",
      "label": "ATM 7100 AnsaldoBreda Sirio lungo",
      "mode": "tram",
      "length": 35.35,
      "width": 2.4,
      "height": 3.414,
      "segments": 7,
      "segmentLengths": [
        6.95,
        3.7,
        4.6,
        3.7,
        4.6,
        3.7,
        6.3
      ],
      "anchors": [
        14.199999999999998,
        8.574999999999998,
        4.124999999999997,
        -0.3250000000000024,
        -4.775000000000002,
        -9.225000000000001,
        -14.525000000000002
      ],
      "lines": [
        "4",
        "7",
        "15",
        "31"
      ],
      "assignment": "representative",
      "detail": "models/fleet/tram-sirio-7100-detail.glb",
      "simple": "models/fleet/tram-sirio-7100-simple.glb",
      "paint": "#E4AC35",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-tram-fleet.py",
      "research": "docs/fleet-research/trams.json",
      "sourceUrls": [
        "https://www.trametreni.it/serie-7100-scheda.html",
        "https://www2.comune.milano.it/documents/20126/464279766/19032608%2B15%2Bincidenti%2Bmezzi%2BATM%2Btram%2Bbidirezionali.pdf/8aa99e1f-0e22-79ac-5f31-b8665294269e?t=1774514285107"
      ],
      "notes": [
        "published dimensions; body-height and pantograph conventions vary; not engineering blueprint",
        "medium: published contemporary enthusiast fleet summary; plausible family compatibility only, not official daily allocations or GTFS vehicle IDs",
        "Seven modules, six articulation bellows, four bogies, low floor.",
        "Pininfarina front has distinctive oval cream ring framing tall dark rounded windshield; six small circular front lamps beneath windshield; yellow rounded lower skirt with central open coupling recess.",
        "Five right-side access apertures (front/tail narrower, three suspended module wide doors), continuous large dark side windows, cream horizontal bands.",
        "End modules longer; short suspended door modules alternate with bogie modules.",
        "Single-arm roof pantograph above first suspended module; sculpted dark slate-grey rounded rooftop pods.",
        "Green-grey original livery is historical; all7100 repainted Giallo Milano during2021–2022 per current fleet article.",
        "Rear differs from driving front: broad almost upright dark pane, no destination glass oval, four paired red/marker lamps low in tail panel; current rear proven by 7131 May 2026 photograph."
      ],
      "simulationEligible": true
    },
    {
      "id": "tram-sirietto-7500-7600",
      "label": "ATM 7500/7600 AnsaldoBreda Sirietto",
      "mode": "tram",
      "length": 26.45,
      "width": 2.4,
      "height": 3.414,
      "segments": 5,
      "segmentLengths": [
        6.95,
        3.7,
        4.6,
        3.7,
        6.3
      ],
      "anchors": [
        9.75,
        4.125,
        -0.3250000000000002,
        -4.775,
        -10.075
      ],
      "lines": [
        "3",
        "9",
        "14",
        "24",
        "27"
      ],
      "assignment": "representative",
      "detail": "models/fleet/tram-sirietto-7500-7600-detail.glb",
      "simple": "models/fleet/tram-sirietto-7500-7600-simple.glb",
      "paint": "#E4AC35",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-tram-fleet.py",
      "research": "docs/fleet-research/trams.json",
      "sourceUrls": [
        "https://www.trametreni.it/serie-7500-7600-scheda.html",
        "https://www2.comune.milano.it/documents/20126/464279766/19032608%2B15%2Bincidenti%2Bmezzi%2BATM%2Btram%2Bbidirezionali.pdf/8aa99e1f-0e22-79ac-5f31-b8665294269e?t=1774514285107"
      ],
      "notes": [
        "published dimensions; body-height and pantograph conventions vary; not engineering blueprint",
        "medium: published contemporary enthusiast fleet summary; plausible family compatibility only, not official daily allocations or GTFS vehicle IDs",
        "Five low-floor modules, four accordion bellows, three bogies.",
        "Same distinctive oval cream ring and six circular lamps as7100; shorter5section vehicle; rear tail is not a second driving cab.",
        "Four right-side access apertures: front, suspended B,D modules and narrower rear-tail doorway. No left doors.",
        "7500 and7600 substantially identical externally; share geometry and vary fleet serial, not invented cab designs.",
        "Dark slate roof pods, one single-arm pantograph, coupling recess low front, low enclosed bogie skirts."
      ],
      "simulationEligible": true
    },
    {
      "id": "tram-tramlink-7700",
      "label": "ATM 7700 Stadler Tramlink (25.4m)",
      "mode": "tram",
      "length": 25.4,
      "width": 2.4,
      "height": 3.685,
      "segments": 3,
      "segmentLengths": [
        8.25,
        8.05,
        8.25
      ],
      "anchors": [
        8.575000000000001,
        0.0,
        -8.575000000000001
      ],
      "lines": [
        "7",
        "9",
        "31"
      ],
      "assignment": "representative",
      "detail": "models/fleet/tram-tramlink-7700-detail.glb",
      "simple": "models/fleet/tram-tramlink-7700-simple.glb",
      "paint": "#E4AC35",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-tram-fleet.py",
      "research": "docs/fleet-research/trams.json",
      "sourceUrls": [
        "https://www.stadlerrail.com/api/docs/x/12200f13c1/datenblatt-tramlink-milan.pdf",
        "https://www2.comune.milano.it/documents/20126/464279766/19032608%2B15%2Bincidenti%2Bmezzi%2BATM%2Btram%2Bbidirezionali.pdf/8aa99e1f-0e22-79ac-5f31-b8665294269e?t=1774514285107"
      ],
      "notes": [
        "published dimensions; body-height and pantograph conventions vary; not engineering blueprint",
        "high for 7 and31 debut via ATM; medium for9 current service via Jan2026 contemporary report and Aug2026 secondary summary",
        "Three long low-floor sections, two bellows and real driving cab at both ends.",
        "Ivory wraparound upper cab ring, yellow bumper/lower skirt, tall dark curved/sloping windshield, vertically oriented white L-shaped LED strips at lower windshield corners.",
        "Three doors on each side; mirror door layout appropriate to bidirectional service.",
        "Large side panoramic windows, dark uninterrupted glazing band, yellow skirts.",
        "Single-arm pantograph above end module; roof has low black rectangular electrical/HVAC equipment. Two pantographs may be fitted, normally one raised; exact roof layout must follow real photos, not invented symmetrical duplication."
      ],
      "simulationEligible": true
    },
    {
      "id": "metro-m1-revamp",
      "label": "M1 legacy Revamping · M1",
      "mode": "metro",
      "length": 105.24,
      "width": 2.85,
      "height": 3.51,
      "segments": 6,
      "segmentLengths": [
        17.54,
        17.54,
        17.54,
        17.54,
        17.54,
        17.54
      ],
      "anchors": [
        43.85,
        26.31,
        8.77,
        -8.77,
        -26.31,
        -43.85
      ],
      "lines": [
        "M1"
      ],
      "assignment": "documented",
      "detail": "models/fleet/metro-m1-revamp-detail.glb",
      "simple": "models/fleet/metro-m1-revamp-simple.glb",
      "paint": "#B8202A",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-metro-fleet.py",
      "research": "docs/fleet-research/metro.json",
      "sourceUrls": [
        "https://it.wikipedia.org/wiki/Elettromotrici_della_linea_1_della_metropolitana_di_Milano"
      ],
      "notes": [
        "Secondary source original car dimensions; total consist length calculated as 6 × 17.54 m. Added revamp roof equipment envelope not independently dimensioned.",
        "Broad left/right windshield panes flank a narrow central front access door; rounded cab corners and vertically paired circular lights in recessed oval housings.",
        "Light grey body, red/maroon belt below side windows with repeated white 1 logos. Four double plug doors per side per car; revamp roof ventilation/HVAC and inter-car gangways.",
        "Current surviving lots 4–5 and 7–9 share a legacy silhouette but differ in details; lots 4–5 have diamond pantographs, lots 7–9 single-arm. Pantographs stay folded in normal M1 operation.",
        "Six full-size cars; model 105 m train proportions rather than a 40–50 m short train.",
        "Legacy motor cars also have cab ends at the middle coupling between the two three-car units; retain the internal cab side-window/coupler differences."
      ],
      "simulationEligible": true
    },
    {
      "id": "metro-meneghino-m1",
      "label": "AnsaldoBreda/Firema Meneghino · M1",
      "mode": "metro",
      "length": 105.5,
      "width": 2.85,
      "height": 3.6,
      "segments": 6,
      "segmentLengths": [
        17.5833333,
        17.5833333,
        17.5833333,
        17.5833333,
        17.5833333,
        17.5833333
      ],
      "anchors": [
        43.9583333,
        26.375,
        8.7916667,
        -8.7916667,
        -26.375,
        -43.9583333
      ],
      "lines": [
        "M1"
      ],
      "assignment": "documented",
      "detail": "models/fleet/metro-meneghino-m1-detail.glb",
      "simple": "models/fleet/metro-meneghino-m1-simple.glb",
      "paint": "#C63537",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-metro-fleet.py",
      "research": "docs/fleet-research/metro.json",
      "sourceUrls": [
        "https://www.hitachirail.com/products-and-solutions/rolling-stock/metro-trains/meneghino-metro/"
      ],
      "notes": [
        "manufacturer length/width; height provisional estimate",
        "Angular front with a tall narrow central door, two large windscreens either side, wipers and rectangular lower headlight housings; dark graphite upper cab header above the glass, silver lower face, exposed central coupler.",
        "Silver/light-grey lower body with dark upper window band; red surrounds/vertical edges at passenger-door glazing and vertical cab shoulder stripes. Lower door panels stay silver-grey, not fully line-colored.",
        "Six full-size cars Rp-M1-M2-M2-M1-Rp; four double doors per side per car; 12 bogies in total."
      ],
      "simulationEligible": true
    },
    {
      "id": "metro-meneghino-m2",
      "label": "AnsaldoBreda/Firema Meneghino · M2",
      "mode": "metro",
      "length": 105.5,
      "width": 2.85,
      "height": 3.6,
      "segments": 6,
      "segmentLengths": [
        17.5833333,
        17.5833333,
        17.5833333,
        17.5833333,
        17.5833333,
        17.5833333
      ],
      "anchors": [
        43.9583333,
        26.375,
        8.7916667,
        -8.7916667,
        -26.375,
        -43.9583333
      ],
      "lines": [
        "M2"
      ],
      "assignment": "documented",
      "detail": "models/fleet/metro-meneghino-m2-detail.glb",
      "simple": "models/fleet/metro-meneghino-m2-simple.glb",
      "paint": "#73AD37",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-metro-fleet.py",
      "research": "docs/fleet-research/metro.json",
      "sourceUrls": [
        "https://www.hitachirail.com/products-and-solutions/rolling-stock/metro-trains/meneghino-metro/"
      ],
      "notes": [
        "manufacturer length/width; height provisional estimate",
        "Angular front with a tall narrow central door, two large windscreens either side, wipers and rectangular lower headlight housings; dark graphite upper cab header above the glass, silver lower face, exposed central coupler.",
        "Silver/light-grey lower body with dark upper window band; bright yellow/lime green surrounds/vertical edges at passenger-door glazing and vertical cab shoulder stripes. Lower door panels stay silver-grey, not fully line-colored.",
        "Six full-size cars Rp-M1-M2-M2-M1-Rp; four double doors per side per car; 12 bogies in total."
      ],
      "simulationEligible": true
    },
    {
      "id": "metro-meneghino-m3",
      "label": "AnsaldoBreda/Firema Meneghino · M3",
      "mode": "metro",
      "length": 105.5,
      "width": 2.85,
      "height": 3.6,
      "segments": 6,
      "segmentLengths": [
        17.5833333,
        17.5833333,
        17.5833333,
        17.5833333,
        17.5833333,
        17.5833333
      ],
      "anchors": [
        43.9583333,
        26.375,
        8.7916667,
        -8.7916667,
        -26.375,
        -43.9583333
      ],
      "lines": [
        "M3"
      ],
      "assignment": "documented",
      "detail": "models/fleet/metro-meneghino-m3-detail.glb",
      "simple": "models/fleet/metro-meneghino-m3-simple.glb",
      "paint": "#EFC838",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-metro-fleet.py",
      "research": "docs/fleet-research/metro.json",
      "sourceUrls": [
        "https://www.hitachirail.com/products-and-solutions/rolling-stock/metro-trains/meneghino-metro/"
      ],
      "notes": [
        "manufacturer length/width; height provisional estimate",
        "Angular front with a tall narrow central door, two large windscreens either side, wipers and rectangular lower headlight housings; dark graphite upper cab header above the glass, silver lower face, exposed central coupler.",
        "Silver/light-grey lower body with dark upper window band; yellow surrounds/vertical edges at passenger-door glazing and vertical cab shoulder stripes. Lower door panels stay silver-grey, not fully line-colored.",
        "Six full-size cars Rp-M1-M2-M2-M1-Rp; four double doors per side per car; 12 bogies in total."
      ],
      "simulationEligible": true
    },
    {
      "id": "metro-leonardo-m1",
      "label": "Hitachi/AnsaldoBreda Leonardo · M1",
      "mode": "metro",
      "length": 106.94,
      "width": 2.85,
      "height": 3.6,
      "segments": 6,
      "segmentLengths": [
        17.8233333,
        17.8233333,
        17.8233333,
        17.8233333,
        17.8233333,
        17.8233333
      ],
      "anchors": [
        44.5583333,
        26.735,
        8.9116667,
        -8.9116667,
        -26.735,
        -44.5583333
      ],
      "lines": [
        "M1"
      ],
      "assignment": "documented",
      "detail": "models/fleet/metro-leonardo-m1-detail.glb",
      "simple": "models/fleet/metro-leonardo-m1-simple.glb",
      "paint": "#D73035",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-metro-fleet.py",
      "research": "docs/fleet-research/metro.json",
      "sourceUrls": [
        "https://www.hitachirail.com/products-and-solutions/rolling-stock/metro-trains/milan-metro-leonardo-line-12/"
      ],
      "notes": [
        "Manufacturer full-train length/width; 3.6 m envelope corroborated by the ATM vehicle drawing reproduced in railway architecture paper Figure 7.",
        "Distinct octagonal/trapezoidal black front mask outlined in white/off-white on the standard full-color livery; narrow central access door with windshield panes on either side and two visible wipers. Low circular LED housings with round center lamps and bright semicircular upper LED elements.",
        "Standard full-red side body, white full-door opening outlines and red lower door panels inside those outlines; thin white lower bodyside stripe. Do not turn the entire door into a silver panel. Black alternate skins instead use dark doors with line-colored full outlines.",
        "Six cars M1-R-M2-M2-R-M1; four double doors per side per car and 12 conventional bogies. Leonardo is used on M1/M2, not M3.",
        "Black-bodied alternate livery is separately cataloged with the same geometry."
      ],
      "simulationEligible": true
    },
    {
      "id": "metro-leonardo-m2",
      "label": "Hitachi/AnsaldoBreda Leonardo · M2",
      "mode": "metro",
      "length": 106.94,
      "width": 2.85,
      "height": 3.6,
      "segments": 6,
      "segmentLengths": [
        17.8233333,
        17.8233333,
        17.8233333,
        17.8233333,
        17.8233333,
        17.8233333
      ],
      "anchors": [
        44.5583333,
        26.735,
        8.9116667,
        -8.9116667,
        -26.735,
        -44.5583333
      ],
      "lines": [
        "M2"
      ],
      "assignment": "documented",
      "detail": "models/fleet/metro-leonardo-m2-detail.glb",
      "simple": "models/fleet/metro-leonardo-m2-simple.glb",
      "paint": "#7DB441",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-metro-fleet.py",
      "research": "docs/fleet-research/metro.json",
      "sourceUrls": [
        "https://www.hitachirail.com/products-and-solutions/rolling-stock/metro-trains/milan-metro-leonardo-line-12/"
      ],
      "notes": [
        "Manufacturer full-train length/width; 3.6 m envelope corroborated by the ATM vehicle drawing reproduced in railway architecture paper Figure 7.",
        "Distinct octagonal/trapezoidal black front mask outlined in white/off-white on the standard full-color livery; narrow central access door with windshield panes on either side and two visible wipers. Low circular LED housings with round center lamps and bright semicircular upper LED elements.",
        "Standard full-green side body, white full-door opening outlines and green lower door panels inside those outlines; thin white lower bodyside stripe. Do not turn the entire door into a silver panel. Black alternate skins instead use dark doors with line-colored full outlines.",
        "Six cars M1-R-M2-M2-R-M1; four double doors per side per car and 12 conventional bogies. Leonardo is used on M1/M2, not M3.",
        "Black-bodied alternate livery is separately cataloged with the same geometry."
      ],
      "simulationEligible": true
    },
    {
      "id": "metro-m3-8000",
      "label": "M3 traditional series 8000/9000 · M3",
      "mode": "metro",
      "length": 105,
      "width": 2.85,
      "height": 3.55,
      "segments": 6,
      "segmentLengths": [
        17.5,
        17.5,
        17.5,
        17.5,
        17.5,
        17.5
      ],
      "anchors": [
        43.75,
        26.25,
        8.75,
        -8.75,
        -26.25,
        -43.75
      ],
      "lines": [
        "M3"
      ],
      "assignment": "documented",
      "detail": "models/fleet/metro-m3-8000-detail.glb",
      "simple": "models/fleet/metro-m3-8000-simple.glb",
      "paint": "#E8BE2D",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-metro-fleet.py",
      "research": "docs/fleet-research/metro.json",
      "sourceUrls": [
        "https://it.wikipedia.org/wiki/Elettromotrici_della_linea_3_della_metropolitana_di_Milano"
      ],
      "notes": [
        "secondary source length; width/height estimates pending corroboration",
        "Upright angular cab with broad black front mask. Narrow central front access door with a visible handle/seam, flanked by two larger windshield panes and wipers. Yellow horizontal belt crosses the central door.",
        "Light grey/silver side body, yellow belt across the bottom of the window glazing; double door panels remain grey/silver, not solid yellow. Four double doors per side per car; 12 conventional bogies.",
        "Low headlight clusters at either front corner and exposed central coupler. Historical photos show older lights; ATM general revision completed March 2021 changed optics/front details.",
        "First lot has no walk-through gangway and no roof air-conditioning; original destination matrix. Represent current revised interior/lights without inventing 8100 roof units.",
        "Legacy motor cars also have cab ends at the middle coupling between the two three-car units; retain the internal cab side-window/coupler differences.",
        "Legacy M3 front-specific paint: yellow horizontal belt immediately below front windscreens, crossing the central access-door handle area. Broad black front mask continues below that belt and surrounds both rectangular light groups; silver lower sill/bumper cheeks remain below. Do not reuse the lower M1 Revamp belt placement or isolated lights on a silver face."
      ],
      "simulationEligible": true
    },
    {
      "id": "metro-m3-8100",
      "label": "M3 traditional series 8100/9100 (2003 second lot) · M3",
      "mode": "metro",
      "length": 105,
      "width": 2.85,
      "height": 3.55,
      "segments": 6,
      "segmentLengths": [
        17.5,
        17.5,
        17.5,
        17.5,
        17.5,
        17.5
      ],
      "anchors": [
        43.75,
        26.25,
        8.75,
        -8.75,
        -26.25,
        -43.75
      ],
      "lines": [
        "M3"
      ],
      "assignment": "documented",
      "detail": "models/fleet/metro-m3-8100-detail.glb",
      "simple": "models/fleet/metro-m3-8100-simple.glb",
      "paint": "#E8BE2D",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-metro-fleet.py",
      "research": "docs/fleet-research/metro.json",
      "sourceUrls": [
        "https://it.wikipedia.org/wiki/Elettromotrici_della_linea_3_della_metropolitana_di_Milano"
      ],
      "notes": [
        "secondary source length; width/height estimates pending corroboration",
        "Upright angular cab with broad black front mask. Narrow central front access door with a visible handle/seam, flanked by two larger windshield panes and wipers. Yellow horizontal belt crosses the central door.",
        "Light grey/silver side body, yellow belt across the bottom of the window glazing; double door panels remain grey/silver, not solid yellow. Four double doors per side per car; 12 conventional bogies.",
        "Low headlight clusters at either front corner and exposed central coupler. Historical photos show older lights; ATM general revision completed March 2021 changed optics/front details.",
        "Second lot has rooftop HVAC modules, black inter-car walk-through bellows and orange LED destination display; same basic legacy cab form, a roof/gangway variant rather than a different body length.",
        "Legacy motor cars also have cab ends at the middle coupling between the two three-car units; retain the internal cab side-window/coupler differences.",
        "Legacy M3 front-specific paint: yellow horizontal belt immediately below front windscreens, crossing the central access-door handle area. Broad black front mask continues below that belt and surrounds both rectangular light groups; silver lower sill/bumper cheeks remain below. Do not reuse the lower M1 Revamp belt placement or isolated lights on a silver face."
      ],
      "simulationEligible": true
    },
    {
      "id": "metro-m4-driverless",
      "label": "Hitachi Rail M4 driverless · M4",
      "mode": "metro",
      "length": 50.9,
      "width": 2.65,
      "height": 3.4,
      "segments": 4,
      "segmentLengths": [
        13.8589109,
        11.5910891,
        11.5910891,
        13.8589109
      ],
      "anchors": [
        18.5205446,
        5.7955446,
        -5.7955446,
        -18.5205446
      ],
      "lines": [
        "M4"
      ],
      "assignment": "documented",
      "detail": "models/fleet/metro-m4-driverless-detail.glb",
      "simple": "models/fleet/metro-m4-driverless-simple.glb",
      "paint": "#416FA4",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-metro-fleet.py",
      "research": "docs/fleet-research/metro.json",
      "sourceUrls": [
        "https://www.hitachirail.com/products-and-solutions/rolling-stock/driverless-trains/milan-line-4/"
      ],
      "notes": [
        "manufacturer length/width; height provisional estimate",
        "Four articulated short cars on five bogies (two outer and three shared); two double doors per side per car. End sections include the long curved noses and are longer than the middle sections.",
        "Large rounded rectangular panoramic front glazing, without central front access door or driving cab; orange destination LED and paired white lamps below the window. Identical functional panoramic ends.",
        "Dark navy upper body around side glazing and panoramic end shoulders, light grey lower body and door panels; rounded grey nose cheeks.",
        "750 V DC third-rail power: no pantograph, no roof catenary pickup. Keep distinction from the six-car M1/M2/M3 families.",
        "The driverless end section has normal large passenger side windows, not miniature driver-cab windows. M4 side photograph 4402B shows two passenger windows after the nearest door, then a solid navy nose-side panel with pale oval graphics.",
        "Destination display and paired headlights are contained in a continuous dark lower-front mask immediately under the panoramic glass; do not separate them into isolated black blocks on a silver bridge."
      ],
      "simulationEligible": true
    },
    {
      "id": "metro-m5-driverless",
      "label": "AnsaldoBreda/Hitachi Rail M5 driverless · M5",
      "mode": "metro",
      "length": 50.5,
      "width": 2.65,
      "height": 3.7,
      "segments": 4,
      "segmentLengths": [
        13.75,
        11.5,
        11.5,
        13.75
      ],
      "anchors": [
        18.375,
        5.75,
        -5.75,
        -18.375
      ],
      "lines": [
        "M5"
      ],
      "assignment": "documented",
      "detail": "models/fleet/metro-m5-driverless-detail.glb",
      "simple": "models/fleet/metro-m5-driverless-simple.glb",
      "paint": "#A58BB7",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-metro-fleet.py",
      "research": "docs/fleet-research/metro.json",
      "sourceUrls": [
        "https://www.hitachirail.com/products-and-solutions/rolling-stock/driverless-trains/milan-line-5/"
      ],
      "notes": [
        "Manufacturer full-train length/width; height, five bogies and 2 m bogie wheelbase corroborated by ATM drawing/engineering paper.",
        "Four articulated short cars on five bogies (two outer and three shared); two double doors per side per car. End sections include the long curved noses and are longer than the middle sections.",
        "Large rounded rectangular panoramic front glazing, without central front access door or driving cab; orange destination LED and paired white lamps below the window. Identical functional panoramic ends.",
        "Silver-grey body, broad purple/lilac lower belt below windows, silver-grey double doors. Grey nose cheeks, thin purple nose belt and black ribbed lower bumper.",
        "750 V DC third-rail power: no pantograph, no roof catenary pickup. Keep distinction from the six-car M1/M2/M3 families.",
        "The driverless end section has normal large passenger side windows, not miniature driver-cab windows. M4 side photograph 4402B shows two passenger windows after the nearest door, then a solid navy nose-side panel with pale oval graphics.",
        "Destination display and paired headlights are contained in a continuous dark lower-front mask immediately under the panoramic glass; do not separate them into isolated black blocks on a silver bridge."
      ],
      "simulationEligible": true
    },
    {
      "id": "metro-leonardo-m1-black",
      "label": "Hitachi/AnsaldoBreda Leonardo (black-bodied livery) · M1",
      "mode": "metro",
      "length": 106.94,
      "width": 2.85,
      "height": 3.6,
      "segments": 6,
      "segmentLengths": [
        17.8233333,
        17.8233333,
        17.8233333,
        17.8233333,
        17.8233333,
        17.8233333
      ],
      "anchors": [
        44.5583333,
        26.735,
        8.9116667,
        -8.9116667,
        -26.735,
        -44.5583333
      ],
      "lines": [
        "M1"
      ],
      "assignment": "documented",
      "detail": "models/fleet/metro-leonardo-m1-black-detail.glb",
      "simple": "models/fleet/metro-leonardo-m1-black-simple.glb",
      "paint": "#D73035",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-metro-fleet.py",
      "research": "docs/fleet-research/metro.json",
      "sourceUrls": [
        "https://www.hitachirail.com/products-and-solutions/rolling-stock/metro-trains/milan-metro-leonardo-line-12/"
      ],
      "notes": [
        "Manufacturer full-train length/width; 3.6 m envelope corroborated by the ATM vehicle drawing reproduced in railway architecture paper Figure 7.",
        "Distinct octagonal/trapezoidal black front mask outlined in red; narrow central access door with windshield panes on either side and two visible wipers. Low circular/oval headlight housings with round lamp elements.",
        "Dark charcoal/black bodyside; dark metallic-grey door panels with red outlines around the full door openings. Front-mask outline has the same line color. Thin white lower stripe.",
        "Six cars M1-R-M2-M2-R-M1; four double doors per side per car and 12 conventional bogies. Leonardo is used on M1/M2, not M3.",
        "Paint/material variation only; exact geometry and mechanical dimensions shared with the standard Leonardo of the same line."
      ],
      "simulationEligible": true
    },
    {
      "id": "metro-leonardo-m2-black",
      "label": "Hitachi/AnsaldoBreda Leonardo (black-bodied livery) · M2",
      "mode": "metro",
      "length": 106.94,
      "width": 2.85,
      "height": 3.6,
      "segments": 6,
      "segmentLengths": [
        17.8233333,
        17.8233333,
        17.8233333,
        17.8233333,
        17.8233333,
        17.8233333
      ],
      "anchors": [
        44.5583333,
        26.735,
        8.9116667,
        -8.9116667,
        -26.735,
        -44.5583333
      ],
      "lines": [
        "M2"
      ],
      "assignment": "documented",
      "detail": "models/fleet/metro-leonardo-m2-black-detail.glb",
      "simple": "models/fleet/metro-leonardo-m2-black-simple.glb",
      "paint": "#5CC346",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-metro-fleet.py",
      "research": "docs/fleet-research/metro.json",
      "sourceUrls": [
        "https://www.hitachirail.com/products-and-solutions/rolling-stock/metro-trains/milan-metro-leonardo-line-12/"
      ],
      "notes": [
        "Manufacturer full-train length/width; 3.6 m envelope corroborated by the ATM vehicle drawing reproduced in railway architecture paper Figure 7.",
        "Distinct octagonal/trapezoidal black front mask outlined in green; narrow central access door with windshield panes on either side and two visible wipers. Low circular/oval headlight housings with round lamp elements.",
        "Dark charcoal/black bodyside; dark metallic-grey door panels with bright green outlines around the full door openings. Front-mask outline has the same line color. Thin white lower stripe.",
        "Six cars M1-R-M2-M2-R-M1; four double doors per side per car and 12 conventional bogies. Leonardo is used on M1/M2, not M3.",
        "Paint/material variation only; exact geometry and mechanical dimensions shared with the standard Leonardo of the same line."
      ],
      "simulationEligible": true
    },
    {
      "id": "solaris-urbino12-electric-iv",
      "label": "Solaris Urbino IV 12 electric (2017–18 front)",
      "mode": "bus",
      "length": 12.0,
      "width": 2.55,
      "height": 3.3,
      "segments": 1,
      "segmentLengths": [
        12.0
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "34",
        "35",
        "38",
        "39",
        "40",
        "41",
        "42",
        "43",
        "44",
        "45",
        "46",
        "47",
        "48",
        "49",
        "50",
        "51",
        "52",
        "53",
        "54",
        "55",
        "56",
        "57",
        "58",
        "59",
        "60",
        "61",
        "62",
        "63",
        "64",
        "65",
        "66",
        "67",
        "68",
        "69",
        "70",
        "71",
        "74",
        "76",
        "77",
        "78",
        "79",
        "80",
        "81",
        "82",
        "83",
        "84",
        "85",
        "86",
        "87",
        "88",
        "89",
        "95",
        "96",
        "98",
        "99",
        "121",
        "130",
        "132",
        "140",
        "161",
        "165",
        "166",
        "169",
        "171",
        "172",
        "174",
        "175",
        "176",
        "222",
        "230",
        "321",
        "322",
        "323",
        "324",
        "325",
        "326",
        "327",
        "351",
        "423",
        "424",
        "433",
        "528",
        "542",
        "560",
        "566",
        "705",
        "708",
        "713",
        "728",
        "729",
        "783",
        "901",
        "902",
        "903",
        "923",
        "924",
        "925",
        "928",
        "965",
        "973",
        "N15",
        "N24",
        "N25",
        "N26",
        "N27",
        "NM1",
        "NM2",
        "NM3",
        "NM4"
      ],
      "assignment": "representative",
      "detail": "models/fleet/solaris-urbino12-electric-iv-detail.glb",
      "simple": "models/fleet/solaris-urbino12-electric-iv-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-electric.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/autobus/ATMmilanoAutobus2010-2034.php",
        "https://www.solarisbus.com/en/press/solaris-celebrates-25-000-vehicles-produced-and-the-25th-anniversary-of-the-launch-of-the-urbino-brand-2168",
        "https://www.solarisbus.com/public/assets/content/pojazdy/katalog/EN_napdy_alternatywne.pdf"
      ],
      "notes": [
        "Manufacturer envelope where cited. Roof height and section split provisional until drawing/QA. Height excludes extended trolley poles.",
        "Original IV front before facelift; three doors; rooftop battery fairings; black window ribbon; lime plug-and-vine decoration. The actual 2010 frontal reference already has white angular corner frames, two upper round main lamps, outer amber indicators and a horizontal lower DRL strip. Do not substitute an invented classic III-generation face.",
        "Representative standard 12 m urban class, excludes the 15 documented Radiobus di Quartiere minibus routes; actual 2026 model allocation unavailable."
      ],
      "simulationEligible": true
    },
    {
      "id": "solaris-urbino12-electric-facelift",
      "label": "Solaris Urbino IV 12 electric facelift",
      "mode": "bus",
      "length": 12.0,
      "width": 2.55,
      "height": 3.3,
      "segments": 1,
      "segmentLengths": [
        12.0
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "34",
        "35",
        "38",
        "39",
        "40",
        "41",
        "42",
        "43",
        "44",
        "45",
        "46",
        "47",
        "48",
        "49",
        "50",
        "51",
        "52",
        "53",
        "54",
        "55",
        "56",
        "57",
        "58",
        "59",
        "60",
        "61",
        "62",
        "63",
        "64",
        "65",
        "66",
        "67",
        "68",
        "69",
        "70",
        "71",
        "74",
        "76",
        "77",
        "78",
        "79",
        "80",
        "81",
        "82",
        "83",
        "84",
        "85",
        "86",
        "87",
        "88",
        "89",
        "95",
        "96",
        "98",
        "99",
        "121",
        "130",
        "132",
        "140",
        "161",
        "165",
        "166",
        "169",
        "171",
        "172",
        "174",
        "175",
        "176",
        "222",
        "230",
        "321",
        "322",
        "323",
        "324",
        "325",
        "326",
        "327",
        "351",
        "423",
        "424",
        "433",
        "528",
        "542",
        "560",
        "566",
        "705",
        "708",
        "713",
        "728",
        "729",
        "783",
        "901",
        "902",
        "903",
        "923",
        "924",
        "925",
        "928",
        "965",
        "973",
        "N15",
        "N24",
        "N25",
        "N26",
        "N27",
        "NM1",
        "NM2",
        "NM3",
        "NM4"
      ],
      "assignment": "representative",
      "detail": "models/fleet/solaris-urbino12-electric-facelift-detail.glb",
      "simple": "models/fleet/solaris-urbino12-electric-facelift-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-electric.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/autobus/ATMmilanoAutobus2040-2078.php",
        "https://www.solarisbus.com/en/press/solaris-celebrates-25-000-vehicles-produced-and-the-25th-anniversary-of-the-launch-of-the-urbino-brand-2168",
        "https://www.solarisbus.com/public/assets/content/pojazdy/katalog/EN_napdy_alternatywne.pdf"
      ],
      "notes": [
        "Manufacturer envelope where cited. Roof height and section split provisional until drawing/QA. Height excludes extended trolley poles.",
        "Angular black nose; white boomerang lower-corner lights, roof battery fairings; three doors; rear vertical grille; opportunity charging arm belongs to charger, not a permanently raised pantograph mounted on bus.",
        "Representative standard 12 m urban class, excludes the 15 documented Radiobus di Quartiere minibus routes; actual 2026 model allocation unavailable."
      ],
      "simulationEligible": true
    },
    {
      "id": "solaris-urbino18-electric",
      "label": "Solaris Urbino IV 18 electric",
      "mode": "bus",
      "length": 18.0,
      "width": 2.55,
      "height": 3.3,
      "segments": 2,
      "segmentLengths": [
        10.34,
        6.96
      ],
      "anchors": [
        3.83,
        -5.52
      ],
      "lines": [
        "728"
      ],
      "assignment": "representative",
      "detail": "models/fleet/solaris-urbino18-electric-detail.glb",
      "simple": "models/fleet/solaris-urbino18-electric-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-electric.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/autosnodati/ATMmilanoAutosnodati5000-5104.php",
        "https://www.solarisbus.com/en/press/105-electric-buses-to-go-to-milan-2077",
        "https://www.atm.it/it/IlGruppo/Financial_information/Documents/Relazione%20Annuale%20Integrata%20Gruppo%20ATM%2012_2025.pdf"
      ],
      "notes": [
        "Manufacturer envelope where cited. Roof height and section split provisional until drawing/QA. Height excludes extended trolley poles.",
        "Delivered from 2025; four doors; broad green roof battery covers; do not represent hydrogen Urbino 18.",
        "TPL actual 5000 and 5005 photos show 728 Bignami M5; other articulated-electric assignments require route/class evidence. Do not inherit diesel 18 m pool. Photo capture date not supplied."
      ],
      "simulationEligible": true
    },
    {
      "id": "solaris-urbino12-diesel",
      "label": "Solaris Urbino III 12 diesel Euro VI",
      "mode": "bus",
      "length": 12.0,
      "width": 2.55,
      "height": 3.04,
      "segments": 1,
      "segmentLengths": [
        12.0
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "34",
        "35",
        "39",
        "40",
        "41",
        "43",
        "46",
        "47",
        "48",
        "49",
        "52",
        "53",
        "55",
        "56",
        "57",
        "59",
        "63",
        "64",
        "65",
        "66",
        "67",
        "68",
        "69",
        "70",
        "71",
        "74",
        "76",
        "78",
        "79",
        "80",
        "83",
        "89",
        "95",
        "98",
        "99",
        "121",
        "130",
        "161",
        "165",
        "166",
        "169",
        "171",
        "172",
        "174",
        "175",
        "222",
        "230",
        "321",
        "322",
        "323",
        "324",
        "325",
        "326",
        "351",
        "423",
        "424",
        "433",
        "528",
        "542",
        "560",
        "566",
        "705",
        "708",
        "713",
        "728",
        "729",
        "783",
        "923",
        "924",
        "925",
        "928",
        "965",
        "973",
        "N15",
        "N24",
        "N25",
        "N26",
        "N27",
        "NM1",
        "NM2",
        "NM3",
        "NM4"
      ],
      "assignment": "representative",
      "detail": "models/fleet/solaris-urbino12-diesel-detail.glb",
      "simple": "models/fleet/solaris-urbino12-diesel-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-diesel.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/autobus/ATMmilanoAutobus6600-6684.php"
      ],
      "notes": [
        "Manufacturer envelope where cited. Roof height and section split provisional until drawing/QA. Height excludes extended trolley poles.",
        "III body; distinctly different windscreen and lamp assemblies from IV electric; standard green/silver ATM livery; low AC roof box. Linked actual 6600/6602 images inspected; III face has asymmetrical windshield outline, broad silver horizontal trapezoidal lamp pockets containing four circular lamps per side, plus one low round fog lamp per side.",
        "Representative standard 12 m urban class, excludes the 15 documented Radiobus di Quartiere minibus routes; actual 2026 model allocation unavailable."
      ],
      "simulationEligible": true
    },
    {
      "id": "iveco-urbanway12",
      "label": "Iveco Urbanway 12 diesel",
      "mode": "bus",
      "length": 12,
      "width": 2.5,
      "height": 3.066,
      "segments": 1,
      "segmentLengths": [
        12.0
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "34",
        "35",
        "39",
        "40",
        "41",
        "43",
        "46",
        "47",
        "48",
        "49",
        "52",
        "53",
        "55",
        "56",
        "57",
        "59",
        "63",
        "64",
        "65",
        "66",
        "67",
        "68",
        "69",
        "70",
        "71",
        "74",
        "76",
        "78",
        "79",
        "80",
        "83",
        "89",
        "95",
        "98",
        "99",
        "121",
        "130",
        "161",
        "165",
        "166",
        "169",
        "171",
        "172",
        "174",
        "175",
        "222",
        "230",
        "321",
        "322",
        "323",
        "324",
        "325",
        "326",
        "351",
        "423",
        "424",
        "433",
        "528",
        "542",
        "560",
        "566",
        "705",
        "708",
        "713",
        "728",
        "729",
        "783",
        "923",
        "924",
        "925",
        "928",
        "965",
        "973",
        "N15",
        "N24",
        "N25",
        "N26",
        "N27",
        "NM1",
        "NM2",
        "NM3",
        "NM4"
      ],
      "assignment": "representative",
      "detail": "models/fleet/iveco-urbanway12-detail.glb",
      "simple": "models/fleet/iveco-urbanway12-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-diesel.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/autobus/ATMmilanoAutobus6400-6482.php",
        "https://www.ivecobus.com/asia-en/-/media/IvecoBus/International/Urbanway-2024.pdf?rev=11ece1371a934b498efcaf8b2f3300af",
        "https://www.tplitalia.it/produttori/Irisbus-IvecoBus/IvecoBus-Urbanway-Tector7-12m-tec-DTUR092020.pdf"
      ],
      "notes": [
        "Manufacturer envelope where cited. Roof height and section split provisional until drawing/QA. Height excludes extended trolley poles.",
        "2014 generation face: prominent silver moustache Iveco bar, rectangular stacked lamps below; three right doors; rear engine grille.",
        "Representative standard 12 m urban class; exclude articulated/minibus routes. Exact 2026 model allocation is unavailable. The photo on route 61 is historical: AMAT 2025 now lists route 61 as Full Electric, so exclude Urbanway diesel from that route."
      ],
      "simulationEligible": true
    },
    {
      "id": "iveco-urbanway12-hybrid",
      "label": "Iveco Urbanway 12 full hybrid",
      "mode": "bus",
      "length": 12,
      "width": 2.5,
      "height": 3.291,
      "segments": 1,
      "segmentLengths": [
        12.0
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "34",
        "35",
        "39",
        "40",
        "41",
        "43",
        "46",
        "47",
        "48",
        "49",
        "52",
        "53",
        "55",
        "56",
        "57",
        "59",
        "63",
        "64",
        "65",
        "66",
        "67",
        "68",
        "69",
        "70",
        "71",
        "74",
        "76",
        "78",
        "79",
        "80",
        "83",
        "89",
        "95",
        "98",
        "99",
        "121",
        "130",
        "161",
        "165",
        "166",
        "169",
        "171",
        "172",
        "174",
        "175",
        "222",
        "230",
        "321",
        "322",
        "323",
        "324",
        "325",
        "326",
        "351",
        "423",
        "424",
        "433",
        "528",
        "542",
        "560",
        "566",
        "705",
        "708",
        "713",
        "728",
        "729",
        "783",
        "923",
        "924",
        "925",
        "928",
        "965",
        "973",
        "N15",
        "N24",
        "N25",
        "N26",
        "N27",
        "NM1",
        "NM2",
        "NM3",
        "NM4"
      ],
      "assignment": "representative",
      "detail": "models/fleet/iveco-urbanway12-hybrid-detail.glb",
      "simple": "models/fleet/iveco-urbanway12-hybrid-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-diesel.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/autobus/ATMmilanoAutobus6550-6580.php",
        "https://www.ivecobus.com/asia-en/-/media/IvecoBus/International/Urbanway-2024.pdf?rev=11ece1371a934b498efcaf8b2f3300af",
        "https://www.tplitalia.it/produttori/Irisbus-IvecoBus/IvecoBus-Urbanway-Hybrid-12m-tec-DTURHT092020.pdf"
      ],
      "notes": [
        "Manufacturer envelope where cited. Roof height and section split provisional until drawing/QA. Height excludes extended trolley poles.",
        "Same main body as diesel but elevated battery roof fairing. Do not use 2024 mild-hybrid facelift for older ATM full hybrids.",
        "Representative standard 12 m urban class, excludes the 15 documented Radiobus di Quartiere minibus routes; actual 2026 model allocation unavailable."
      ],
      "simulationEligible": true
    },
    {
      "id": "iveco-urbanway18-hybrid",
      "label": "Iveco Urbanway 18 full hybrid",
      "mode": "bus",
      "length": 17.91,
      "width": 2.5,
      "height": 3.291,
      "segments": 2,
      "segmentLengths": [
        9.950000000000001,
        7.379999999999999
      ],
      "anchors": [
        3.9799999999999995,
        -5.265000000000001
      ],
      "lines": [
        "95",
        "67",
        "98"
      ],
      "assignment": "representative",
      "detail": "models/fleet/iveco-urbanway18-hybrid-detail.glb",
      "simple": "models/fleet/iveco-urbanway18-hybrid-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-diesel.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/autosnodati/ATMmilanoAutosnodati1350-1376.php",
        "https://www.ivecobus.com/asia-en/-/media/IvecoBus/International/Urbanway-2024.pdf?rev=11ece1371a934b498efcaf8b2f3300af",
        "https://www.tplitalia.it/produttori/Irisbus-IvecoBus/IvecoBus-Urbanway-Hybrid-18m-tec-DTURHT092020.pdf"
      ],
      "notes": [
        "Manufacturer envelope where cited. Roof height and section split provisional until drawing/QA. Height excludes extended trolley poles.",
        "Two sections/three axles/four doors. Green roof fairing; silver skirt; grey accordion. Retained rear-right side photograph 1973 on 95.",
        "Representative articulated-route pool:95 observed actual photo;67/98 historical 2017 Urbanway introduction. Not an assertion of 2026 day allocation."
      ],
      "simulationEligible": true
    },
    {
      "id": "mercedes-citaro-c2-hybrid",
      "label": "Mercedes-Benz Citaro C2 hybrid urban",
      "mode": "bus",
      "length": 12.135,
      "width": 2.55,
      "height": 3.3,
      "segments": 1,
      "segmentLengths": [
        12.135
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "34",
        "35",
        "39",
        "40",
        "41",
        "43",
        "46",
        "47",
        "48",
        "49",
        "52",
        "53",
        "55",
        "56",
        "57",
        "59",
        "63",
        "64",
        "65",
        "66",
        "67",
        "68",
        "69",
        "70",
        "71",
        "74",
        "76",
        "78",
        "79",
        "80",
        "83",
        "89",
        "95",
        "98",
        "99",
        "121",
        "130",
        "161",
        "165",
        "166",
        "169",
        "171",
        "172",
        "174",
        "175",
        "222",
        "230",
        "321",
        "322",
        "323",
        "324",
        "325",
        "326",
        "351",
        "423",
        "424",
        "433",
        "528",
        "542",
        "560",
        "566",
        "705",
        "708",
        "713",
        "728",
        "729",
        "783",
        "923",
        "924",
        "925",
        "928",
        "965",
        "973",
        "N15",
        "N24",
        "N25",
        "N26",
        "N27",
        "NM1",
        "NM2",
        "NM3",
        "NM4"
      ],
      "assignment": "representative",
      "detail": "models/fleet/mercedes-citaro-c2-hybrid-detail.glb",
      "simple": "models/fleet/mercedes-citaro-c2-hybrid-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-diesel.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/autobus/ATMmilanoAutobus6800-6949.php",
        "https://www.mercedes-benz-bus.com/int/en/models/citaro/facts-citaro.html"
      ],
      "notes": [
        "Manufacturer envelope where cited. Roof height and section split provisional until drawing/QA. Height excludes extended trolley poles.",
        "Almond lamp clusters; green crescent above silver nose; prominent roof AC/hybrid containers; modern C2 face.",
        "Representative standard 12 m urban class, excludes the 15 documented Radiobus di Quartiere minibus routes; actual 2026 model allocation unavailable."
      ],
      "simulationEligible": true
    },
    {
      "id": "mercedes-citaro-facelift12",
      "label": "Mercedes-Benz Citaro facelift suburban / contractor",
      "mode": "bus",
      "length": 11.95,
      "width": 2.55,
      "height": 3.08,
      "segments": 1,
      "segmentLengths": [
        11.95
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "222",
        "230",
        "423",
        "433"
      ],
      "assignment": "representative",
      "detail": "models/fleet/mercedes-citaro-facelift12-detail.glb",
      "simple": "models/fleet/mercedes-citaro-facelift12-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-diesel.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/autobus/ATMmilanoAutobus5900-5929.php",
        "https://milanosudovest.autoguidovie.it/it/l/linee-milano-so/index",
        "https://passionetrasporti.com/mercedes-o530-citaro-c2-3300-3345-autoguidovie/"
      ],
      "notes": [
        "Manufacturer envelope where cited. Roof height and section split provisional until drawing/QA. Height excludes extended trolley poles.",
        "Two-door suburban body. AGI Milano examples 3308,3315,3316,3318 listed in August 2026. Actual AGI original and restyled configurations are green/silver; NET 5900–5943 photographs show a distinct blue/green variant serving external routes. Shared body geometry does not prove operator allocation.",
        "No unit allocation is in GTFS. Keep sampled route observations distinct from simulated assignment."
      ],
      "simulationEligible": true
    },
    {
      "id": "mercedes-citaro-facelift18",
      "label": "Mercedes-Benz Citaro G facelift urban",
      "mode": "bus",
      "length": 17.94,
      "width": 2.55,
      "height": 3.08,
      "segments": 2,
      "segmentLengths": [
        9.966666666666669,
        7.393333333333333
      ],
      "anchors": [
        3.9866666666666664,
        -5.273333333333334
      ],
      "lines": [
        "95",
        "67",
        "98"
      ],
      "assignment": "representative",
      "detail": "models/fleet/mercedes-citaro-facelift18-detail.glb",
      "simple": "models/fleet/mercedes-citaro-facelift18-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-diesel.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/autosnodati/ATMmilanoAutosnodati2900-2929.php"
      ],
      "notes": [
        "Manufacturer envelope where cited. Roof height and section split provisional until drawing/QA. Height excludes extended trolley poles.",
        "Four doors urban; classic rounded facelift nose; long roof AC; grey bellows. Suburban 1300–1324 appears retired in latest fleet listing; excluded.",
        "Representative articulated-route pool:95 observed actual photo;67/98 historical 2017 Urbanway introduction. Not an assertion of 2026 day allocation."
      ],
      "simulationEligible": true
    },
    {
      "id": "mercedes-citaro-c2-suburban",
      "label": "Mercedes-Benz Citaro C2 suburban",
      "mode": "bus",
      "length": 12.135,
      "width": 2.55,
      "height": 3.13,
      "segments": 1,
      "segmentLengths": [
        12.135
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "@catalog"
      ],
      "assignment": "representative",
      "detail": "models/fleet/mercedes-citaro-c2-suburban-detail.glb",
      "simple": "models/fleet/mercedes-citaro-c2-suburban-simple.glb",
      "paint": "#258ac7",
      "status": "uncertain",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-diesel.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/autobus/ATMmilanoAutobus5950-5958.php",
        "https://www.mercedes-benz-bus.com/int/en/models/citaro/facts-citaro.html"
      ],
      "notes": [
        "Manufacturer envelope where cited. Roof height and section split provisional until drawing/QA. Height excludes extended trolley poles.",
        "Two doors; same C2 nose as urban but longer undivided windows and different roof hybrid option; group diesel+hybrid as visually modular variant.",
        "Actual 5950/5951 photos showNET blue/green livery onz 311/z 320, external routes. No Comune-serving allocation verified. Keep out of city simulation."
      ],
      "simulationEligible": false
    },
    {
      "id": "irisbus-citelis12",
      "label": "Irisbus Citelis 12",
      "mode": "bus",
      "length": 11.99,
      "width": 2.5,
      "height": 3.1,
      "segments": 1,
      "segmentLengths": [
        11.99
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "34",
        "35",
        "39",
        "40",
        "41",
        "43",
        "46",
        "47",
        "48",
        "49",
        "52",
        "53",
        "55",
        "56",
        "57",
        "59",
        "63",
        "64",
        "65",
        "66",
        "67",
        "68",
        "69",
        "70",
        "71",
        "74",
        "76",
        "78",
        "79",
        "80",
        "83",
        "89",
        "95",
        "98",
        "99",
        "121",
        "130",
        "161",
        "165",
        "166",
        "169",
        "171",
        "172",
        "174",
        "175",
        "222",
        "230",
        "321",
        "322",
        "323",
        "324",
        "325",
        "326",
        "351",
        "423",
        "424",
        "433",
        "528",
        "542",
        "560",
        "566",
        "705",
        "708",
        "713",
        "728",
        "729",
        "783",
        "923",
        "924",
        "925",
        "928",
        "965",
        "973",
        "N15",
        "N24",
        "N25",
        "N26",
        "N27",
        "NM1",
        "NM2",
        "NM3",
        "NM4"
      ],
      "assignment": "representative",
      "detail": "models/fleet/irisbus-citelis12-detail.glb",
      "simple": "models/fleet/irisbus-citelis12-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-diesel.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/autobus/ATMmilanoAutobus6200-6251.php",
        "https://www.tplitalia.it/produttori/Irisbus-IvecoBus/Irisbus-Citelis-12m-pubIRUS11011008-12-2010.pdf"
      ],
      "notes": [
        "Manufacturer envelope where cited. Roof height and section split provisional until drawing/QA. Height excludes extended trolley poles.",
        "Three doors urban; front rounded triangular silver lamp pods holding round lights; tall curved windscreen; roof AC; black window ribbon; green strip above glass. Linked 6200 photographs are orange/green; licensed 6275/6351 photographs support the modeled green/silver configuration. Do not silently merge these livery variants.",
        "Representative standard 12 m urban class; exclude articulated/minibus routes. Exact 2026 model allocation is unavailable. The photo on route 50 is historical: AMAT 2025 now lists route 50 as Full Electric, so exclude Citelis from that route."
      ],
      "simulationEligible": true
    },
    {
      "id": "irisbus-citelis10",
      "label": "Irisbus Citelis 10.5",
      "mode": "bus",
      "length": 10.46,
      "width": 2.5,
      "height": 3.1,
      "segments": 1,
      "segmentLengths": [
        10.46
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "@catalog"
      ],
      "assignment": "representative",
      "detail": "models/fleet/irisbus-citelis10-detail.glb",
      "simple": "models/fleet/irisbus-citelis10-simple.glb",
      "paint": "#278438",
      "status": "uncertain",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-diesel.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/autobus/ATMmilanoAutobus6110.php",
        "https://www.tplitalia.it/produttori/Irisbus-IvecoBus/Irisbus-Citelis-10-5m-pubIRUS111010808-12-2010.pdf"
      ],
      "notes": [
        "Manufacturer envelope where cited. Roof height and section split provisional until drawing/QA. Height excludes extended trolley poles. Historical photographs do not establish current commercial service.",
        "Single shortened vehicle listed current. Exact 2026 actual use not independently verified; keep rare in catalog, not default pool.",
        "No eligible scheduled route allocation verified; not part of random route pool."
      ],
      "simulationEligible": false
    },
    {
      "id": "iveco-eway12",
      "label": "Iveco / Heuliez E-Way 12",
      "mode": "bus",
      "length": 12.05,
      "width": 2.55,
      "height": 3.234,
      "segments": 1,
      "segmentLengths": [
        12.05
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "34",
        "35",
        "38",
        "39",
        "40",
        "41",
        "42",
        "43",
        "44",
        "45",
        "46",
        "47",
        "48",
        "49",
        "50",
        "51",
        "52",
        "53",
        "54",
        "55",
        "56",
        "57",
        "58",
        "59",
        "60",
        "61",
        "62",
        "63",
        "64",
        "65",
        "66",
        "67",
        "68",
        "69",
        "70",
        "71",
        "74",
        "76",
        "77",
        "78",
        "79",
        "80",
        "81",
        "82",
        "83",
        "84",
        "85",
        "86",
        "87",
        "88",
        "89",
        "95",
        "96",
        "98",
        "99",
        "121",
        "130",
        "132",
        "140",
        "161",
        "165",
        "166",
        "169",
        "171",
        "172",
        "174",
        "175",
        "176",
        "222",
        "230",
        "321",
        "322",
        "323",
        "324",
        "325",
        "326",
        "327",
        "351",
        "423",
        "424",
        "433",
        "528",
        "542",
        "560",
        "566",
        "705",
        "708",
        "713",
        "728",
        "729",
        "783",
        "901",
        "902",
        "903",
        "923",
        "924",
        "925",
        "928",
        "965",
        "973",
        "N15",
        "N24",
        "N25",
        "N26",
        "N27",
        "NM1",
        "NM2",
        "NM3",
        "NM4"
      ],
      "assignment": "representative",
      "detail": "models/fleet/iveco-eway12-detail.glb",
      "simple": "models/fleet/iveco-eway12-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-electric.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/autobus/ATMmilanoAutobus3500-3683.php",
        "https://www.ivecogroup.com/media/brand_press_releases/2023/EMEA-%28English%29/Iveco-Bus/milan_chooses_iveco_bus_for_its_transition_to_electric_mobility_20231219T114752T342_bhrsunrmfc2blgfq2dmvmg3h",
        "https://www.atm.it/it/IlGruppo/Financial_information/Documents/Relazione%20Annuale%20Integrata%20Gruppo%20ATM%2012_2025.pdf",
        "https://www.sustainable-bus.com/electric-bus/iveco-e-way-electric-buses-atm-milan/",
        "https://www.autobusweb.com/a-milano-sono-entrati-in-servizio-i-primi-e-way-di-iveco-bus/",
        "https://www.ivecobus.com/italy/-/media/IvecoBus/International/city/EN-Eway-12m-01_2025.pdf?rev=-1"
      ],
      "notes": [
        "Standard envelope 12.050×2.550×3.234 m; with pantograph height 3.318 m. BRT12.302 m is not the observed ATM body. Exact configured ATM roof fairing height remains to be measured.",
        "E-Way appearance differs Urbanway.153 ordered 2023; deliveries 2025–26. Do not confuse ATM Messina 2026 delivery with Milano. Roof battery fairings, three doors, contemporary black glass front. Actual 3504 images show 85 and 351; green rounded full-length high roof, vertical paired circular lamps and swept silver corners.",
        "Representative standard 12 m urban class, excludes the 15 documented Radiobus di Quartiere minibus routes; actual 2026 model allocation unavailable. Actual service on 39,44,55,61,62,87 documented 11Nov 2025; other eligible standard 12 m electric assignments are inference."
      ],
      "simulationEligible": true
    },
    {
      "id": "solaris-trollino18",
      "label": "Solaris Trollino IV 18",
      "mode": "filobus",
      "length": 18.0,
      "width": 2.55,
      "height": 3.45,
      "segments": 2,
      "segmentLengths": [
        10.34,
        6.96
      ],
      "anchors": [
        3.83,
        -5.52
      ],
      "lines": [
        "90",
        "91",
        "92",
        "93"
      ],
      "assignment": "representative",
      "detail": "models/fleet/solaris-trollino18-detail.glb",
      "simple": "models/fleet/solaris-trollino18-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-electric.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/filobus/ATMmilanoFilosnodati800-889.php",
        "https://www.solarisbus.com/en/press/atm-milano-extends-contract-with-solaris-and-orders-50-trolleybuses-1681",
        "https://www.atm.it/it/IlGruppo/Financial_information/Documents/Relazione%20Annuale%20Integrata%20Gruppo%20ATM%2012_2025.pdf"
      ],
      "notes": [
        "Manufacturer envelope where cited. Roof height and section split provisional until drawing/QA. Height excludes extended trolley poles.",
        "90 delivered including last 10 byfirsthalf 2025. Two trailing overhead poles from rear section; grey bellows; four doors. Green/silver livery; bright lime horizontal stripe; roof traction boxes. Overhead poles, not bus charging pantograph.",
        "No unit allocation is in GTFS. Keep sampled route observations distinct from simulated assignment."
      ],
      "simulationEligible": true
    },
    {
      "id": "vanhool-ag300t",
      "label": "Van Hool newAG300T",
      "mode": "filobus",
      "length": 18.0,
      "width": 2.55,
      "height": 3.4,
      "segments": 2,
      "segmentLengths": [
        10.34,
        6.96
      ],
      "anchors": [
        3.83,
        -5.52
      ],
      "lines": [
        "90",
        "91",
        "92"
      ],
      "assignment": "representative",
      "detail": "models/fleet/vanhool-ag300t-detail.glb",
      "simple": "models/fleet/vanhool-ag300t-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-electric.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/filobus/ATMmilanoFilosnodati700-744.php"
      ],
      "notes": [
        "Nominal 18.000×2.550×3.400 m modeled envelope is an estimate for ATM newAG300T, not a certified ATM manufacturer drawing. The older AG300T 17.550 m sheet describes a different generation and was not transferred. Generic metadata wording Manufacturer envelope does not certify this model. Height excludes extended trolley poles; exact axle/section/roof coordinates remain visual estimates.",
        "Smooth round front, triangular side headlamp facets; green body/silver skirt; three distinct roof equipment boxes; grey bellows; trailing pair poles.2026 secondary report still running;2025ATMplan intends older fleet retirement but not proof completed.",
        "No unit allocation is in GTFS. Keep sampled route observations distinct from simulated assignment."
      ],
      "simulationEligible": true
    },
    {
      "id": "yutong-e7s",
      "label": "Yutong E7S electric minibus",
      "mode": "bus",
      "length": 6.96,
      "width": 2.28,
      "height": 2.97,
      "segments": 1,
      "segmentLengths": [
        6.96
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "172",
        "174"
      ],
      "assignment": "representative",
      "detail": "models/fleet/yutong-e7s-detail.glb",
      "simple": "models/fleet/yutong-e7s-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-road-electric.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.yutong.it/pressmedia/news/2052564094564831232.shtml",
        "https://www.yutong.it/products/E7S-param.shtml",
        "https://www.yutong.it/static/res/2026/3/9/product/cpzl/2030909496892723200.pdf",
        "https://en.yutong.com/res/res/2025/10/21/product/cpzl/1980544278241349632.pdf",
        "https://www.tplitalia.it/ATMmilano/autobus/ATMmilanoAutobus2450-2489.php"
      ],
      "notes": [
        "Manufacturer specification confirms 6.960×2.280×2.970 m and 5.240 m wheelbase. Actual ATM 2469/2483/2489 passenger-side images now confirm one double-leaf door behind front axle, between axles. Exact hidden rear/top equipment remains unobserved.",
        "Forty E7S in commercial Milano service by Yutong publication 22 April 2026. Actual photos dated May–July 2026 document school service and scheduled city routes 172/174. Very short overhangs and long 5.24 m wheelbase, rounded black front glass, silver swept headlamp eyelids, twin primary lamps plus low bumper lamps, camera-mirror stalks, green roof and body over silver skirt/amber stripe. Do not use 12 m wildcard or infer Q allocation from vehicle length.",
        "172 is readable on actual 2479 and 2485; 174 on actual 2489. Both city routes exist in the GTFS. Original 2453 shows external 926. No E7S Q/BdQ or 171 assignment was verified; school-service photos and generic 7 m procurement do not prove every minibus route."
      ],
      "simulationEligible": true
    },
    {
      "id": "iveco-daily-radiobus",
      "label": "Iveco Daily Cities / C665.18 Hi-Matic RadioBus",
      "mode": "bus",
      "length": 7.12,
      "width": 2.05,
      "height": 3.05,
      "segments": 1,
      "segmentLengths": [
        7.12
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "BdQ34",
        "BdQ35",
        "BdQ39",
        "BdQ44",
        "BdQ45",
        "BdQ46",
        "BdQ52",
        "BdQ55",
        "BdQ68",
        "BdQ75",
        "BdQ76",
        "BdQ78",
        "BdQ79",
        "BdQ86",
        "BdQ88"
      ],
      "assignment": "representative",
      "detail": "models/fleet/iveco-daily-radiobus-detail.glb",
      "simple": "models/fleet/iveco-daily-radiobus-simple.glb",
      "paint": "#efa51c",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-radiobus-fleet.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/minibus/ATMmilanoMinibus1230-1249.php",
        "https://passionetrasporti.com/iveco-daily-cities/",
        "https://www.ivecobus.com/latam-en/-/media/IvecoBus/International/Brochures/Daily-Minibus-EN.pdf?rev=ec349a241b38435195a2ef2419d7565b",
        "https://www.atm.it/it/IlGruppo/Financial_information/Documents/Relazione%20Annuale%20Integrata%20Gruppo%20ATM%2012_2025.pdf",
        "https://www.atm.it/it/IlGruppo/ChiSiamo/Documents/Carta%20della%20Mobilit%C3%A0%20ATM%202025.pdf"
      ],
      "notes": [
        "Nominal modeling estimates for actual ATM two-door RadioBus body, not certified manufacturer measurements. Generic Daily Line/Start brochure confirms 4.10 m chassis class and 7.168 m modern generic version, not this exact ATM conversion. Overall length 7.12 m, width 2.05 m, configured height 3.05 m and axle overhangs are working estimates compared with photos; rear/top hidden details inferred.",
        "Actual 1233/1245 photos dated August 2025 and 1243/1244 city photos October 2025/February 2026 confirm this family still present. Modern Daily bonnet and narrow swept angular lamps, large black grille under IVECO lettering, tall raised destination housing, rooftop low HVAC, two right doors and dual rear wheels. Yellow/orange RadioBus livery with black/white checker stripe; some members restyled ChiamaBus for outer demand service, do not treat that branding as identical material.",
        "ATM 2025 documents 7 m minibuses for RadioBus di Quartiere; Carta Mobilità 2025 gives these exact 15 Q services. Actual current yellow RadioBus-branded Daily family is documented in 2025/26. Eligibility is representative family/class compatibility across BdQ, not direct photographic or unit-to-trip proof for each Q. No normal 12 m wildcard."
      ],
      "simulationEligible": true
    },
    {
      "id": "iveco-daily-way",
      "label": "Irisbus Daily 50.17 Way IV RadioBus",
      "mode": "bus",
      "length": 7.012,
      "width": 1.996,
      "height": 3.1,
      "segments": 1,
      "segmentLengths": [
        7.012
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "BdQ34",
        "BdQ35",
        "BdQ39",
        "BdQ44",
        "BdQ45",
        "BdQ46",
        "BdQ52",
        "BdQ55",
        "BdQ68",
        "BdQ75",
        "BdQ76",
        "BdQ78",
        "BdQ79",
        "BdQ86",
        "BdQ88"
      ],
      "assignment": "representative",
      "detail": "models/fleet/iveco-daily-way-detail.glb",
      "simple": "models/fleet/iveco-daily-way-simple.glb",
      "paint": "#efa51c",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-minibus-way.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://passionetrasporti.com/irisbus-daily-way/",
        "https://www.tplitalia.it/ATMmilano/minibus/ATMmilanoMinibus1150-1185.php",
        "https://www.busportal.cz/clanek/irisbus-iveco-prvni-italsky-hybridni-citelis-byl-predstaven-v-milane-8512",
        "https://www.carsguide.com.au/iveco/daily/price/2011/50c17-eev-lwb-hi",
        "https://www.atm.it/it/IlGruppo/Financial_information/Documents/Relazione%20Annuale%20Integrata%20Gruppo%20ATM%2012_2025.pdf"
      ],
      "notes": [
        "Length 7.012 m, width 1.996 m and wheelbase 3.950 m are the 2011 Daily 50C17 long/high van-family nominal reference, not an ATM-specific conversion certificate. Base height 2.930 m does not include the raised destination cap/roof HVAC; modeled configured height 3.10 m is estimated. Generic later ENEA7.7 m Daily Way specification describes another variant and is not transferred.",
        "Actual units 1161/1164/1174/1177 in Milano 2025/26 and 1180/1183 in 2026 prove current family presence. High triangular older DailyIV lamps, sloped bonnet, raised black destination cap, three large salon windows, black/white checker stripe and RadioBus lettering. One right entry behind cab; two glazed rear portellons verified on actual 1180 rear-right.",
        "Current RadioBus-branded family photographs plus operator documentation of the minibus demand-service class support representative BdQ eligibility. These are not photographs of every Q nor unit-to-trip roster evidence. No standard 12 m wildcard."
      ],
      "simulationEligible": true
    },
    {
      "id": "iveco-edaily",
      "label": "Iveco eDaily special-service minibus",
      "mode": "bus",
      "length": 7.618,
      "width": 2.052,
      "height": 3.08,
      "segments": 1,
      "segmentLengths": [
        7.618
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "@catalog"
      ],
      "assignment": "representative",
      "detail": "models/fleet/iveco-edaily-detail.glb",
      "simple": "models/fleet/iveco-edaily-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-special-minibus.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://passionetrasporti.com/iveco-e-daily-1190-1199/",
        "https://www.tplitalia.it/ATMmilano/ATMmilanoAutobus.htm",
        "https://atmspa.tuttogare.it/gare/dettaglio.php?codice=880",
        "https://atmspa.tuttogare.it/allegati/open.php?codice=1393&filename=c3QtYXRtLTUwMDA3MDkucGRm&general_connection=1&sourceID=918&sourceType=Z2FyZS1wdWJsaWM%3D",
        "https://www.ivecobus.com/latam-en/-/media/IvecoBus/International/Brochures/Daily-Minibus-EN.pdf?rev=ec349a241b38435195a2ef2419d7565b"
      ],
      "notes": [
        "Nominal 7.618 m long eDaily Line body and 4.100 m wheelbase from current manufacturer brochure are family references, not an ATM-specific drawing. Width 2.052 m is nominal van/chassis family; height 3.08 m including display cap/HVAC estimated. ATM tender requires 7.5–8 m length and<2.3 m width, not an exact delivered measurement. Actual right/rear doors remain unobserved.",
        "Modern Iveco van cab with protruding hood, long swept narrow front lights, black grille, pale bumper with round corner fog lamps; tall green destination-display cap over driver windscreen; high dark panoramic side glass, green body over light grey/silver skirt and thin yellow lower stripe; small green roof HVAC pod. Distinct from E7S and 2016Daily Hi-Matic. Primary ATM tender 878 awarded IVECO23Oct 2024 for 10 M3 classB shorts; mission disability/on-call urban service and three wheelchair positions. Do not infer all BdQ routes.",
        "Actual 1195 B9 COLLEGAMENTO in Milano February 2026 proves urban special-service use. B9 is not an ordinary current GTFS line; no Q assignment established. Retain as current catalog family without unrelated regular-line instantiation."
      ],
      "simulationEligible": false
    },
    {
      "id": "mercedes-sprinter-city65",
      "label": "Mercedes-Benz O515NFXL Sprinter City 65",
      "mode": "bus",
      "length": 7.716,
      "width": 1.993,
      "height": 2.905,
      "segments": 1,
      "segmentLengths": [
        7.716
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "923"
      ],
      "assignment": "representative",
      "detail": "models/fleet/mercedes-sprinter-city65-detail.glb",
      "simple": "models/fleet/mercedes-sprinter-city65-simple.glb",
      "paint": "#278438",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-special-minibus.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://passionetrasporti.com/mercedes-o515nfxl-sprinter-city-65/",
        "https://www.tplitalia.it/ATMmilano/minibus/ATMmilanoMinibus1131-1140.php",
        "https://www.atm.it/en/IlGruppo/ChiSiamo/Documents/carta-mobilita2010.pdf",
        "https://www.atm.it/it/viaggiaconnoi/radiobus/pagine/radiobus_segrate.aspx",
        "https://www.buildersbuses.net/public/MB-MIB-SC-EN-2-081.pdf"
      ],
      "notes": [
        "Nominal 7.716×1.993×2.905 m, wb 4.325 m, frontOH1.021 m/rearOH2.370 m come from later manufacturer City 65 brochure. They support a family envelope, not a certified 2009ATM configuration; exact original build dimensions unverified. Current 1135 confirms two right doors and 1136 route 923, with historical 1139 an additional side-layout reference.",
        "MercedesNCV3 hood and three-point-star black grille, old tall swept lamp housings, purpose-built long high-roof panoramic passenger body, green ECObus paint above pale skirt/yellow stripe;1138 and 1140 repaintedsolidyellowChiamaBus. Right front passenger entry lies behind front axle;fine rear access needs additional side/rear evidence for exact asset. Passione explicitly states 1133 and 1139 retired;1138 and 1140 yellowChiamaBusforSegrate/Vimodrone. Do not assume alltenunitsactive from index.",
        "Actual ATM 1136 displays M4 923 on 8June 2026. Geometric check of the current imported GTFS against public/data/boundary.geojson finds 73 vertices inside Comune across patterns B923-12064-da 1 a 1 eeb and B923-12067-8753062 a, aroundSanRaffaele;16 other 923 patterns remain external. Family compatibility is restricted to 923; it does not imply all branches stay within the city. No Q/BdQ assignment proved."
      ],
      "simulationEligible": true
    },
    {
      "id": "vw-crafter-sora",
      "label": "Volkswagen Crafter I / Sora minibus",
      "mode": "bus",
      "length": 6.94,
      "width": 1.993,
      "height": 3.1,
      "segments": 1,
      "segmentLengths": [
        6.94
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "@catalog"
      ],
      "assignment": "representative",
      "detail": "models/fleet/vw-crafter-sora-detail.glb",
      "simple": "models/fleet/vw-crafter-sora-simple.glb",
      "paint": "#efa51c",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-rare-minibus.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/minibus/ATMmilanoMinibus1142-1144.php",
        "https://passionetrasporti.com/volkswagen-crafter/",
        "https://vehiclescore.co.uk/car-dimensions-check/volkswagen/crafter"
      ],
      "notes": [
        "Nominal long-wheelbase first-generation Crafter 6.940×1.993 m and 4.325 m wheelbase are generic van-family estimates, not certified Sora 1142–1144 measurements. Height 3.10 m with raised conversion roof estimated. XL7.340 m later/other variant not transferred. Exact ATM roof/rear fixtures unknown.",
        "Actual 1143 dated 9April 2026 Linate and 30May 2026 Segrate confirms current presence; displays DISPONIBILE, not an ordinary line. Current yellow/plain body lacks the older RadioBus checker stripe visible in 2011 photos. Vertical stacked front lamps, VW horizontal black grille, broad black side rub rail and large panoramic side glazing.",
        "Current fleet-family evidence is retained, but no eligible ordinary GTFS assignment has been verified. Do not randomly instantiate on unrelated bus/BdQ lines."
      ],
      "simulationEligible": false
    },
    {
      "id": "indcar-wing",
      "label": "Irisbus Daily 70.17 IV / Indcar Wing Tango",
      "mode": "bus",
      "length": 7.72,
      "width": 2.4,
      "height": 3.1,
      "segments": 1,
      "segmentLengths": [
        7.72
      ],
      "anchors": [
        0.0
      ],
      "lines": [
        "BdQ34",
        "BdQ35",
        "BdQ39",
        "BdQ44",
        "BdQ45",
        "BdQ46",
        "BdQ52",
        "BdQ55",
        "BdQ68",
        "BdQ75",
        "BdQ76",
        "BdQ78",
        "BdQ79",
        "BdQ86",
        "BdQ88"
      ],
      "assignment": "representative",
      "detail": "models/fleet/indcar-wing-detail.glb",
      "simple": "models/fleet/indcar-wing-simple.glb",
      "paint": "#efa51c",
      "status": "active",
      "productionRequired": true,
      "weight": 1,
      "generator": "scripts/create-rare-minibus.py",
      "research": "docs/fleet-research/road.json",
      "sourceUrls": [
        "https://www.tplitalia.it/ATMmilano/minibus/ATMmilanoMinibus1742-1744.php",
        "https://passionetrasporti.com/irisbus-new-daily-wing/",
        "https://www.savonjakeskisuomenbussit.fi/yrityslista.php"
      ],
      "notes": [
        "Nominal 7.72×2.40×3.10 m and 4.35 m wheelbase are estimated older Wing body-family envelope. Historical 2006Daily 65C17Wing secondary roster reports 7.71 m/2.40 m/4.350 m, but exact ATM 70.17 conversion measurement unavailable. Modern 7 mWingL7 specifications not transferred. Exact rear/top details inferred.",
        "Actual 1742 photographed VialeCassala Milano 2October 2025 in yellow RadioBus livery. Rounded coach-style extended body/wide dark glazing, very tall curved cab windscreen, short bonnet, rounded triangular DailyIV lamps, two separate grilles, one checker stripe. Earlier silver variant is historical reference, not current modeled material.",
        "Current RadioBus-branded family photographs plus operator documentation of the minibus demand-service class support representative BdQ eligibility. These are not photographs of every Q nor unit-to-trip roster evidence. No standard 12 m wildcard."
      ],
      "simulationEligible": true
    }
  ],
  "exclusions": [
    {
      "id": "tram-4600",
      "reason": "Last scheduled passenger service reported17December2024; demolition/withdrawal processFebruary2025. Preserved4611 is historical, not a scheduled-line random candidate. Distinguish still-active4700.",
      "source": "https://it.wikipedia.org/wiki/Tram_ATM_serie_4600_e_4700"
    },
    {
      "id": "tram-4800",
      "reason": "Retired from regular service2010; absent ATM2026 current-family diagram.",
      "source": "https://it.wikipedia.org/wiki/Tram_ATM_serie_4800"
    },
    {
      "id": "historic-interurban-700-desio-limbiate",
      "reason": "Historical extraurban vehicles do not represent current scheduled GTFS tram service; closed lines/special charter vehicles excluded.",
      "source": "https://it.wikipedia.org/wiki/Rete_tranviaria_di_Milano"
    },
    {
      "id": "ATMosfera-school-historical-charter",
      "reason": "Special-purpose/historical/restaurant cars: excluded from regular GTFS random assignment. Exterior base1500 may be reused only with separately researched special-service livery."
    },
    {
      "family": "Galileo M1/M3 new Hitachi fleet",
      "status": "delivered_testing_not_verified_in_passenger_service",
      "reason": "ATM annual report 2025 records six M1 trains delivered and commissioning expected in 2026. Dated reporting on 2026-09-09 still describes no passenger service. Later official entry was not verified by the research cutoff.",
      "sources": [
        "https://www.atm.it/it/IlGruppo/Financial_information/Documents/Relazione%20Annuale%20Integrata%20Gruppo%20ATM%2012_2025.pdf",
        "https://www.milanopost.info/2026/09/09/lenigma-dei-treni-fantasma-della-metro-di-milano-che-fine-hanno-fatto-i-nuovi-convogli/"
      ]
    },
    {
      "family": "M2 traditional series 300/400/500/600 and 2500/2600",
      "status": "retired",
      "reason": "Traditional M2 stock retired in 2018–2020, replaced by Meneghino/Leonardo. All additional Leonardo trains were delivered and in service by 2021; final month differs between ATM and Hitachi sources.",
      "sources": [
        "https://it.wikipedia.org/wiki/Elettromotrici_della_linea_2_della_metropolitana_di_Milano",
        "https://www.hitachirail.com/products-and-solutions/rolling-stock/metro-trains/milan-metro-leonardo-line-12/"
      ]
    },
    {
      "family": "M1 traditional first three lots and unrevamped sixth lot",
      "status": "retired",
      "reason": "Current surviving M1 traditional families are revamped lots 4–5 and 7–9. First three lots and sixth-lot stock withdrawn by 2016.",
      "sources": [
        "https://it.wikipedia.org/wiki/Elettromotrici_della_linea_1_della_metropolitana_di_Milano"
      ]
    },
    {
      "name": "Irisbus Cristalis ETB18",
      "status": "withdrawn",
      "reason": "Last 406/407 withdrawnAugust 2024; offered for saleJune 2025. Older fleet page still lists them black; newer datedreport controls.",
      "source": "https://www.cs-dopravak.cz/milanske-trolejbusy-cristalis-jsou-na-prodej/"
    },
    {
      "name": "Socimi/Breda/MAN Busotto trolleybuses;CityClass urban;CitaroFacelift suburban 18 1300–1324;hybrid testfleet 4270/4271/4280/4290",
      "status": "excluded-retired",
      "reason": "Latest specialist inventory marks whole series red; do not instantiate modernscene historicalvehicles."
    },
    {
      "name": "Older minibus families in the specialist retired fleet index",
      "status": "retired-secondary",
      "researchedAt": "2026-10-08",
      "sources": [
        "https://passionetrasporti.com/autobus-dismessi-dal-parco-mezzi/"
      ],
      "families": [
        "IvecoDaily50C13 1040–1049",
        "CacciamaliThesi1050–1099",
        "IvecoDaily50C15 1100–1120",
        "IrisbusDailyA50EE4Tourys1121–1127",
        "IrisbusDaily50C18Tourys1145–1147",
        "BredaMenarinibusM321S1200–1227"
      ],
      "reason": "Listed explicitly under Autobus dismessi dal parco mezzi as checked 8October 2026. This is observation date, not a claimed withdrawal date.1200–1227 is M321S, not a current older Daily generation."
    }
  ]
}
