Terminology

Command line argument
A string from the console window, given to the running program by the shell. A command line argument can be a command line option or a positional argument.
Command line option
A string, prepended by a dash '-' or a double dash '--' which represents the name of a program option.
Positional argument
Also referenced as value. A command line argument whose interpretation depends on its position on the command line.
Switch option
An option without any arguemnt. The value type of the switch is a boolean. True when it appears at least once on the command line.
Single argument option
Also referenced as argument option. An option whose value depends on the following argument on the command line. The value type is a string.
Multi argument option
An option which accepts more than one arguments. The value type is an array of strings.
Program scope option
A program scope option is an option available in the program and its subcommand.
Subcommand scope option
A subcommand scope option is only available in a given subcommand.

The program interface definition framework