{"placeholder":"Made-up values to show the page layout. This is not test data.","algorithm":"moon","publishedDate":"2026-01-01","expiresDate":"2027-12-31","earthModel":"WGS84","sources":[{"role":"Method","name":"Astronomical Algorithms, 2nd edition, 1998","by":"Jean Meeus","url":"","licence":""},{"role":"Reference","name":"Astronomical Applications API","by":"US Naval Observatory","url":"https://aa.usno.navy.mil/data/api","licence":"Public domain"}],"operations":[{"id":"events","gives":"Rise, set and transit in a window","inputs":["latitudeInDegrees","longitudeInDegrees","startUtc","windowInHours"],"outputs":["riseUtc","setUtc","transitUtc","isAlwaysUp","isAlwaysDown"]},{"id":"phase","gives":"How much is lit, and the phase's name, at an instant","inputs":["instantUtc"],"outputs":["illuminationFraction","phaseAngleInDegrees","phaseName"]},{"id":"nextPhases","gives":"The next of each of the four main phases after an instant","inputs":["startUtc"],"outputs":["newMoonUtc","firstQuarterUtc","fullMoonUtc","lastQuarterUtc"]}],"fields":{"latitudeInDegrees":"−90 to 90, WGS84, north positive","longitudeInDegrees":"−180 to 180, WGS84, east positive","startUtc":"The window's start, ISO 8601 in UTC","windowInHours":"The window's length, 24 unless a case says otherwise","isAlwaysUp":"true when it's above the horizon for the whole window","isAlwaysDown":"true when it's below the horizon for the whole window","instantUtc":"An instant, ISO 8601 in UTC","riseUtc":"The top of the moon reaches the horizon, with parallax. null if it doesn't happen in the window","setUtc":"As rise, going down","transitUtc":"Highest in the sky","illuminationFraction":"0 to 1, the part of the face that's lit","phaseAngleInDegrees":"0 at full to 180 at new","phaseName":"new, waxingCrescent, firstQuarter, waxingGibbous, full, waningGibbous, lastQuarter or waningCrescent","newMoonUtc":"The next new moon","firstQuarterUtc":"The next first quarter","fullMoonUtc":"The next full moon","lastQuarterUtc":"The next last quarter"},"tolerances":{"riseUtc":"120","setUtc":"120","transitUtc":"120","newMoonUtc":"120","firstQuarterUtc":"120","fullMoonUtc":"120","lastQuarterUtc":"120","illuminationFraction":"0.01","phaseAngleInDegrees":"0.5"},"cases":[{"id":"placeholder-1","operation":"events","tags":["reference"],"input":{"latitudeInDegrees":11.11,"longitudeInDegrees":22.22,"startUtc":"2026-01-01T00:00:00Z","windowInHours":24},"expected":{"riseUtc":"2026-01-01T03:21:00Z","setUtc":"2026-01-01T15:43:00Z"}},{"id":"placeholder-2","operation":"events","tags":["edge"],"input":{"latitudeInDegrees":11.11,"longitudeInDegrees":22.22,"startUtc":"2026-01-02T00:00:00Z","windowInHours":24},"expected":{"riseUtc":null,"setUtc":"2026-01-02T16:30:00Z"}},{"id":"placeholder-3","operation":"phase","tags":["reference"],"input":{"instantUtc":"2026-01-01T00:00:00Z"},"expected":{"illuminationFraction":0.12,"phaseName":"waxingCrescent"}},{"id":"placeholder-4","operation":"nextPhases","tags":["reference"],"input":{"startUtc":"2026-01-01T00:00:00Z"},"expected":{"firstQuarterUtc":"2026-01-02T12:34:00Z","fullMoonUtc":"2026-01-09T12:34:00Z"}}]}
