code: def validates_schema(
      fn=None,
      pass_many=False,
      pass_original=False,
      skip_on_field_errors=True,
  ):
      
      return set_hook(
          fn,
          (VALIDATES_SCHEMA, pass_many),
          pass_original=pass_original,
          skip_on_field_errors=skip_on_field_errors,
      )
docs: Register a schema-level validator.
  
      By default, receives a single object at a time, regardless of whether ``many=True``
      is passed to the `Schema`. If ``pass_many=True``, the raw data (which may be a collection)
      and the value for ``many`` is passed.
  
      If ``pass_original=True``, the original data (before unmarshalling) will be passed as
      an additional argument to the method.
  
      If ``skip_on_field_errors=True``, this validation method will be skipped whenever
      validation errors have been detected when validating fields.
  
      .. versionchanged:: 3.0.0b1
          ``skip_on_field_errors`` defaults to `True`.