/**
  * Returns data and options prepared to validate and marshall.
  *
  * @param array $data The data to prepare.
  * @param array $options The options passed to this marshaller.
  * @return array An array containing prepared data and options.
  */
 protected function _prepareDataAndOptions($data, $options)
 {
     $options += ['validate' => true];
     $data = new \ArrayObject($data);
     $options = new \ArrayObject($options);
     $this->type->dispatchEvent('Model.beforeMarshal', compact('data', 'options'));
     return [(array) $data, (array) $options];
 }