syntax = "proto3"; package main; import "google/protobuf/timestamp.proto"; // Import the well-known type for Timestamp // maybe put all the gocui specific stuff here. message GocuiState { // `autogenpb:nomutex` bool visible = 1; bool internal = 2; int64 w0 = 3; int64 h0 = 4; int64 w1 = 5; int64 h1 = 6; } message ViewSettings { // `autogenpb:nomutex` bool pack = 1; int64 framesize = 5; } message Tree { View parent = 1; repeated View children = 2; View node = 3; } // this is the gocui 'view' in binary tree form message View { int64 widgetId = 3; // `autogenpb:unique` `autogenpb:sort` string name = 4; // `autogenpb:unique` `autogenpb:sort` GocuiState state = 7; } message Views { // `autogenpb:marshal` `autogenpb:mutex` string uuid = 1; // `autogenpb:uuid:d19c1fbb-32c2-4957-aee6-f8128a511dca` string version = 2; // `autogenpb:version:v0.0.1` repeated View Views = 3; Tree tree = 4; map junk = 5; ViewSettings settings = 6; }