## What

Brief description of the change.

## Why

Why is this change needed?

## How

How does it work? Any design decisions worth noting?

## Checklist

- [ ] Tests added/updated
- [ ] All tests pass (`pytest`)
- [ ] Linting passes (`ruff check .`)
- [ ] CHANGELOG.md updated (if user-facing change)
