/**
  * Sets message for a specific key, while preserving other keys
  *
  * @param SourceInterface $source
  * @param string          $key
  * @param string          $message
  * @param string          $level
  */
 protected function setMessage(SourceInterface $source, $key, $message, $level = LogLevel::ERROR)
 {
     $messages = $source->getMessages();
     $messages[$key][$level] = $message;
     $source->setMessages($messages);
 }