{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "meta": {
    "episode_id": "EP01_Cannae_216BC",
    "battle_name": "Battle of Cannae",
    "battle_name_vi": "Đại chiến Cannae",
    "date": "216-08-02",
    "date_display": "August 2, 216 BC",
    "theatre": "Second Punic War (Chiến tranh Punic lần II)",
    "region": "Apulia (Puglia), Southern Italy",
    "cartographer": "Marcus Sterling (Lead Cartographer & Tactical Map Artist)",
    "studio": "Studio Historical-2d",
    "copyright_license": "100% Clean Open Data / Public Domain (CC0 / NASA SRTM / Natural Earth / OHM)",
    "version": "1.0.0"
  },
  "spatial_reference": {
    "crs_geographic": "EPSG:4326 (WGS84)",
    "crs_projected": "EPSG:3857 (Web Mercator)",
    "center_coordinates": {
      "longitude": 16.1430,
      "latitude": 41.3120,
      "description": "Cannae plain, lower Aufidus River valley"
    },
    "bounding_box_wgs84": {
      "min_longitude": 16.0800,
      "min_latitude": 41.2700,
      "max_longitude": 16.2200,
      "max_latitude": 41.3500,
      "width_deg": 0.1400,
      "height_deg": 0.0800,
      "approx_width_km": 11.72,
      "approx_height_km": 8.91
    },
    "canvas_resolutions": {
      "canvas_4k": {
        "width": 3840,
        "height": 2160,
        "aspect_ratio": "16:9",
        "pixels_per_km": 327.6,
        "meters_per_pixel": 3.05
      },
      "canvas_1080p": {
        "width": 1920,
        "height": 1080,
        "aspect_ratio": "16:9",
        "pixels_per_km": 163.8,
        "meters_per_pixel": 6.10
      }
    }
  },
  "micro_terrain": {
    "elevation_model": {
      "source": "NASA SRTM v3.0 30m / Copernicus DEM GLO-30 (Public Domain)",
      "min_elevation_meters": 12.0,
      "max_elevation_meters": 54.0,
      "plain_mean_elevation_meters": 22.0,
      "hillshade_parameters": {
        "sun_azimuth_degrees": 315.0,
        "sun_elevation_degrees": 45.0,
        "vertical_exaggeration": 3.5,
        "ambient_light": 0.35,
        "diffuse_light": 0.65
      }
    },
    "landforms": [
      {
        "id": "cannae_hill_acropolis",
        "name": "Cannae Citadel Hill (Arx Cannarum)",
        "type": "plateau_hill",
        "coordinates": [16.1511, 41.3039],
        "elevation_peak_meters": 54.0,
        "elevation_prominence_meters": 32.0,
        "slope_gradient": "moderate_to_steep_north_slope",
        "strategic_importance": "Commanding high ground overlooking the southern Aufidus plain. Seized by Hannibal in late July 216 BC to capture Roman grain magazines and deny water access.",
        "chiaroscuro_color": "#3A3226"
      },
      {
        "id": "aufidus_alluvial_plain",
        "name": "Aufidus Alluvial Floodplain",
        "type": "dusty_plain",
        "coordinates": [16.1400, 41.3150],
        "elevation_peak_meters": 20.0,
        "surface_composition": "Dry parched calcareous alluvium, stubble fields, sun-baked clay",
        "tactical_property": "Open, flat terrain enabling massed infantry collisions and wide cavalry maneuvering.",
        "chiaroscuro_color": "#231F19"
      },
      {
        "id": "river_terraces_south",
        "name": "Southern River Terraces",
        "type": "gentle_ridge",
        "coordinates": [16.1600, 41.2950],
        "elevation_peak_meters": 42.0,
        "tactical_property": "Restricted eastern movement; formed a natural barrier anchoring the Roman left cavalry flank.",
        "chiaroscuro_color": "#2F281E"
      }
    ],
    "waterways": [
      {
        "id": "river_aufidus",
        "name": "Aufidus River (Modern: Fiume Ofanto)",
        "type": "meandering_river",
        "historical_status": "Ancient primary watercourse of Daunia / Apulia",
        "width_meters_range": [25.0, 45.0],
        "depth_meters_range": [1.2, 3.5],
        "flow_direction": "Southwest to Northeast into the Adriatic Sea",
        "tactical_barrier": "Unfordable for heavy close-order infantry and armored horses due to steep eroded clay cut-banks (2-4m). Anchored the Roman right wing (Paullus) and Carthaginian left wing (Hasdrubal).",
        "style": {
          "color_deep_water": "#1B2420",
          "color_shallows_moss": "#2A3832",
          "color_riparian_bank": "#3F4E46",
          "color_reeds_contour": "#526258",
          "stroke_width_1080p": 14,
          "stroke_width_4k": 28,
          "glow_opacity": 0.45
        },
        "path_waypoints_lonlat": [
          [16.0820, 41.3410],
          [16.0950, 41.3360],
          [16.1100, 41.3280],
          [16.1220, 41.3250],
          [16.1330, 41.3260],
          [16.1410, 41.3210],
          [16.1460, 41.3140],
          [16.1550, 41.3110],
          [16.1680, 41.3150],
          [16.1820, 41.3230],
          [16.1950, 41.3290],
          [16.2150, 41.3350]
        ]
      }
    ],
    "meteorology": {
      "wind_name": "Volturnus (Vento Volturno / Southwest Foehn)",
      "origin": "Apennine inland mountain slopes descending into dry Apulian plains",
      "azimuth_degrees": 225.0,
      "compass_direction": "Southwest to Northeast (SW -> NE)",
      "velocity_kmh": 42.0,
      "gust_velocity_kmh": 60.0,
      "atmospheric_condition": "Arid, scorching, high particulate density (calcareous dust, dried soil, straw fragments)",
      "tactical_impact": "Hannibal deliberately positioned his battle line facing Northeast with his back to the Volturnus. The gale-force wind hurled blinding dust directly into the eyes, mouths, and nasal passages of 86,000 advancing Romans, devastating their respiratory endurance, visibility, and pila throwing range.",
      "visual_representation": {
        "particle_flow_azimuth": 225.0,
        "particle_color": "rgba(210, 185, 140, 0.22)",
        "vector_streamlines_count": 48,
        "dust_haze_overlay_opacity": 0.16
      }
    },
    "historical_fortifications_camps": [
      {
        "id": "castra_maiora_rome",
        "name": "Roman Greater Camp (Castra Maiora)",
        "faction": "rome",
        "coordinates": [16.1280, 41.3250],
        "elevation_meters": 24.0,
        "location_detail": "North of the Aufidus River",
        "strength_garrison": "10,000 legionaries left to guard baggage and threaten Hannibal's camp",
        "symbol_style": "square_palisade_red"
      },
      {
        "id": "castra_minora_rome",
        "name": "Roman Lesser Camp (Castra Minora)",
        "faction": "rome",
        "coordinates": [16.1580, 41.3080],
        "elevation_meters": 28.0,
        "location_detail": "South of the Aufidus River, forward reconnaissance base",
        "strength_garrison": "Detachment from Consuls Varro and Paullus",
        "symbol_style": "square_palisade_red"
      },
      {
        "id": "castra_hannibal",
        "name": "Carthaginian Camp (Hannibal's Headquarters)",
        "faction": "carthage",
        "coordinates": [16.1150, 41.3180],
        "elevation_meters": 27.0,
        "location_detail": "South bank of Aufidus, positioned strategically between Cannae granaries and the ford",
        "strength_garrison": "Camp guard, baggage train, Iberian reserves",
        "symbol_style": "crescent_palisade_gold"
      }
    ]
  },
  "chiaroscuro_palette": {
    "background_canvas": {
      "parchment_deep_shadow": "#1C1814",
      "parchment_mid_aged": "#26211A",
      "parchment_highlight_warm": "#332B22",
      "cartographic_grid": "#2E2820",
      "grid_subdivision": "#241F18",
      "vignette_outer": "#0A0908",
      "vignette_intensity": 0.65
    },
    "roman_republic": {
      "primary_battle_vermilion": "#8B1E1E",
      "secondary_crimson_highlight": "#B22222",
      "border_silver_white": "#E2E8F0",
      "core_shadow_burgundy": "#3A0808",
      "unit_text_label": "#FFFFFF",
      "unit_text_strength": "#CBD5E1",
      "tactical_accent": "#DC2626"
    },
    "carthage_coalition": {
      "primary_royal_navy": "#1A365D",
      "secondary_midnight_blue": "#2A4365",
      "border_imperial_gold": "#D4AF37",
      "accent_gold_highlight": "#F6E05E",
      "core_shadow_abyss": "#0F1E33",
      "unit_text_label": "#FEF08A",
      "unit_text_strength": "#E2E8F0",
      "faction_subgroups": {
        "carthaginian_command": "#D4AF37",
        "libyan_veteran_phalanx": "#1E3A8A",
        "iberian_celtic_center": "#B45309",
        "numidian_light_cavalry": "#D97706",
        "balearic_slingers": "#475569"
      }
    },
    "neutral_environment": {
      "water_aufidus_deep": "#1B2420",
      "water_aufidus_moss": "#2A3832",
      "riverbank_earth": "#3F4E46",
      "elevation_ridge_shadow": "#12100E",
      "elevation_ridge_highlight": "#3A3226",
      "volturnus_dust_storm": "rgba(215, 190, 145, 0.20)",
      "hud_war_room_dark": "#0F1115",
      "hud_gold_accent": "#D4AF37",
      "hud_silver_label": "#94A3B8"
    }
  },
  "tactical_counters_app6": {
    "design_spec": {
      "style": "Stylized 2D Lacquered Wood Block with 3D Drop Shadow",
      "corner_radius_px": 3,
      "shadow_offset_px": 6,
      "shadow_blur_px": 8,
      "shadow_opacity": 0.55,
      "border_stroke_width_px": 1.5,
      "emblem_standard": "NATO APP-6 modified for Antiquity (Infantry saltire cross, Cavalry single diagonal traverse, Skirmisher dot-and-line)"
    },
    "order_of_battle": [
      {
        "id": "rome_right_cavalry",
        "name": "Paullus Roman Equites",
        "faction": "rome",
        "type": "cavalry",
        "commanders": ["Lucius Aemilius Paullus"],
        "strength_initial": 1600,
        "color_base": "#8B1E1E",
        "color_border": "#E2E8F0",
        "canvas_size_1080p": [90, 28],
        "flank_assignment": "Roman Right Wing (trapped against Aufidus cut-bank)"
      },
      {
        "id": "rome_center_legions",
        "name": "Consular Legions & Allied Maniplar Center",
        "faction": "rome",
        "type": "infantry",
        "commanders": ["Gnaeus Servilius Geminus", "Marcus Atilius Regulus"],
        "strength_initial": 70000,
        "color_base": "#8B1E1E",
        "color_border": "#FFFFFF",
        "canvas_size_1080p": [320, 70],
        "flank_assignment": "Roman Massive Center (deployed in unprecedented depth, narrow frontage)"
      },
      {
        "id": "rome_left_cavalry",
        "name": "Varro Allied Socii Cavalry",
        "faction": "rome",
        "type": "cavalry",
        "commanders": ["Gaius Terentius Varro"],
        "strength_initial": 4800,
        "color_base": "#8B1E1E",
        "color_border": "#E2E8F0",
        "canvas_size_1080p": [110, 28],
        "flank_assignment": "Roman Left Wing (deployed on open plain)"
      },
      {
        "id": "carthage_left_heavy_cav",
        "name": "Hasdrubal Heavy Cavalry (Iberian & Celtic)",
        "faction": "carthage",
        "type": "cavalry",
        "commanders": ["Hasdrubal"],
        "strength_initial": 6500,
        "color_base": "#1A365D",
        "color_border": "#D4AF37",
        "canvas_size_1080p": [110, 32],
        "flank_assignment": "Carthaginian Left Wing (anchored on Aufidus River)"
      },
      {
        "id": "carthage_center_crescent",
        "name": "Gallic & Iberian Infantry Crescent",
        "faction": "carthage",
        "type": "infantry",
        "commanders": ["Hannibal Barca", "Mago Barca"],
        "strength_initial": 20000,
        "color_base": "#B45309",
        "color_border": "#D4AF37",
        "canvas_size_1080p": [220, 42],
        "flank_assignment": "Carthaginian Convex Crescent Center (designed for controlled elastic retreat)"
      },
      {
        "id": "carthage_left_libyan_phalanx",
        "name": "Libyan Veteran Phalanx (Left Column)",
        "faction": "carthage",
        "type": "infantry",
        "commanders": ["Hannibal Barca"],
        "strength_initial": 5000,
        "color_base": "#1E3A8A",
        "color_border": "#D4AF37",
        "canvas_size_1080p": [60, 48],
        "flank_assignment": "Refused Flank Column (hidden in echelon behind Spanish left)"
      },
      {
        "id": "carthage_right_libyan_phalanx",
        "name": "Libyan Veteran Phalanx (Right Column)",
        "faction": "carthage",
        "type": "infantry",
        "commanders": ["Hannibal Barca"],
        "strength_initial": 5000,
        "color_base": "#1E3A8A",
        "color_border": "#D4AF37",
        "canvas_size_1080p": [60, 48],
        "flank_assignment": "Refused Flank Column (hidden in echelon behind Celtic right)"
      },
      {
        "id": "carthage_right_numidian_cav",
        "name": "Maharbal Numidian Light Cavalry",
        "faction": "carthage",
        "type": "cavalry",
        "commanders": ["Maharbal", "Hanno"],
        "strength_initial": 3500,
        "color_base": "#D97706",
        "color_border": "#D4AF37",
        "canvas_size_1080p": [100, 28],
        "flank_assignment": "Carthaginian Right Wing (harrying Varro with feigned retreats & javelin swarms)"
      }
    ]
  },
  "tactical_phases_geometry": [
    {
      "phase_index": 1,
      "phase_name": "Phase 1: Deployment & The Convex Crescent",
      "timestamp_start_s": 0.0,
      "timestamp_end_s": 6.0,
      "summary": "Hannibal bows his Gallic and Iberian center forward toward the Roman juggernaut, keeping elite Libyan veterans held back on the flanks. Hasdrubal lines up against Paullus on the riverbank.",
      "wind_effect_active": true,
      "camera_focus": "wide_battlefield_overview"
    },
    {
      "phase_index": 2,
      "phase_name": "Phase 2: River Flank Rout & Controlled Center Retreat",
      "timestamp_start_s": 6.0,
      "timestamp_end_s": 12.0,
      "summary": "Hasdrubal's heavy cavalry crushes the Roman cavalry along the Aufidus, beheading Paullus's wing. In the center, Hannibal's crescent bends backwards under pressure, absorbing the Roman wedge into a deepening pocket.",
      "wind_effect_active": true,
      "camera_focus": "aufidus_flank_and_center_pocket"
    },
    {
      "phase_index": 3,
      "phase_name": "Phase 3: The Libyan Pincer & Hasdrubal's Rear Sweep",
      "timestamp_start_s": 12.0,
      "timestamp_end_s": 18.0,
      "summary": "The Libyan veteran phalanxes wheel 90 degrees inwards, locking the Roman flanks. Hasdrubal gallops across the Roman rear, routs Varro's cavalry, and slams into the back of the Roman legions.",
      "wind_effect_active": true,
      "camera_focus": "encirclement_pocket"
    },
    {
      "phase_index": 4,
      "phase_name": "Phase 4: The Cannae Cauldron (The Fatal Compression)",
      "timestamp_start_s": 18.0,
      "timestamp_end_s": 24.0,
      "summary": "70,000 Romans are crushed into a suffocating dust-choked mob. Unable to swing their Gladius swords, 55,000+ are slaughtered in 6 hours of systematic butchery.",
      "wind_effect_active": true,
      "camera_focus": "cauldron_annihilation"
    }
  ],
  "engine_export_assets": {
    "spec_json": "episodes/EP01_Cannae_216BC/02_Map_Data/cannae_map_spec.json",
    "terrain_4k": "episodes/EP01_Cannae_216BC/02_Map_Data/cannae_terrain_4k.png",
    "terrain_1080p": "episodes/EP01_Cannae_216BC/02_Map_Data/cannae_terrain_1080p.png",
    "hillshade_relief": "episodes/EP01_Cannae_216BC/02_Map_Data/cannae_hillshade.png",
    "micro_terrain_geojson": "episodes/EP01_Cannae_216BC/02_Map_Data/cannae_micro_terrain.geojson",
    "tactical_vector_svg": "episodes/EP01_Cannae_216BC/02_Map_Data/cannae_tactical_vector.svg"
  }
}
