public CmdLineOptionDefinitionBuilder Value(string name, Action<CmdLineOptionValueDefinitionBuilder> configure = null)
        {
            if (string.IsNullOrWhiteSpace(name))
                throw new ArgumentException();

            if (_definition.Values.Any(x => x.Name.Equals(name, StringComparison.CurrentCultureIgnoreCase)))
                throw new InvalidOperationException(_definition.Name);

            if (_definition.Values.Any(x => x.IsOptional || x.IsParams))
                throw new InvalidOperationException(_definition.Name);

            var valueDefinition = new CmdLineOptionValueDefinition(name);
            if (configure != null) configure(new CmdLineOptionValueDefinitionBuilder(valueDefinition));

            _definition.Add(valueDefinition);
            return this;
        }
 public void Add(CmdLineOptionValueDefinition valueDefinition)
 {
     _values.Add(valueDefinition);
 }