All modules will have access to a configuration object that will contain the information stored in the Buildfile . For a user to add a new module, it will be as simple as placing the file in the correct directory. Each module, or node in the tree, will have an unique identifier. The configuration file will contain a section for each node. The user can define variables at each level of the module tree.
All variables have a scope.
Their values are only defined at their level, and all levels below. Variables can be used as configuration options to be passed to any module. The gui will have a screen that will allow the user to examine and change all variables defined at a node. The file will be plain text. It will be separated into sections.