syntax = "proto3";

message Property
{
    enum Mode
    {
        INVALID = 0;
        A = 1;
        B = 2;
        C = 3;
    }

    oneof field
    {
        Mode   DeviceA_Mode     = 1;
        uint32 DeviceA_Size     = 2;
        uint32 DeviceA_Length   = 3;

        Mode   DeviceB_Mode     = 4;
        uint32 DeviceB_Size     = 5;
        uint32 DeviceB_Length   = 6;
    }
}

message SettingsGroup
{
    message Settings
    {
        message Command
        {
            uint32 label                 = 1;
            repeated Property properties = 2;
        }

        uint32      id      = 1;
        string      name    = 2;
        uint32      flags   = 3;
        bool        en      = 5;
        Command     begin   = 6;
        Command     end     = 7;
    }

    Settings settings   = 1;
    uint32 version      = 2;
}