code: def research(self, upgrade, *args, **kwargs):
          
          return self(self._game_data.upgrades[upgrade.value].research_ability.id, *args, **kwargs)
docs: Requires UpgradeId to be passed instead of AbilityId