docs: @Override
      public Schema resolve(AnnotatedType annotatedType, ModelConverterContext context, Iterator<ModelConverter> next)
      {
          JavaType classType = TypeFactory.defaultInstance().constructType(annotatedType.getType());
          Class<?> rawClass = classType.getRawClass();
          JavaType resolvedType = classType;
  
          if ((rawClass != null) &&!resolvedType.isPrimitive())
          {
              // log.debug("resolvedType in " + resolvedType);
              if (rawClass.isAssignableFrom(ServerResponse.class))
              {
                  resolvedType = classType.containedType(0);
              }
              else if (rawClass.isAssignableFrom(CompletableFuture.class))
              {
                  Class<?> futureCls = classType.containedType(0).getRawClass();
  
                  if (futureCls.isAssignableFrom(ServerResponse.class))
                  {
                      // log.debug("class is assignable from ServerResponse");
                      final JavaType futureType = TypeFactory.defaultInstance().constructType(classType.containedType(0));
  
                      resolvedType = futureType.containedType(0);
                  }
                  else
                  {
                      // log.debug("class is NOT assignable from ServerResponse");
                      resolvedType = classType.containedType(0);
                  }
              }
  
              if (resolvedType != null)
              {
                  if (resolvedType.getTypeName().contains("java.lang.Void"))
                  {
                      resolvedType = TypeFactory.defaultInstance().constructFromCanonical(Void.class.getName());
                  }
                  else if (resolvedType.getTypeName().contains("Optional"))
                  {
                      if (resolvedType.getTypeName().contains("java.nio.file.Path"))
                      {
                          resolvedType = TypeFactory.defaultInstance().constructParametricType(Optional.class, File.class);
                      }
  
                      if (resolvedType.getTypeName().contains("ByteBuffer"))
                      {
                          resolvedType = TypeFactory.defaultInstance().constructParametricType(Optional.class, File.class);
                      }
                  }
                  else
                  {
                      if (resolvedType.getTypeName().contains("java.nio.file.Path"))
                      {
                          resolvedType = TypeFactory.defaultInstance().constructFromCanonical(File.class.getName());
                      }
  
                      if (resolvedType.getTypeName().contains("ByteBuffer"))
                      {
                          resolvedType = TypeFactory.defaultInstance().constructFromCanonical(File.class.getName());
                      }
                  }
  
                  annotatedType.setType(resolvedType);
  
                  // log.debug("resolvedType out " + resolvedType);
              }
          }
  
          try {
  
              // log.info("Processing " + annotatedType + " " + classType + " " + annotatedType.getName());
              return super.resolve(annotatedType, context, next);
  
          } catch (Exception e) {
  
              log.error("Error processing " + annotatedType + " " + classType + " " + annotatedType.getName(), e);
  
              return null;
          }
      }