This document describes a high-level overview of a proposed feature. More details are needed before implementation.
Naming: requirements, dependencies
The Module Requirements Framework would provide a centralized means to query modules' requirements for proper functioning. Currently, each module checks its own requirements before activation, which leads to a lot of code and string duplication, increasing the maintenance overhead and making the translators' jobs somewhat harder. It would also simplify and speed up module development.
It would work as a module callback function called by the core module during activation or installation that would supply a list of requirements that the module needs. The core module would then check each requirement and in case of failure provide a UI with an explanation to the user. If modules need a specific check not covered in the core module, they could do the check on their own, but use the framework to provide an UI consistent with the other checks.
Current modules would have to be reworked to make use of this framework.