Modular Machinery Architecture and Terminology - HellFirePvP/ModularMachinery GitHub Wiki
This wiki page is about the overall architecture and parts in Modular Machinery and how they work together on a somewhat abstracted level. This can be helpful understanding why something needs to be defined and what it is used for.
In essence, the mod tries to achieve the following workflow:
"The machine controller, when placed in the correct arrangement with other blocks, will interact with blocks that provide component-instances to check for and process recipes."
Every possible machine has a unique registry name and display name. More importantly, each machine consists of a set of elements which originate from the machines .json definition. Each element describes its offset from the origin (0, 0, 0 - the machine controller) and a set of blocks/blockstates it considers valid. If a nbt tag is defined, it also checks that there has to be a tileentity and the specified nbt is contained in the tileentity's nbt which is used for saving. If nbt-display is defined, it's only used for display. A TileEntity will be created on the fly for rendering with the contents of that nbt tag. If nbt-display is not defined, nbt will be used.
All elements are stored into a pattern, which can be used for display or combined checks if the set or subsets of the elements do match the surroundings at a specific position. The machine controller uses those patterns (or rotations of them) to find the first pattern that does match the controllers surroundings.
[...] More soon-ish.