code: public static <C, T extends Service<C>> ServiceBuilder<C, T> forService(
              Class<T> serviceType) {
  
          if (serviceType == null) {
              throw new NullPointerException("serviceType");
          }
  
          V1ServiceInterface v1annotation =
                  serviceType.getAnnotation(V1ServiceInterface.class);
  
          if (v1annotation != null) {
              return new ServiceBuilder<>(
                      new V1ServiceFactory<>(serviceType, v1annotation));
          }
  
          CustomServiceInterface customAnnotation =
                  serviceType.getAnnotation(CustomServiceInterface.class);
  
          if (customAnnotation != null) {
              return new ServiceBuilder<>(
                      new CustomServiceFactory<>(serviceType, customAnnotation));
          }
  
          throw new IllegalArgumentException(
                  "Service interfaces must be decorated with an "
                  + "@[Type]ServiceInterface annotation.");
      }
docs: Creates a new {@code ServiceBuilder} for the given service interface
  type.
  
  @param serviceType the service interface type
  @return the newly created builder