syntax = "proto3"; // playing around with ideas here package main; import "google/protobuf/timestamp.proto"; // Import the well-known type for Timestamp message Size { int64 width = 1; int64 height = 2; } message Location { int64 x = 1; int64 y = 2; } message Tree { Widget parent = 1; repeated Widget children = 2; } message Widget { int64 id = 1; string name = 2; Size size = 3; Location location = 4; string color = 5; } message Widgets { string uuid = 1; // `autogenpb:uuid:0331fcd7-3c8c-43e4-be1b-77db6a6bc58c` string version = 2; // `autogenpb:version:v1` repeated Widget Widgets = 3; }