docs: @Override
      public <T extends Event<?>> T add(T event, Channel... channels) {
          ((EventBase<?>) event).generatedBy(newEventsParent.get());
          ((EventBase<?>) event).processedBy(this);
          synchronized (queue) {
              queue.add(event, channels);
          }
          if (isRunning) {
              return event;
          }
          isRunning = true;
          GeneratorRegistry.instance().add(this);
          run();
          isRunning = false;
          return event;
      }