public CommandArgProto(string name, int index, UsageElement usage = null, string value = null, ArgValidator validator = null, CommandArgOptions options = CommandArgOptions.None)
     : base(index, name)
 {
     Usage      = Usage.CreateUsage(name, usage);
     _validator = validator ?? new ArgValidator();
     Options    = options | CommandArgOptions.IsPositional;
 }
 public CommandArgProto(string name, char mnemonic = '\0', UsageElement usage = null, string value = null, ArgValidator validator = null, CommandArgOptions options = CommandArgOptions.None)
     : base(name, mnemonic, value)
 {
     Usage      = Usage.CreateUsage(name, mnemonic, usage);
     _validator = validator ?? new ArgValidator();
     Options    = options & ~CommandArgOptions.IsPositional;
 }