Shouldn't this follow the same rule of only allowing a mapping to set `self._meta`?  From that perspective it might make sense to make `meta` be a property with a setter method that does the validation.  The setter method would basically be the code below (lines 165-172), I think.  Then the original code lines `self.meta = meta` would apply and do the right thing.