I'm sure this hasn't been addressed yet, so let me ask you to look into the future again.
item_details_recipe;
This table has 2 fields; the PK and item_id. What is the purpose behind this table? Right now it appears that item_id merely points back to the items record for the recipe book itself (in `items`) and nothing else. Is that all it's supposed to do? If so, is it really necessary? Couldn't we just use the table `items` of type "Recipe" to pull these up? I don't so much mind this extra table - just seems unnecessary.
item_details_recipe_items;
This table is supposed to contain the list of all the items this recipe book can create, right? If so, would it be better to link the resultant item to the items.name field and do a join, rather than clutter the table with redundant item "name" text? I assume there is no situation that crafting an item from a recipe book will NOT result in a physical Item being created - and thus there will always be an items.name record to point to.
Reason I am asking now is that i am building the Items / Recipe editor, and would like to know if this structure is even finished yet, or should I wait til we get to Recipes? Either way, it's another thing for your list