## Summary

<!-- What does this PR do? Why is it needed? -->

## Changes

- 

## Testing

<!-- How was this tested? Include commands, test cases, or screenshots. -->

## Checklist

- [ ] Tests pass (`pytest`)
- [ ] Linting passes (`ruff check . && ruff format --check .`)
- [ ] Type hints added for new/modified functions
- [ ] Documentation updated (if needed)
- [ ] CHANGELOG updated (if user-facing change)
