Do you really think porting a second package is going to be more of a maintenance burden than splitting the implementation between two packages?

I guess I could add an MGConfGroup type to mlite though and extend that from the plugin.  The concept and implementation are just as applicable to C++ types and it'd be a good way to remove a lot of boiler plate from types like the silica theme object.