This would clean up a lot of the validation if we didn't have separate -i taxaList and -e taxaList that we have to manually enforce the mutual exclusion for, and also the code for downloading the exclude list and include list separately.
Suggestion:
-t taxaList
-i|e without arguments.
Then validation consists of making sure that if -t is provided, -i|e must also be provided.