{"calculation_version":"2026-10-10.1","forecast_source":"history","night_date":"2025-12-31","schedule":[{"end":"2025-12-31T23:00Z","end_local":"01:00","hours":8.0,"mean_quality":0.0,"start":"2025-12-31T15:00Z","start_local":"17:00","target":null},{"end":"2026-01-01T00:00Z","end_local":"02:00","hours":1.0,"mean_quality":0.36,"start":"2025-12-31T23:00Z","start_local":"01:00","target":"M42"},{"end":"2026-01-01T05:50Z","end_local":"07:50","hours":5.83,"mean_quality":0.0,"start":"2026-01-01T00:00Z","start_local":"02:00","target":null}],"targets":[{"best_window":{"end":"2026-01-01T00:00Z","end_local":"02:00","hours":1.0,"label":"marginal","mean_quality":0.36,"start":"2025-12-31T23:00Z","start_local":"01:00"},"dec":-5.3876,"moon_separation":37.6,"name":"M42","quality_hours":0.99,"ra":83.8201,"resolved":{"common_name":"Great Orion Nebula","dec":-5.3876,"name":"M 42","ra":83.8201,"simbad_url":"https://simbad.cds.unistra.fr/simbad/sim-id?Ident=M42","source":"sesame","type":"HII","type_text":"HII region \u2014 a star-forming nebula"},"score":9,"score_astronomy":20,"score_weather":44,"transit":{"airmass":1.47,"alt":42.9,"az":179.9,"t":"2025-12-31T21:15Z"},"verdict":"poor","weather_known":true,"windows":[{"end":"2025-12-31T17:30Z","end_local":"19:30","hours":2.5,"label":"unusable","mean_quality":0.0,"start":"2025-12-31T15:00Z","start_local":"17:00"},{"end":"2025-12-31T19:00Z","end_local":"21:00","hours":1.5,"label":"poor","mean_quality":0.11,"start":"2025-12-31T17:30Z","start_local":"19:30"},{"end":"2025-12-31T22:00Z","end_local":"00:00","hours":3.0,"label":"unusable","mean_quality":0.0,"start":"2025-12-31T19:00Z","start_local":"21:00"},{"end":"2025-12-31T23:00Z","end_local":"01:00","hours":1.0,"label":"poor","mean_quality":0.29,"start":"2025-12-31T22:00Z","start_local":"00:00"},{"end":"2026-01-01T00:00Z","end_local":"02:00","hours":1.0,"label":"marginal","mean_quality":0.36,"start":"2025-12-31T23:00Z","start_local":"01:00"},{"end":"2026-01-01T01:05Z","end_local":"03:05","hours":1.08,"label":"poor","mean_quality":0.17,"start":"2026-01-01T00:00Z","start_local":"02:00"},{"end":"2026-01-01T05:50Z","end_local":"07:50","hours":4.75,"label":"unusable","mean_quality":0.0,"start":"2026-01-01T01:05Z","start_local":"03:05"}]}],"unscheduled":[],"warnings":[]}
