Well, I have my refactored API running in the app and I am painting with my native port of all my geometry routines. The app just needs to be able to handle the asynchronous results correctly.
I have a very basic command setup that are just text strings, which get compiled into flatbuffers with the native plugin, then placed into nanomsg to be sent across threads, processes or machines. The commands gets processed, packaged into flatbuffer messages and sent back across the nanomsg framework for the managed part to un-package and convert into polygons. Non of the nanomsg stuff is exposed to the managed part and you don’t really need the flatbuffer library to unpackage the binary response. Just means that I can reuse the library in other applications with minimum amount of integration and setup.