pub(crate) fn item_budget( data: &ResolvedGameData, item: &EquippedItem, ) -> Result<ItemBudget, EngineError>