Thanks!
There's a quit a few good libraries that do things half way (harfbuzz, sheenbidi, libreqm), but even so there's a ton of things to figure out for the final stretch.
Also, there are some really cool Rust projects on the topic (like https://github.com/pop-os/cosmic-text), but not the kind of dependency I'd like to drag in for a C project.