package org.theburninators.grue; option optimize_for = LITE_RUNTIME; message ToClient { optional group Origin = 1 { required double latitude = 2; required double longitude = 3; optional double angle = 4; } repeated group Thing = 4 { enum Type { AVATAR = 1; AVATAR_OBSERVER = 2; BLOCK_CLOSED = 3; BLOCK_OPEN = 4; CREATURE = 5; DELETED = 6; DOOR_CLOSED = 7; DOOR_OPEN = 8; DRIFTER = 9; DRIFTZONE = 10; LETTER = 11; LINE = 12; NURSERY = 13; ONEWAY = 14; OUTFIT = 15; TRASH = 16; TREASURE = 17; TRIGGER = 18; WALL = 19; } required int32 id = 5; required Type type = 6; optional int64 owner = 7; repeated int32 other_id = 8; repeated int32 x = 9 [packed=true]; repeated int32 y = 10 [packed=true]; repeated fixed32 color = 11 [packed=true]; repeated string data = 12; repeated int64 resource_code = 13; } optional group Status = 12 { optional string letters = 13; optional int32 outfit_id = 14; optional int64 treasure_resource = 15; } repeated group Resource = 16 { required int64 code = 17; required bytes data = 18; } } message ToServer { optional group Hello = 1 { required int64 id = 2; optional string instance = 3; optional bool is_observer = 4; } optional group Location = 5 { required int32 x = 6; required int32 y = 7; } repeated int64 fetch_resource = 8; }