In the WFC algorithm, a module is a possibility for some Slot
public class Module
Inheritance System.Object 🡒 Module
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.
Every module must have a unique display name. This name is used for hashing and equality checks.
A module's weight controls how likely it is to be chosen randomly during a slot collapse. A module with a with a weight of zero will be never be randomly picked.