Data Structure for a crafting game

Hello guys, I want to design a game inspired by the likes of Factorio and Satisfactory.

I want to create my data structure where a recipe can be crafted that can later be used in other recipes too.

I have had a few different thoughts on the best way to go about this:

1 : create a structure and build a table off that. Then to be able to refer to that SAME Crafting Table from within the Crafting Table (recursive).

2 : create an enum with the resource name and then refer to that from the main recipes table. My concern with this approach would be that it would feel like the enum would feel like and uneeded diluted copy of the recipe table.

3 : something else is likely better than my initial 2 ideas, lol.

Another complication is that some recipes can be crafted in a simple workbench OR an automated machine, some could only be automated.

I would really appreciate some insight on this.

Kind regards, Mikey.