namespace mmo.beacon; enum Verb:byte { Join = 0, Leave, List } union Request { JoinRequest, LeaveRequest, ListRequest } table Call { request:Request; } table JoinRequest { uid:string (required); contact:string (required); clock:long; } table LeaveRequest { uid:string (required); } table ListRequest {} union Response { JoinResponse, LeaveResponse, ListResponse } table CallResp { response:Response; } table JoinResponse {} table LeaveResponse {} table ListResponse { entities:[Entity]; } table Entity { uid:string (required); // vector clock representing the state of this thing clock:long; }