docs: public boolean containsAnnotation(BackedAnnotatedType<?> annotatedType, Class<? extends Annotation> requiredAnnotation) {
          // class level annotations
          if (containsAnnotation(annotatedType.getAnnotations(), requiredAnnotation, true)) {
              return true;
          }
          for (Class<?> clazz = annotatedType.getJavaClass(); clazz != null && clazz != Object.class; clazz = clazz.getSuperclass()) {
              // fields
              for (Field field : clazz.getDeclaredFields()) {
                  if (containsAnnotations(cache.getAnnotations(field), requiredAnnotation)) {
                      return true;
                  }
              }
              // constructors
              for (Constructor<?> constructor : clazz.getDeclaredConstructors()) {
                  if (containsAnnotations(cache.getAnnotations(constructor), requiredAnnotation)) {
                      return true;
                  }
                  for (Annotation[] parameterAnnotations : constructor.getParameterAnnotations()) {
                      if (containsAnnotations(parameterAnnotations, requiredAnnotation)) {
                          return true;
                      }
                  }
              }
              // methods
              for (Method method : clazz.getDeclaredMethods()) {
                  if (containsAnnotations(cache.getAnnotations(method), requiredAnnotation)) {
                      return true;
                  }
                  for (Annotation[] parameterAnnotations : method.getParameterAnnotations()) {
                      if (containsAnnotations(parameterAnnotations, requiredAnnotation)) {
                          return true;
                      }
                  }
              }
          }
  
          // Also check default methods on interfaces
          for (Class<?> interfaceClazz : Reflections.getInterfaceClosure(annotatedType.getJavaClass())) {
              for (Method method : interfaceClazz.getDeclaredMethods()) {
                  if (Reflections.isDefault(method)) {
                      if (containsAnnotations(cache.getAnnotations(method), requiredAnnotation)) {
                          return true;
                      }
                      for (Annotation[] parameterAnnotations : method.getParameterAnnotations()) {
                          if (containsAnnotations(parameterAnnotations, requiredAnnotation)) {
                              return true;
                          }
                      }
                  }
              }
          }
          return false;
      }