docs: private static Map<Method, EventType> findMethods(Class<?> type) {
      Map<Method, EventType> events = new HashMap<>();
      for (Method method : type.getDeclaredMethods()) {
        Event event = method.getAnnotation(Event.class);
        if (event != null) {
          String name = event.value().equals("") ? method.getName() : event.value();
          events.put(method, EventType.from(name));
        }
      }
      for (Class<?> iface : type.getInterfaces()) {
        events.putAll(findMethods(iface));
      }
      return events;
    }