docs: def validate_request_content(request_content, request_model, request_component='body'):
      
      '''
          a method to validate the content fields of a flask request
          
      :param request_content: dictionary with content fields to validate 
      :param request_model: object with jsonmodel class properties
      :param request_component: string with name of component of request evaluated
      :return: dictionary with validation status details
      '''
  
  # import dependencies
      from jsonmodel.validators import jsonModel
      from jsonmodel.exceptions import InputValidationError
  
      title = 'validate_request_content'
  
  # validate inputs
      if not isinstance(request_content, dict):
          raise TypeError('%s(request_content={...}) must be a dictionary.' % title)
      elif not isinstance(request_model, jsonModel):
          raise TypeError('%s(request_model=<...>) must be a %s object.' % (title, jsonModel.__class__))
  
  # construct default status details
      status_details = {
          'code': 200,
          'error': ''
      }
  
  # validate request details
      try:
          request_model.validate(request_content)
      except InputValidationError as err:
          if err.error['input_criteria']['required_field'] and err.error['failed_test'] == 'required_field':
              required_field = err.error['input_path']
              if err.error['input_criteria']['value_datatype'] == 'map':
                  if isinstance(err.error['error_value'], list):
                      required_field = err.error['error_value'][0]
              error_message = 'request %s is missing required field %s' % (request_component, required_field)
          elif err.error['input_criteria']['required_field'] and err.error['failed_test'] == 'extra_fields':
              path_insert = ''
              path_prefix = ''
              if len(err.error['input_path']) > 1:
                  path_prefix = 'value for '
                  path_insert = ' path %s' % err.error['input_path']
              from labpack.parsing.grammar import join_words
              path_plural = ''
              if len(err.error['error_value']) > 1:
                  path_plural = 's'
              error_message = '%srequest %s%s may not contain field%s %s.' % (path_prefix, request_component, path_insert, path_plural, join_words(err.error['error_value'], operator='disjunction', quotes=True)) 
          else:
              failed_key = err.error['failed_test']
              error_value = ''
              if err.error['error_value']:
                  error_value = '%s ' % err.error['error_value']
              error_message = '%svalue for request %s field %s is invalid. %s must be %s' % (error_value, request_component, err.error['input_path'], err.error['failed_test'], err.error['input_criteria'][failed_key])
          status_details['error'] = error_message
          status_details['code'] = 400
      except:
          status_details['error'] = 'request %s fields are invalid.' % request_component
          status_details['error'] = 400
  
      return status_details