{"calculation_version":"2026-10-10.1","forecast_source":"history","night_date":"2026-01-20","schedule":[{"end":"2026-01-20T16:30Z","end_local":"18:30","hours":1.17,"mean_quality":0.0,"start":"2026-01-20T15:20Z","start_local":"17:20","target":null},{"end":"2026-01-20T21:00Z","end_local":"23:00","hours":4.5,"mean_quality":0.79,"start":"2026-01-20T16:30Z","start_local":"18:30","target":"M31"},{"end":"2026-01-21T05:45Z","end_local":"07:45","hours":8.75,"mean_quality":0.0,"start":"2026-01-20T21:00Z","start_local":"23:00","target":null}],"targets":[{"best_window":{"end":"2026-01-20T20:25Z","end_local":"22:25","hours":3.42,"label":"good","mean_quality":0.87,"start":"2026-01-20T17:00Z","start_local":"19:00"},"dec":41.26875,"moon_separation":67.9,"name":"M31","quality_hours":3.64,"ra":10.68470833,"resolved":{"common_name":"Andromeda Galaxy","dec":41.26875,"morphology":"SA(s)b","name":"M 31","ra":10.68470833,"simbad_url":"https://simbad.cds.unistra.fr/simbad/sim-id?Ident=M31","source":"sesame","type":"AGN","type_text":"galaxy with an active nucleus","vmag":3.44},"score":83,"score_astronomy":100,"score_weather":83,"transit":{"airmass":1.0,"alt":89.7,"az":173.0,"t":"2026-01-20T15:05Z"},"verdict":"good","weather_known":true,"windows":[{"end":"2026-01-20T15:55Z","end_local":"17:55","hours":0.58,"label":"unusable","mean_quality":0.0,"start":"2026-01-20T15:20Z","start_local":"17:20"},{"end":"2026-01-20T16:30Z","end_local":"18:30","hours":0.58,"label":"poor","mean_quality":0.15,"start":"2026-01-20T15:55Z","start_local":"17:55"},{"end":"2026-01-20T17:00Z","end_local":"19:00","hours":0.5,"label":"marginal","mean_quality":0.49,"start":"2026-01-20T16:30Z","start_local":"18:30"},{"end":"2026-01-20T20:25Z","end_local":"22:25","hours":3.42,"label":"good","mean_quality":0.87,"start":"2026-01-20T17:00Z","start_local":"19:00"},{"end":"2026-01-20T21:00Z","end_local":"23:00","hours":0.58,"label":"marginal","mean_quality":0.57,"start":"2026-01-20T20:25Z","start_local":"22:25"},{"end":"2026-01-21T05:45Z","end_local":"07:45","hours":8.75,"label":"unusable","mean_quality":0.0,"start":"2026-01-20T21:00Z","start_local":"23:00"}]}],"unscheduled":[],"warnings":[]}
