use `util::comparable` for message_id_t