{"calculation_version":"2026-10-10.1","forecast_source":"history","night_date":"2026-07-28","schedule":[{"end":"2026-07-28T20:05Z","end_local":"23:05","hours":2.42,"mean_quality":0.0,"start":"2026-07-28T17:40Z","start_local":"20:40","target":null},{"end":"2026-07-29T02:05Z","end_local":"05:05","hours":6.0,"mean_quality":0.56,"start":"2026-07-28T20:05Z","start_local":"23:05","target":"M31"},{"end":"2026-07-29T03:15Z","end_local":"06:15","hours":1.17,"mean_quality":0.0,"start":"2026-07-29T02:05Z","start_local":"05:05","target":null}],"targets":[{"best_window":{"end":"2026-07-29T01:20Z","end_local":"04:20","hours":3.08,"label":"good","mean_quality":0.65,"start":"2026-07-28T22:15Z","start_local":"01:15"},"dec":41.26875,"moon_separation":91.1,"name":"M31","quality_hours":3.46,"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":67,"score_astronomy":75,"score_weather":90,"transit":{"airmass":1.0,"alt":89.6,"az":231.1,"t":"2026-07-29T02:40Z"},"verdict":"marginal","weather_known":true,"windows":[{"end":"2026-07-28T20:00Z","end_local":"23:00","hours":2.33,"label":"unusable","mean_quality":0.0,"start":"2026-07-28T17:40Z","start_local":"20:40"},{"end":"2026-07-28T20:05Z","end_local":"23:05","hours":0.08,"label":"poor","mean_quality":0.29,"start":"2026-07-28T20:00Z","start_local":"23:00"},{"end":"2026-07-28T21:35Z","end_local":"00:35","hours":1.5,"label":"marginal","mean_quality":0.48,"start":"2026-07-28T20:05Z","start_local":"23:05"},{"end":"2026-07-28T22:00Z","end_local":"01:00","hours":0.42,"label":"good","mean_quality":0.61,"start":"2026-07-28T21:35Z","start_local":"00:35"},{"end":"2026-07-28T22:15Z","end_local":"01:15","hours":0.25,"label":"marginal","mean_quality":0.6,"start":"2026-07-28T22:00Z","start_local":"01:00"},{"end":"2026-07-29T01:20Z","end_local":"04:20","hours":3.08,"label":"good","mean_quality":0.65,"start":"2026-07-28T22:15Z","start_local":"01:15"},{"end":"2026-07-29T02:05Z","end_local":"05:05","hours":0.75,"label":"marginal","mean_quality":0.32,"start":"2026-07-29T01:20Z","start_local":"04:20"},{"end":"2026-07-29T02:45Z","end_local":"05:45","hours":0.67,"label":"poor","mean_quality":0.12,"start":"2026-07-29T02:05Z","start_local":"05:05"},{"end":"2026-07-29T03:15Z","end_local":"06:15","hours":0.5,"label":"unusable","mean_quality":0.0,"start":"2026-07-29T02:45Z","start_local":"05:45"}]}],"unscheduled":[],"warnings":[]}
