/**
  * Registers a responder
  *
  * @param string $actionClass The full action class name
  * @param string $serviceId   The responder service ID
  *
  * @return void
  *
  * @throws LogicException When the action class is not valid
  */
 public function registerResponder($actionClass, $serviceId)
 {
     if (!Test::isSubclassOf($actionClass, Action::class)) {
         $message = sprintf('Invalid action class: %s', $actionClass);
         throw new LogicException($message);
     }
     $type = Type::create($actionClass)->toString();
     $this->responders[$type] = (string) $serviceId;
 }