code: function flattenConfig(config) {
    const proxiedConfig = R.compose(
      // Rename root "server" key to "endpoint".
      // Necessary to prevent options values collision, as:
      // - root.server - stands for server url.
      // - options.server - stands for a server command (i.e. "npm start").
      // - options.endpoint - semantically the same as "root.server"
      // When merged, these values must not be overriden.
      R.dissoc('server'),
      R.over(
        R.lens(R.prop('server'), R.assoc('endpoint')),
        R.identity
      )
    )(config);
  
    const nestedOptions = R.prop('options', proxiedConfig);
    const rootOptions = R.omit(['server', 'options'], proxiedConfig);
  
    if (nestedOptions) {
      logger.warn('Deprecated usage of `options` in Dredd configuration.');
    }
  
    return R.mergeDeepLeft(nestedOptions || {}, rootOptions);
  }
docs: Flattens given configuration Object, removing nested "options" key. This makes it possible to use nested "options" key without introducing a breaking change to the library's public API. TODO https://github.com/apiaryio/dredd/issues/1344