syntax = "proto3"; message Grid { string grid_id = 1; RepeatedGridFilter filters = 2; RepeatedFieldOrder field_orders = 3; RepeatedRowOrder row_orders = 4; } message GridFilter { string id = 1; string name = 2; string desc = 3; } message RepeatedGridFilter { repeated GridFilter items = 1; } message FieldOrder { string field_id = 1; bool visibility = 2; int32 width = 3; } message RepeatedFieldOrder { repeated FieldOrder items = 1; } message Field { string id = 1; string name = 2; string desc = 3; FieldType field_type = 4; bool frozen = 5; AnyData type_options = 6; } message AnyData { string type_url = 1; bytes value = 2; } message RowOrder { string grid_id = 1; string row_id = 2; bool visibility = 3; } message RepeatedRowOrder { repeated RowOrder items = 1; } message Row { string id = 1; string grid_id = 2; int64 modified_time = 3; map cell_by_field_id = 4; } message Cell { string id = 1; string row_id = 2; string field_id = 3; AnyData data = 4; } message CreateGridPayload { string name = 1; } message GridId { string value = 1; } enum FieldType { RichText = 0; Number = 1; DateTime = 2; SingleSelect = 3; MultiSelect = 4; Checkbox = 5; }