pub fn validate_craft(
recipe_id: &str,
player_skill: u32,
player_inventory: &HashMap<String, u32>,
player_tools: &[String],
bench_type: &WorkbenchType,
recipe_book: &RecipeBook,
) -> Result<(), CraftingError>Expand description
Validate whether a crafting attempt can begin given current game state.
Returns Ok(()) if all preconditions are met, or a CraftingError explaining
the first failure.