code: function(model, attrConfig, value, computed, validators, depth) {
        var attr, indices;
  
        if (_.isArray(attrConfig)) {
          return _.reduce(attrConfig, function(memo, nestedAttrConfig) {
            memo.push(validateWithOpenArrayHelper(model, nestedAttrConfig, value, computed, validators, depth + 1));
            return memo;
          }, []);
        } else {
          indices = attrConfig.index;
          attr = attrConfig.attr;
          // if the value wasn't passed in and the attribute is nested, get the value
          if (_.isUndefined(value) && isNestedAttr(attr)) {
            value = model.get(attr);
          }
          return invokeValidator(validators, model, value, attr, computed, indices);
        }
      }
docs: Validates safely for a nested attribute. If the attr is an array, it will construct validation errors with the same array structure ['foo[0]', 'foo[1]'] -> [false, 'Error Example'] Also handles nested array structure