Can you explain what enforce_type is supposed to do? I'm surprised it doesn't throw an error if the value is not of the expected type. Instead, it returns self.from_json(value).