docs: public static ImmutableMap<ExecutableElement, AnnotationValue> getAnnotationValuesWithDefaults(
        AnnotationMirror annotation) {
      ImmutableMap.Builder<ExecutableElement, AnnotationValue> values = ImmutableMap.builder();
      Map<? extends ExecutableElement, ? extends AnnotationValue> declaredValues =
          annotation.getElementValues();
      for (ExecutableElement method :
          ElementFilter.methodsIn(annotation.getAnnotationType().asElement().getEnclosedElements())) {
        // Must iterate and put in this order, to ensure consistency in generated code.
        if (declaredValues.containsKey(method)) {
          values.put(method, declaredValues.get(method));
        } else if (method.getDefaultValue() != null) {
          values.put(method, method.getDefaultValue());
        } else {
          throw new IllegalStateException(
              "Unset annotation value without default should never happen: "
              + MoreElements.asType(method.getEnclosingElement()).getQualifiedName()
              + '.' + method.getSimpleName() + "()");
        }
      }
      return values.build();
    }