this is also how the Element X rewrite of the Element Matrix client works - although with Rust rather than Zig. We had to add async support to uniffi for a good experience from Swift (and Kotlin) tho! https://youtu.be/eUPJ9zFV5IE?t=1280 has some deets.