struct WordId {
	uint64 ClientId;
	uint64 Counter;
}

struct Version {
	uint64 Counter;
	uint64 ClientId;
}

struct Word {
	WordId WordId;
	Version Version;
	string Letters;
	Links Links;
}

message Links {
	1 -> WordId Previous;
	2 -> WordId Next;
}

message Message {
	1 -> Word[] Updates;
	2 -> bool Undo;
	3 -> bool Redo;
}
