code: func verifyResponseFieldNames(expectedFields []string, responseBody []byte, responseName string) error {
  	var responseMap map[string]json.RawMessage
  	if err := json.Unmarshal(responseBody, &responseMap); err != nil {
  		fmt.Errorf("unable to unmarshal %s response to response map", responseName)
  	}
  
  	for _, field := range expectedFields {
  		if _, ok := responseMap[field]; !ok {
  			return fmt.Errorf("missing field '%s' in %s response", field, responseName)
  		}
  	}
  
  	return nil
  }
docs: // verify all the field names in the response are what we expected. this is needed because a direct unmarshal
  // is not case sensitive so can't ensure that the response is in valid format