For now, we *require* everything. We _could_ modify the build system to exclude modules whose dependencies haven't been met. That would allow us to make some of the dependencies optional.