Registers a key-value option.
Options consume the next argument (or the =-separated value) as their
value. In merged short form the last character is treated as the option
and everything after it (or the next argument) is the value:
-vp 8080 sets -v (flag) and -p 8080 (option).
If a default is provided the option is automatically optional.
To make an option optional with no default, pass nil for default
and false for required.
settings.multiple = true allows an option to be repeated and collects
its values into an array. settings.arity controls how many values each
occurrence consumes.
The --long name (without dashes).
Optional single-character -s alias.
type: "string" | "number"
"string" or "number" - numeric values are coerced automatically.
Default value when omitted. Implies optional when non-nil.
Whether the option must be provided. Defaults to true unless a default is given.
Human-readable text shown in help output.
Optional parser settings such as multiple and arity.