/// <inheritdoc />
        public bool Remove(T setting)
        {
            ThrowIfReadOnly();
            if (!NameMap.TryGetValue(setting.MainName, out var guid))
            {
                return(false);
            }

            if (setting.IsHelp)
            {
                HasHelpCommand = false;
            }

            foreach (var name in setting.Names)
            {
                NameMap.Remove(name);
            }
            return(SettingMap.Remove(guid));
        }