@UnstableApi
    public GrpcServiceBuilder addService(
            BindableService bindableService,
            Iterable<? extends Function<? super HttpService, ? extends HttpService>> decorators) {
        requireNonNull(bindableService, "bindableService");
        requireNonNull(decorators, "decorators");

        final boolean hasDecorators = !Iterables.isEmpty(decorators);
        if (bindableService instanceof ProtoReflectionService ||
            bindableService instanceof ProtoReflectionServiceV1) {
            return addProtoReflectionService(hasDecorators, bindableService, null, null);
        }

        if (bindableService instanceof GrpcHealthCheckService) {
            if (hasDecorators) {
                throw new IllegalArgumentException(
                        "GrpcHealthCheckService should not be used with decorators.");
            }
            if (enableHealthCheckService) {
                throw new IllegalStateException("default gRPC health check service is enabled already.");
            }
            grpcHealthCheckService = (GrpcHealthCheckService) bindableService;
            return this;
        }

        registryBuilder.addService(bindableService.bindService(), bindableService.getClass(),
                                   ImmutableList.copyOf(decorators));
        return this;
    }
Decorates a gRPC {@link BindableService} with the given decorators, in the order of iteration.
For more details on decorator behavior, please refer to the following document.

@see <a href="https://armeria.dev/docs/server-grpc#decorating-a-grpcservice">Decorating a GrpcService</a>
grpc/src/main/java/com/linecorp/armeria/server/grpc/GrpcServiceBuilder.java