machine_definition entry describes a machine type entirely from the panel. Placing its spawnItem creates a live instance that ticks autonomously, renders its hologram, persists across restarts and opens its menu on right-click.
Core
Slots
Recipes & Fuel
Recipes and fuels use material name strings (e.g.IRON_INGOT), resolved at runtime.
recipes — list of MachineRecipeSpec:
fuelTypes — list of MachineFuelSpec: material, burnTime (ticks), fuelValue (units).
Energy
Consumers must be linked to the grid before they draw. The pool is shared per world in the public build; energy physically lives in the ENERGY_CELL machines.
Tiers & Upgrades
allowedUpgrades — which MachineUpgradeTypes this machine accepts (SPEED, YIELD, ENERGY_EFFICIENCY, FORTUNE, RANGE, FILTER). Empty = refuses upgrades.
upgradeSpecs — list of MachineUpgradeSpec: material, type, magnitude (SPEED/YIELD multiply; FORTUNE is a 0–1 chance; RANGE adds blocks; FILTER adds slots).
tiers — list of MachineTierSpec, ascending; the highest unlocked wins and stacks multiplicatively with modules: