syntax = "proto2"; package SC2APIProtocol; message AvailableAbility { optional int32 ability_id = 1; optional bool requires_point = 2; } message ImageData { optional int32 bits_per_pixel = 1; // Number of bits per pixel; 8 bits for a byte etc. optional Size2DI size = 2; // Dimension in pixels. optional bytes data = 3; // Binary data; the size of this buffer in bytes is width * height * bits_per_pixel / 8. } // Point on the screen/minimap (e.g., 0..64). // Note: bottom left of the screen is 0, 0. message PointI { optional int32 x = 1; optional int32 y = 2; } // Screen space rectangular area. message RectangleI { optional PointI p0 = 1; optional PointI p1 = 2; } // Point on the game board, 0..255. // Note: bottom left of the screen is 0, 0. message Point2D { optional float x = 1; optional float y = 2; } // Point on the game board, 0..255. // Note: bottom left of the screen is 0, 0. message Point { optional float x = 1; optional float y = 2; optional float z = 3; } // Screen dimensions. message Size2DI { optional int32 x = 1; optional int32 y = 2; } enum Race { NoRace = 0; Terran = 1; Zerg = 2; Protoss = 3; Random = 4; }