Name of the argument, must be non-empty.
Whether the argument is required.
Whether the argument accepts multiple values.
Description of the argument.
Default value, or null.
AssertionError if name is empty, or if argument is required and default value is not null.
Constructs an argument.