With this series all internal commands need to contain a protocol version, and any external command that has a version set has it checked. This allows bumping the versions and handling nodes with different protocol levels a lot easier in the future.