public void Custom_Test() { var first = new Argument(name: "first", parse: ctx => { ctx.OnlyTake(0); return null; }) { Arity = ArgumentArity.ZeroOrOne }; var second = new Argument(name: "second", parse: ctx => { ctx.OnlyTake(0); return null; }) { Arity = ArgumentArity.ZeroOrMore }; var third = new Argument(name: "third") { Arity = ArgumentArity.ZeroOrMore }; var command = new RootCommand { first, second, third }; var result = command.Parse("1"); result.GetValueForArgument(first).Should().BeNull(); result.GetValueForArgument(second).Should().BeEmpty(); result.GetValueForArgument(third).Should().BeEquivalentSequenceTo("1"); }