Crafting with recipe

I'm currently working on a system that allows the player to combine some items to make a new item. Currently I setup the recipe data in the custom data for the items, but as the recipes gets more complicated it would be great if we can have this as a separate field.

The way I had in mind is similar to how currently the container item is working, except with the Unlock with item ID field and the container contents swapped around. This way we can just call a function to consume the keys as ingredients for the recipe and rewarded the container contents.