docs: def _do_load(self, data, many=None, **kwargs):
          """Override `marshmallow.Schema._do_load` for custom JSON API handling.
  
          Specifically, we do this to format errors as JSON API Error objects,
          and to support loading of included data.
          """
          many = self.many if many is None else bool(many)
  
          # Store this on the instance so we have access to the included data
          # when processing relationships (``included`` is outside of the
          # ``data``).
          self.included_data = data.get('included', {})
          self.document_meta = data.get('meta', {})
  
          try:
              result = super(Schema, self)._do_load(data, many, **kwargs)
          except ValidationError as err:  # strict mode
              error_messages = err.messages
              if '_schema' in error_messages:
                  error_messages = error_messages['_schema']
              formatted_messages = self.format_errors(error_messages, many=many)
              err.messages = formatted_messages
              raise err
          else:
              # On marshmallow 2, _do_load returns a tuple (load_data, errors)
              if _MARSHMALLOW_VERSION_INFO[0] < 3:
                  data, error_messages = result
                  if '_schema' in error_messages:
                      error_messages = error_messages['_schema']
                  formatted_messages = self.format_errors(error_messages, many=many)
                  return data, formatted_messages
          return result