Well, it is a schematics function so it makes sense to require a Model class for it to work (and have some dependence on its inner workings). On the other hand, it is the only hard requirement for the validation, so it could be made even more generic just accepting the fields dict.

Would you propose to drop the model parameter in favor of a fields dict? This would make it more difficult to validate Model instances tho.