<type>[optional scope][!]: <imperative summary>

; Use a summary of at least 10 characters. Explain the observable change
; and why it is needed. The body is required
; and must contain at least 100 characters of useful prose. Keep
; related sentences together in coherent paragraphs and wrap prose
; at 72 columns.
;
; Add important boundaries, non-goals, compatibility, rollout, or
; useful investigation paths when they materially help a future reader.
; Keep the detail proportional to the change.
;
; End with a Git trailer that records exact validation or a specific
; reason it was not run. Examples:
;
; Validation: `uv run make check` passed.
; Validation: not run because this changes documentation only.
;
; Use `BREAKING CHANGE: <impact and migration>` as an additional
; trailer when the history needs more detail than the `!` marker. Put
; issue trailers such as `Closes #60` last. Do not assemble prose with
; repeated `-m` flags.
