Do you want modders to interface with your machines, or just add recipes (I assume your machines are some sort of furnace, modified to fit your mod's theme), or maybe use them in recipes to make upgraded versions? Using Optionals would be a good place to start for actually getting a possible instance of the item or block. For recipes, you could add a method that does it using reflection.
It really all depends on what you want modders to be able to do with your mod. My APIs generally don't provide the blocks and items for use, but they do usually provide ways to add custom behavior (MA allows mods to disable mashing, cloning, enchanting, and repairs; PR allows new special rewards, map types, teleport types, etc) and file listers.
I'd recommend starting with Optionals, though.