docopt is even more terse than 1 line per argument/option/command.
Take an example:
Usage: quick_example.py tcp <host> <port> [--timeout=<seconds>]
quick_example.py serial <port> [--baud=9600] [--timeout=<seconds>]
quick_example.py -h | --help | --version
2 commands, 3 arguments, 5 options: in only 3 lines of DSL.Take a look at more examples: https://github.com/docopt/docopt/tree/master/examples