code: function _validateChildren (path, model, validateModelType) {
    const results = [
      {
        errors: [],
        warnings: []
      }
    ]
  
    if (model.editable !== undefined && typeof model.editable !== 'boolean') {
      addErrorResult(results, `${path}/editable`, `Expected a boolean, found [${JSON.stringify(model.editable)}]`)
    }
  
    if (model.type === 'object') {
      _.forEach(model.properties, (subModel, key) => {
        const subPath = `${path}/properties/${key}`
        if (key.indexOf('.') !== -1) {
          addErrorResult(results, subPath, 'Property names cannot include "."')
        }
        // We have a circular dependency in these functions, so one needs to be defined before the others
        results.push(validateSubModel(subPath, subModel, validateModelType)) // eslint-disable-line no-use-before-define
      })
    } else if (model.type === 'array') {
      // We have a circular dependency in these functions, so one needs to be defined before the others
      results.push(_validateArray(path, model, validateModelType)) // eslint-disable-line no-use-before-define
    }
  
    if (model.modelType && !validateModelType(model.modelType)) {
      addErrorResult(results, `${path}/modelType`, 'Invalid modelType reference')
    }
  
    return aggregateResults(results)
  }
docs: Validate the children of the model object (if any exist)
  @param {String} path - the path to the field from the root of the model
  @param {BunsenModel} model - the model to validate
  @param {Function} validateModelType - function to validate model type
  @returns {BunsenValidationResult} the results of the model validation