code: protected <T> T childActorFor(final Class<T> protocol, final Definition definition) {
      if (definition.supervisor() != null) {
        return lifeCycle.environment.stage.actorFor(protocol, definition, this, definition.supervisor(), logger());
      } else {
        if (this instanceof Supervisor) {
          return lifeCycle.environment.stage.actorFor(protocol, definition, this, lifeCycle.lookUpProxy(Supervisor.class), logger());
        } else {
          return lifeCycle.environment.stage.actorFor(protocol, definition, this, null, logger());
        }
      }
    }
docs: Answers the {@code T} protocol for the child {@code Actor} to be created by this parent {@code  Actor}.
  @param <T> the protocol type
  @param protocol the {@code Class<T>} protocol of the child {@code Actor}
  @param definition the {@code Definition} of the child {@code Actor} to be created by this parent {@code Actor}
  @return T