syntax = "proto3"; // playing around with ideas here package gitpb; import "google/protobuf/timestamp.proto"; // Import the well-known type for Timestamp import "widget.proto"; // Import the well-known type for Timestamp message StringRow { Widget header = 1; repeated string vals = 2; repeated Widget widgets = 3; } message IntRow { Widget header = 1; repeated int64 vals = 2; repeated Widget widgets = 3; } message TimeRow { Widget header = 1; repeated google.protobuf.Timestamp vals = 2; repeated Widget widgets = 3; } message BoolRow { Widget header = 1; // repeated Widget widgets = 2; // } message Table { // `autogenpb:marshal` string title = 1; Widget window = 2; // Widget grid = 3; // repeated string order = 4; repeated StringRow StringRows = 5; repeated IntRow IntRows = 6; repeated TimeRow TimeRows = 7; repeated BoolRow BoolRows = 8; } message Tables { // `autogenpb:marshal` string uuid = 1; // `autogenpb:uuid:c328aa62-3c4f-4d00-9244-cc44ae75ab1b` string version = 2; // `autogenpb:version:v1` repeated Table Tables = 3; }