public IModGroup Convert(SelectType type)
        {
            switch (type)
            {
            case SelectType.Multi: return(this);

            case SelectType.Single:
                var multi = new SingleModGroup()
                {
                    Name        = Name,
                    Description = Description,
                    Priority    = Priority,
                };
                multi.OptionData.AddRange(PrioritizedOptions.Select(p => p.Mod));
                return(multi);

            default: throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }
        }
 public IEnumerator <ISubMod> GetEnumerator()
 => PrioritizedOptions.Select(o => o.Mod).GetEnumerator();
 public bool MoveOption(int optionIdxFrom, int optionIdxTo)
 => PrioritizedOptions.Move(optionIdxFrom, optionIdxTo);