module dependencies
Once we support declarative configuration, we need to figure out what modules to load, when, and in which order. Some considerations:
- unlike lua config, the declarative one has no order of execution (and loading modules)
- modules may depend on other modules, either as a hard or soft requirement
- modules may want to detect whether their requirements are met
- modules should be loaded automatically depending on the chosen configuration
- there should be no conflict between the desired configuration and the running configuration (i.e. when a module tries to auto-load another module which the user explicitly disabled)