private string SelectFeatureInteractively(string name)
        {
            InteractiveFeature feature = LookupFeature(name);

            if (feature == null)
            {
                return(null);
            }

            do
            {
                Console.WriteLine(feature.InteractivePrompt);
                string entry = GetKey();
                Console.WriteLine();
                if (!int.TryParse(entry, out int index) || index < 1 || index > feature.Values.Length)
                {
                    if (entry.Length > 0 && entry[0] == 'Q')
                    {
                        return("Q");
                    }
                    else
                    {
                        Console.WriteLine("Invalid selection!\n");
                    }
                }
                else
                {
                    return(feature.Values[index - 1]);
                }
            } while (true);
        }
        private InteractiveFeature LookupFeature(string id)
        {
            InteractiveFeature result = null;

            if (Lookup != null)
            {
                result = Lookup[id];
            }
            return(result);
        }
        private IList <object> FeatureList(string[] select, string[] answers)
        {
            if ((select == null || select.Length == 0) ||
                (answers == null || answers.Length == 0) ||
                (answers.Length != select.Length))
            {
                return(null);
            }

            InteractiveFeature feature             = LookupFeature(select[0]);
            StringBuilder      contextFeaturesJson = new StringBuilder("[");

            contextFeaturesJson.Append($"{{ \"{feature.Name}\": \"{answers[0]}\" }}");
            for (int i = 1; i < select.Length; i++)
            {
                feature = LookupFeature(select[i]);
                contextFeaturesJson.Append($",{{ \"{feature.Name}\": \"{answers[i]}\" }}");
            }
            contextFeaturesJson.Append("]");
            return(JsonSerializer.Deserialize <List <object> >(contextFeaturesJson.ToString()));
        }