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

        if (bindableService instanceof ProtoReflectionService ||
            bindableService instanceof ProtoReflectionServiceV1) {
            return addProtoReflectionService(!Iterables.isEmpty(decorators), bindableService, path,
                                             methodDescriptor);
        }

        registryBuilder.addService(path, bindableService.bindService(), methodDescriptor,
                                   bindableService.getClass(), ImmutableList.copyOf(decorators));
        return this;
    }
Decorates a {@linkplain MethodDescriptor method} of 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