## Summary

<!-- What does this PR do? Why? -->

## Type of Change

- [ ] Bug fix (`fix:`)
- [ ] New feature (`feat:`)
- [ ] Breaking change (`feat!:`)
- [ ] Documentation (`docs:`)
- [ ] Refactor / chore

## Checklist

- [ ] `just ci` passes (lint + type check + tests)
- [ ] New/changed behaviour is covered by tests
- [ ] Docstrings updated where relevant
- [ ] `CLAUDE.md` / `README.md` updated if architecture changed

## Related Issues

<!-- Closes #... -->
