Hello, Pulsar community: now when `BatchMessageIdImpl` and `MessageIdImpl` with the same `ledgerId` and `EntryId`, one of it compare with the other, the `BatchMessageIdImpl` will always be greater than MessageIdImpl. see : https://github.com/apache/pulsar/blob/master/pulsar-client/src/main/java/org/apache/pulsar/client/impl/BatchMessageIdImpl.java#L71-L74
https://github.com/apache/pulsar/blob/master/pulsar-client/src/main/java/org/apache/pulsar/client/impl/MessageIdImpl.java#L219-L228 but when we use it, we may think `MessageIdImpl` is bigger than `BatchMessageIdImpl` with the same `ledgerId` and `EntryId`. It causes a lot of bugs. I think we need to change this `compareTo()` method, although it is a public API, I think it is not a breaking change, it is a bug that needs to be fixed. eg. : https://github.com/apache/pulsar/pull/18486, need to add the separate logic for compareTo(). Please leave your thoughts, thanks. Thanks, bo