public async Task <Monad <string> > GetShakespeareanDescription(string name)
        {
            var descriptions = await _pokemonRepo.GetDescriptionForSpecies(name, "en");

            if (descriptions.Exception is not null)
            {
                return(new Monad <string>(descriptions.Exception));
            }

            var pickRandom = await _featureManager.IsEnabledAsync(FeatureFlags.RandomDescription);

            var values = descriptions.Result !;

            _logger.LogInformation("Picking {selectionMode} description for {species}", pickRandom ? "random" : "first",
                                   name);
            var text = pickRandom switch
            {
                false => values.First(),
                true => values.ElementAt(_random.Next(0, values.Count))
            };
            var translation = await _translationService.GetShakespeareanTranslation(text);

            return(translation switch
            {
                { Result : not null } => new Monad <string>(translation.Result),