FWIW the reason why I never wrote a DSL for command line parsing is that `parseopt` combined with Nim's `case` construct that works on strings offers the 80% solution that is good enough for me.
A nice addition to `parseopt` would be though if it counted the arguments and options automatically.