Restructure input validation
Some of the input validations are very similar. It might be useful to move them to a new function. That could be something named like "check_list". It would check if the variable is a list and iterates through it and checks if each item is of a certain type. That type could be a function argument.