code: function store (action) {
      if (!action || !isPlainObject(action)) {
        throw new Error('action parameter is required and must be a plain object')
      }
  
      if (!action.type || typeof action.type !== 'string') {
        throw new Error('type property of action is required and must be a string')
      }
  
      if (isEmitting) {
        throw new Error('modifiers may not emit actions')
      }
  
      isEmitting = true
      var oldState = extend(state)
      state = modifier(action, oldState)
      var newState = extend(state)
  
      emitter.emit(action.type, action, newState, oldState)
      isEmitting = false
    }
docs: Send an action to the store. Takes a single object parameter. Object must include a `type` property with a string value, and can contain any other properties.
  @name store
  @param {object} action
  @param {string} action.type
  @example
  store({
  type: 'example'
  exampleValue: 'anything'
  })