Every module has a set of ModuleConstraint. At the start of the WFC algorithm, every module is possible in all slots.
The constraints for the module in each slot are all still plausible. As the Wave Function collapses, module possibilities are removed, and various constraints become
impossible to fulfill. When that happens, this module becomes invalid itself.
public List<ModuleConstraint> Constraints;