The current command c struct does have a "counter" field (the 2nd field) that is a unique identifier for each command. This is ideal for identifying the command when reporting command success or failure.
The minimum needed information is "command rejected" or "command done".
Other items that would be very helpful:
- A "command started" acknowledgement for commands that will take a long time, such as moving a hexapod strut.
- An explanation of why a command was rejected, such as "the CSC cannot send commands" or "command not allowed in the current state" or "parameter out of range". It's a fairly small number so an enum would suffice, though a string allows you to be more informative, e.g. "90 out of range [0, 50]" instead of out_of_range.
- An estimate of duration in the "command started" acknowledgement.
It is probably possible to add this information to the Telemetry struct, but please consider making a new struct (if that will not mess up the EUI) because the information really is not very "telemetry-like" and it only needs to be output when a command is accepted, rejected or done.
I will be delighted to make any necessary changes to the CSC.