code: def _validate(self, validator, data, key, position=None, includes=None):
          
          errors = []
  
          if position:
              position = '%s.%s' % (position, key)
          else:
              position = key
  
          try:  # Pull value out of data. Data can be a map or a list/sequence
              data_item = util.get_value(data, key)
          except KeyError:  # Oops, that field didn't exist.
              if validator.is_optional:  # Optional? Who cares.
                  return errors
              # SHUT DOWN EVERTYHING
              errors.append('%s: Required field missing' % position)
              return errors
  
          return self._validate_item(validator, data_item, position, includes)
docs: Run through a schema and a data structure,
          validating along the way.
  
          Ignores fields that are in the data structure, but not in the schema.
  
          Returns an array of errors.