I would propose the following as a transitional addition to the configuration system.
-
Add a simple GUI based configuration utility or web frontend to the system (there are some modules that attempt to do this already so it would be minimal work to adapt it to the following second detail.
-
For the simple GUI enforce a configuration contract with modules that follows a defined schema using [tags] to define types of information blocks. For a module to be able to show up in the GUI developers will need to briefly update their github repository to add a contract.yaml etc file that defines the default settings for the module.
This merges into the main program a feature that other modules have attempted to create while transitioning the system to a true contract based configuration system that allows for much easier user settings changes. The onus is on the module developers to present the correct base configuration file from which the dynamic configuration file for magicmirror can then be crafted from.