Would it be possible/reasonable for MAVLink2 to support a UID in commands, which is returned as part of the specific COMMAND_ACK.
The problem I am trying to solve is to write a function that will send a command, and return when the ack is received or retry if no ack is received. The problem is that if a "spurious" ack of the same type is received your method can complete early or perhaps report an error that actually belongs to another usage of the command.
This spurious ack could just be from a previous call of the function that receives an ack from an earlier send, but after it has retried.
Upshot, it is currently impossible to write robust command-acknowledgement code without having complete control on what is sent on the channel, sending only one message at a time, and waiting for a potentially long time to confirm that you'll never get a response.
With a command ack identifier you could discard any ack that isn't intended for the last sent command.