src/normalize-model-and-view.js
function pluckModels (cell, modelPath, models, cellDefinitions) {
  cell = extendCell(cell, cellDefinitions)
  if (_.isObject(cell.model)) {
    const addedPath = appendModelPath(modelPath.modelPath(), cell.id, cell.internal)
    models[addedPath] = cell.model
  } else if (cell.children) { // recurse on objects
    cell.children.forEach((cell) => {
      const newPath = typeof cell.model === 'string' ? modelPath.concat(cell.model) : modelPath
      pluckModels(cell, newPath, models, cellDefinitions)
    })
  } else if (cell.arrayOptions) { // recurse on arrays
    pluckFromArrayOptions(cell, modelPath, models, cellDefinitions)
  }
}
function pluckModels (cell, modelPath, models, cellDefinitions) {
  cell = extendCell(cell, cellDefinitions)
  if (_.isObject(cell.model)) {
    const addedPath = appendModelPath(modelPath.modelPath(), cell.id, cell.internal)
    models[addedPath] = cell.model
  } else if (cell.children) { // recurse on objects
    cell.children.forEach((cell) => {
      const newPath = typeof cell.model === 'string' ? modelPath.concat(cell.model) : modelPath
      pluckModels(cell, newPath, models, cellDefinitions)
    })
  } else if (cell.arrayOptions) { // recurse on arrays
    pluckFromArrayOptions(cell, modelPath, models, cellDefinitions)
  }
}
function pluckModels ( cell , modelPath , models , cellDefinitions ) { cell = extendCell ( cell , cellDefinitions ) if ( _ . isObject ( cell . model ) ) { const addedPath = appendModelPath ( modelPath . modelPath ( ) , cell . id , cell . internal ) models [ addedPath ] = cell . model } else if ( cell . children ) { // recurse on objects cell . children . forEach ( ( cell ) => { const newPath = typeof cell . model === 'string' ? modelPath . concat ( cell . model ) : modelPath pluckModels ( cell , newPath , models , cellDefinitions ) } ) } else if ( cell . arrayOptions ) { // recurse on arrays pluckFromArrayOptions ( cell , modelPath , models , cellDefinitions ) } }
Collects schemas from a cell to add to the model in a hash. Keys in the hash are
the schema's path withinthe bunsen model.

@param {BunsenCell} cell BunsenCell with array options
@param {BunsenModelPath} modelPath Current path within the model
@param {Object} models Hash containing schemas to add
@param {Object} cellDefinitions Hash containing cell definitions
Collects schemas from a cell to add to the model in a hash . Keys in the hash are the schema s path withinthe bunsen model .