type MessageV1 … type MessageV2 … // MessageV1Of converts a v2 message to a v1 message. // It returns nil if m is nil. func MessageV1Of(m MessageV2) MessageV1 { … } // MessageV2Of converts a v1 message to a v2 message. // It returns nil if m is nil. func MessageV2Of(m MessageV1) MessageV2 { … }