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;
}
