# Changelog

All notable changes to the `mercurys` crate are documented in this file.

Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## [0.0.2] - 2026-04-04

### Added
- Rendering module endpoints exported as public API: mesh.rs (icosphere subdivision, LodLevel, Vertex, MeshData), lod.rs (pixel-precise adaptive LOD), materials.rs (PBR parameters), shaders.rs (shader parameters)
- `documentation` and `homepage` fields in Cargo.toml
- Celestial project link in README.md

### Fixed
- Unused imports removed from test files
- `Range::contains` / `RangeInclusive::contains` refactored in tests
- Constant assertions replaced with `assert_eq!` for clippy compliance

## [0.0.1] - 2026-04-02

### Added
- Initial release of the `mercurys` crate
- 11 domain modules: atmosphere, biosphere, geodata, geology, hydrology, lighting, physics, rendering, satellites, temporal, terrain
- Integration tests covering atmosphere, geology, hydrology, and physics subsystems
- Runnable examples: climate_sim, earthquake_sim, tidal_sim
- Binary in `src/main.rs` with continuous Mercury runtime tick loop
- sciforge dependency for physical, atomic, and astronomical constants

---

## What is solid

- Core physics modules implemented with research-grade formulae and cross-checked with unit tests
- `main.rs` integrates subsystems with explicit feedback loops
- No `todo!()` or `unimplemented!()` remain in public code
- All values genuinely consumed through computation

## Points to watch

- Numerical stability for long-run simulations should be monitored
- Edge-case guards (division by zero, NaN propagation) must stay enforced
- Additional test coverage for biosphere, geodata, lighting, satellites, temporal, and terrain modules is desirable

## Verdict

Functional Mercury simulation engine with research-grade physics. Visualization handled externally via rendering endpoints.

---

## Development notes

- Edition 2024, MIT license
- Dependencies use wildcard versions
- See `ComingSoon.md` for the detailed roadmap
