cmdref only represents the stockpile metadata about a command. To keep the timestamps distinct, its :producer_timestamp field is actually named :producer-ts, so this was always nil. It is also optional, so we need to pull the producer_timestamp out of the command body where it is not optional. Except for the deactivate node command, so we also need to provide a fallback.
Reviewing this PR with whitespace-only changes hidden is much easier.
cmdref only represents the stockpile metadata about a command. To keep the timestamps distinct, its :producer_timestamp field is actually named :producer-ts, so this was always nil. It is also optional, so we need to pull the producer_timestamp out of the command body where it is not optional. Except for the deactivate node command, so we also need to provide a fallback.
Reviewing this PR with whitespace-only changes hidden is much easier.