# Design and acceptance plan

Pure value layer: validated Instant and Observer, no host clocks or timezone dependence.
Astronomy layer: UT sidereal rotation, TT coordinates via piecewise delta-T; Sun Meeus ch25;
Moon Meeus ch47 periodic longitude/latitude/distance and nutation, topocentric parallax;
refraction and ch15 event solvers. Angles returned in degrees, north clockwise.
Event layer: UTC solar date anchoring, optional polar events, bounded immutable custom angles;
moon 24h UTC scan with quadratic brackets and Newton refinement.
Quality layer: pinned upstream oracle, independent upstream astronomical fixtures where licensed,
edge/property tests, three runnable consumers, four-target strict checks.
No JS FFI, fetches, IO, global mutable event registry, calendar scoring, timezone DB or JPL files.

## Independently reviewable milestones
1. Licensed package and architecture
2. Validated observer/time model with boundary tests
3. UTC Julian conversion and date boundary tests
4. Solar coordinates with TT/UT separation
5. Standard solar times and polar state
6. Custom horizon and observer height support
7. Lunar periodic series and topocentric position
8. Lunar illumination and phase
9. Lunar rise/set and UTC-day scanning
10. Degenerate root handling and numerical robustness
11. Reproducible upstream differential oracle
12. External astronomical reference validation
13. Gregorian UTC adapter and roundtrip tests
14. Photography/twilight runnable integration
15. Solar position tracking runnable integration
16. Moon observation runnable integration
17. Deterministic property and edge stress suite
18. Bounded batch sampling API
19. API/support/security/contribution documentation
20. Reproducible CI and verification runner
21. Measured compatibility report and release readiness audit

Commits follow verified feature slices; weak administrative changes will not count as engineering work.
