## What this PR does

<!-- Brief description of the change -->

## Why

<!-- What problem does this solve? Link to issue if applicable -->

## How to test

<!-- Steps to verify the change works -->

## Checklist

- [ ] Tests pass (`python -m pytest tests/ -v`)
- [ ] Linter passes (`ruff check src/ tests/`)
- [ ] New tests added for new functionality
- [ ] Documentation updated if needed
