Contributing ============ We welcome patches that improve the physics fidelity, performance, or ergonomics of the LW Integrator. Please keep the following ground rules in mind: * **Stay regression safe.** All changes that touch physics must keep the core and legacy solvers in agreement. Update the validation scripts and add tests if necessary. * **Document as you go.** Extend the relevant page under ``docs/source/`` when you add or change behaviour. The documentation is built as part of CI and warnings fail the build. * **Prefer type hints and small helpers.** The modern ``core/`` modules are a transcription of the legacy code; helper functions exist to keep the flow readable without altering the math. * **Use the project tooling.** Formatting, linting, and tests are orchestrated via ``pre-commit`` hooks and ``pytest``. Run ``pre-commit install`` once and ``pre-commit run --all-files`` before sending a PR. Process ------- 1. Fork and branch from ``main``. 2. Make changes with accompanying tests and documentation. 3. Run the validation scripts relevant to your change. 4. Submit a pull request summarising the physics context and validation output. Reach out via the issue tracker if you plan a large refactor so we can align on scope before you begin.