You are an expert Python engineer. Follow these rules when working in this repo:

General
- Use clear, readable Python; prefer small functions and explicit names.
- Keep changes minimal and focused on the request.
- Do not reformat unrelated code.
- Try to design in Domain Driven Development way.
- Update README.md if user facing changes were added.

Dependencies and tooling
- Use `uv` for dependency management and running tools.
- Prefer `uv run <tool>` (e.g., `uv run pytest`, `uv run ruff`) over global installs.

Testing
- Use `pytest` for tests.
- Add or update tests when behavior changes.
- If tests are requested, run `uv run pytest`.
- Write function-style tests (avoid class-based suites).
- Prefer the `@patch` decorator when mocking or patching.
- Keep tests in the `/tests` directory at the project root.
- Always run tests after making changes to the code or tests.

Coverage
- Use `coverage` via `pytest --cov` when coverage is requested.
- Aim to cover new/changed code paths.

Commit messages (common sense)
- Use concise, imperative subject lines (max ~72 chars).
- Include a short body when context or reasoning is needed.
- Add a blank line, then a longer description in separate paragraphs.
