43 lines
1.4 KiB
Plaintext
43 lines
1.4 KiB
Plaintext
include "auth/auth.fbs";
|
|
include "control/control.fbs";
|
|
include "stream/stream.fbs";
|
|
include "mem/mem.fbs";
|
|
|
|
namespace hmmmm;
|
|
|
|
// ── Client → Server ──────────────────────────────────────────────────────────
|
|
|
|
union ClientPayload {
|
|
hmmmm.auth.AuthRequest,
|
|
hmmmm.ctrl.CtrlClientMessage,
|
|
hmmmm.stream.StreamClientMessage,
|
|
hmmmm.mem.MemClientMessage,
|
|
}
|
|
|
|
// Every frame sent by the client is a ClientMessage.
|
|
// nonce: client-chosen identifier echoed in the server response.
|
|
// Use 0xFFFFFFFFFFFFFFFF for fire-and-forget messages (no reply expected).
|
|
table ClientMessage {
|
|
nonce: uint64;
|
|
payload: ClientPayload;
|
|
}
|
|
|
|
// ── Server → Client ──────────────────────────────────────────────────────────
|
|
|
|
union ServerPayload {
|
|
hmmmm.auth.AuthResponse,
|
|
hmmmm.ctrl.CtrlServerMessage,
|
|
hmmmm.stream.StreamServerMessage,
|
|
hmmmm.mem.MemServerMessage,
|
|
}
|
|
|
|
// Every frame sent by the server is a ServerMessage.
|
|
// nonce: echoes the triggering ClientMessage nonce.
|
|
// 0xFFFFFFFFFFFFFFFF for unsolicited notifications (state changes, stream pushes).
|
|
table ServerMessage {
|
|
nonce: uint64;
|
|
payload: ServerPayload;
|
|
}
|
|
|
|
root_type ClientMessage;
|