{
  "product": "MPC Route Atlas",
  "edition": "Marloth-First Planning Edition",
  "version": "1.0.0",
  "publication_date": "2026-07-09",
  "last_verification_date": "2026-07-09",
  "update_notice": "Confirm current official information before each departure.",
  "independence_notice": "Marloth Park Central is an independent visitor-information platform. This atlas is not an official SANParks product, official Kruger National Park map, live navigation service or guarantee of road, facility or wildlife conditions.",
  "map_notice": "Maps and route information are provided for visitor planning and general orientation. Roads, access, gate times, facilities and conditions may change. Confirm current official information before departure and follow all official signs, notices and instructions.",
  "routes": [
    {
      "id": "Route 01",
      "slug": "route-01-marloth-park-to-crocodile-bridge-gate",
      "name": "Marloth Park to Crocodile Bridge Gate",
      "version": "1.0.0",
      "purpose": "Gate approach for routes using the south-eastern Kruger road network, including Lower Sabie.",
      "start": "Visitor accommodation or agreed departure point in Marloth Park",
      "end": "Crocodile Bridge Gate entrance area",
      "entry_gate": "Crocodile Bridge Gate",
      "exit_gate": "Not applicable - gate approach",
      "roads": [
        "Local Marloth Park access road",
        "Marloth Park Road / Tenbosch Road as signed",
        "R571 toward Crocodile Bridge Gate"
      ],
      "instructions": [
        "Leave the accommodation using the signed local road sequence to a Marloth Park exit.",
        "Use Marloth Park Road or Tenbosch Road according to the selected exit and current signage.",
        "Join the external tar-road approach and follow signs toward Crocodile Bridge Gate.",
        "Continue on the R571 to the gate entrance area.",
        "Before joining the entry queue, have identification, booking details and required entry documents ready."
      ],
      "junctions": [
        "Selected Marloth Park exit",
        "Tenbosch Road / external approach junction",
        "R571 turn toward Crocodile Bridge Gate"
      ],
      "direction": "Marloth Park to Crocodile Bridge Gate",
      "stops": [
        "No fixed stop required"
      ],
      "distance": "Approximately 14-25 km, depending on the Marloth Park starting point and selected exit",
      "minimum_time": "Approximately 25-40 minutes without delays",
      "planning_duration": "Allow 45-75 minutes before planned park entry, including local access, traffic and entry preparation",
      "surface": "Local roads vary; external approach is mostly tar",
      "category": "Gate approach",
      "complexity": "Moderate",
      "timing_sensitivity": "Moderate",
      "return_flexibility": "Direct return",
      "facilities": "Fuel and basic visitor facilities are listed at Crocodile Bridge; confirm current operating status before relying on them.",
      "fuel": "Confirm fuel before leaving Marloth Park. A filling station is listed at Crocodile Bridge, but availability is not guaranteed.",
      "turnaround": "Not applicable. This route ends at the gate entry area.",
      "return_logic": "Reverse the signed external approach to the selected Marloth Park entrance. Allow for N4/R571 traffic and local gate arrangements.",
      "limitation": "Distance and time vary materially by accommodation location, Marloth exit and entry-queue conditions.",
      "gate_margin": "Depart Marloth Park early enough to complete the approach and entry process after the official gate opens.",
      "sources": [
        "SRC-002",
        "SRC-008",
        "SRC-013"
      ],
      "verification": "2026-07-09",
      "status": "Approved for planning use - current-condition confirmation required",
      "map_mode": "approach_croc",
      "map_path": [
        "Marloth Park",
        "Tenbosch Junction",
        "R571 Junction",
        "Crocodile Bridge Gate"
      ],
      "map_file": "maps/MPC_ROUTE_ATLAS_ROUTE_01_MAP_V1.0.png"
    },
    {
      "id": "Route 02",
      "slug": "route-02-marloth-park-to-malelane-gate",
      "name": "Marloth Park to Malelane Gate",
      "version": "1.0.0",
      "purpose": "Gate approach for routes centred on Berg-en-Dal, the H3 corridor and Skukuza.",
      "start": "Visitor accommodation or agreed departure point in Marloth Park",
      "end": "Malelane Gate entrance area",
      "entry_gate": "Malelane Gate",
      "exit_gate": "Not applicable - gate approach",
      "roads": [
        "Local Marloth Park access road",
        "Marloth Park Road / Tenbosch Road as signed",
        "N4 west",
        "R570 north to Malelane Gate"
      ],
      "instructions": [
        "Leave the accommodation using the signed local road sequence to a Marloth Park exit.",
        "Use Marloth Park Road or Tenbosch Road according to the selected exit and current signage.",
        "Join the N4 and travel west toward Malelane.",
        "Turn onto the signed R570 approach to Malelane Gate.",
        "Continue to the gate entrance area and prepare identification, booking details and required entry documents."
      ],
      "junctions": [
        "Selected Marloth Park exit",
        "N4 westbound junction",
        "R570 turn to Malelane Gate"
      ],
      "direction": "Marloth Park to Malelane Gate",
      "stops": [
        "External service stops are available along the N4; no stop is required by the route"
      ],
      "distance": "Approximately 35-50 km, depending on the Marloth Park starting point and selected exit",
      "minimum_time": "Approximately 45-60 minutes without delays",
      "planning_duration": "Allow 60-90 minutes before planned park entry, including local access, N4 traffic and entry preparation",
      "surface": "Local roads vary; external route is mainly tar",
      "category": "Gate approach",
      "complexity": "Moderate",
      "timing_sensitivity": "Moderate",
      "return_flexibility": "Direct return",
      "facilities": "Do not depend on a specific external stop unless its current operating status is confirmed.",
      "fuel": "Confirm fuel before leaving Marloth Park or use a verified external filling station before entering the park.",
      "turnaround": "Not applicable. This route ends at the gate entry area.",
      "return_logic": "Reverse the R570 and N4 approach, then use the selected Marloth Park entrance and local road sequence.",
      "limitation": "N4 travel increases the total day length and is affected by traffic, road works and the selected Marloth Park exit.",
      "gate_margin": "Depart Marloth Park early enough to complete the external approach and entry process after the official gate opens.",
      "sources": [
        "SRC-002",
        "SRC-005",
        "SRC-011",
        "SRC-013"
      ],
      "verification": "2026-07-09",
      "status": "Approved for planning use - current-condition confirmation required",
      "map_mode": "approach_mal",
      "map_path": [
        "Marloth Park",
        "Tenbosch Junction",
        "N4 East Junction",
        "Malelane N4 Junction",
        "Malelane Gate"
      ],
      "map_file": "maps/MPC_ROUTE_ATLAS_ROUTE_02_MAP_V1.0.png"
    },
    {
      "id": "Route 03",
      "slug": "route-03-crocodile-bridge-to-lower-sabie-direct-return",
      "name": "Crocodile Bridge to Lower Sabie Direct Return",
      "version": "1.0.0",
      "purpose": "Simple same-gate route to Lower Sabie using the direct tar road in both directions.",
      "start": "Crocodile Bridge Gate",
      "end": "Lower Sabie and return to Crocodile Bridge Gate",
      "entry_gate": "Crocodile Bridge Gate",
      "exit_gate": "Crocodile Bridge Gate",
      "roads": [
        "H4-2 north",
        "H4-2 south on return"
      ],
      "instructions": [
        "Enter through Crocodile Bridge Gate.",
        "Continue north on the H4-2.",
        "Remain on the H4-2 to Lower Sabie.",
        "Use Lower Sabie as the destination and turnaround point.",
        "Return south on the H4-2 to Crocodile Bridge Gate."
      ],
      "junctions": [
        "Crocodile Bridge Gate / H4-2",
        "Southern S28 junction",
        "Northern S28 junction",
        "Lower Sabie approach"
      ],
      "direction": "North to Lower Sabie; south to Crocodile Bridge on return",
      "stops": [
        "Crocodile Bridge",
        "Lower Sabie"
      ],
      "distance": "Approximately 68 km in park (34 km each way)",
      "minimum_time": "Approximately 2 hours 20 minutes uninterrupted, based on the published 1 hour 10 minute gate-to-camp minimum each way",
      "planning_duration": "Allow 4-6 hours, excluding an extended meal stop",
      "surface": "Tar",
      "category": "Half-day route",
      "complexity": "Simple",
      "timing_sensitivity": "Low",
      "return_flexibility": "Direct return",
      "facilities": "Crocodile Bridge and Lower Sabie list fuel, toilets, shops and food services. Confirm current operating status.",
      "fuel": "Fuel is listed at both endpoints. Confirm availability before relying on either station.",
      "turnaround": "Leave Lower Sabie no later than the published gate closing time minus 2 hours. Increase the margin when traffic, weather or wildlife delays are present.",
      "return_logic": "Return on the same H4-2 road. Do not add a gravel-road detour unless time and current access have been checked.",
      "limitation": "The direct road can still take longer than its minimum because wildlife, congestion and stops affect progress.",
      "gate_margin": "Target arrival at Crocodile Bridge 45-60 minutes before closing.",
      "sources": [
        "SRC-002",
        "SRC-003",
        "SRC-004",
        "SRC-006",
        "SRC-008",
        "SRC-009"
      ],
      "verification": "2026-07-09",
      "status": "Approved for planning use - current-condition confirmation required",
      "map_mode": "park",
      "map_path": [
        "Crocodile Bridge Gate",
        "H4-2 South",
        "H4-2 North",
        "Lower Sabie",
        "H4-2 North",
        "H4-2 South",
        "Crocodile Bridge Gate"
      ],
      "map_file": "maps/MPC_ROUTE_ATLAS_ROUTE_03_MAP_V1.0.png"
    },
    {
      "id": "Route 04",
      "slug": "route-04-crocodile-bridge-lower-sabie-mixed-circuit",
      "name": "Crocodile Bridge-Lower Sabie Mixed Circuit",
      "version": "1.0.0",
      "purpose": "Mixed tar-and-gravel circuit using the S28 in one direction and the H4-2 for the direct return.",
      "start": "Crocodile Bridge Gate",
      "end": "Lower Sabie and return to Crocodile Bridge Gate",
      "entry_gate": "Crocodile Bridge Gate",
      "exit_gate": "Crocodile Bridge Gate",
      "roads": [
        "H4-2 north",
        "S28 north",
        "H4-2 north to Lower Sabie",
        "H4-2 south on return"
      ],
      "instructions": [
        "Enter through Crocodile Bridge Gate and continue north on the H4-2.",
        "At the signed southern S28 junction, turn onto the S28.",
        "Follow the S28 north to its northern junction with the H4-2.",
        "Turn north on the H4-2 and continue to Lower Sabie.",
        "Return directly to Crocodile Bridge Gate on the H4-2."
      ],
      "junctions": [
        "Crocodile Bridge Gate / H4-2",
        "Southern S28 junction",
        "Northern S28 junction",
        "Lower Sabie approach"
      ],
      "direction": "North via S28 and H4-2; south via H4-2",
      "stops": [
        "Crocodile Bridge",
        "Lower Sabie"
      ],
      "distance": "Approximately 68 km in park; the circuit replaces part of the H4-2 with about 24 km of S28 gravel road",
      "minimum_time": "Allow at least 2 hours 40 minutes uninterrupted; gravel conditions may increase this",
      "planning_duration": "Allow 5-7 hours, excluding an extended meal stop",
      "surface": "Mixed tar and gravel",
      "category": "Half-day route",
      "complexity": "Moderate",
      "timing_sensitivity": "Moderate",
      "return_flexibility": "Alternative return available",
      "facilities": "Facilities are concentrated at Crocodile Bridge and Lower Sabie. There are no listed full-service facilities on the S28 section.",
      "fuel": "Confirm fuel before entering the S28. Fuel is listed at both endpoints but availability is not guaranteed.",
      "turnaround": "Do not enter the S28 unless the full gravel section, Lower Sabie stop and direct H4-2 return fit inside the remaining gate time with margin.",
      "return_logic": "Use the H4-2 for the direct return. If the S28 is closed or unsuitable, use Route 03 instead.",
      "limitation": "The S28 is gravel dependent and may be affected by weather, grading, temporary closure or slow traffic.",
      "gate_margin": "Target arrival at Crocodile Bridge 45-60 minutes before closing; use a larger margin after rain.",
      "sources": [
        "SRC-002",
        "SRC-003",
        "SRC-006",
        "SRC-008",
        "SRC-009"
      ],
      "verification": "2026-07-09",
      "status": "Approved for planning use - current-condition confirmation required",
      "map_mode": "park",
      "map_path": [
        "Crocodile Bridge Gate",
        "H4-2 South",
        "S28 South",
        "S28 North",
        "H4-2 North",
        "Lower Sabie",
        "H4-2 North",
        "H4-2 South",
        "Crocodile Bridge Gate"
      ],
      "map_file": "maps/MPC_ROUTE_ATLAS_ROUTE_04_MAP_V1.0.png"
    },
    {
      "id": "Route 05",
      "slug": "route-05-crocodile-bridge-to-tshokwane-return",
      "name": "Crocodile Bridge to Tshokwane Return",
      "version": "1.0.0",
      "purpose": "Extended same-gate route from Crocodile Bridge through Lower Sabie to Tshokwane.",
      "start": "Crocodile Bridge Gate",
      "end": "Tshokwane and return to Crocodile Bridge Gate",
      "entry_gate": "Crocodile Bridge Gate",
      "exit_gate": "Crocodile Bridge Gate",
      "roads": [
        "H4-2 north",
        "H10 north",
        "H10 south on return",
        "H4-2 south on return"
      ],
      "instructions": [
        "Enter through Crocodile Bridge Gate and follow the H4-2 north to Lower Sabie.",
        "At Lower Sabie, join the H10 north toward Tshokwane.",
        "Remain on the H10 to Tshokwane.",
        "Use Tshokwane as the turnaround point.",
        "Return on the H10 to Lower Sabie, then use the H4-2 south to Crocodile Bridge Gate."
      ],
      "junctions": [
        "Crocodile Bridge Gate / H4-2",
        "Lower Sabie / H10 junction",
        "H10 / H1-2 area at Tshokwane"
      ],
      "direction": "North to Tshokwane; south to Crocodile Bridge on return",
      "stops": [
        "Lower Sabie",
        "Tshokwane"
      ],
      "distance": "Approximately 152 km in park (76 km each way)",
      "minimum_time": "Approximately 5 hours 10 minutes uninterrupted, based on the published 2 hour 35 minute minimum each way",
      "planning_duration": "Allow 8-10 hours and begin early",
      "surface": "Tar",
      "category": "Extended full-day route",
      "complexity": "Moderate",
      "timing_sensitivity": "High",
      "return_flexibility": "Turnaround dependent",
      "facilities": "Lower Sabie is the main full-service point. Tshokwane is a picnic stop; confirm access and current services.",
      "fuel": "Confirm fuel before departure and again at Lower Sabie if needed. Do not plan on obtaining fuel at Tshokwane.",
      "turnaround": "Leave Tshokwane no later than the published gate closing time minus 4 hours. Turn around earlier if the outward journey takes longer than planned.",
      "return_logic": "Reverse the H10 and H4-2 sequence. Do not add side roads after the turnaround time has been reached.",
      "limitation": "This route has limited time flexibility because the return uses the same long road sequence.",
      "gate_margin": "Target arrival at Crocodile Bridge at least 60 minutes before closing.",
      "sources": [
        "SRC-002",
        "SRC-003",
        "SRC-006",
        "SRC-008",
        "SRC-009",
        "SRC-012"
      ],
      "verification": "2026-07-09",
      "status": "Approved for planning use - current-condition confirmation required",
      "map_mode": "park",
      "map_path": [
        "Crocodile Bridge Gate",
        "H4-2 South",
        "H4-2 North",
        "Lower Sabie",
        "H10 Mid",
        "Tshokwane",
        "H10 Mid",
        "Lower Sabie",
        "H4-2 North",
        "H4-2 South",
        "Crocodile Bridge Gate"
      ],
      "map_file": "maps/MPC_ROUTE_ATLAS_ROUTE_05_MAP_V1.0.png"
    },
    {
      "id": "Route 06",
      "slug": "route-06-crocodile-bridge-skukuza-malelane-two-gate-circuit",
      "name": "Crocodile Bridge-Skukuza-Malelane Two-Gate Circuit",
      "version": "1.0.0",
      "purpose": "Full-day tar route entering at Crocodile Bridge and exiting at Malelane after Lower Sabie and Skukuza.",
      "start": "Crocodile Bridge Gate",
      "end": "Malelane Gate",
      "entry_gate": "Crocodile Bridge Gate",
      "exit_gate": "Malelane Gate",
      "roads": [
        "H4-2 north",
        "H4-1 west",
        "H3 south"
      ],
      "instructions": [
        "Enter through Crocodile Bridge Gate and follow the H4-2 to Lower Sabie.",
        "Continue west from Lower Sabie on the H4-1 toward Skukuza.",
        "Remain on the H4-1 to Skukuza, using Nkuhlu only if time and current access permit.",
        "At Skukuza, join the H3 south toward Malelane Gate.",
        "Remain on the H3 and exit through Malelane Gate.",
        "Use the external N4 return route to Marloth Park."
      ],
      "junctions": [
        "Crocodile Bridge Gate / H4-2",
        "Lower Sabie / H4-1",
        "Skukuza / H3",
        "Malelane Gate"
      ],
      "direction": "North-west to Skukuza, then south to Malelane",
      "stops": [
        "Lower Sabie",
        "Nkuhlu if open and time allows",
        "Skukuza",
        "Afsaal if open and time allows"
      ],
      "distance": "Approximately 141 km in park (77 km Crocodile Bridge to Skukuza plus 64 km Skukuza to Malelane)",
      "minimum_time": "Approximately 4 hours 45 minutes uninterrupted, using published segment minimums",
      "planning_duration": "Allow 7-9 hours in park, plus the external return from Malelane Gate to Marloth Park",
      "surface": "Tar",
      "category": "Full-day route",
      "complexity": "Multiple-junction route",
      "timing_sensitivity": "High",
      "return_flexibility": "Exit-gate dependent",
      "facilities": "Full-service facilities are listed at Lower Sabie and Skukuza. Nkuhlu and Afsaal are optional picnic stops with limited services.",
      "fuel": "Confirm fuel before entry. Fuel is listed at Crocodile Bridge, Lower Sabie and Skukuza; confirm availability before relying on a station.",
      "turnaround": "Reach Skukuza and begin the H3 south no later than the Malelane closing time minus 3 hours 15 minutes.",
      "return_logic": "Exit at Malelane Gate, follow the R570 to the N4, travel east and return to Marloth Park via the selected entrance.",
      "limitation": "The route finishes at a different gate, so the external return must be included in the total day plan.",
      "gate_margin": "Target arrival at Malelane Gate at least 60 minutes before closing.",
      "sources": [
        "SRC-002",
        "SRC-003",
        "SRC-006",
        "SRC-009",
        "SRC-010",
        "SRC-012"
      ],
      "verification": "2026-07-09",
      "status": "Approved for planning use - current-condition confirmation required",
      "map_mode": "park",
      "map_path": [
        "Crocodile Bridge Gate",
        "H4-2 South",
        "H4-2 North",
        "Lower Sabie",
        "H4-1 East",
        "Nkuhlu",
        "H4-1 West",
        "Skukuza",
        "H3 North",
        "Afsaal",
        "H3 South",
        "Malelane Gate"
      ],
      "map_file": "maps/MPC_ROUTE_ATLAS_ROUTE_06_MAP_V1.0.png"
    },
    {
      "id": "Route 07",
      "slug": "route-07-malelane-gate-to-berg-en-dal-direct-return",
      "name": "Malelane Gate to Berg-en-Dal Direct Return",
      "version": "1.0.0",
      "purpose": "Short same-gate route to Berg-en-Dal using the direct S110 tar road.",
      "start": "Malelane Gate",
      "end": "Berg-en-Dal and return to Malelane Gate",
      "entry_gate": "Malelane Gate",
      "exit_gate": "Malelane Gate",
      "roads": [
        "S110 to Berg-en-Dal",
        "S110 to Malelane Gate on return"
      ],
      "instructions": [
        "Enter through Malelane Gate.",
        "Follow the signed S110 toward Berg-en-Dal.",
        "Remain on the direct S110 approach to the camp.",
        "Use Berg-en-Dal as the destination and turnaround point.",
        "Return on the S110 to Malelane Gate."
      ],
      "junctions": [
        "Malelane Gate / S110",
        "Berg-en-Dal entrance"
      ],
      "direction": "North-west to Berg-en-Dal; south-east to Malelane Gate on return",
      "stops": [
        "Berg-en-Dal"
      ],
      "distance": "Approximately 24 km in park (12 km each way)",
      "minimum_time": "Approximately 50 minutes uninterrupted, based on the published 25 minute minimum each way",
      "planning_duration": "Allow 2.5-4 hours, excluding an extended meal stop",
      "surface": "Tar",
      "category": "Short route",
      "complexity": "Simple",
      "timing_sensitivity": "Low",
      "return_flexibility": "Direct return",
      "facilities": "Berg-en-Dal lists fuel, toilets, food, a shop and a day-visitor picnic area. Confirm operating status.",
      "fuel": "Confirm fuel before departure. Fuel is listed at Berg-en-Dal, but availability is not guaranteed.",
      "turnaround": "Leave Berg-en-Dal no later than the gate closing time minus 1 hour 15 minutes.",
      "return_logic": "Return on the same S110 approach to Malelane Gate.",
      "limitation": "The route is short in distance, but stops and slow-moving traffic can still affect exit time.",
      "gate_margin": "Target arrival at Malelane Gate 45-60 minutes before closing.",
      "sources": [
        "SRC-002",
        "SRC-003",
        "SRC-005",
        "SRC-006",
        "SRC-011"
      ],
      "verification": "2026-07-09",
      "status": "Approved for planning use - current-condition confirmation required",
      "map_mode": "park",
      "map_path": [
        "Malelane Gate",
        "S110 Direct",
        "Berg-en-Dal",
        "S110 Direct",
        "Malelane Gate"
      ],
      "map_file": "maps/MPC_ROUTE_ATLAS_ROUTE_07_MAP_V1.0.png"
    },
    {
      "id": "Route 08",
      "slug": "route-08-malelane-gate-berg-en-dal-matjulu-loop",
      "name": "Malelane Gate-Berg-en-Dal Matjulu Loop",
      "version": "1.0.0",
      "purpose": "Mixed-surface route combining the direct Berg-en-Dal approach with the S110 loop around the camp area.",
      "start": "Malelane Gate",
      "end": "Berg-en-Dal circuit and return to Malelane Gate",
      "entry_gate": "Malelane Gate",
      "exit_gate": "Malelane Gate",
      "roads": [
        "S110 direct approach",
        "S110 gravel loop",
        "S110 direct return"
      ],
      "instructions": [
        "Enter through Malelane Gate and follow the S110 to Berg-en-Dal.",
        "At the signed S110 loop junction, enter the gravel loop only if it is open and time permits.",
        "Follow the S110 loop in the signed direction and remain on the numbered road.",
        "Rejoin the direct S110 near Berg-en-Dal.",
        "Return on the direct S110 to Malelane Gate."
      ],
      "junctions": [
        "Malelane Gate / S110",
        "Berg-en-Dal approach",
        "S110 loop entry",
        "S110 loop return junction"
      ],
      "direction": "To Berg-en-Dal, around the S110 loop, then back to Malelane",
      "stops": [
        "Berg-en-Dal"
      ],
      "distance": "Approximately 46 km in park, including the 12 km approach each way and an approximately 22 km S110 loop",
      "minimum_time": "Allow at least 1 hour 40 minutes uninterrupted; gravel conditions may increase this",
      "planning_duration": "Allow 3.5-5.5 hours",
      "surface": "Mixed tar and gravel",
      "category": "Half-day route",
      "complexity": "Moderate",
      "timing_sensitivity": "Moderate",
      "return_flexibility": "Fixed loop",
      "facilities": "Berg-en-Dal is the route's main service point. There are no listed full-service facilities on the gravel loop.",
      "fuel": "Confirm fuel before starting the loop. Fuel is listed at Berg-en-Dal, but availability is not guaranteed.",
      "turnaround": "Do not enter the loop after the closing time minus 3 hours. Use Route 07 if the remaining time is insufficient.",
      "return_logic": "Complete the signed loop, rejoin the direct S110 and return to Malelane Gate.",
      "limitation": "The gravel loop is condition dependent and should be omitted after rain, during closure or when the remaining gate time is limited.",
      "gate_margin": "Target arrival at Malelane Gate 45-60 minutes before closing.",
      "sources": [
        "SRC-002",
        "SRC-003",
        "SRC-005",
        "SRC-006",
        "SRC-011"
      ],
      "verification": "2026-07-09",
      "status": "Approved for planning use - current-condition confirmation required",
      "map_mode": "park",
      "map_path": [
        "Malelane Gate",
        "S110 Direct",
        "Berg-en-Dal",
        "S110 Loop East",
        "S110 Loop North",
        "S110 Loop West",
        "Berg-en-Dal",
        "S110 Direct",
        "Malelane Gate"
      ],
      "map_file": "maps/MPC_ROUTE_ATLAS_ROUTE_08_MAP_V1.0.png"
    },
    {
      "id": "Route 09",
      "slug": "route-09-malelane-gate-to-skukuza-direct-return",
      "name": "Malelane Gate to Skukuza Direct Return",
      "version": "1.0.0",
      "purpose": "Same-gate full-day route between Malelane and Skukuza using the H3 in both directions.",
      "start": "Malelane Gate",
      "end": "Skukuza and return to Malelane Gate",
      "entry_gate": "Malelane Gate",
      "exit_gate": "Malelane Gate",
      "roads": [
        "H3 north",
        "H3 south on return"
      ],
      "instructions": [
        "Enter through Malelane Gate and join the H3 north.",
        "Remain on the H3 toward Skukuza.",
        "Use Afsaal only if it is open and the stop fits the route plan.",
        "Continue on the H3 to Skukuza.",
        "Return south on the H3 and exit through Malelane Gate."
      ],
      "junctions": [
        "Malelane Gate / H3",
        "Afsaal area",
        "Skukuza / H3"
      ],
      "direction": "North to Skukuza; south to Malelane on return",
      "stops": [
        "Afsaal if open",
        "Skukuza"
      ],
      "distance": "Approximately 128 km in park (64 km each way)",
      "minimum_time": "Approximately 4 hours 20 minutes uninterrupted, based on the published 2 hour 10 minute minimum each way",
      "planning_duration": "Allow 6.5-8.5 hours",
      "surface": "Tar",
      "category": "Full-day route",
      "complexity": "Simple",
      "timing_sensitivity": "High",
      "return_flexibility": "Direct return",
      "facilities": "Skukuza lists fuel, toilets, food, shops and a day-visitor area. Afsaal is an optional picnic stop with limited services.",
      "fuel": "Confirm fuel before entry. Fuel is listed at Skukuza; do not rely on Afsaal for fuel.",
      "turnaround": "Leave Skukuza no later than the Malelane closing time minus 3 hours 15 minutes.",
      "return_logic": "Return on the H3. Avoid adding side roads once the turnaround time is reached.",
      "limitation": "The same long corridor must be covered again on return, so outward delays reduce stop time at Skukuza.",
      "gate_margin": "Target arrival at Malelane Gate at least 60 minutes before closing.",
      "sources": [
        "SRC-002",
        "SRC-003",
        "SRC-004",
        "SRC-006",
        "SRC-010",
        "SRC-012"
      ],
      "verification": "2026-07-09",
      "status": "Approved for planning use - current-condition confirmation required",
      "map_mode": "park",
      "map_path": [
        "Malelane Gate",
        "H3 South",
        "Afsaal",
        "H3 North",
        "Skukuza",
        "H3 North",
        "Afsaal",
        "H3 South",
        "Malelane Gate"
      ],
      "map_file": "maps/MPC_ROUTE_ATLAS_ROUTE_09_MAP_V1.0.png"
    },
    {
      "id": "Route 10",
      "slug": "route-10-malelane-skukuza-lower-sabie-crocodile-bridge-two-gate-circuit",
      "name": "Malelane-Skukuza-Lower Sabie-Crocodile Bridge Two-Gate Circuit",
      "version": "1.0.0",
      "purpose": "Full-day tar route entering at Malelane, passing Skukuza and Lower Sabie, and exiting at Crocodile Bridge.",
      "start": "Malelane Gate",
      "end": "Crocodile Bridge Gate",
      "entry_gate": "Malelane Gate",
      "exit_gate": "Crocodile Bridge Gate",
      "roads": [
        "H3 north",
        "H4-1 east",
        "H4-2 south"
      ],
      "instructions": [
        "Enter through Malelane Gate and follow the H3 north to Skukuza.",
        "At Skukuza, join the H4-1 east toward Lower Sabie.",
        "Remain on the H4-1 to Lower Sabie, using Nkuhlu only if time and current access permit.",
        "At Lower Sabie, join the H4-2 south toward Crocodile Bridge.",
        "Remain on the H4-2 and exit through Crocodile Bridge Gate.",
        "Use the external R571 return route to Marloth Park."
      ],
      "junctions": [
        "Malelane Gate / H3",
        "Skukuza / H4-1",
        "Lower Sabie / H4-2",
        "Crocodile Bridge Gate"
      ],
      "direction": "North to Skukuza, east to Lower Sabie, then south to Crocodile Bridge",
      "stops": [
        "Afsaal if open",
        "Skukuza",
        "Nkuhlu if open",
        "Lower Sabie"
      ],
      "distance": "Approximately 141 km in park (64 km Malelane to Skukuza, about 43 km Skukuza to Lower Sabie, and 34 km Lower Sabie to Crocodile Bridge)",
      "minimum_time": "Allow at least 5 hours uninterrupted across the three main segments",
      "planning_duration": "Allow 7.5-9.5 hours in park, plus the external return to Marloth Park",
      "surface": "Tar",
      "category": "Full-day route",
      "complexity": "Multiple-junction route",
      "timing_sensitivity": "High",
      "return_flexibility": "Exit-gate dependent",
      "facilities": "Full-service facilities are listed at Skukuza and Lower Sabie. Afsaal and Nkuhlu are optional limited-service stops.",
      "fuel": "Confirm fuel before entry. Fuel is listed at Skukuza, Lower Sabie and Crocodile Bridge; confirm current availability.",
      "turnaround": "Leave Lower Sabie on the H4-2 no later than the Crocodile Bridge closing time minus 2 hours.",
      "return_logic": "Exit at Crocodile Bridge Gate, follow the R571 and signed external approach to Marloth Park.",
      "limitation": "This is a long two-gate route. Stops at Skukuza or Lower Sabie must not consume the gate-closing margin.",
      "gate_margin": "Target arrival at Crocodile Bridge at least 60 minutes before closing.",
      "sources": [
        "SRC-002",
        "SRC-003",
        "SRC-006",
        "SRC-009",
        "SRC-010",
        "SRC-012"
      ],
      "verification": "2026-07-09",
      "status": "Approved for planning use - current-condition confirmation required",
      "map_mode": "park",
      "map_path": [
        "Malelane Gate",
        "H3 South",
        "Afsaal",
        "H3 North",
        "Skukuza",
        "H4-1 West",
        "Nkuhlu",
        "H4-1 East",
        "Lower Sabie",
        "H4-2 North",
        "H4-2 South",
        "Crocodile Bridge Gate"
      ],
      "map_file": "maps/MPC_ROUTE_ATLAS_ROUTE_10_MAP_V1.0.png"
    }
  ],
  "facilities": {
    "Crocodile Bridge": {
      "fuel": "Filling station listed",
      "toilets": "Communal ablutions",
      "food": "Shop with small take-away section",
      "shop": "Shop",
      "picnic": "Basic day-visitor picnic area",
      "note": "No ATM listed"
    },
    "Lower Sabie": {
      "fuel": "Filling station listed",
      "toilets": "Communal ablutions",
      "food": "Restaurant and cafeteria listed",
      "shop": "Shop",
      "picnic": "Separate day-visitor picnic area",
      "note": "No ATM listed; confirm current service status before relying on food or fuel"
    },
    "Skukuza": {
      "fuel": "Filling station and garage/workshop listed",
      "toilets": "Communal ablutions",
      "food": "Restaurant and deli listed",
      "shop": "Shop",
      "picnic": "Day-visitor area outside camp",
      "note": "Banking facility listed; confirm operating status"
    },
    "Berg-en-Dal": {
      "fuel": "Filling station listed",
      "toilets": "Communal ablutions",
      "food": "Restaurant and cafeteria listed",
      "shop": "Shop",
      "picnic": "Basic day-visitor picnic area",
      "note": "No ATM listed"
    },
    "Tshokwane": {
      "fuel": "No fuel listed for route planning",
      "toilets": "Picnic-site ablutions are generally provided",
      "food": "Do not rely on food service without current confirmation",
      "shop": "Do not rely on retail stock without current confirmation",
      "picnic": "Picnic site",
      "note": "Confirm access and operating status before departure"
    },
    "Afsaal": {
      "fuel": "No fuel listed for route planning",
      "toilets": "Picnic-site ablutions are generally provided",
      "food": "Small shop listed",
      "shop": "Small shop listed",
      "picnic": "Picnic site on H3",
      "note": "Confirm access and operating status before relying on this stop"
    },
    "Nkuhlu": {
      "fuel": "No fuel listed for route planning",
      "toilets": "Picnic-site ablutions are generally provided",
      "food": "Small shop listed",
      "shop": "Small shop listed",
      "picnic": "Picnic site on H4-1",
      "note": "Confirm access and operating status before relying on this stop"
    }
  },
  "gate_times": [
    {
      "month": "January",
      "entry": "05:30",
      "exit": "18:30"
    },
    {
      "month": "February",
      "entry": "05:30",
      "exit": "18:30"
    },
    {
      "month": "March",
      "entry": "05:30",
      "exit": "18:00"
    },
    {
      "month": "April",
      "entry": "06:00",
      "exit": "18:00"
    },
    {
      "month": "May",
      "entry": "06:00",
      "exit": "17:30"
    },
    {
      "month": "June",
      "entry": "06:00",
      "exit": "17:30"
    },
    {
      "month": "July",
      "entry": "06:00",
      "exit": "17:30"
    },
    {
      "month": "August",
      "entry": "06:00",
      "exit": "18:00"
    },
    {
      "month": "September",
      "entry": "06:00",
      "exit": "18:00"
    },
    {
      "month": "October",
      "entry": "05:30",
      "exit": "18:00"
    },
    {
      "month": "November",
      "entry": "05:30",
      "exit": "18:30"
    },
    {
      "month": "December",
      "entry": "05:30",
      "exit": "18:30"
    }
  ],
  "sources": [
    {
      "id": "SRC-001",
      "title": "MPC Route Atlas Source of Truths (Atlas Codex)",
      "publisher": "Marloth Park Central",
      "url": "local:source/MPC_ROUTE_ATLAS_CODEX_SOURCE.docx",
      "accessed": "2026-07-09",
      "authority": "Governing build specification",
      "use": "Editorial, design, data, packaging and QA requirements"
    },
    {
      "id": "SRC-002",
      "title": "Kruger National Park Entrance Gates",
      "publisher": "South African National Parks",
      "url": "https://www.sanparks.org/parks/kruger/travel/entrance-gates",
      "accessed": "2026-07-09",
      "authority": "Official",
      "use": "Gate contacts and published entrance-gate operating hours"
    },
    {
      "id": "SRC-003",
      "title": "Kruger National Park Vital Information",
      "publisher": "South African National Parks",
      "url": "https://www.sanparks.org/parks/kruger/useful-information/vital-information",
      "accessed": "2026-07-09",
      "authority": "Official",
      "use": "Speed limits, conduct, gate compliance and roadside assistance"
    },
    {
      "id": "SRC-004",
      "title": "Kruger National Park Travel Times",
      "publisher": "South African National Parks",
      "url": "https://www.sanparks.org/parks/kruger/travel/travel-times",
      "accessed": "2026-07-09",
      "authority": "Official",
      "use": "Minimum gate/camp travel-time cross-check"
    },
    {
      "id": "SRC-005",
      "title": "Kruger National Park Distances and Directions",
      "publisher": "South African National Parks",
      "url": "https://www.sanparks.org/parks/kruger/travel/distances-directions",
      "accessed": "2026-07-09",
      "authority": "Official",
      "use": "Gate suitability and selected gate-to-camp distances"
    },
    {
      "id": "SRC-006",
      "title": "Gate Traveling Times and Distances Signs",
      "publisher": "South African National Parks",
      "url": "https://www.sanparks.org/wp-content/uploads/2024/04/Annexure_7-Gate-Traveling-times-and-Distances-signs.pdf",
      "accessed": "2026-07-09",
      "authority": "Official",
      "use": "Road identifiers, distances and minimum times from Malelane and Crocodile Bridge"
    },
    {
      "id": "SRC-007",
      "title": "Kruger National Park GPS Waypoints",
      "publisher": "South African National Parks",
      "url": "https://www.sanparks.org/parks/kruger/travel/gps-waypoints",
      "accessed": "2026-07-09",
      "authority": "Official",
      "use": "Location cross-check for principal camps and gates"
    },
    {
      "id": "SRC-008",
      "title": "Crocodile Bridge Rest Camp",
      "publisher": "South African National Parks",
      "url": "https://www.sanparks.org/parks/kruger/camps/main-rest-camps/crocodile-bridge",
      "accessed": "2026-07-09",
      "authority": "Official",
      "use": "Facility categories"
    },
    {
      "id": "SRC-009",
      "title": "Lower Sabie Rest Camp",
      "publisher": "South African National Parks",
      "url": "https://www.sanparks.org/parks/kruger/camps/main-rest-camps/lower-sabie",
      "accessed": "2026-07-09",
      "authority": "Official",
      "use": "Facility categories"
    },
    {
      "id": "SRC-010",
      "title": "Skukuza Rest Camp",
      "publisher": "South African National Parks",
      "url": "https://www.sanparks.org/parks/kruger/camps/main-rest-camps/skukuza",
      "accessed": "2026-07-09",
      "authority": "Official",
      "use": "Facility categories"
    },
    {
      "id": "SRC-011",
      "title": "Berg-en-Dal Rest Camp",
      "publisher": "South African National Parks",
      "url": "https://www.sanparks.org/parks/kruger/camps/main-rest-camps/berg-en-dal",
      "accessed": "2026-07-09",
      "authority": "Official",
      "use": "Facility categories and Malelane approach"
    },
    {
      "id": "SRC-012",
      "title": "Kruger National Park Picnic Sites",
      "publisher": "South African National Parks",
      "url": "https://www.sanparks.org/parks/kruger/what-to-do/facilities/picnic-sites",
      "accessed": "2026-07-09",
      "authority": "Official",
      "use": "Afsaal, Nkuhlu and picnic-site facility context"
    },
    {
      "id": "SRC-013",
      "title": "Marloth Park Map 2020",
      "publisher": "Greater Kruger / map publisher as shown in source PDF",
      "url": "https://greaterkruger.co.za/wp-content/uploads/Marloth-Park-Map-2020-.pdf",
      "accessed": "2026-07-09",
      "authority": "Secondary cross-check",
      "use": "Marloth access-road names and indicative distances; not used as live authority"
    }
  ]
}