feat(proxy): near-station snap, night moonrise, relaxed prominence Evidence-based response to the tide-accuracy ask. Measured SIGNED bias (model − official) at 8 large-tide stations on 6/6: scattered from −68 (완도, early) to +23 (인천, late), median ~±5min, with per-station sign flips. So a time-shift / 조시차 correction is NOT valid (it would overfit the reference app, which isn't ground truth) — not built. Instead: - routes/tide: coordinate spots within 6km of an official station now serve that station's exact measured tide (same water, sub-hour precision) — e.g. 통영 coord recovers the 00:06 high the hourly model had dropped. - tideExtrema: relaxed prominence (0.12→0.09*range, floor 0.12m) to stop over-pruning real secondary highs/lows. - astro: when moonrise/moonset fall past local midnight (null), fall back to the next day's first occurrence so night moonrise is shown (user-requested; fishing needs it). Verified: 통영 coord -> official exact; 노력항 model -> clean 4 events; moonrise no longer null. vitest 28/28. Constraint: no synthetic time correction — model timing is left at its honest ~±5–30min vs the 조시차 standard (hourly-sampling floor is irreducible via this endpoint, which rejects sub-hour interval params). Confidence: high Scope-risk: module Reversibility: trivial Directive: To truly match 물때표 on named 부속항 we'd need KHOA 조시차 tables (non-public); the near-station snap covers ports close to the 61 stations exactly. Tested: vitest 28/28; live HTTP — 통영 snap, 노력항 model, moonrise fallback; signed-bias measurement (scattered) recorded. Not-tested: snap distance threshold tuning (6km chosen conservatively). Related: docs/BACKLOG.md 3-A 🐙 Autopus