*This is the merged requirements from the respective CLI's of 
ZoneCheck and DNSCheck.*

**Usability:**
- [1.1] The output from the CLI MUST provide timestamps for each log line, 
with an option to remove or add the timestamps in the output.
-  [1.2] The output from the CLI MUST be able to provide information about
 what test level and test case generated a certain log entry with an 
 option to remove or add the information in the output.
- [1.3] The CLI MUST be able to report the version used to run the test. 
 Optional to report any version of each individual test case.
- [1.4] The CLI MUST be able to stop testing and return at a command line 
 configurable error level (not only CRITICAL)
- [1.5] The CLI MUST be able to run a test over IPv4 or IPv6-only with a 
provided flag (read: disable protocol at runtime).

**Input:**
- [2.1] The CLI MUST be able to output a help text, either explicitly or
 if user input does not validate.
- [2.2] The CLI SHOULD have a filter parameter to be able to hide log 
 messages below a certain error level.
- [2.3] The CLI MUST be able to run with a user-provided configuration 
(what to test). A default SHOULD be used if none is provided.
- [2.4] The CLI MUST be able to run with a user-provided policy 
(error levels). A default SHOULD be used if none is provided.
- [2.5] The CLI MUST be able to run with a user-provided locale (language).
A default SHOULD be used if none is provided.
- [2.6] The user MUST be able to specify name servers and corresponding 
IP-addresses as input for undelegated test purposes.
- [2.8] The user MUST be able to specify DS-data as input to be able to 
test DNSSEC fully even for undelegated domains.
- [2.9] The user MUST specify no more than one domain to test.
- [2.10] The CLI MUST be able to simply report its version and exit with
a provided flag.
- [2.11] The CLI MUST be able to test all available test cases within one
group, it MAY also work per unique test case (--test=zone or --test=zone03). 

**Output:**
- [3.1] The CLI MUST be able to provide an output log that is machine 
parseable and this MAY be disabled or enabled with a provided parameter.
- [3.2] The CLI MUST be able to provide output that is human readable and
 this SHOULD be the default mode although the default MAY be configurable.
- [3.3] The output from the CLI MUST have several levels of verbosity for
 DNS debugging purposes, for example additional messages and module 
 version reports at a low level up to raw DNS packets and dependency
 modules' versions at higher levels.
- [3.4] The CLI MUST have a flag to list all available tests and a brief
 text on what these tests do. The CLI MAY also have more detailed
 information about each test reachable elsewhere from the CLI.

**Optional (or for future uses):**
- [4.1] Boost policy error level WARNING to ERROR with provided flag.
- [4.2] Possible to activate tool debugging code.
- [4.3] Possibility for the CLI to limit output (filter) by type of errors
  or ignore specific hosts.
