@0xc9cb850366986f30; struct Envelope { sender @0 :Text; contents @1 :Data; } struct Request { union { status @0 :Void; changes @1 :ChangesParams; } } struct ChangesParams { sinceVersion @0 :Int64; } struct Response { union { status @0 :DBStatus; changes @1 :ChangesResult; } } struct ChangesResult { siteId @0 :Data; changes @1 :List(Change); } struct DBStatus { siteId @0 :Data; dbVersion @1 :Int64; } struct NodeStatus { db @0 :DBStatus; key @1 :Text; route @2 :Data; } struct Change { table @0 :Text; pk @1 :Data; cid @2 :Text; val @3 :ChangeValue; colVersion @4 :Int64; dbVersion @5 :Int64; siteId @6 :Data; cl @7 :Int64; seq @8 :Int64; } struct ChangeValue { union { null @0 :Void; integer @1 :Int64; real @2 :Float64; text @3 :Text; blob @4 :Data; } }