All 10 review criteria pass without fixes. Deferred two tech-debt items
(equirectangular distortion at high latitudes, missing dimension assertion
in basemap.load()). Story and sprint-status marked done.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add MapBounds dataclass and equirectangular project() function in
projection.py, basemap.load() forcing pixels into memory via .copy(),
and full test coverage for both modules (4 new tests). All quality
gates pass: 67 tests, ruff clean.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>