public static ISubscription Subscribe(this NatsClient nats, string subject, string queueGroup, Func <MsgOperation, Task> handler)
 => nats.Subscribe(subject, queueGroup, new TaskMessageSubscription(handler));
 public static ISubscription Subscribe(this NatsClient nats, string subject, Func <MsgOperation, ValueTask> handler)
 => nats.Subscribe(subject, new ValueTaskMessageSubscription(handler));
 public static ISubscription Subscribe(this NatsClient nats, string subject, string queueGroup, Action <MsgOperation> handler)
 => nats.Subscribe(subject, queueGroup, new SyncMessageSubscription(handler));
 public static ISubscription Subscribe(this NatsClient nats, string subject, IMessageSubscription handler)
 => nats.Subscribe(subject, default, handler);