syntax = "proto3"; package meowlib; option go_package = "forge.redroom.link/yves/meowlib"; message PackedServerMessage { string From = 1; bytes Payload = 2; string Signature = 3; } message PackedUserMessage { string From = 1; string Destination=2; bytes Payload=3; bytes Signature=4; } message ServerMessage { string Type = 1; string ServerPubKey = 2 ; bytes Payload = 3 ; uint64 ServerReceived = 4 ; string ServerUuid = 5 ; message ConversationRequest { string ccid = 1; string LastUuidOK = 2; bool PublishOnline = 3; } message ConversationResponse { repeated string MessageUuids = 1; string SourceIpAddress = 2; } repeated ConversationRequest PollRequest = 7; map PollResponse = 8; message PostedMessage{ string ccid= 1; repeated PackedUserMessage Messages = 2; } repeated PostedMessage Messages = 9; string NextServerKey = 10; string Url = 11; } message Server { string Name = 1; string Description=2; string PublicKey = 3; string Url = 4; int32 ConfidenceLevel = 5; } message MinimalContact { string name=1; string publicKey=2; repeated Server TrustedServers = 3; } message UserMessage { string Destination = 1; string From = 2; string Type = 3; bytes Data = 4; message ConversationStatus { string LocalUuid = 1; uint64 LocalSequence = 2 ; uint64 Sent = 3 ; uint64 Received = 4; uint64 Processed = 5; string NextCcid = 6; bool NextCcidAck = 7; // false when proposing a new id, true for accepting it string NextCcpkey = 8; bool NextKeyCcpkeyAck = 9; // false when proposing a new key, true for accpeting it } ConversationStatus Status = 5; MinimalContact contact = 6; message Group{ string name=1; repeated MinimalContact members = 2; } Group group = 7; }