alas - for 1.0 we stayed very focused on our initial use-case (a useful tool for hikers etc) except for the addition of a python API. So for now, if you want to use meshtastic programmatically you are probably better off using the python API (and treating the devices as ‘black boxes’).
Internally in the device C++ code the plumbing is there so you can send/receive data packets. That’s what the rest of the app uses. But ideally it needs some cleanup. That cleanup will happen soonish (next couple of months?) as part of the first tasks for the 1.1 release. More info in this thread: Extension of the functionality of devices Meshtastic