whole_func_string: function _canFlattenKey(key, requestContext) {
    //debug('_canFlattenKey?', key, requestContext);
  
    // assume that '*Array' and '*List' elements are arrays.
    if (/Array$/.test(key) || /List$/.test(key)) return false;
  
    // per-endpoint blacklist of known array keys.
    if (requestContext != null && requestContext.serviceName && requestContext.opType &&
        knownArrayKeysByApiEndpoint[requestContext.serviceName] != null &&
        knownArrayKeysByApiEndpoint[requestContext.serviceName][requestContext.opType] != null &&
        _.contains(knownArrayKeysByApiEndpoint[requestContext.serviceName][requestContext.opType], key)) {
      return false;
    }
  
    // otherwise assume it can be flattened if there's a single value.
    return true;
  }
func_code_string: function _canFlattenKey(key, requestContext) {
    //debug('_canFlattenKey?', key, requestContext);
  
    // assume that '*Array' and '*List' elements are arrays.
    if (/Array$/.test(key) || /List$/.test(key)) return false;
  
    // per-endpoint blacklist of known array keys.
    if (requestContext != null && requestContext.serviceName && requestContext.opType &&
        knownArrayKeysByApiEndpoint[requestContext.serviceName] != null &&
        knownArrayKeysByApiEndpoint[requestContext.serviceName][requestContext.opType] != null &&
        _.contains(knownArrayKeysByApiEndpoint[requestContext.serviceName][requestContext.opType], key)) {
      return false;
    }
  
    // otherwise assume it can be flattened if there's a single value.
    return true;
  }
func_documentation_string: /*
  helper to filter the keys that get flattened.