A possibility to defining an option as required is great idea, but this is in conflict with typical use of --help or --version. When I start a program only with --help I expect only a usage output, and version number for --version. In this case the required options should be ignored. When a start the program for "normal use" the required options should be checked. At the moment I get an error message fatal: missing required options: "--level" when I start example.sh -h.
Can you solve this problem?