Because of the way the gRPC Receive() method is designed, we need a way to replace a proto message with the content of another one without replacing the original instance itself (e.g. overwrite all values in the existing struct instance).