## Summary

<!-- What does this PR change and why? -->

## Type of change

<!-- Conventional-commit type; the PR title should match (feat:, fix:, docs:, ...). -->

- [ ] feat — new feature
- [ ] fix — bug fix
- [ ] docs — documentation only
- [ ] refactor / perf / test / chore

## Checklist

- [ ] Tests added or updated (`uv run pytest`)
- [ ] `uv run ruff check .` and `uv run ruff format --check .` pass
- [ ] `uv run mypy dynantic` passes
- [ ] Docs updated (`docs/`) if public behavior changed
- [ ] PR title follows [Conventional Commits](https://www.conventionalcommits.org/)
