What is really missing is "big picture" documentation. Essentially you
are using meson as the build system, and pyproject.toml as a minimal
interface between the real build system (meson) and the python
packaging infrastructure. Otherwise, pip wouldn't know what to do.
There are some decent docs for using meson to build cython extensions,
but in the long run (i.e. after you forget all the time you wasted
learning a new build system), what is nice is that you're just writing
meson. Using it for a cython project is not much different than using
it for any other project.
There are also some decent docs for pyproject.toml files, which will
end up containing some metadata and not much else. Here you can copy &
paste. Any of the independent cython projects under the SageMath
umbrella should serve well as a template.
It's a headache in the short term, but there are many unfixable
problems with the old distutils approach that disappear when meson is
used: no way to detect C libraries and their compiler/linker flags, no
support for other languages, bad support for parallel builds, etc.
You can start writing a meson.build file without messing anything else
up, and attempt to build the project by running the meson setup /
compile / install commands manually. When that works, replacing
setup.py by a pyproject.toml that punts to meson is a trivial step.