syntax = "proto3"; package gamelang; option go_package = "/gamelang/bingopb"; message Field { uint32 id = 1; string text = 2; bool checked = 3; repeated string checker = 4; } message FieldMatrix { message MatrixRow { repeated Field fields = 1; } repeated MatrixRow rows = 1; } message Option { string key = 1; string value = 2; enum TypeEnum { STRING = 0; BOOL = 1; INT = 2; } TypeEnum type = 3; bool bool = 4; uint32 int = 5; } message Event { string type = 1; string game = 2; string value = 3; string gamename = 4; string username = 5; repeated string neighborgames = 6; } service EventService { rpc Inform (Event) returns (Event); } message Bingo { uint32 id = 1; string name = 2; repeated string textlist = 3; repeated Option options = 4; FieldMatrix fields = 5; bool started = 6; bool finished = 7; string winner = 8; uint32 numrows = 9; uint32 numcols = 10; } service BingoService { rpc CreateBingo (Bingo) returns (Bingo); rpc DeleteBingo (Bingo) returns (Bingo); rpc GetBingo (Bingo) returns (Bingo); rpc ListBingo (Bingo) returns (stream Bingo); rpc ModifyBingo (Bingo) returns (Bingo); }