{
  "agency": {
    "country": "DE",
    "id": "hnv-heilbronn",
    "name": "Heilbronner\u00b7Hohenloher\u00b7Haller Nahverkehr (HNV)",
    "operating_note": "One association feed for the Heilbronn, Hohenlohe, and Schw\u00e4bisch Hall area's operators; counted as one feed record, not a distinct-agency count.",
    "subdivision_code": "DE-BW",
    "subdivision_name": "Baden-W\u00fcrttemberg"
  },
  "categories": {
    "completeness": {
      "details": {
        "accessibility": {
          "measures": "presence_not_usability",
          "score": 38.1,
          "stops_marked_accessible_pct": 0.9,
          "stops_marked_not_accessible_pct": 0.0,
          "stops_stated_pct": 0.9,
          "trips_stated_pct": 100.0
        },
        "accessibility_measures": "presence_not_usability",
        "cemv": {
          "declared": false,
          "supported": false
        },
        "components": {
          "contact": 7.5,
          "fares": 0.0,
          "headsigns": 14.9,
          "stop_names": 15.0,
          "wheelchair_stops": 0.2,
          "wheelchair_trips": 15.0
        },
        "fare_free": false,
        "fares": {
          "applied": false,
          "has_leg_rules": false,
          "has_products": false,
          "has_transfer_rules": false,
          "model": "none",
          "product_count": 0
        },
        "flex": {
          "booking_reachable": false,
          "booking_rule_count": 0,
          "has_booking_rules": false,
          "has_flex": false
        },
        "has_fares": false,
        "headsign_pct": 99.5,
        "mixed_case_stop_name_pct": 100.0,
        "pathways": {
          "has_entrances": false,
          "has_levels": false,
          "has_pathways": false,
          "has_stations": true,
          "has_step_free": false,
          "pathway_count": 0
        },
        "stops": 4826,
        "translations": {
          "feed_lang": "DE",
          "has_translations": false,
          "languages": [],
          "translated_tables": [],
          "translation_count": 0
        },
        "trips": 22913,
        "wheelchair_accessible_pct": 100.0,
        "wheelchair_boarding_pct": 0.9,
        "wheelchair_marked_accessible_pct": 0.9,
        "wheelchair_marked_not_accessible_pct": 0.0
      },
      "findings": [
        {
          "code": "scorecard_wheelchair_boarding_unknown",
          "count": 4783,
          "effort": "A column in stops.txt; your scheduling software likely has it.",
          "fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops.",
          "owner": "Likely your team",
          "points": 24.8,
          "severity": "WARNING",
          "what": "4783 of 4826 stops don't say whether a wheelchair user can board there.",
          "why": "Riders who use wheelchairs can't plan a trip when accessibility is marked 'unknown'; apps show no information at all."
        },
        {
          "code": "scorecard_no_fare_data",
          "count": 1,
          "effort": "A small file for most flat-fare systems.",
          "fix": "Add fare_attributes.txt (or Fares v2 files) with your fare structure. If your service is fare-free, ask to have it marked fare-free instead.",
          "owner": "",
          "points": 15.0,
          "severity": "WARNING",
          "what": "The feed contains no fare information.",
          "why": "Riders see 'fare unknown' in trip planners and can't budget their trip; visitors are most affected."
        },
        {
          "code": "scorecard_missing_headsigns",
          "count": 110,
          "effort": "Usually a bulk edit in your scheduling software.",
          "fix": "Populate trip_headsign to match what the transit vehicle displays.",
          "owner": "Likely your export tool",
          "points": 0.1,
          "severity": "WARNING",
          "what": "110 of 22913 trips have no headsign.",
          "why": "Riders at the stop can't tell which direction a transit vehicle is going."
        },
        {
          "code": "scorecard_no_feed_contact",
          "count": 1,
          "effort": "One field.",
          "fix": "Add feed_contact_email to feed_info.txt.",
          "owner": "",
          "points": 7.5,
          "severity": "INFO",
          "what": "feed_info.txt has no technical contact (feed_contact_email or feed_contact_url).",
          "why": "Trip-planning apps and regional data coordinators have nobody to email when they spot a problem with your feed, so problems linger."
        },
        {
          "code": "scorecard_station_no_pathways",
          "count": 1,
          "effort": "Worth it for multi-level or large stations; flat stops don't need it.",
          "fix": "Add pathways.txt connecting entrances, platforms, and any elevators, with a level for each.",
          "owner": "",
          "points": 0.0,
          "severity": "WARNING",
          "what": "This feed models stations or entrances but has no pathways.txt.",
          "why": "Trip planners can't guide riders through the station, and there is no step-free route information for wheelchair users."
        }
      ],
      "name": "completeness",
      "score": 52.6,
      "status": "measured",
      "summary": "1% of stops state wheelchair accessibility (1% marked accessible, 0% marked not accessible). This measures what the feed publishes, not whether a stop is physically usable. Fare data is not published.",
      "weight": 0.25
    },
    "correctness": {
      "details": {
        "distinct_codes": 17,
        "instances_by_severity": {
          "ERROR": 1,
          "INFO": 1451,
          "WARNING": 6629
        },
        "validator_version": "8.0.1"
      },
      "findings": [
        {
          "code": "point_near_origin",
          "count": 1,
          "effort": "Varies.",
          "fix": "Review the rule documentation for 'point_near_origin' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.",
          "owner": "",
          "points": 12.0,
          "severity": "ERROR",
          "what": "Point near origin (flagged by the MobilityData validator).",
          "why": "See the linked rule for what this affects."
        },
        {
          "code": "service_has_no_active_day_of_the_week",
          "count": 2452,
          "effort": "A few minutes in your scheduling software.",
          "fix": "Delete the empty calendars or set their service days.",
          "owner": "Likely your export tool",
          "points": 8.0,
          "severity": "WARNING",
          "what": "Some service calendars have no days of the week switched on.",
          "why": "Trips tied to these calendars never run; they are dead data that can mask real schedule problems."
        },
        {
          "code": "stop_too_far_from_shape_using_user_distance",
          "count": 1536,
          "effort": "Usually an export-tool fix, not hand editing.",
          "fix": "Check the flagged stops' shape_dist_traveled against the route shape, and re-generate it on export if they disagree.",
          "owner": "Likely your export tool",
          "points": 8.0,
          "severity": "WARNING",
          "what": "Some stops sit far from the route line, going by the feed's own distance values.",
          "why": "Trip planners may draw the route down the wrong path or point riders to the wrong boarding location."
        },
        {
          "code": "expired_calendar",
          "count": 1387,
          "effort": "One setting in most export tools.",
          "fix": "Remove past service periods the next time you export the feed.",
          "owner": "Likely your export tool",
          "points": 8.0,
          "severity": "WARNING",
          "what": "Some service calendars in the feed have already ended.",
          "why": "Expired calendars are dead weight and can hide real schedule problems from your staff and vendors."
        },
        {
          "code": "unused_shape",
          "count": 952,
          "effort": "One setting.",
          "fix": "Turn on 'remove unused shapes' (or the like) in your export tool.",
          "owner": "Likely your export tool",
          "points": 8.0,
          "severity": "WARNING",
          "what": "The feed contains route shapes no trip uses.",
          "why": "Harmless to riders, but it bloats the feed and suggests stale export data."
        },
        {
          "code": "stop_too_far_from_shape",
          "count": 224,
          "effort": "A few minutes per flagged stop.",
          "fix": "Check the flagged stops' coordinates and the route shape in your scheduling software; re-snap whichever is misplaced.",
          "owner": "Likely your export tool",
          "points": 8.0,
          "severity": "WARNING",
          "what": "Some stops sit far from the route line they belong to.",
          "why": "Trip planners may draw the transit vehicle route through the wrong path or point riders to the wrong boarding location."
        },
        {
          "code": "fast_travel_between_consecutive_stops",
          "count": 31,
          "effort": "A few minutes per flagged trip.",
          "fix": "Check the flagged stop times for transposed minutes.",
          "owner": "",
          "points": 6.0,
          "severity": "WARNING",
          "what": "Some scheduled trips move faster between stops than a transit vehicle can.",
          "why": "Usually a typo'd stop time; riders get arrival times no transit vehicle can meet."
        },
        {
          "code": "fast_travel_between_far_stops",
          "count": 30,
          "effort": "Varies.",
          "fix": "Review the rule documentation for 'fast_travel_between_far_stops' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.",
          "owner": "",
          "points": 6.0,
          "severity": "WARNING",
          "what": "Fast travel between far stops (flagged by the MobilityData validator).",
          "why": "See the linked rule for what this affects."
        },
        {
          "code": "route_long_name_contains_short_name",
          "count": 5,
          "effort": "One field per flagged route.",
          "fix": "Drop the short name from route_long_name and keep the long name descriptive, like 'Downtown via 5th Ave'.",
          "owner": "",
          "points": 4.0,
          "severity": "WARNING",
          "what": "Some route long names repeat the route's short name inside them.",
          "why": "Apps show both names together, so riders see the number twice, like '5 5 Downtown'."
        },
        {
          "code": "duplicate_route_name",
          "count": 4,
          "effort": "One field per route.",
          "fix": "Give each route a distinct short or long name.",
          "owner": "",
          "points": 4.0,
          "severity": "WARNING",
          "what": "Two or more routes share the same name.",
          "why": "Riders can't tell the routes apart in apps."
        },
        {
          "code": "mixed_case_recommended_field",
          "count": 4,
          "effort": "Often a bulk fix in your scheduling software.",
          "fix": "Use mixed case for stop names and headsigns (e.g. 'Main St & 2nd Ave', not 'MAIN ST & 2ND AVE').",
          "owner": "Likely your export tool",
          "points": 4.0,
          "severity": "WARNING",
          "what": "Some rider-facing names are in ALL CAPS or all lowercase.",
          "why": "ALL-CAPS stop and headsign names are harder to read in apps and are read awkwardly by screen readers."
        },
        {
          "code": "route_short_name_too_long",
          "count": 2,
          "effort": "Varies.",
          "fix": "Review the rule documentation for 'route_short_name_too_long' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.",
          "owner": "",
          "points": 4.0,
          "severity": "WARNING",
          "what": "Route short name too long (flagged by the MobilityData validator).",
          "why": "See the linked rule for what this affects."
        },
        {
          "code": "missing_feed_contact_email_and_url",
          "count": 1,
          "effort": "One field, set once in export settings.",
          "fix": "Add feed_contact_email or feed_contact_url to feed_info.txt.",
          "owner": "Likely your export tool",
          "points": 4.0,
          "severity": "WARNING",
          "what": "feed_info.txt lists no contact email and no contact URL.",
          "why": "Without a contact, apps like Google Maps can't reach you when they find a problem in the feed."
        },
        {
          "code": "single_shape_point",
          "count": 1,
          "effort": "Varies.",
          "fix": "Review the rule documentation for 'single_shape_point' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.",
          "owner": "",
          "points": 4.0,
          "severity": "WARNING",
          "what": "Single shape point (flagged by the MobilityData validator).",
          "why": "See the linked rule for what this affects."
        },
        {
          "code": "big_gap_in_service",
          "count": 1256,
          "effort": "A review of your calendar dates.",
          "fix": "Check whether the gap is real, like a seasonal break; if not, add the missing dates to the calendar.",
          "owner": "",
          "points": 1.0,
          "severity": "INFO",
          "what": "The feed has a stretch of two weeks or more with no service running.",
          "why": "A long gap can mean dates were left out of the calendar. Apps then show no trips on those days."
        },
        {
          "code": "platform_without_parent_station",
          "count": 191,
          "effort": "Varies.",
          "fix": "Review the rule documentation for 'platform_without_parent_station' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.",
          "owner": "",
          "points": 1.0,
          "severity": "INFO",
          "what": "Platform without parent station (flagged by the MobilityData validator).",
          "why": "See the linked rule for what this affects."
        },
        {
          "code": "transfer_distance_above_2_km",
          "count": 4,
          "effort": "Varies.",
          "fix": "Review the rule documentation for 'transfer_distance_above_2_km' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.",
          "owner": "",
          "points": 0.5,
          "severity": "INFO",
          "what": "Transfer distance above 2 km (flagged by the MobilityData validator).",
          "why": "See the linked rule for what this affects."
        }
      ],
      "name": "correctness",
      "score": 9.5,
      "status": "measured",
      "summary": "The MobilityData validator flagged 17 kinds of issue across 8081 instances (1 error, 6629 warning, 1451 informational).",
      "weight": 0.35
    },
    "freshness": {
      "details": {
        "days_until_expiry": 147,
        "effective_expiry_date": "2026-12-12",
        "feed_end_date": "2026-12-12",
        "feed_start_date": "2026-01-11",
        "feed_version": "20260712",
        "has_feed_info": true,
        "last_service_date": "2026-12-12",
        "seasonal_boundary": false,
        "service_horizon_review_years": 10,
        "service_horizon_status": "within_review_threshold",
        "service_type": "fixed"
      },
      "findings": [],
      "name": "freshness",
      "score": 100.0,
      "status": "measured",
      "summary": "Service data covers the next 147 days.",
      "weight": 0.2
    },
    "realtime": {
      "name": "realtime",
      "status": "not_yet_measured",
      "summary": "Not scored yet. Nothing here counts against the grade.",
      "weight": 0.2
    }
  },
  "confidence": {
    "feed_age_days": 0,
    "fetch_source": "origin",
    "level": "medium",
    "measured_categories": 3,
    "notes": [
      "Realtime quality was not measured this run. It does not count against the grade.",
      "The feed was downloaded from the agency's own URL."
    ],
    "rt_windows": 0,
    "total_categories": 4
  },
  "conformance": {
    "awarded": false,
    "criteria": [
      {
        "detail": "1 validator error to resolve.",
        "key": "valid",
        "met": false
      },
      {
        "detail": "Service data covers the next 147 days.",
        "key": "current",
        "met": true
      },
      {
        "detail": "States wheelchair access on 1% of stops and 100% of trips; the mark needs 90% of each.",
        "key": "accessible",
        "met": false
      }
    ],
    "status": "not_yet",
    "summary": "This feed is close to the conformance mark. 1 validator error to resolve. States wheelchair access on 1% of stops and 100% of trips; the mark needs 90% of each."
  },
  "feed": {
    "license_note": "Datenlizenz Deutschland - Namensnennung 2.0 through NVBW's open data portal; mark reuse as a dataset of NVBW GmbH with a link back to the portal. Route shapes derive from OpenStreetMap and carry the OpenStreetMap contributors credit.",
    "reachable": true,
    "sha256": "d68cc18cf905c7603c9b3e23ba457cf35eaf453fc912eff18134272af2fed374",
    "size_bytes": 82293622,
    "static_url": "https://www.nvbw.de/fileadmin/user_upload/service/open_data/fahrplandaten_mit_liniennetz/hnv.zip"
  },
  "fetch": {
    "final_url": "https://www.nvbw.de/fileadmin/user_upload/service/open_data/fahrplandaten_mit_liniennetz/hnv.zip",
    "max_attempts": 4,
    "reader_archive_profile": "raw-v1",
    "source": "origin",
    "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
  },
  "generated_at": "2026-07-18T00:00:00+00:00",
  "geo": {
    "bbox": [
      -1.67233,
      43.58393,
      30.51983,
      52.50702
    ],
    "lat": 49.18222,
    "lon": 9.2718,
    "stop_count": 4825
  },
  "mode_profile": {
    "ferry_only": false,
    "graded": false,
    "has_ferry": false,
    "is_multimodal": true,
    "measured": true,
    "modes": [
      {
        "key": "tram",
        "label": "Tram / light rail",
        "route_count": 5,
        "trip_count": 4332,
        "trip_share_pct": 18.9
      },
      {
        "key": "rail",
        "label": "Rail",
        "route_count": 19,
        "trip_count": 2606,
        "trip_share_pct": 11.4
      },
      {
        "key": "bus",
        "label": "Bus",
        "route_count": 249,
        "trip_count": 15975,
        "trip_share_pct": 69.7
      }
    ],
    "primary_mode": "bus",
    "primary_mode_label": "Bus",
    "route_count": 273,
    "trip_count": 22913
  },
  "overall": {
    "grade": "F",
    "margin_to_lower_band": 45.6,
    "margin_to_next_band": 14.4,
    "score": 45.6
  },
  "recommendations": [
    {
      "category": "accessibility",
      "code": "scorecard_stop_name_needs_tts",
      "count": 201,
      "effort": "A short text field per affected stop; start with the busiest.",
      "fix": "Add tts_stop_name with the spoken form, e.g. 'Main Street and Second Avenue', for the affected stops.",
      "owner": "",
      "points": 0.0,
      "severity": "INFO",
      "what": "201 stop name(s) use abbreviations or symbols a screen reader may mispronounce, with no spoken form set (\"Salzburg Alpensiedlung P+R\", \"Praha Florenc/Busbahnhof\", \"K\u00f6ln/Bonn Flughafen Terminal 2\", and more).",
      "why": "Riders who use a screen reader hear the raw name, so 'Main St & 2nd Ave' can come out as 'Main saint' or drop the ampersand."
    },
    {
      "category": "accessibility",
      "code": "scorecard_station_missing_step_free_data",
      "count": 2,
      "effort": "Worth it for multi-level or large stations; flat stops don't need it.",
      "fix": "Add pathways.txt connecting entrances, platforms, and elevators, and levels.txt for each floor, so the step-free route is described.",
      "owner": "",
      "points": 0.0,
      "severity": "WARNING",
      "what": "This feed models stations or entrances but has no pathways.txt and levels.txt.",
      "why": "Without pathways and levels, a wheelchair user can't tell whether a step-free route exists inside the station, and trip planners can't route anyone through it."
    }
  ],
  "routability": {
    "boardable_stops": 4730,
    "findings": [],
    "orphan_stops": 0,
    "single_stop_trips": 0,
    "trips_total": 22913
  },
  "route_map": {
    "drawn_route_count": 239,
    "has_shapes": true,
    "path": "data/artifacts/hnv-heilbronn/geometry.geojson",
    "route_count": 273,
    "routes": [
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bbw-15-001-1",
        "label": "B\u00fcrgerbus 1",
        "long": "B\u00fcrgerbus Nordheim",
        "short": "B\u00fcrgerbus 1",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bbw-15-002-1",
        "label": "B\u00fcrgerBus 1",
        "long": "Einsetzfahrt BB NH",
        "short": "B\u00fcrgerBus 1",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bbw-15-003-1",
        "label": "B\u00fcrgerBus 1",
        "long": "Aussetzfahrt BB NH",
        "short": "B\u00fcrgerBus 1",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bbw-3-Nord-1",
        "label": "Nordstadt-Linie",
        "long": "Nordstadt-Linie",
        "short": "Nordstadt-Linie",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bbw-3-Sud-1",
        "label": "S\u00fcdstadt-Linie",
        "long": "S\u00fcdstadt-Linie",
        "short": "S\u00fcdstadt-Linie",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bbw-4-0No-1",
        "label": "Nord",
        "long": "Nord",
        "short": "Nord",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bbw-4-Sue-1",
        "label": "S\u00fcd",
        "long": "S\u00fcd",
        "short": "S\u00fcd",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bbw-5-001-1",
        "label": "B\u00fcrgerBus 1",
        "long": "Ringlinie Salinenklinik",
        "short": "B\u00fcrgerBus 1",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bbw-6-BBB0-1",
        "label": "B\u00fcrgerBus",
        "long": "BBBW2",
        "short": "B\u00fcrgerBus",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bbw-6-BBB1-1",
        "label": "B\u00fcrgerBus",
        "long": "BBBW3",
        "short": "B\u00fcrgerBus",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bbw-6-BBBW-1",
        "label": "B\u00fcrgerBus",
        "long": "BBBW1_neu",
        "short": "B\u00fcrgerBus",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-132B-1",
        "label": "1326",
        "long": "",
        "short": "1326",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-192D-1",
        "label": "1925",
        "long": "",
        "short": "1925",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-A001-1",
        "label": "N3214",
        "long": "",
        "short": "N3214",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-A02B-1",
        "label": "N1316",
        "long": "",
        "short": "N1316",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-A02L-1",
        "label": "N1315",
        "long": "",
        "short": "N1315",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-A03A-1",
        "label": "N3205",
        "long": "",
        "short": "N3205",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-A03G-1",
        "label": "N1222",
        "long": "",
        "short": "N1222",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-N10A-1",
        "label": "N109",
        "long": "",
        "short": "N109",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-N11A-1",
        "label": "N116",
        "long": "",
        "short": "N116",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-N16B-1",
        "label": "N168",
        "long": "",
        "short": "N168",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-N18A-1",
        "label": "N184",
        "long": "",
        "short": "N184",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-N21A-1",
        "label": "N215",
        "long": "",
        "short": "N215",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-N22A-1",
        "label": "N228",
        "long": "",
        "short": "N228",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-N36C-1",
        "label": "N36",
        "long": "",
        "short": "N36",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-N95F-1",
        "label": "N955",
        "long": "",
        "short": "N955",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "bus-2-N96A-1",
        "label": "N965",
        "long": "",
        "short": "N965",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": false,
        "id": "ddb-87-007Y-1",
        "label": "Osterburken - Hauptbahnhof ZOB",
        "long": "Osterburken - Hauptbahnhof ZOB",
        "short": "",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": false,
        "id": "ddb-87-033Y-1",
        "label": "S\u00fcdbahnhof - Kleinrinderfelder Stra\u00dfe",
        "long": "S\u00fcdbahnhof - Kleinrinderfelder Stra\u00dfe",
        "short": "",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": false,
        "id": "ddb-87-R41S-1",
        "label": "SEV S41",
        "long": "",
        "short": "SEV S41",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": false,
        "id": "ddb-87-R42S-1",
        "label": "SEV S42",
        "long": "",
        "short": "SEV S42",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": false,
        "id": "ddb-87-T08-1",
        "label": "SEV",
        "long": "",
        "short": "SEV",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": false,
        "id": "ddb-87-T83-1",
        "label": "SEV",
        "long": "",
        "short": "SEV",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": true,
        "id": "ddb-90-707-1",
        "label": "Hauptbahnhof - Hauptbahnhof",
        "long": "Hauptbahnhof - Hauptbahnhof",
        "short": "",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": true,
        "id": "ddb-90-T08-1",
        "label": "RE 8",
        "long": "",
        "short": "RE 8",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": true,
        "id": "ddb-90-T10A-1",
        "label": "RE10a",
        "long": "",
        "short": "RE10a",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": true,
        "id": "ddb-90-T10B-1",
        "label": "RE10b",
        "long": "",
        "short": "RE10b",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": true,
        "id": "ddb-90-T12S-1",
        "label": "MEX12",
        "long": "",
        "short": "MEX12",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": true,
        "id": "ddb-90-T18-1",
        "label": "MEX18",
        "long": "",
        "short": "MEX18",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": true,
        "id": "ddb-90-T18S-1",
        "label": "MEX18",
        "long": "",
        "short": "MEX18",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": true,
        "id": "ddb-90-T41-1",
        "label": "RB 41",
        "long": "",
        "short": "RB 41",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": true,
        "id": "ddb-90-T45-1",
        "label": "RE 45",
        "long": "",
        "short": "RE 45",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": true,
        "id": "ddb-90-T79-1",
        "label": "RB 79",
        "long": "",
        "short": "RB 79",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": true,
        "id": "ddb-90-T80-1",
        "label": "RE 80",
        "long": "",
        "short": "RE 80",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": true,
        "id": "ddb-90-T83-1",
        "label": "RB 83",
        "long": "",
        "short": "RB 83",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "8844AA",
        "color_name": "purple",
        "has_shape": true,
        "id": "ddb-90-V07-1",
        "label": "RE 7",
        "long": "",
        "short": "RE 7",
        "text_color": "FFFFFF",
        "type_label": "Rail"
      },
      {
        "color": "DD3333",
        "color_name": "red",
        "has_shape": true,
        "id": "ddb-92-V07Q-1",
        "label": "S7",
        "long": "",
        "short": "S7",
        "text_color": "FFFFFF",
        "type_label": "Tram / light rail"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-001E-1",
        "label": "1",
        "long": "(Waldheide - J\u00e4gerhaus -) Trappensee - /Rampachertal - Pf\u00fchlpark - Harmonie - HBF - B\u00f6ckingen - Klingenberg",
        "short": "1",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-002E-1",
        "label": "2",
        "long": "Klinikum Heilbronn - B\u00f6ckingen - Sontheim - Hochschule Heilbronn, Campus Sontheim",
        "short": "2",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-005E-1",
        "label": "5",
        "long": "Industrieplatz - Europaplatz - Harmonie - HBF - B\u00f6ckingen",
        "short": "5",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-008E-1",
        "label": "8",
        "long": "Biberach/Neckargartach/Frankenbach - Schanz Nord - HBF - Zukunftspark - Containerterminal - Neckargartach - B\u00f6llinger H\u00f6fe",
        "short": "8",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-010E-1",
        "label": "10",
        "long": "Schanz S\u00fcd - /Frankenbach Maihalde - Klinikum Heilbronn - HBF - Allee Post - Hohenstaufenstra\u00dfe - Herbert-Hoover-Siedlung",
        "short": "10",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-011E-1",
        "label": "11",
        "long": "Badener Hof - Gemmingstal - Allee Post Ost - Harmonie/Kunsthalle - Schickhardtstra\u00dfe",
        "short": "11",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-012E-1",
        "label": "12",
        "long": "Neckargartach Im Falter - Sachsen\u00e4cker - Harmonie - HBF - Zukunftspark - Sachsen\u00e4cker- Neckargartach Im Falter",
        "short": "12",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-013E-1",
        "label": "13",
        "long": "Westfriedhof - Ziegeleipark - BSZ Haselter - LebensWerkstatt - Helmholtzstra\u00dfe - Gr\u00fcnewaldschule - HBF - Allee Post",
        "short": "13",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-031E-1",
        "label": "31",
        "long": "Kirchhausen - /B\u00f6llinger H\u00f6fe - /Frankenbach - Industrieplatz - Harmonie - Allee Post - S\u00fcdbahnhof - Horkheim",
        "short": "31",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-032E-1",
        "label": "32",
        "long": "Horkheim - /Sontheim - S\u00fcdbahnhof/Rosenberg - Allee Post - Harmonie - Industrieplatz - Neckargartach - Frankenbach",
        "short": "32",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-033E-1",
        "label": "33",
        "long": "Horkheim - Sontheim - S\u00fcdbahnhof - Allee Post - Harmonie - Industrieplatz - Neckargartach - B\u00f6llinger H\u00f6fe",
        "short": "33",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-041E-1",
        "label": "41",
        "long": "Schanz S\u00fcd - Kreuzgrund - Harmonie - Allee Post - Rosenberg - Sontheim",
        "short": "41",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-042E-1",
        "label": "42",
        "long": "Schanz S\u00fcd - Kreuzgrund - Klinikum Heilbronn - Harmonie - Allee Post - Rosenberg - Sontheim",
        "short": "42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-061E-1",
        "label": "61",
        "long": "Flein - J\u00f6rg-Ratgeb-Platz - S\u00fcdbahnhof - Allee Post - HBF Schanz Nord - Frankenbach - Kirchhausen (- B\u00f6llinger H\u00f6fe)",
        "short": "61",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-062E-1",
        "label": "62",
        "long": "Flein - J\u00f6rg-Ratgeb-Platz - S\u00fcdbahnhof - Allee Post - HBF - Schanz Nord - B\u00f6llinger H\u00f6fe",
        "short": "62",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-064E-1",
        "label": "64",
        "long": "Flein - Hochschule Heilbronn - S\u00fcdbahnhof - Allee Post - HBF",
        "short": "64",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-067-1",
        "label": "67",
        "long": "Klinikum Heilbronn - Frankenbach - B\u00f6llinger H\u00f6fe Biberach - Kirchhausen",
        "short": "67",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-104F-1",
        "label": "FW 1",
        "long": "Horkheim - Sontheim - Schickhardstra\u00dfe - Hbf/Willy-Brand-Platz",
        "short": "FW 1",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-105F-1",
        "label": "FW 2",
        "long": "Neckargartach - Frankenbach - B\u00f6ckingen - Hbf/Willy-Brand-Platz",
        "short": "FW 2",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-106E-1",
        "label": "B",
        "long": "Ausflugsverkehr: Wartberg - Heilbronn Harmonie",
        "short": "B",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-110S-1",
        "label": "SEV S4",
        "long": "SEV S4 Hbf - Pf\u00fchlpark",
        "short": "SEV S4",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-30-111S-1",
        "label": "SEV S41",
        "long": "SEV S41/42 Hbf - Hans-Rie\u00dfer-Stra\u00dfe",
        "short": "SEV S41",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-001-1",
        "label": "1",
        "long": "",
        "short": "1",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-002-1",
        "label": "2",
        "long": "\u00d6hringen - Neuenstein - Waldzimmern - Giebelheide - Niedernhall - K\u00fcnzelsau",
        "short": "2",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-003-1",
        "label": "3",
        "long": "",
        "short": "3",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-004-1",
        "label": "4",
        "long": "",
        "short": "4",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-005-1",
        "label": "5",
        "long": "Niedernhall - Giebelheide - Waldzimmern (-Tal\u00e4cker) - Gaisbach",
        "short": "5",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-006-1",
        "label": "6",
        "long": "\u00d6hringen - Baumerlenbach - Forchtenberg - Niedernhall - K\u00fcnzelsau",
        "short": "6",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-007-1",
        "label": "7",
        "long": "K\u00fcnzelsau - Gaisbach - Haag - Kupferzell - Waldenburg Bf",
        "short": "7",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-008-1",
        "label": "8",
        "long": "",
        "short": "8",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-009-1",
        "label": "9",
        "long": "",
        "short": "9",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-010-1",
        "label": "10",
        "long": "Mulfingen - Ailringen - D\u00f6rzbach - Krautheim",
        "short": "10",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-011-1",
        "label": "11",
        "long": "Ailringen/Me\u00dfbach - D\u00f6rzbach - Krautheim - Sch\u00f6ntal - Jagsthausen - M\u00f6ckm\u00fchl",
        "short": "11",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-013-1",
        "label": "13",
        "long": "",
        "short": "13",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-014-1",
        "label": "14",
        "long": "",
        "short": "14",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-015-1",
        "label": "15",
        "long": "",
        "short": "15",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-017-1",
        "label": "17",
        "long": "",
        "short": "17",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-019-1",
        "label": "19",
        "long": "K\u00fcnzelsau - Krautheim - D\u00f6rzbach - Bad Mergentheim",
        "short": "19",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-021-1",
        "label": "21",
        "long": "",
        "short": "21",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-022-1",
        "label": "22",
        "long": "",
        "short": "22",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-023-1",
        "label": "23",
        "long": "",
        "short": "23",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-024-1",
        "label": "24",
        "long": "",
        "short": "24",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-025-1",
        "label": "25",
        "long": "",
        "short": "25",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-026-1",
        "label": "26",
        "long": "(SHA-Hessental -) Schw\u00e4bisch Hall - Unterm\u00fcnkheim - Braunsbach - K\u00fcnzelsau",
        "short": "26",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-027-1",
        "label": "27",
        "long": "",
        "short": "27",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-028-1",
        "label": "28",
        "long": "SHA-Hessental - Schw\u00e4bisch Hall - Unterm\u00fcnkheim - Kupferzell - K\u00fcnzelsau",
        "short": "28",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-030-1",
        "label": "CBK",
        "long": "City-Bus K\u00fcnzelsau",
        "short": "CBK",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "DD3333",
        "color_name": "red",
        "has_shape": true,
        "id": "hnv-31-031-1",
        "label": "KBB",
        "long": "Bergbahn K\u00fcnzelsau: Bergbahn Talstation - Bergbahn Bergstation u. zur\u00fcck",
        "short": "KBB",
        "text_color": "FFFFFF",
        "type_label": "Tram / light rail"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-033-1",
        "label": "33",
        "long": "Forsthaus - Sailach/Obersteinbach - Sportschule - Rathaus - Waldenburg Bf.",
        "short": "33",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-034-1",
        "label": "34",
        "long": "",
        "short": "34",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-035-1",
        "label": "35",
        "long": "",
        "short": "35",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-037-1",
        "label": "37",
        "long": "",
        "short": "37",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-038-1",
        "label": "38",
        "long": "\u00d6hringen - Pfedelbach - Oberohrn - Untersteinbach - Schuppach",
        "short": "38",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-039-1",
        "label": "39",
        "long": "",
        "short": "39",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-040-1",
        "label": "40",
        "long": "Gleichen - Buchhorn - Pfedelbach - Windischenbach - \u00d6hringen",
        "short": "40",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-042-1",
        "label": "42",
        "long": "",
        "short": "42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-043-1",
        "label": "43",
        "long": "",
        "short": "43",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-046-1",
        "label": "46",
        "long": "",
        "short": "46",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-047-1",
        "label": "47",
        "long": "Eschenau - Waldbach - Dimbach - Schwabbach - Bretzfeld",
        "short": "47",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-048-1",
        "label": "48",
        "long": "",
        "short": "48",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-050-1",
        "label": "50",
        "long": "",
        "short": "50",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-051-1",
        "label": "51",
        "long": "",
        "short": "51",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-052-1",
        "label": "52",
        "long": "",
        "short": "52",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-053-1",
        "label": "53",
        "long": "",
        "short": "53",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-054-1",
        "label": "54",
        "long": "",
        "short": "54",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-055-1",
        "label": "55",
        "long": "",
        "short": "55",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-058-1",
        "label": "58",
        "long": "",
        "short": "58",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-066-1",
        "label": "66",
        "long": "",
        "short": "66",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-067-1",
        "label": "67",
        "long": "",
        "short": "67",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-070-1",
        "label": "70",
        "long": "Waldzimmern - Neufels - Gaisbach - Haag - Kupferzell - Waldenburg Bf.",
        "short": "70",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-071-1",
        "label": "71",
        "long": "Kupferzell - Gaisbach - Rechbach - Kemmeten",
        "short": "71",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-072-1",
        "label": "72",
        "long": "",
        "short": "72",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-077-1",
        "label": "77",
        "long": "",
        "short": "77",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-079-1",
        "label": "79",
        "long": "",
        "short": "79",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-090N-1",
        "label": "90",
        "long": "''City-Hopper'' Heilbronner Str. S\u00fcd - Einkaufszentrum - Marktplatz - ZOB/Ballei",
        "short": "90",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-091E-1",
        "label": "91E",
        "long": "Stadtbus Neckarsulm Sch\u00fclerverkehr",
        "short": "91E",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-091N-1",
        "label": "91",
        "long": "(Dahenfeld) - Amorbach - Realschule - ZOB/Ballei - Bf Ost",
        "short": "91",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-092E-1",
        "label": "92E",
        "long": "Stadtbus Neckarsulm Sch\u00fclerverkehr",
        "short": "92E",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-092N-1",
        "label": "92",
        "long": "Stra\u00dfen\u00e4cker - Trendpark - Bf Ost - ZOB/Ballei - Realschule - Neuberg",
        "short": "92",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-093N-1",
        "label": "93",
        "long": "Neuberg - ZOB/Ballei - Bf Ost - Trendpark - Gewerbegebiet S\u00fcd",
        "short": "93",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-094N-1",
        "label": "94",
        "long": "Obereisesheim - Bf West - ZOB/Ballei - Stadtwerke - AQUAtoll",
        "short": "94",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-100X-1",
        "label": "X 1",
        "long": "",
        "short": "X 1",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-108-1",
        "label": "8 A",
        "long": "",
        "short": "8 A",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-111A-1",
        "label": "11 A",
        "long": "Krautheim - Laibach - Klepsau - D\u00f6rzbach - Me\u00dfbach",
        "short": "11 A",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-20H-1",
        "label": "20",
        "long": "",
        "short": "20",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-602-1",
        "label": "602",
        "long": "B\u00f6ttingen - Gundelsheim - H\u00f6chstberg - Duttenberg - Offenau - Bad Friedrichshall",
        "short": "602",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-602R-1",
        "label": "602R",
        "long": "Ring-Taxi Kochendorf - Untergriesheim - Duttenberg - Kochendorf",
        "short": "602R",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-604-1",
        "label": "604",
        "long": "Neckarelz/B\u00f6ttingen - Gundelsheim - Offenau - Bad Friedrichshall",
        "short": "604",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-610-1",
        "label": "610",
        "long": "",
        "short": "610",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-618-1",
        "label": "618",
        "long": "M\u00f6ckm\u00fchl - Billigheim  - Roigheim - M\u00f6ckm\u00fchl",
        "short": "618",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-620-1",
        "label": "620",
        "long": "Kochershuttle: Neuenstadt a.K. - Heilbronn",
        "short": "620",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-621-1",
        "label": "621",
        "long": "(Neudenau -) Stein - Kochert\u00fcrn- Neuenstadt a.K.",
        "short": "621",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-622-1",
        "label": "622",
        "long": "Neuenstadt a.K. - Gochsen - Lampoldshausen - M\u00f6ckm\u00fchl",
        "short": "622",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-623-1",
        "label": "623",
        "long": "Neudeck - Langenbeutingen - Brettach - Neuenstadt a.K.",
        "short": "623",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-624-1",
        "label": "624",
        "long": "Neckarsulm - Plattenwald - Amorbach - Neuenstadt a.K.",
        "short": "624",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-625-1",
        "label": "625",
        "long": "Neuenstadt a.K. - Degmarn - Oedheim - Bad Friedrichshall",
        "short": "625",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-627-1",
        "label": "627",
        "long": "Neuenstadt a.K. - Langenbrettach - \u00d6hringen Neuenstadt a. K. - \u00d6hringen",
        "short": "627",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-628-1",
        "label": "628",
        "long": "Bad Friedrichshall - Hagenbach - Oedheim - Bad Friedrichshall",
        "short": "628",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-630-1",
        "label": "630",
        "long": "M\u00f6ckm\u00fchl - Widdern - Unterkessach - Leibenstadt - Korb - M\u00f6ckm\u00fchl",
        "short": "630",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-631-1",
        "label": "631",
        "long": "Heilbronn - Erlenbach - Binswangen",
        "short": "631",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-632-1",
        "label": "632",
        "long": "Lehrensteinsfeld - Ellhofen - Grantschen - Wimmental",
        "short": "632",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-633-1",
        "label": "633",
        "long": "H\u00f6lzern - Eberstadt - Gellmersbach - Weinsberg",
        "short": "633",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-635-1",
        "label": "635",
        "long": "Willsbach - L\u00f6wenstein - W\u00fcstenrot (-Mainhardt)",
        "short": "635",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-636-1",
        "label": "636",
        "long": "Rundverkehr Obersulm - Reisach - Lichtenstern - Obersulm",
        "short": "636",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-640-1",
        "label": "640",
        "long": "Beilstein - Auenstein - Untergruppenbach - Heilbronn",
        "short": "640",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-641-1",
        "label": "641",
        "long": "Beilstein - Ilsfeld - Flein - Heilbronn",
        "short": "641",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-642-1",
        "label": "642",
        "long": "Beilstein  - Abstatt - Untergruppenbach - Heilbronn",
        "short": "642",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-644-1",
        "label": "644",
        "long": "(Ilsfeld -) Beilstein - Beilstein Teilorte - Prevorst",
        "short": "644",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-645-1",
        "label": "645",
        "long": "Obergruppenbach - Untergruppenbach - Happenbach - Unterheinriet - /Vorhof",
        "short": "645",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-646-1",
        "label": "646",
        "long": "Untergruppenb. - Abstatt - Ilsfeld - Neckarwesth. - Kirchh.(N)",
        "short": "646",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-647-1",
        "label": "647",
        "long": "Ellhofen - Lehrensteinsfeld - Oberheinriet Unterheinriet - Untergruppenbach (- Obergrupenbach)",
        "short": "647",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-648-1",
        "label": "648",
        "long": "Beilstein - Ilsfeld - Abstatt - Untergruppenbach",
        "short": "648",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-648H-1",
        "label": "648HN",
        "long": "Ilsfeld/Oberheinriet - Untergruppenbach - Heilbronn",
        "short": "648HN",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-649-1",
        "label": "649",
        "long": "Untergruppenbach - Flein - Talheim - Lauffen",
        "short": "649",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-651-1",
        "label": "651",
        "long": "Lauffen(N) - Neckarwestheim - Talheim - Flein - Heilbronn",
        "short": "651",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-652-1",
        "label": "652",
        "long": "City Bus Lauffen (N)",
        "short": "652",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-660-1",
        "label": "660",
        "long": "Heilbronn - Nordheim - Nordhausen - D\u00fcrrenzimmern - Brackenheim",
        "short": "660",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-661-1",
        "label": "661",
        "long": "Heilbronn - Nordheim - Brackenheim - G\u00fcglingen - Ochsenburg",
        "short": "661",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-662-1",
        "label": "662",
        "long": "Heilbronn - Nordheim - Hausen - Brackenheim",
        "short": "662",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-663-1",
        "label": "663",
        "long": "Brackenheim - Botenheim - Cleebronn - Eibensbach - G\u00fcglingen",
        "short": "663",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-664-1",
        "label": "664",
        "long": "Brackenheim - Meimsheim - Hausen - Lauffen",
        "short": "664",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-665-1",
        "label": "665",
        "long": "Brackenheim - Neipperg - Stockheim - G\u00fcglingen",
        "short": "665",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-666-1",
        "label": "666",
        "long": "Brackenheim - Cleebronn - B\u00f6nnigheim - Freudental",
        "short": "666",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-667-1",
        "label": "667",
        "long": "Lauffen - Hausen - D\u00fcrrenzimmern - Brackenheim",
        "short": "667",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-668-1",
        "label": "668",
        "long": "Lauffen - Meimsheim - Brackenheim",
        "short": "668",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-669-1",
        "label": "669",
        "long": "(Heilbronn) - Lauffen - Nordheim - Nordhausen",
        "short": "669",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-670-1",
        "label": "670",
        "long": "Schwaigern - Neipperg - Brackenheim",
        "short": "670",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-671-1",
        "label": "671",
        "long": "Schwaigern - Massenbachhausen - Gemmingen - Stebbach",
        "short": "671",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-672-1",
        "label": "672",
        "long": "Schwaigern - Stetten - Niederhofen - Kleingartach (- Michelbach)",
        "short": "672",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-673-1",
        "label": "673",
        "long": "Richen - Adelshofen - Eppingen",
        "short": "673",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-674-1",
        "label": "674",
        "long": "Eppingen - Kleingartach",
        "short": "674",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-675-1",
        "label": "675",
        "long": "Elsenz - Landshausen - Rohrbach - Eppingen",
        "short": "675",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-676-1",
        "label": "676",
        "long": "Zaberfeld - M\u00fchlbach - Eppingen",
        "short": "676",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-677-1",
        "label": "677",
        "long": "Leingarten - Massenbach - Massenbachhausen - Kirchhausen",
        "short": "677",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-678-1",
        "label": "678",
        "long": "Eppingen - Berwangen - Kirchardt - Bockschaft",
        "short": "678",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-679-1",
        "label": "679",
        "long": "Nordheim - Leingarten",
        "short": "679",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-681-1",
        "label": "681",
        "long": "Bad Rappenau - Siegelsbach - Obergimpern - H\u00fcffenhardt - Untergimpern - Neckarbischofsheim - Waibstadt",
        "short": "681",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-682-1",
        "label": "682",
        "long": "Heilbronn - Biberach - Gemmingen",
        "short": "682",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-683-1",
        "label": "683",
        "long": "Heilbronn - Kirchhausen - Gemmingen",
        "short": "683",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-684-1",
        "label": "684",
        "long": "Bad Wimpfen - Heinsheim - Zimmerhof - Bad Rappenau",
        "short": "684",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-685-1",
        "label": "685",
        "long": "Bad Rappenau - Treschklingen - F\u00fcrfeld - Bonfeld - Bad Rappenau",
        "short": "685",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-686-1",
        "label": "686",
        "long": "Gemmingen - Bonfeld - Bad Rappenau",
        "short": "686",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-688-1",
        "label": "688",
        "long": "(Bonfeld) - Biberach - Bad Wimpfen",
        "short": "688",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-689-1",
        "label": "689",
        "long": "Bad Wimpfen - Biberach - Bonfeld F\u00fcrfeld - Treschklingen -Bad Rappenau",
        "short": "689",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-691-1",
        "label": "691",
        "long": "Bad Friedrichshall - Plattenwald - Amorbach - Neckarsulm - Kaufland",
        "short": "691",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-691R-1",
        "label": "691R",
        "long": "Ringbus Kochendorf",
        "short": "691R",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-692-1",
        "label": "692",
        "long": "Weinsberg - Erlenbach - Binswangen - Neckarsulm",
        "short": "692",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-694-1",
        "label": "694",
        "long": "Neckarsulm - (Heilbronn -) Obereisesheim -Untereisesheim - (Bad Wimpfen)",
        "short": "694",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-695-1",
        "label": "695",
        "long": "Neckarsulm - Obereisesheim - B\u00f6llinger H\u00f6fe",
        "short": "695",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-X91N-1",
        "label": "X91",
        "long": "(Dahenfeld) - Amorbach - Realschule - ZOB/Ballei - Bf Ost",
        "short": "X91",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-X93N-1",
        "label": "X93",
        "long": "Expressbus: Trendpark - Bahnhof Ost",
        "short": "X93",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-31-X95N-1",
        "label": "X95",
        "long": "Expressbus: Trendpark S\u00fcd - Bahnhof Ost",
        "short": "X95",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-34-n20-1",
        "label": "N20",
        "long": "Nightlife Shuttle: Heilbronn - Kochertal",
        "short": "N20",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-50-R35-1",
        "label": "R 35",
        "long": "Rufbus: \u00d6hringen - Pfedelbach - Michelbach - Neuenstein",
        "short": "R 35",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-50-R38-1",
        "label": "R 38",
        "long": "Rufbus: \u00d6hringen - Windischenbach - Pfedelbach - Heuberg - Untersteinbach",
        "short": "R 38",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-50-R42-1",
        "label": "R 42",
        "long": "Rufbus: Bretzfeld - Adolzfurt -  Unterheimbach - Geddelsbach",
        "short": "R 42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-50-R46-1",
        "label": "R 46",
        "long": "Rufbus: Bretzfeld - Waldbach -  Schwabbach - Siebeneich",
        "short": "R 46",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "hnv-50-R50-1",
        "label": "R 50",
        "long": "Rufbus: \u00d6hringen - Oberma\u00dfholderbach - Westernbach - Zweiflingen",
        "short": "R 50",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "DD3333",
        "color_name": "red",
        "has_shape": true,
        "id": "kvv-22-304E-1",
        "label": "S4",
        "long": "Karlsruhe - Heilbronn - \u00d6hringen",
        "short": "S4",
        "text_color": "FFFFFF",
        "type_label": "Tram / light rail"
      },
      {
        "color": "DD3333",
        "color_name": "red",
        "has_shape": true,
        "id": "kvv-22-341E-1",
        "label": "S41",
        "long": "Heilbronn - Mosbach (Baden)",
        "short": "S41",
        "text_color": "FFFFFF",
        "type_label": "Tram / light rail"
      },
      {
        "color": "DD3333",
        "color_name": "red",
        "has_shape": true,
        "id": "kvv-22-342E-1",
        "label": "S42",
        "long": "Heilbronn - Sinsheim",
        "short": "S42",
        "text_color": "FFFFFF",
        "type_label": "Tram / light rail"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-23-134C-1",
        "label": "134",
        "long": "Elsenz - Eichelberg - Tiefenbach - Odenheim - \u00d6stringen",
        "short": "134",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-940B-1",
        "label": "SEV S4",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 27.04. bis 30.04.2026 (02:00 Uhr)  Heilbronn Pf\u00fchlpark - Weinsberg",
        "short": "SEV S4",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-940B-2",
        "label": "SEV S4",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig vom 03.05. bis 05.05.2026  Flehingen - Bretten (- Durlach Bahnhof)",
        "short": "SEV S4",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-940E-1",
        "label": "SEV S4",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 02.03. bis 03.03.2026 (03:00 Uhr)  Heilbronn - Schwaigern",
        "short": "SEV S4",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-940E-2",
        "label": "SEV S4",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 27.04. bis 28.04.2026 (03:00 Uhr)  Heilbronn Hbf - Schwaigern",
        "short": "SEV S4",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-940E-3",
        "label": "SEV S4",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 03.05. bis 04.05.2026 (01:00 Uhr) \u00d6hringen - Eschenau - Weinsberg - HN Pf\u00fchlpark",
        "short": "SEV S4",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-940E-4",
        "label": "SEV S4",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig am 17.08. und 18.08.2026  Schwaigern - Heilbronn",
        "short": "SEV S4",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-941E-1",
        "label": "SEV S41",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 23.01. auf 24.01.2026  Bad Friedrichshall - Bad Rappenau - Mosbach",
        "short": "SEV S41",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-941E-2",
        "label": "SEV S41",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 11.09.2026  Ha\u00dfmersheim - Gundelsheim",
        "short": "SEV S41",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-1",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 02.02.2026   Neckarsulm - Bad Friedrichshall",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-10",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 04.05. (22:00 Uhr) bis 11.05.2026 (03:30 Uhr)   Neckarsulm - Bad Friedrichshall (- Mosbach)",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-11",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 11.06. bis 12.06.2026 (01:30 Uhr)   Bad Friedrichshall - Neckarsulm",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-12",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 20.06. und 21.06.2026   Neckarsulm - Bad Friedrichshall - Sinsheim",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-13",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 24.06. auf 25.06.2026   Bad Friedrichshal - Neckarsulm",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-14",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 02.07. und 03.07.2026   Grombach - Steinsfurt - Sinsheim",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-15",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 09.07. auf 10.07.2026   Bad Friedrichshal - Neckarsulm",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-16",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 17.07. auf 18.07.2026   Neckarsulm - Bad Friedrichshal",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-17",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 22.07. auf 23.07.2026   Neckarsulm - Bad Friedrichshal",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-18",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 28.07. und 29.07.2026   Sinsheim - Bad Wimpfen - Heilbronn",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-19",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 01.08. bis 10.09.2026   Neckarsulm - Bad Friedrichshall - Bad Rappenau / Mosbach",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-2",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 07.02. bis 20.03.2026   (Heilbronn -) Neckarsulm - Bad Friedrichshall (- Bad Rappenau)",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-20",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig am 11.09.2026  Mosbach - Bad Friedrichshall - Neckarsulm",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-3",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig am 19.02.2026  Grombach - Sinsheim",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-4",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 07.02. bis 20.03.2026   (Heilbronn -) Neckarsulm - Bad Friedrichshall (- Bad Rappenau)",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-5",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig am 27.02.2026  Grombach - Sinsheim",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-6",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 07.02. bis 20.03.2026   (Heilbronn -) Neckarsulm - Bad Friedrichshall (- Bad Rappenau)",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-7",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 04.04. bis 11.04.2026 (03:30 Uhr)   (Mosbach -/Bad Rappenau-) Bad Friedrichshall - Neckarsulm - Heilbronn",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-8",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 11.04. bis 12.04.2026   (Bad Rappenau-) Bad Friedrichshall - Neckarsulm",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "kvv-40-942E-9",
        "label": "SEV S41/S42",
        "long": "SCHIENENERSATZVERKEHR g\u00fcltig 16.04. bis 17.04.2026 (01:30 Uhr)   Neckarsulm - Bad Friedrichshall",
        "short": "SEV S41/S42",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "rab-34-846-1",
        "label": "MEX12",
        "long": "",
        "short": "MEX12",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "rbs-3-061-1",
        "label": "61",
        "long": "",
        "short": "61",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "rbs-3-X91-1",
        "label": "X91",
        "long": "",
        "short": "X91",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": false,
        "id": "rbs-3-X93-1",
        "label": "X93",
        "long": "",
        "short": "X93",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "rbs-3-X95-1",
        "label": "X95",
        "long": "",
        "short": "X95",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vpe-4-902-1",
        "label": "902",
        "long": "Schulbusse  Ochsenburg - Sternenfels - Freudenstein - Maulbronn (-M\u00fchlacker)",
        "short": "902",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vrn-20-741-1",
        "label": "741",
        "long": "Sinsheim Hbf - Steinsfurt - Kirchardt - Bockschaft - Berwangen u. zur\u00fcck",
        "short": "741",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vrn-20-763-1",
        "label": "763",
        "long": "(Elsenz) - Hilsbach - Weiler - Sinsheim Hbf",
        "short": "763",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vrn-32-782-1",
        "label": "782",
        "long": "Waibstadt - Neckarbischofsheim - Helmhof - Untergimpern",
        "short": "782",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vrn-32-795-1",
        "label": "795",
        "long": "Waibstadt - Reichartshausen - Helmstadt - H\u00fcffenhardt - Bad Rappenau",
        "short": "795",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vrn-33-745-1",
        "label": "745",
        "long": "Daudenzell - Neckarbischofsheim - Neckarkatzenbach - Daudenzell Aglasterhausen",
        "short": "745",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vrn-33-844-1",
        "label": "844",
        "long": "Krautheim - Osterburken - Rosenberg - Buchen",
        "short": "844",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vrn-35-859-1",
        "label": "681",
        "long": "Bad Rappenau - Siegelsbach - Obergimpern - H\u00fcffenhardt",
        "short": "681",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vrn-49-933-1",
        "label": "933",
        "long": "Krautheim - Assamstadt - Bad Mergentheim",
        "short": "933",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vrn-49-955-1",
        "label": "955",
        "long": "Bad Mergentheim - Wachbach - Sch\u00f6nb\u00fchl - Hollenbach",
        "short": "955",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vsh-20-029-1",
        "label": "29",
        "long": "",
        "short": "29",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vsh-20-029-2",
        "label": "29",
        "long": "",
        "short": "29",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vsh-20-032-1",
        "label": "32",
        "long": "",
        "short": "32",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vsh-20-032-2",
        "label": "32",
        "long": "",
        "short": "32",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vsh-20-071-1",
        "label": "71",
        "long": "",
        "short": "71",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vsh-20-071-2",
        "label": "71",
        "long": "",
        "short": "71",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vsh-20-091-1",
        "label": "91",
        "long": "",
        "short": "91",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vsh-20-091-2",
        "label": "91",
        "long": "",
        "short": "91",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vsh-20-104-1",
        "label": "104",
        "long": "",
        "short": "104",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vsh-20-104-2",
        "label": "104",
        "long": "",
        "short": "104",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vsh-30-020-1",
        "label": "20",
        "long": "",
        "short": "20",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vvs-31-385-1",
        "label": "385",
        "long": "W\u00fcstenrot - Sulzbach (M) (inkl. R\u00e4uberbus)",
        "short": "385",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vvs-31-460-1",
        "label": "460",
        "long": "Beilstein - Oberstenfeld - Gro\u00dfbottwar - Steinheim (M) - Marbach (N)",
        "short": "460",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vvs-31-460a-1",
        "label": "460A",
        "long": "Marbach (N) - Steinheim (M) - Gro\u00dfbottwar - Oberstenfeld - Beilstein",
        "short": "460A",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vvs-31-567-1",
        "label": "567",
        "long": "(Murr -) Pleidelsheim - Gro\u00dfingersheim - Bietigheim - Freudental - Hohenhaslach",
        "short": "567",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vvs-31-572-1",
        "label": "572",
        "long": "Kirbachtal - Tripsdrill - Bietigheim (Fahrrad- & Wanderbus ''Stromer'')",
        "short": "572",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vvs-31-X46-1",
        "label": "X46",
        "long": "Marbach (N) -  Gro\u00dfbottwar - Oberstenfeld - Beilstein",
        "short": "X46",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vvs-34-046-1",
        "label": "N46",
        "long": "Marbach (N) - Gro\u00dfbottwar - Oberstenfeld - Gronau - Beilstein",
        "short": "N46",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vvs-36-008e-1",
        "label": "RE8E",
        "long": "Bietigheim - Heilbronn (Schienenersatzverkehr)",
        "short": "RE8E",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vvs-36-018e-1",
        "label": "MEX18E",
        "long": "N\u00fcrtingen - Reutlingen (Schienenersatzverkehr)",
        "short": "MEX18E",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "1A7A46",
        "color_name": "green",
        "has_shape": true,
        "id": "vvs-36-018z-1",
        "label": "MEX18E",
        "long": "Laufen - Bietigheim (Schienenersatzverkehr)",
        "short": "MEX18E",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      }
    ],
    "stop_count": 4825,
    "stop_points_capped": true
  },
  "rubric_version": "1.2",
  "schema_version": "1.15",
  "scoring_profile": {
    "id": "gtfs-scorecard-1.2",
    "provenance": "GTFS Scorecard's project-authored weights, deductions, thresholds, grade bands, and fix ranking, informed by the California Transit Data Guidelines and the MobilityData gtfs-validator. It is not a worldwide standard or a compliance determination.",
    "rubric_version": "1.2"
  },
  "snapshot_date": "2026-07-18",
  "top_fixes": [
    {
      "code": "point_near_origin",
      "count": 1,
      "effort": "Varies.",
      "fix": "Review the rule documentation for 'point_near_origin' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.",
      "owner": "",
      "points": 12.0,
      "rank": 1,
      "severity": "ERROR",
      "what": "Point near origin (flagged by the MobilityData validator).",
      "why": "See the linked rule for what this affects."
    },
    {
      "code": "scorecard_wheelchair_boarding_unknown",
      "count": 4783,
      "effort": "A column in stops.txt; your scheduling software likely has it.",
      "fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops.",
      "owner": "Likely your team",
      "points": 24.8,
      "rank": 2,
      "severity": "WARNING",
      "what": "4783 of 4826 stops don't say whether a wheelchair user can board there.",
      "why": "Riders who use wheelchairs can't plan a trip when accessibility is marked 'unknown'; apps show no information at all."
    },
    {
      "code": "scorecard_no_fare_data",
      "count": 1,
      "effort": "A small file for most flat-fare systems.",
      "fix": "Add fare_attributes.txt (or Fares v2 files) with your fare structure. If your service is fare-free, ask to have it marked fare-free instead.",
      "owner": "",
      "points": 15.0,
      "rank": 3,
      "severity": "WARNING",
      "what": "The feed contains no fare information.",
      "why": "Riders see 'fare unknown' in trip planners and can't budget their trip; visitors are most affected."
    }
  ],
  "validator_version": "8.0.1"
}
