Crafting-heavy games look simple until a player asks a practical question: “What do I need to build this machine, including every intermediate part?” At that point a recipe list becomes a dependency-graph problem. Scrap Mechanic is a useful case study because its parts, Craftbot recipes, upgrade chains, crops, and survival raids all affect planning.

Model recipes as directed edges

Each craftable output should point to its ingredient requirements, while every ingredient should have a stable item ID. A compact representation might look like this:

{

"outputId": "controller-level-3",