docs: def fail(self, reason, obj, pointer=None):
          """
          Called when validation fails.
          """
          pointer = pointer_join(pointer)
          err = ValidationError(reason, obj, pointer)
          if self.fail_fast:
              raise err
          else:
              self.errors.append(err)
          return err