I am happy that you like my work, Yorik
That is a good idea, I will certainly do that! The functional modules that are currently available (reader and writer) as well as the classes comprising the data model should not be used directly. I intend to write a separate interface/module that handles all modifications to the data model and will be available in the nonGUI mode of the plugin. This interfacing module should then also, to some extent, check the data that shall be added, modified or deleted to/in/from the data model. For this I will create a tutorial like doc to get you started quickly.
For the stuff that is currently inside the src/bcf/ directory I would rather like to write a documentation that gives a clear understanding of the structure and the probably not so obvious stuff I did (like adding member functions to an object to let it seem like it is fully implementing a certain interface). In that sense this doc will become more like a protocol or wiki page rather than a tutorial.
I have a question regarding the loading of a plugin into FreeCAD: What happens if the plugin uses some python module that had to be installed via pip? Is there a possibility to install it during loading time or does it have to be added to the list of dependencies of the plugin? Specifically I am talking about
dateutil, which I use for parsing ISO 8601 formatted datetime strings.