A new, more flexible and restrictive parser to improve the
usage and experience of Flameshot in the command line.
This parser is based on a parent-child node model and is very easy
to define relationships between arguments and options with
informative error checking. You can define lambdas to check the
received values for every option and custom error messages