<!--
Before submitting a pull request, please ensure that:

* These changes introduce no known API breaks (changing the public facing
  functions return types, function parameters, renaming functions, etc.).

* The changes are tested.

* Your changes are written from scratch using only this repository.
  If your changes are derived from any other project, you *must* mention it
  here, so we can determine whether the license is compatible and what else
  needs to be done.
-->
