code: function chainTransform (obj, path = []) {
    return flatmap(Object.keys(obj), function (key) {
      if (key === 'required') {
        // starts array with `true` or `false` and makes the
        // deepest-nested expression first in the array
        return [path.concat(obj[key]).reverse()];
      } else {
        return chainTransform(obj[key], path.concat(key));
      }
    });
  }
docs: Recursively walks the nested object to form rule chains. rule chains move from most to least nested & start with a bool. bool === if chain is required or prohibited in the challenge.