I used `**constraints` in the subclasses so that it's clear what goes in the dictionary. And I want to attach a common docstring to all models which support constraints explaining the details.

But you make a very good point about unrecognised constraints, I'll make a check.