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;
}