{"meta":{"path":"transits/waterways","ts":"2026-06-01T02:39:24+00:00","status":"ok","rows":79,"request_id":"9c059b4b7b86d3ae"},"data":{"rows":[{"waterway_id":"adriatic_entrance","name":"Adriatic Entrance","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step53","gateway_a_bbox":[17.2,39,18.9,41.6],"gateway_b_bbox":[18.4,39,20.1,41.6],"union_bbox":[17.2,39,20.1,41.6],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"adriatic_entrance","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step53","last_processed_ts":"2026-06-01 23:59:59","last_aggregate_ts":"2026-06-01 01:38:31","updated_at":"2026-06-01 01:38:31"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":4627,"daily_row_count":1253,"history_first_day":"2026-04-02","history_last_day":"2026-06-01","daily_first_day":"2026-04-02","daily_last_day":"2026-06-01"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step53","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"adriatic_mid_gate","name":"Adriatic Mid Gate","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step81","gateway_a_bbox":[13,41.5,17,44.3],"gateway_b_bbox":[13,43.5,17,46.3],"union_bbox":[13,41.5,17,46.3],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"adriatic_mid_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step81","last_processed_ts":"2026-06-01 23:59:59","last_aggregate_ts":"2026-06-01 01:46:50","updated_at":"2026-06-01 01:46:50"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":6118,"daily_row_count":1239,"history_first_day":"2026-04-02","history_last_day":"2026-06-01","daily_first_day":"2026-04-02","daily_last_day":"2026-06-01"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step81","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"adriatic_north_gate","name":"Adriatic North Gate","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step73","gateway_a_bbox":[12,42,16,45],"gateway_b_bbox":[12,44.2,16,47.2],"union_bbox":[12,42,16,47.2],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"adriatic_north_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step73","last_processed_ts":"2026-06-01 23:59:59","last_aggregate_ts":"2026-06-01 01:52:41","updated_at":"2026-06-01 01:52:41"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":9862,"daily_row_count":1253,"history_first_day":"2026-04-02","history_last_day":"2026-06-01","daily_first_day":"2026-04-02","daily_last_day":"2026-06-01"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step73","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"aegean_central_gate","name":"Aegean Central Gate","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step79","gateway_a_bbox":[22,37,26,40],"gateway_b_bbox":[22,39.2,26,42.2],"union_bbox":[22,37,26,42.2],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"aegean_central_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step79","last_processed_ts":"2026-06-01 23:59:59","last_aggregate_ts":"2026-06-01 01:58:19","updated_at":"2026-06-01 01:58:19"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":2777,"daily_row_count":1077,"history_first_day":"2026-04-02","history_last_day":"2026-06-01","daily_first_day":"2026-04-02","daily_last_day":"2026-06-01"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step79","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"aegean_east_gate","name":"Aegean East Gate","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step81","gateway_a_bbox":[24,35,28,38.2],"gateway_b_bbox":[24,37.2,28,40.4],"union_bbox":[24,35,28,40.4],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"aegean_east_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step81","last_processed_ts":"2026-06-01 23:59:59","last_aggregate_ts":"2026-06-01 02:03:57","updated_at":"2026-06-01 02:03:57"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":15081,"daily_row_count":1415,"history_first_day":"2026-04-02","history_last_day":"2026-06-01","daily_first_day":"2026-04-02","daily_last_day":"2026-06-01"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step81","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"aegean_north_gate","name":"Aegean North Gate","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step73","gateway_a_bbox":[22,36,26,39],"gateway_b_bbox":[22,38.2,26,41.2],"union_bbox":[22,36,26,41.2],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"aegean_north_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step73","last_processed_ts":"2026-06-01 23:59:59","last_aggregate_ts":"2026-06-01 02:12:19","updated_at":"2026-06-01 02:12:19"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":11206,"daily_row_count":1409,"history_first_day":"2026-04-02","history_last_day":"2026-06-01","daily_first_day":"2026-04-02","daily_last_day":"2026-06-01"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step73","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"aegean_south_gate","name":"Aegean South Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step55","gateway_a_bbox":[23,34,25.2,36.9],"gateway_b_bbox":[24.7,34,26.9,36.9],"union_bbox":[23,34,26.9,36.9],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"aegean_south_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step55","last_processed_ts":"2026-06-01 23:59:59","last_aggregate_ts":"2026-06-01 02:21:27","updated_at":"2026-06-01 02:21:27"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":5097,"daily_row_count":1281,"history_first_day":"2026-04-02","history_last_day":"2026-06-01","daily_first_day":"2026-04-02","daily_last_day":"2026-06-01"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step55","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"aegean_west_gate","name":"Aegean West Gate","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step77","gateway_a_bbox":[20,35,24,38],"gateway_b_bbox":[20,37.2,24,40.2],"union_bbox":[20,35,24,40.2],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"aegean_west_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step77","last_processed_ts":"2026-06-01 23:59:59","last_aggregate_ts":"2026-06-01 02:34:32","updated_at":"2026-06-01 02:34:32"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":9813,"daily_row_count":1281,"history_first_day":"2026-04-02","history_last_day":"2026-06-01","daily_first_day":"2026-04-02","daily_last_day":"2026-06-01"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step77","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"alboran_gate","name":"Alboran Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step57","gateway_a_bbox":[-6.3,34.7,-4.2,36.8],"gateway_b_bbox":[-4.7,34.7,-2.6,36.8],"union_bbox":[-6.3,34.7,-2.6,36.8],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"alboran_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step57","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 17:52:08","updated_at":"2026-05-31 17:52:08"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":12880,"daily_row_count":1494,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step57","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"azores_gate","name":"Azores Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":120,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step59","gateway_a_bbox":[-34,32,-28.8,40],"gateway_b_bbox":[-30.2,32,-25,40],"union_bbox":[-34,32,-25,40],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"azores_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step59","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 17:55:49","updated_at":"2026-05-31 17:55:49"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":3581,"daily_row_count":1226,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step59","min_hours":1,"max_hours":120,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"bab_el_mandeb","name":"Bab el-Mandeb Strait","kind":"strait","gateway_a_name":"Red Sea Gateway","gateway_b_name":"Gulf of Aden Gateway","min_hours":1,"max_hours":30,"cooldown_hours":10,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"bab_el_mandeb_v1_20260405","gateway_a_bbox":[43.05,12.35,43.55,12.95],"gateway_b_bbox":[43.25,11.55,44.05,12.1],"union_bbox":[43.05,11.55,44.05,12.95],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"bab_el_mandeb","detector_version":"v1_gateway_compact_sparse_utc","config_version":"bab_el_mandeb_v1_20260405","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 17:57:48","updated_at":"2026-05-31 17:57:48"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":454,"daily_row_count":815,"history_first_day":"2026-03-07","history_last_day":"2026-05-31","daily_first_day":"2026-03-07","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"bab_el_mandeb_v1_20260405","min_hours":1,"max_hours":30,"cooldown_hours":10,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives."]}},{"waterway_id":"balearic_channel","name":"Balearic Channel","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step55","gateway_a_bbox":[0,37.2,2.1,40],"gateway_b_bbox":[1.6,37.2,3.7,40],"union_bbox":[0,37.2,3.7,40],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"balearic_channel","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step55","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 18:01:24","updated_at":"2026-05-31 18:01:24"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":5646,"daily_row_count":1285,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step55","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"balearic_north_gate","name":"Balearic North Gate","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step77","gateway_a_bbox":[1,38,5,41],"gateway_b_bbox":[1,40.2,5,43.2],"union_bbox":[1,38,5,43.2],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"balearic_north_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step77","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 18:09:16","updated_at":"2026-05-31 18:09:16"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":8503,"daily_row_count":1347,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step77","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"bay_of_biscay_gate","name":"Bay of Biscay Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step65","gateway_a_bbox":[-13,42,-8.5,48.8],"gateway_b_bbox":[-9.8,42,-5.3,48.8],"union_bbox":[-13,42,-5.3,48.8],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"bay_of_biscay_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step65","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 18:18:54","updated_at":"2026-05-31 18:18:54"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":13807,"daily_row_count":1481,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step65","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"bering_strait","name":"Bering Strait","kind":"strait","gateway_a_name":"Chukchi Gateway","gateway_b_name":"Bering Sea Gateway","min_hours":2,"max_hours":72,"cooldown_hours":10,"visit_gap_hours":5,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_20260407","gateway_a_bbox":[-169.8,66.05,-168.7,66.62],"gateway_b_bbox":[-169.65,65.42,-168.55,65.98],"union_bbox":[-169.8,65.42,-168.55,66.62],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"bering_strait","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_20260407","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 18:21:54","updated_at":"2026-05-31 18:21:54"},"availability":{"has_data":false,"has_history":false,"runtime_ready":true,"history_event_count":0,"daily_row_count":0,"history_first_day":"","history_last_day":"","daily_first_day":"","daily_last_day":""},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_20260407","min_hours":2,"max_hours":72,"cooldown_hours":10,"visit_gap_hours":5,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"bohai","name":"Bohai Strait","kind":"strait","gateway_a_name":"Yellow Sea Gateway","gateway_b_name":"Bohai Gateway","min_hours":1,"max_hours":30,"cooldown_hours":10,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"bohai_v1_20260314","gateway_a_bbox":[119.1,37.1,122.9,38.25],"gateway_b_bbox":[120,38.1,123.5,39.55],"union_bbox":[119.1,37.1,123.5,39.55],"corridor_points":[[120.2,37.52],[120.7,37.76],[121.25,37.98],[121.82,38.18],[122.35,38.42]],"corridor_profile":{"focus_ratio":0.57,"focus_span":0.18,"pinch_strength":0.8,"core_intensity":0.84,"lane_count":5,"lane_spread":0.9,"hotspot_scale":1.08},"state":{"waterway_id":"bohai","detector_version":"v1_gateway_compact_sparse_utc","config_version":"bohai_v1_20260314","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 18:25:11","updated_at":"2026-05-31 18:25:11"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":59280,"daily_row_count":2519,"history_first_day":"2026-02-13","history_last_day":"2026-05-31","daily_first_day":"2026-02-13","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"bohai_v1_20260314","min_hours":1,"max_hours":30,"cooldown_hours":10,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives."]}},{"waterway_id":"bosphorus","name":"Bosphorus Strait","kind":"strait","gateway_a_name":"Black Sea Gateway","gateway_b_name":"Marmara Gateway","min_hours":0.5,"max_hours":18,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"bosphorus_v1_20260312","gateway_a_bbox":[28.98,41.16,29.26,41.32],"gateway_b_bbox":[28.95,40.95,29.21,41.09],"union_bbox":[28.95,40.95,29.26,41.32],"corridor_points":[[29.11,41.245],[29.085,41.185],[29.065,41.135],[29.05,41.085],[29.04,41.035],[29.05,40.99]],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.9,"core_intensity":0.98,"lane_count":5,"lane_spread":0.78,"hotspot_scale":1.22},"state":{"waterway_id":"bosphorus","detector_version":"v1_gateway_compact_sparse_utc","config_version":"bosphorus_v1_20260312","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 18:27:26","updated_at":"2026-05-31 18:27:26"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":77056,"daily_row_count":15811,"history_first_day":"2024-03-13","history_last_day":"2026-05-31","daily_first_day":"2024-03-13","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"bosphorus_v1_20260312","min_hours":0.5,"max_hours":18,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives."]}},{"waterway_id":"canary_gate","name":"Canary Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step59","gateway_a_bbox":[-19.8,25,-16,30.6],"gateway_b_bbox":[-17.2,25,-13.4,30.6],"union_bbox":[-19.8,25,-13.4,30.6],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"canary_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step59","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 18:32:23","updated_at":"2026-05-31 18:32:23"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":6926,"daily_row_count":1357,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step59","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"cape_bojador_gate","name":"Cape Bojador Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step61","gateway_a_bbox":[-18,22,-13.5,29.5],"gateway_b_bbox":[-15,22,-10.5,29.5],"union_bbox":[-18,22,-10.5,29.5],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"cape_bojador_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step61","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 18:36:24","updated_at":"2026-05-31 18:36:24"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":3350,"daily_row_count":1158,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step61","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"cape_of_good_hope","name":"Cape of Good Hope","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_bbox","gateway_a_bbox":[17,-36,18.74,-33],"gateway_b_bbox":[18.26,-36,20,-33],"union_bbox":[17,-36,20,-33],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"cape_of_good_hope","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 18:39:11","updated_at":"2026-05-31 18:39:11"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":8001,"daily_row_count":1464,"history_first_day":"2026-04-01","history_last_day":"2026-05-31","daily_first_day":"2026-04-01","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"cape_verde_gate","name":"Cape Verde Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":120,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step57","gateway_a_bbox":[-26.8,11,-22.6,18.8],"gateway_b_bbox":[-23.8,11,-19.6,18.8],"union_bbox":[-26.8,11,-19.6,18.8],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"cape_verde_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step57","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 18:42:54","updated_at":"2026-05-31 18:42:54"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":1570,"daily_row_count":923,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step57","min_hours":1,"max_hours":120,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"central_atlantic_gate","name":"Central Atlantic Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":144,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step63","gateway_a_bbox":[-46,8,-38,19],"gateway_b_bbox":[-41,8,-33,19],"union_bbox":[-46,8,-33,19],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"central_atlantic_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step63","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 18:47:27","updated_at":"2026-05-31 18:47:27"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":1507,"daily_row_count":836,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step63","min_hours":1,"max_hours":144,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"central_med_east_gate","name":"Central Med East Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step73","gateway_a_bbox":[16,33,20,37],"gateway_b_bbox":[19,33,23,37],"union_bbox":[16,33,23,37],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"central_med_east_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step73","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 18:51:06","updated_at":"2026-05-31 18:51:06"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":8481,"daily_row_count":1376,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step73","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"corsica_channel_gate","name":"Corsica Channel Gate","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step77","gateway_a_bbox":[8,40,11.5,42.5],"gateway_b_bbox":[8,42,11.5,44.5],"union_bbox":[8,40,11.5,44.5],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"corsica_channel_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step77","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 18:54:47","updated_at":"2026-05-31 18:54:47"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":7599,"daily_row_count":1094,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step77","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"danish_belts_west","name":"Danish Belts West","kind":"strait","gateway_a_name":"North Sea Gateway","gateway_b_name":"Belts Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step53","gateway_a_bbox":[7.6,54.3,9.7,57.6],"gateway_b_bbox":[9.2,54.3,11.3,57.6],"union_bbox":[7.6,54.3,11.3,57.6],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"danish_belts_west","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step53","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 18:59:30","updated_at":"2026-05-31 18:59:30"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":13333,"daily_row_count":1182,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step53","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"dardanelles","name":"Dardanelles Strait","kind":"strait","gateway_a_name":"Aegean Gateway","gateway_b_name":"Marmara Gateway","min_hours":1,"max_hours":36,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_20260407","gateway_a_bbox":[25.95,40.03,26.4,40.2],"gateway_b_bbox":[26.58,40.26,26.98,40.52],"union_bbox":[25.95,40.03,26.98,40.52],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"dardanelles","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_20260407","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 19:07:20","updated_at":"2026-05-31 19:07:20"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":6648,"daily_row_count":1308,"history_first_day":"2026-04-01","history_last_day":"2026-05-31","daily_first_day":"2026-04-01","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_20260407","min_hours":1,"max_hours":36,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives."]}},{"waterway_id":"east_adriatic_gate","name":"East Adriatic Gate","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step83","gateway_a_bbox":[15,40.5,19,43.5],"gateway_b_bbox":[15,42.7,19,45.7],"union_bbox":[15,40.5,19,45.7],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"east_adriatic_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step83","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 19:33:54","updated_at":"2026-05-31 19:33:54"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":12101,"daily_row_count":843,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step83","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"east_med_central_gate","name":"East Med Central Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step61","gateway_a_bbox":[22,31,26,35.8],"gateway_b_bbox":[25,31,29,35.8],"union_bbox":[22,31,29,35.8],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"east_med_central_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step61","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 19:39:06","updated_at":"2026-05-31 19:39:06"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":5184,"daily_row_count":1275,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step61","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"english_channel_west","name":"English Channel West","kind":"strait","gateway_a_name":"Atlantic Gateway","gateway_b_name":"Channel Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step53","gateway_a_bbox":[-7,47.5,-3.8,50.8],"gateway_b_bbox":[-4.4,47.5,-1.2,50.8],"union_bbox":[-7,47.5,-1.2,50.8],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"english_channel_west","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step53","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 19:44:11","updated_at":"2026-05-31 19:44:11"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":23091,"daily_row_count":1505,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step53","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"faroe_approach_gate","name":"Faroe Approach Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step71","gateway_a_bbox":[-14.5,58,-8.5,64],"gateway_b_bbox":[-10.5,58,-4.5,64],"union_bbox":[-14.5,58,-4.5,64],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"faroe_approach_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step71","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 19:49:40","updated_at":"2026-05-31 19:49:40"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":2373,"daily_row_count":1017,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step71","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"great_belt","name":"Great Belt","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":48,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step51","gateway_a_bbox":[10.5,54.8,12.2,55.8],"gateway_b_bbox":[10.5,55.4,12.2,56.4],"union_bbox":[10.5,54.8,12.2,56.4],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"great_belt","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step51","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 19:56:13","updated_at":"2026-05-31 19:56:13"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":6104,"daily_row_count":1231,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step51","min_hours":1,"max_hours":48,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"gulf_of_aden_somali_basin","name":"Gulf of Aden & Somali Basin (Piracy Risk)","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_bbox","gateway_a_bbox":[42,2,51.28,16.8],"gateway_b_bbox":[48.72,2,58,16.8],"union_bbox":[42,2,58,16.8],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"gulf_of_aden_somali_basin","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 20:01:10","updated_at":"2026-05-31 20:01:10"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":5765,"daily_row_count":1148,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"gulf_of_guinea","name":"Gulf of Guinea (Piracy Risk)","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_bbox","gateway_a_bbox":[-9.5,-1.5,1.52,8.8],"gateway_b_bbox":[-1.52,-1.5,9.5,8.8],"union_bbox":[-9.5,-1.5,9.5,8.8],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"gulf_of_guinea","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 20:07:00","updated_at":"2026-05-31 20:07:00"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":4070,"daily_row_count":1164,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"gulf_of_lions_gate","name":"Gulf of Lions Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step67","gateway_a_bbox":[1,41,4.8,44.6],"gateway_b_bbox":[3.8,41,7.6,44.6],"union_bbox":[1,41,7.6,44.6],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"gulf_of_lions_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step67","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 20:18:00","updated_at":"2026-05-31 20:18:00"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":7006,"daily_row_count":1190,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step67","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"iceland_approach_south","name":"Iceland Approach South","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":120,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step69","gateway_a_bbox":[-30,58,-22,65],"gateway_b_bbox":[-24,58,-16,65],"union_bbox":[-30,58,-16,65],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"iceland_approach_south","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step69","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 20:32:51","updated_at":"2026-05-31 20:32:51"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":4776,"daily_row_count":734,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step69","min_hours":1,"max_hours":120,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"ionian_central_gate","name":"Ionian Central Gate","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step83","gateway_a_bbox":[16,35.5,20,38.5],"gateway_b_bbox":[16,37.7,20,40.7],"union_bbox":[16,35.5,20,40.7],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"ionian_central_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step83","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 20:38:09","updated_at":"2026-05-31 20:38:09"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":4156,"daily_row_count":1266,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step83","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"ionian_north_gate","name":"Ionian North Gate","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step75","gateway_a_bbox":[16,37,20,40],"gateway_b_bbox":[16,39.2,20,42.2],"union_bbox":[16,37,20,42.2],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"ionian_north_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step75","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 20:42:26","updated_at":"2026-05-31 20:42:26"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":7942,"daily_row_count":1365,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step75","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"ionian_south_gate","name":"Ionian South Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step55","gateway_a_bbox":[18,35,20,38],"gateway_b_bbox":[19.5,35,21.5,38],"union_bbox":[18,35,21.5,38],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"ionian_south_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step55","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 20:47:17","updated_at":"2026-05-31 20:47:17"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":5496,"daily_row_count":1325,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step55","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"irish_approach_gate","name":"Irish Approach Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step67","gateway_a_bbox":[-13,48,-8.5,54.5],"gateway_b_bbox":[-9.8,48,-5.3,54.5],"union_bbox":[-13,48,-5.3,54.5],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"irish_approach_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step67","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 20:51:31","updated_at":"2026-05-31 20:51:31"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":4428,"daily_row_count":1223,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step67","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"kara_gates","name":"Kara Gates","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_bbox","gateway_a_bbox":[64,72,68.06,75],"gateway_b_bbox":[66.94,72,71,75],"union_bbox":[64,72,71,75],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"kara_gates","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 20:54:26","updated_at":"2026-05-31 20:54:26"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":31,"daily_row_count":99,"history_first_day":"2026-05-02","history_last_day":"2026-05-31","daily_first_day":"2026-05-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"kattegat","name":"Kattegat","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_bbox","gateway_a_bbox":[10,55.5,11.74,57.8],"gateway_b_bbox":[11.26,55.5,13,57.8],"union_bbox":[10,55.5,13,57.8],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"kattegat","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 20:58:12","updated_at":"2026-05-31 20:58:12"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":17929,"daily_row_count":1426,"history_first_day":"2026-04-01","history_last_day":"2026-05-31","daily_first_day":"2026-04-01","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"kerch_strait","name":"Kerch Strait","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_bbox","gateway_a_bbox":[36.2,45.2,36.519,45.45],"gateway_b_bbox":[36.431,45.2,36.75,45.45],"union_bbox":[36.2,45.2,36.75,45.45],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"kerch_strait","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 21:01:28","updated_at":"2026-05-31 21:01:28"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":14,"daily_row_count":44,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"korea","name":"Korea Strait","kind":"strait","gateway_a_name":"East China Sea Gateway","gateway_b_name":"Sea of Japan Gateway","min_hours":1,"max_hours":30,"cooldown_hours":10,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"korea_v1_20260314","gateway_a_bbox":[128,33.1,130.3,34.25],"gateway_b_bbox":[129,34.15,131.75,35.3],"union_bbox":[128,33.1,131.75,35.3],"corridor_points":[[128.95,33.65],[129.2,33.98],[129.5,34.26],[129.82,34.5],[130.15,34.76]],"corridor_profile":{"focus_ratio":0.55,"focus_span":0.2,"pinch_strength":0.68,"core_intensity":0.72,"lane_count":5,"lane_spread":0.96,"hotspot_scale":1.02},"state":{"waterway_id":"korea","detector_version":"v1_gateway_compact_sparse_utc","config_version":"korea_v1_20260314","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 21:04:01","updated_at":"2026-05-31 21:04:01"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":14046,"daily_row_count":2623,"history_first_day":"2026-02-13","history_last_day":"2026-05-31","daily_first_day":"2026-02-13","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"korea_v1_20260314","min_hours":1,"max_hours":30,"cooldown_hours":10,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives."]}},{"waterway_id":"levant_east_gate","name":"Levant East Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step63","gateway_a_bbox":[33,31,36,35.6],"gateway_b_bbox":[35.2,31,38.2,35.6],"union_bbox":[33,31,38.2,35.6],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"levant_east_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step63","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 21:11:36","updated_at":"2026-05-31 21:11:36"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":311,"daily_row_count":367,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step63","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"levant_north_gate","name":"Levant North Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step59","gateway_a_bbox":[30,33,32.6,36.4],"gateway_b_bbox":[32.1,33,34.7,36.4],"union_bbox":[30,33,34.7,36.4],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"levant_north_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step59","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 21:21:10","updated_at":"2026-05-31 21:21:10"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":4654,"daily_row_count":1253,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step59","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"levant_south_gate","name":"Levant South Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step57","gateway_a_bbox":[29,30.4,31.6,33.6],"gateway_b_bbox":[31.2,30.4,33.8,33.6],"union_bbox":[29,30.4,33.8,33.6],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"levant_south_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step57","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 21:28:12","updated_at":"2026-05-31 21:28:12"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":6167,"daily_row_count":1262,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step57","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"ligurian_gate","name":"Ligurian Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step71","gateway_a_bbox":[6,42,9.4,45],"gateway_b_bbox":[8.6,42,12,45],"union_bbox":[6,42,12,45],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"ligurian_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step71","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 21:33:41","updated_at":"2026-05-31 21:33:41"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":7530,"daily_row_count":1154,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step71","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"ligurian_west_gate","name":"Ligurian West Gate","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step83","gateway_a_bbox":[5,41.5,8.8,44],"gateway_b_bbox":[5,43.3,8.8,45.8],"union_bbox":[5,41.5,8.8,45.8],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"ligurian_west_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step83","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 21:38:19","updated_at":"2026-05-31 21:38:19"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":2121,"daily_row_count":820,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step83","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"lombok_strait","name":"Lombok Strait","kind":"strait","gateway_a_name":"Java Sea Gateway","gateway_b_name":"Indian Ocean Gateway","min_hours":1,"max_hours":36,"cooldown_hours":10,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"lombok_strait_v1_20260405","gateway_a_bbox":[115.6,-8.9,116.4,-8.2],"gateway_b_bbox":[115.75,-9.95,116.55,-9.35],"union_bbox":[115.6,-9.95,116.55,-8.2],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"lombok_strait","detector_version":"v1_gateway_compact_sparse_utc","config_version":"lombok_strait_v1_20260405","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 21:40:57","updated_at":"2026-05-31 21:40:57"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":1642,"daily_row_count":790,"history_first_day":"2026-03-07","history_last_day":"2026-05-31","daily_first_day":"2026-03-30","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"lombok_strait_v1_20260405","min_hours":1,"max_hours":36,"cooldown_hours":10,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives."]}},{"waterway_id":"matotchkin_shar","name":"Matotchkin Shar","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_bbox","gateway_a_bbox":[56,73.15,57.16,74.2],"gateway_b_bbox":[56.84,73.15,58,74.2],"union_bbox":[56,73.15,58,74.2],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"matotchkin_shar","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 21:48:36","updated_at":"2026-05-31 21:48:36"},"availability":{"has_data":false,"has_history":false,"runtime_ready":true,"history_event_count":0,"daily_row_count":0,"history_first_day":"","history_last_day":"","daily_first_day":"","daily_last_day":""},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"morocco_offshore_gate","name":"Morocco Offshore Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step63","gateway_a_bbox":[-16,27,-11,34],"gateway_b_bbox":[-12.5,27,-7.5,34],"union_bbox":[-16,27,-7.5,34],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"morocco_offshore_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step63","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 21:57:22","updated_at":"2026-05-31 21:57:22"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":5692,"daily_row_count":1299,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step63","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"mozambique_channel","name":"Mozambique Channel","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step51","gateway_a_bbox":[40,-26,47,-17.7],"gateway_b_bbox":[40,-18.3,47,-10],"union_bbox":[40,-26,47,-10],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"mozambique_channel","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step51","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 22:04:26","updated_at":"2026-05-31 22:04:26"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":1927,"daily_row_count":991,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step51","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"north_atlantic_east_gate","name":"North Atlantic East Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":144,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step65","gateway_a_bbox":[-41,42,-33,53],"gateway_b_bbox":[-36,42,-28,53],"union_bbox":[-41,42,-28,53],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"north_atlantic_east_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step65","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 22:18:14","updated_at":"2026-05-31 22:18:14"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":2388,"daily_row_count":1079,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step65","min_hours":1,"max_hours":144,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"north_channel_gate","name":"North Channel Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step71","gateway_a_bbox":[-9.5,54,-5.5,57],"gateway_b_bbox":[-6.8,54,-2.8,57],"union_bbox":[-9.5,54,-2.8,57],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"north_channel_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step71","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 22:22:38","updated_at":"2026-05-31 22:22:38"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":10088,"daily_row_count":1108,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step71","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"north_sea_central_gate","name":"North Sea Central Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step67","gateway_a_bbox":[1,52,5.8,58],"gateway_b_bbox":[4.8,52,9.6,58],"union_bbox":[1,52,9.6,58],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"north_sea_central_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step67","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 22:30:18","updated_at":"2026-05-31 22:30:18"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":43722,"daily_row_count":1498,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step67","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"northwestern_black_sea","name":"Northwestern Black Sea (Ukraine/Crimea/Russia)","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_bbox","gateway_a_bbox":[27,43.4,33.844,47.7],"gateway_b_bbox":[31.956,43.4,38.8,47.7],"union_bbox":[27,43.4,38.8,47.7],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"northwestern_black_sea","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 22:11:53","updated_at":"2026-05-31 22:11:53"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":654,"daily_row_count":531,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"norwegian_trench_gate","name":"Norwegian Trench Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step69","gateway_a_bbox":[2,56,6.5,62],"gateway_b_bbox":[5.5,56,10,62],"union_bbox":[2,56,10,62],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"norwegian_trench_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step69","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 22:36:03","updated_at":"2026-05-31 22:36:03"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":10951,"daily_row_count":1313,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step69","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"panama","name":"Panama Canal","kind":"canal","gateway_a_name":"Atlantic Gateway","gateway_b_name":"Pacific Gateway","min_hours":2,"max_hours":36,"cooldown_hours":18,"visit_gap_hours":8,"event_day_basis":"second_gate","config_version":"panama_v1_20260312","gateway_a_bbox":[-80.02,9.14,-79.72,9.42],"gateway_b_bbox":[-79.73,8.84,-79.39,9.12],"union_bbox":[-80.02,8.84,-79.39,9.42],"corridor_points":[[-79.895,9.29],[-79.865,9.205],[-79.82,9.13],[-79.745,9.08],[-79.64,9.04],[-79.52,8.985]],"corridor_profile":{"focus_ratio":0.42,"focus_span":0.17,"pinch_strength":0.94,"core_intensity":0.92,"lane_count":5,"lane_spread":0.92,"hotspot_scale":1.08},"state":{"waterway_id":"panama","detector_version":"v1_gateway_compact_sparse_utc","config_version":"panama_v1_20260312","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 22:39:46","updated_at":"2026-05-31 22:39:46"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":27409,"daily_row_count":17187,"history_first_day":"2024-03-13","history_last_day":"2026-05-31","daily_first_day":"2024-03-13","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"panama_v1_20260312","min_hours":2,"max_hours":36,"cooldown_hours":18,"visit_gap_hours":8,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Approach waiting and anchorage near canal mouths can still bias edge-day counts."]}},{"waterway_id":"sardinia_channel_gate","name":"Sardinia Channel Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step75","gateway_a_bbox":[4,36,8,40],"gateway_b_bbox":[7,36,11,40],"union_bbox":[4,36,11,40],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"sardinia_channel_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step75","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 22:44:57","updated_at":"2026-05-31 22:44:57"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":10362,"daily_row_count":1456,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step75","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"sicilian_approach_west","name":"Sicilian Approach West","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step81","gateway_a_bbox":[8,35.5,12.5,38.8],"gateway_b_bbox":[8,38,12.5,41.3],"union_bbox":[8,35.5,12.5,41.3],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"sicilian_approach_west","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step81","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 22:51:27","updated_at":"2026-05-31 22:51:27"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":3570,"daily_row_count":1163,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step81","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"sicily_channel","name":"Sicily Channel","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step51","gateway_a_bbox":[10,34,12.7,38],"gateway_b_bbox":[12.3,34,15,38],"union_bbox":[10,34,15,38],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"sicily_channel","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step51","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 23:01:00","updated_at":"2026-05-31 23:01:00"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":11577,"daily_row_count":1405,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step51","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"sicily_south_gate","name":"Sicily South Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step65","gateway_a_bbox":[10,33.2,14,37.6],"gateway_b_bbox":[13,33.2,17,37.6],"union_bbox":[10,33.2,17,37.6],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"sicily_south_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step65","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 23:16:29","updated_at":"2026-05-31 23:16:29"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":13396,"daily_row_count":1405,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step65","min_hours":1,"max_hours":96,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"singapore_malacca_piracy_watch","name":"Singapore-Malacca Piracy Watch","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_bbox","gateway_a_bbox":[100.5,0.8,102.994,4.4],"gateway_b_bbox":[102.306,0.8,104.8,4.4],"union_bbox":[100.5,0.8,104.8,4.4],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"singapore_malacca_piracy_watch","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 23:24:56","updated_at":"2026-05-31 23:24:56"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":31329,"daily_row_count":1525,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"skagerrak","name":"Skagerrak","kind":"strait","gateway_a_name":"North Sea Gateway","gateway_b_name":"Kattegat Gateway","min_hours":1,"max_hours":30,"cooldown_hours":10,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"skagerrak_v1_20260405","gateway_a_bbox":[8.2,57.7,10.4,58.55],"gateway_b_bbox":[10.55,56.95,12.55,58.05],"union_bbox":[8.2,56.95,12.55,58.55],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"skagerrak","detector_version":"v1_gateway_compact_sparse_utc","config_version":"skagerrak_v1_20260405","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 23:28:42","updated_at":"2026-05-31 23:28:42"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":8386,"daily_row_count":1491,"history_first_day":"2026-03-30","history_last_day":"2026-05-31","daily_first_day":"2026-03-30","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"skagerrak_v1_20260405","min_hours":1,"max_hours":30,"cooldown_hours":10,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives."]}},{"waterway_id":"dover","name":"Strait of Dover","kind":"strait","gateway_a_name":"Channel Gateway","gateway_b_name":"North Sea Gateway","min_hours":0.5,"max_hours":18,"cooldown_hours":6,"visit_gap_hours":3,"event_day_basis":"second_gate","config_version":"dover_v2_20260314","gateway_a_bbox":[0.1,50.65,1.75,51.05],"gateway_b_bbox":[1.55,51.05,3.15,51.55],"union_bbox":[0.1,50.65,3.15,51.55],"corridor_points":[[0.56,50.82],[0.94,50.87],[1.34,50.95],[1.76,51.03],[2.22,51.14]],"corridor_profile":{"focus_ratio":0.54,"focus_span":0.2,"pinch_strength":0.58,"core_intensity":0.66,"lane_count":7,"lane_spread":1.18,"hotspot_scale":0.98},"state":{"waterway_id":"dover","detector_version":"v1_gateway_compact_sparse_utc","config_version":"dover_v2_20260314","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 19:28:04","updated_at":"2026-05-31 19:28:04"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":20716,"daily_row_count":2349,"history_first_day":"2026-03-01","history_last_day":"2026-05-31","daily_first_day":"2026-03-01","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"dover_v2_20260314","min_hours":0.5,"max_hours":18,"cooldown_hours":6,"visit_gap_hours":3,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives."]}},{"waterway_id":"gibraltar","name":"Strait of Gibraltar","kind":"strait","gateway_a_name":"Atlantic Gateway","gateway_b_name":"Mediterranean Gateway","min_hours":0.5,"max_hours":16,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"gibraltar_v1_20260312","gateway_a_bbox":[-5.82,35.86,-5.36,36.16],"gateway_b_bbox":[-5.36,35.86,-4.92,36.16],"union_bbox":[-5.82,35.86,-4.92,36.16],"corridor_points":[[-5.71,36.05],[-5.585,36.038],[-5.45,36.02],[-5.315,36.008],[-5.155,36]],"corridor_profile":{"focus_ratio":0.46,"focus_span":0.22,"pinch_strength":0.62,"core_intensity":0.68,"lane_count":7,"lane_spread":1.32,"hotspot_scale":1},"state":{"waterway_id":"gibraltar","detector_version":"v1_gateway_compact_sparse_utc","config_version":"gibraltar_v1_20260312","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 19:52:36","updated_at":"2026-05-31 19:52:36"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":151446,"daily_row_count":20530,"history_first_day":"2024-03-13","history_last_day":"2026-05-31","daily_first_day":"2024-03-13","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"gibraltar_v1_20260312","min_hours":0.5,"max_hours":16,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives."]}},{"waterway_id":"hormuz","name":"Strait of Hormuz","kind":"strait","gateway_a_name":"Gulf of Oman Gateway","gateway_b_name":"Persian Gulf Gateway","min_hours":0.5,"max_hours":24,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"hormuz_v2_20260314","gateway_a_bbox":[56.1,25.6,57.9,26.75],"gateway_b_bbox":[54.85,25.7,56.3,26.85],"union_bbox":[54.85,25.6,57.9,26.85],"corridor_points":[[56.16,26.38],[56.42,26.35],[56.7,26.3],[56.98,26.22],[57.24,26.09]],"corridor_profile":{"focus_ratio":0.62,"focus_span":0.19,"pinch_strength":0.86,"core_intensity":0.88,"lane_count":5,"lane_spread":1.04,"hotspot_scale":1.1},"state":{"waterway_id":"hormuz","detector_version":"v1_gateway_compact_sparse_utc","config_version":"hormuz_v2_20260314","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 20:26:49","updated_at":"2026-05-31 20:26:49"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":6690,"daily_row_count":2184,"history_first_day":"2026-01-18","history_last_day":"2026-05-31","daily_first_day":"2026-01-18","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"hormuz_v2_20260314","min_hours":0.5,"max_hours":24,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives."]}},{"waterway_id":"malacca","name":"Strait of Malacca","kind":"strait","gateway_a_name":"Andaman Gateway","gateway_b_name":"Singapore Gateway","min_hours":6,"max_hours":72,"cooldown_hours":24,"visit_gap_hours":8,"event_day_basis":"second_gate","config_version":"malacca_v1_20260312","gateway_a_bbox":[99,4.2,100.2,5.8],"gateway_b_bbox":[103.15,1,104.5,2.3],"union_bbox":[99,1,104.5,5.8],"corridor_points":[[99.55,5.25],[100.12,4.82],[100.76,4.3],[101.45,3.55],[102.18,2.76],[102.9,2],[103.58,1.42]],"corridor_profile":{"focus_ratio":0.74,"focus_span":0.16,"pinch_strength":0.74,"core_intensity":0.78,"lane_count":7,"lane_spread":1.24,"hotspot_scale":1.08},"state":{"waterway_id":"malacca","detector_version":"v1_gateway_compact_sparse_utc","config_version":"malacca_v1_20260312","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 21:45:20","updated_at":"2026-05-31 21:45:20"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":114666,"daily_row_count":19483,"history_first_day":"2024-03-13","history_last_day":"2026-05-31","daily_first_day":"2024-03-13","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"malacca_v1_20260312","min_hours":6,"max_hours":72,"cooldown_hours":24,"visit_gap_hours":8,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"messina_strait","name":"Strait of Messina","kind":"strait","gateway_a_name":"Tyrrhenian Gateway","gateway_b_name":"Ionian Gateway","min_hours":0.5,"max_hours":18,"cooldown_hours":8,"visit_gap_hours":3,"event_day_basis":"second_gate","config_version":"messina_strait_v1_20260405","gateway_a_bbox":[15.2,38.05,15.7,38.45],"gateway_b_bbox":[15.25,37.55,15.85,37.95],"union_bbox":[15.2,37.55,15.85,38.45],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"messina_strait","detector_version":"v1_gateway_compact_sparse_utc","config_version":"messina_strait_v1_20260405","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 21:50:59","updated_at":"2026-05-31 21:50:59"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":2152,"daily_row_count":1020,"history_first_day":"2026-03-30","history_last_day":"2026-05-31","daily_first_day":"2026-03-30","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"messina_strait_v1_20260405","min_hours":0.5,"max_hours":18,"cooldown_hours":8,"visit_gap_hours":3,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives."]}},{"waterway_id":"suez","name":"Suez Canal","kind":"canal","gateway_a_name":"North Gateway","gateway_b_name":"South Gateway","min_hours":4,"max_hours":48,"cooldown_hours":24,"visit_gap_hours":12,"event_day_basis":"second_gate","config_version":"suez_v2_20260314_gateway_b_trim","gateway_a_bbox":[32.12,30.98,32.86,31.48],"gateway_b_bbox":[32.28,29.66,32.7,30.11],"union_bbox":[32.12,29.66,32.86,31.48],"corridor_points":[[32.43,31.27],[32.385,31],[32.345,30.72],[32.34,30.43],[32.43,30.12],[32.505,29.79]],"corridor_profile":{"focus_ratio":0.58,"focus_span":0.18,"pinch_strength":0.96,"core_intensity":0.96,"lane_count":7,"lane_spread":1.02,"hotspot_scale":1.18},"state":{"waterway_id":"suez","detector_version":"v1_gateway_compact_sparse_utc","config_version":"suez_v2_20260314_gateway_b_trim","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 23:33:22","updated_at":"2026-05-31 23:33:22"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":30602,"daily_row_count":15401,"history_first_day":"2024-03-13","history_last_day":"2026-05-31","daily_first_day":"2024-03-13","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"suez_v2_20260314_gateway_b_trim","min_hours":4,"max_hours":48,"cooldown_hours":24,"visit_gap_hours":12,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Approach waiting and anchorage near canal mouths can still bias edge-day counts.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"sunda_strait","name":"Sunda Strait","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_bbox","gateway_a_bbox":[104.5,-6.5,105.37,-5],"gateway_b_bbox":[105.13,-6.5,106,-5],"union_bbox":[104.5,-6.5,106,-5],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"sunda_strait","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 23:38:14","updated_at":"2026-05-31 23:38:14"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":3216,"daily_row_count":1267,"history_first_day":"2026-04-01","history_last_day":"2026-05-31","daily_first_day":"2026-04-01","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"taiwan","name":"Taiwan Strait","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":6,"max_hours":60,"cooldown_hours":18,"visit_gap_hours":8,"event_day_basis":"second_gate","config_version":"taiwan_v1_20260314","gateway_a_bbox":[118.1,21.55,120.7,23.1],"gateway_b_bbox":[119.1,24.55,122.2,26.25],"union_bbox":[118.1,21.55,122.2,26.25],"corridor_points":[[119.25,22.05],[119.42,22.62],[119.63,23.25],[119.86,23.93],[120.15,24.62],[120.52,25.32]],"corridor_profile":{"focus_ratio":0.48,"focus_span":0.22,"pinch_strength":0.54,"core_intensity":0.62,"lane_count":7,"lane_spread":1.28,"hotspot_scale":0.96},"state":{"waterway_id":"taiwan","detector_version":"v1_gateway_compact_sparse_utc","config_version":"taiwan_v1_20260314","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 23:43:03","updated_at":"2026-05-31 23:43:03"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":10064,"daily_row_count":2270,"history_first_day":"2026-02-13","history_last_day":"2026-05-31","daily_first_day":"2026-02-13","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"taiwan_v1_20260314","min_hours":6,"max_hours":60,"cooldown_hours":18,"visit_gap_hours":8,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"torres_strait","name":"Torres Strait","kind":"strait","gateway_a_name":"Arafura Gateway","gateway_b_name":"Coral Sea Gateway","min_hours":1,"max_hours":36,"cooldown_hours":12,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"torres_strait_v1_20260405","gateway_a_bbox":[141.2,-10.95,143.1,-10.1],"gateway_b_bbox":[142.35,-10.55,144.25,-9.7],"union_bbox":[141.2,-10.95,144.25,-9.7],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"torres_strait","detector_version":"v1_gateway_compact_sparse_utc","config_version":"torres_strait_v1_20260405","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 23:46:26","updated_at":"2026-05-31 23:46:26"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":293,"daily_row_count":503,"history_first_day":"2026-03-30","history_last_day":"2026-05-31","daily_first_day":"2026-03-30","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"torres_strait_v1_20260405","min_hours":1,"max_hours":36,"cooldown_hours":12,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives."]}},{"waterway_id":"tsugaru_strait","name":"Tsugaru Strait","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_bbox","gateway_a_bbox":[139.8,41.2,140.612,42.4],"gateway_b_bbox":[140.388,41.2,141.2,42.4],"union_bbox":[139.8,41.2,141.2,42.4],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"tsugaru_strait","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 23:51:18","updated_at":"2026-05-31 23:51:18"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":3907,"daily_row_count":1364,"history_first_day":"2026-04-01","history_last_day":"2026-05-31","daily_first_day":"2026-04-01","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_bbox","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"tyrrhenian_gate","name":"Tyrrhenian Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step75","gateway_a_bbox":[8,38,12,42],"gateway_b_bbox":[11,38,15,42],"union_bbox":[8,38,15,42],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"tyrrhenian_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step75","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-05-31 23:57:33","updated_at":"2026-05-31 23:57:33"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":6397,"daily_row_count":1108,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step75","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"west_africa_gate","name":"West Africa Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":120,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step61","gateway_a_bbox":[-21,0,-14,12],"gateway_b_bbox":[-16,0,-9,12],"union_bbox":[-21,0,-9,12],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"west_africa_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step61","last_processed_ts":"2026-06-01 23:59:59","last_aggregate_ts":"2026-06-01 00:10:05","updated_at":"2026-06-01 00:10:05"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":8894,"daily_row_count":1347,"history_first_day":"2026-04-02","history_last_day":"2026-06-01","daily_first_day":"2026-04-02","daily_last_day":"2026-06-01"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step61","min_hours":1,"max_hours":120,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"west_ionian_gate","name":"West Ionian Gate","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step79","gateway_a_bbox":[14,36,18,39],"gateway_b_bbox":[14,38.2,18,41.2],"union_bbox":[14,36,18,41.2],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"west_ionian_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step79","last_processed_ts":"2026-06-01 23:59:59","last_aggregate_ts":"2026-06-01 00:16:14","updated_at":"2026-06-01 00:16:14"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":6586,"daily_row_count":1238,"history_first_day":"2026-04-02","history_last_day":"2026-06-01","daily_first_day":"2026-04-02","daily_last_day":"2026-06-01"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step79","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"west_tyrrhenian_gate","name":"West Tyrrhenian Gate","kind":"strait","gateway_a_name":"South Gateway","gateway_b_name":"North Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step79","gateway_a_bbox":[7,39,11,42],"gateway_b_bbox":[7,41.2,11,44.2],"union_bbox":[7,39,11,44.2],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"west_tyrrhenian_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step79","last_processed_ts":"2026-06-01 23:59:59","last_aggregate_ts":"2026-06-01 00:25:56","updated_at":"2026-06-01 00:25:56"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":5761,"daily_row_count":1118,"history_first_day":"2026-04-02","history_last_day":"2026-06-01","daily_first_day":"2026-04-02","daily_last_day":"2026-06-01"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step79","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}},{"waterway_id":"western_med_north_gate","name":"Western Med North Gate","kind":"strait","gateway_a_name":"West Gateway","gateway_b_name":"East Gateway","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","config_version":"wave_b_seed_v1_manual_step69","gateway_a_bbox":[0,40.5,4.6,44.8],"gateway_b_bbox":[3.6,40.5,8.2,44.8],"union_bbox":[0,40.5,8.2,44.8],"corridor_points":[],"corridor_profile":{"focus_ratio":0.5,"focus_span":0.2,"pinch_strength":0.75,"core_intensity":0.75,"lane_count":5,"lane_spread":1,"hotspot_scale":1},"state":{"waterway_id":"western_med_north_gate","detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step69","last_processed_ts":"2026-05-31 23:59:59","last_aggregate_ts":"2026-06-01 00:03:39","updated_at":"2026-06-01 00:03:39"},"availability":{"has_data":true,"has_history":true,"runtime_ready":true,"history_event_count":6187,"daily_row_count":1189,"history_first_day":"2026-04-02","history_last_day":"2026-05-31","daily_first_day":"2026-04-02","daily_last_day":"2026-05-31"},"detector_contract":{"detector_version":"v1_gateway_compact_sparse_utc","config_version":"wave_b_seed_v1_manual_step69","min_hours":1,"max_hours":72,"cooldown_hours":8,"visit_gap_hours":4,"event_day_basis":"second_gate","known_limitations":["Sparse gateway-to-gateway detector; this is not exact line-crossing geometry.","Event day is assigned from the second gateway timestamp in UTC.","Wide gateway polygons intentionally favor recall over exact entrance timing.","Cooldown-based deduplication suppresses repeated sightings from the same movement.","Parallel coastal traffic near gateway polygons can still produce edge-case false positives.","Broad max transit windows are intentionally permissive for sparse positions and delayed second hits."]}}],"applied_filters":{"scope":"all","scope_live_only":false},"defaults":{"waterway":"suez","period":"6m","class":"all","direction":"both"},"filters":{"periods":["7d","30d","90d","180d","1m","6m","1y","2y"],"classes":["all","container","bulk","lng","lpg"],"directions":["both","A_to_B","B_to_A"]}},"errors":[]}