{"schema_version":1,"tool":"flightdeck","mode":"replay","config":{"lateness_ms":250,"heartbeat_ms":2000,"future_skew_ms":100,"max_buffer":4096,"max_vehicles":256,"dedup_window":256,"center_lat":43.472299999999997,"center_lon":-80.544899999999998,"radius_m":500,"max_speed_mps":45,"max_altitude_m":120,"min_battery_pct":20},"anomalies":[{"code":"duplicate_sequence","vehicle":"delta","event_ms":5000,"sequence":20,"detail":"sequence is inside bounded dedup history; event dropped","observed":0,"limit":0},{"code":"duplicate_sequence","vehicle":"alpha","event_ms":5000,"sequence":20,"detail":"sequence is inside bounded dedup history; event dropped","observed":0,"limit":0},{"code":"duplicate_sequence","vehicle":"echo","event_ms":5000,"sequence":20,"detail":"sequence is inside bounded dedup history; event dropped","observed":0,"limit":0},{"code":"duplicate_sequence","vehicle":"foxtrot","event_ms":5000,"sequence":20,"detail":"sequence is inside bounded dedup history; event dropped","observed":0,"limit":0},{"code":"duplicate_sequence","vehicle":"bravo","event_ms":5000,"sequence":20,"detail":"sequence is inside bounded dedup history; event dropped","observed":0,"limit":0},{"code":"duplicate_sequence","vehicle":"charlie","event_ms":5000,"sequence":20,"detail":"sequence is inside bounded dedup history; event dropped","observed":0,"limit":0},{"code":"state_transition","vehicle":"bravo","event_ms":10000,"sequence":40,"detail":"airborne -> ground","observed":0,"limit":0},{"code":"state_transition","vehicle":"bravo","event_ms":10250,"sequence":41,"detail":"ground -> airborne","observed":0,"limit":0},{"code":"arrival_clock_regression","vehicle":"delta","event_ms":12250,"sequence":9000,"detail":"arrival clock moved backwards; event dropped","observed":1,"limit":12300},{"code":"late_event","vehicle":"bravo","event_ms":12000,"sequence":48,"detail":"event precedes watermark; event dropped","observed":12000,"limit":13750},{"code":"heartbeat_stale","vehicle":"delta","event_ms":12250,"sequence":49,"detail":"watermark advanced without a heartbeat","observed":2250,"limit":2000},{"code":"velocity_limit","vehicle":"charlie","event_ms":16000,"sequence":64,"detail":"horizontal ground speed exceeds configured limit","observed":3576.122646942255,"limit":45},{"code":"geofence","vehicle":"charlie","event_ms":16000,"sequence":64,"detail":"sample is outside circular geofence","observed":977.57686743249235,"limit":500},{"code":"altitude_limit","vehicle":"charlie","event_ms":16000,"sequence":64,"detail":"altitude exceeds configured ceiling","observed":160,"limit":120},{"code":"velocity_limit","vehicle":"charlie","event_ms":16250,"sequence":65,"detail":"horizontal ground speed exceeds configured limit","observed":3543.0077074700903,"limit":45},{"code":"telemetry_gap","vehicle":"delta","event_ms":17000,"sequence":68,"detail":"gap between samples exceeds heartbeat window","observed":4750,"limit":2000},{"code":"heartbeat_recovered","vehicle":"delta","event_ms":17000,"sequence":68,"detail":"telemetry resumed after a stale heartbeat","observed":0,"limit":0},{"code":"duplicate_sequence","vehicle":"delta","event_ms":20000,"sequence":80,"detail":"sequence is inside bounded dedup history; event dropped","observed":0,"limit":0},{"code":"duplicate_sequence","vehicle":"echo","event_ms":20000,"sequence":80,"detail":"sequence is inside bounded dedup history; event dropped","observed":0,"limit":0},{"code":"duplicate_sequence","vehicle":"alpha","event_ms":20000,"sequence":80,"detail":"sequence is inside bounded dedup history; event dropped","observed":0,"limit":0},{"code":"duplicate_sequence","vehicle":"foxtrot","event_ms":20000,"sequence":80,"detail":"sequence is inside bounded dedup history; event dropped","observed":0,"limit":0},{"code":"duplicate_sequence","vehicle":"charlie","event_ms":20000,"sequence":80,"detail":"sequence is inside bounded dedup history; event dropped","observed":0,"limit":0},{"code":"duplicate_sequence","vehicle":"bravo","event_ms":20000,"sequence":80,"detail":"sequence is inside bounded dedup history; event dropped","observed":0,"limit":0},{"code":"sequence_regression","vehicle":"echo","event_ms":20000,"sequence":80,"detail":"sequence did not increase in event-time order","observed":80,"limit":1000},{"code":"position_time_conflict","vehicle":"foxtrot","event_ms":22250,"sequence":90,"detail":"distinct positions have the same event timestamp","observed":8.3315598780713067,"limit":0},{"code":"event_clock_ahead","vehicle":"echo","event_ms":28750,"sequence":95,"detail":"event clock exceeds allowed future skew; event dropped","observed":4859,"limit":100},{"code":"low_battery","vehicle":"alpha","event_ms":25250,"sequence":101,"detail":"battery is below configured reserve","observed":19.199999999999999,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":25500,"sequence":102,"detail":"battery is below configured reserve","observed":18.399999999999999,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":25750,"sequence":103,"detail":"battery is below configured reserve","observed":17.600000000000001,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":26000,"sequence":104,"detail":"battery is below configured reserve","observed":16.800000000000001,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":26250,"sequence":105,"detail":"battery is below configured reserve","observed":16,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":26500,"sequence":106,"detail":"battery is below configured reserve","observed":15.199999999999999,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":26750,"sequence":107,"detail":"battery is below configured reserve","observed":14.4,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":27000,"sequence":108,"detail":"battery is below configured reserve","observed":13.6,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":27250,"sequence":109,"detail":"battery is below configured reserve","observed":12.800000000000001,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":27500,"sequence":110,"detail":"battery is below configured reserve","observed":12,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":27750,"sequence":111,"detail":"battery is below configured reserve","observed":11.199999999999999,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":28000,"sequence":112,"detail":"battery is below configured reserve","observed":10.4,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":28250,"sequence":113,"detail":"battery is below configured reserve","observed":10,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":28500,"sequence":114,"detail":"battery is below configured reserve","observed":10,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":28750,"sequence":115,"detail":"battery is below configured reserve","observed":10,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":29000,"sequence":116,"detail":"battery is below configured reserve","observed":10,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":29250,"sequence":117,"detail":"battery is below configured reserve","observed":10,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":29500,"sequence":118,"detail":"battery is below configured reserve","observed":10,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":29750,"sequence":119,"detail":"battery is below configured reserve","observed":10,"limit":20},{"code":"low_battery","vehicle":"alpha","event_ms":30000,"sequence":120,"detail":"battery is below configured reserve","observed":10,"limit":20}],"metrics":{"received":721,"emitted":706,"duplicate_drops":12,"late_drops":1,"capacity_drops":0,"vehicle_drops":0,"clock_drops":2,"dedup_evictions":0,"anomalies":46,"peak_buffer":6,"peak_vehicles":6,"anomaly_counts":{"altitude_limit":1,"arrival_clock_regression":1,"duplicate_sequence":12,"event_clock_ahead":1,"geofence":1,"heartbeat_recovered":1,"heartbeat_stale":1,"late_event":1,"low_battery":20,"position_time_conflict":1,"sequence_regression":1,"state_transition":2,"telemetry_gap":1,"velocity_limit":2}},"log":{"sealed":true,"recovered_prefix":false,"events":721,"valid_bytes":52399,"reason":""}}
