syntax = "proto3"; package mmo.peer; message PeerInput { float x = 1; float y = 2; float z = 3; } message PeerHello { uint32 peer_id = 1; } message PeerAction { uint32 frame_idx = 1; PeerInput input = 2; } // All unacked history frames for one sender, plus a piggybacked ack. // Sent as a single datagram / framed TCP message per tick. message PeerActionBatch { uint32 peer_id = 1; uint32 ack_frame = 2; // sender's committed_frame repeated PeerAction actions = 3; } message PeerBye { uint32 peer_id = 1; }