| Field | Type | Label | Description |
| team_color | Team | required | general infos Color of the team |
| task_id | uint32 | required | identifier for the tasks |
| robot_id | uint32 | required |
|
| move | Move | optional | Tasks |
| retrieve | Retrieve | optional |
|
| deliver | Deliver | optional |
|
| buffer | BufferStation | optional |
|
| explore_machine | ExploreWaypoint | optional |
|
| workpiece_description | WorkpieceDescription | optional | additional info for the refbox |
| order_id | uint32 | optional |
|
| cancel_task | bool | optional | flags and result of the current task cancels current task |
| pause_task | bool | optional | if true current task is paused, if false again task is continued |
| successful | bool | optional | was the task finished successful? |
| canceled | bool | optional | the task was successfully cancled from the agent |
| error_code | uint32 | optional | only set if failure, error-codes not yet |
Get product from shelf and place it immediately afterwards on the conveyor
| Field | Type | Label | Description |
| machine_id | string | required | machine-id because need to know if CS1 or CS2 |
| shelf_number | uint32 | required | only for old-gripper, valid shelf-numbers: 1, 2, 3 |
Deliver the holding product to the given station
| Field | Type | Label | Description |
| machine_id | string | required | name of the machine |
| machine_point | string | required | valid machine-points: input, slide |
Move to the given machine (if position already detected), else move to given
waypoint (=zone on the playing field)
| Field | Type | Label | Description |
| machine_id | string | required | name of the machine |
| machine_point | string | required | valid machine-points: input, output |
| waypoint | string | required |
|
Move robot to stated waypoint
| Field | Type | Label | Description |
| waypoint | string | required | can be a zone or a machine (default is input side of a machine) |
| machine_point | string | optional | can be used to specify the point of the machine (input, output) |
Get a workpiece at the given station and hold the product in the gripper
| Field | Type | Label | Description |
| machine_id | string | required | name of the machine |
| machine_point | string | required | valid machine-points: input, output, shelf |
| Field | Type | Label | Description |
| base_color | BaseColor | required | description fo the current workpiece the robot has gripped |
| ring_colors | RingColor | repeated | description fo the current workpiece the robot has gripped |
| cap_color | CapColor | optional | description fo the current workpiece the robot has gripped |
| Name | Number | Description |
| COMP_ID | 8000 | COMPONENT 8000 is Simulation |
| MSG_TYPE | 502 |
| Name | Number | Description |
| COMP_ID | 8000 | |
| MSG_TYPE | 510 |
| Field | Type | Label | Description |
| message | string | required | The message to display, be brief! |
| time_to_show | float | optional | Time (sec) the msg should be visible |
| team_color | Team | optional | if the message only regards one team |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 2 |
| Field | Type | Label | Description |
| time | Time | required | Local time in UTC |
| seq | uint64 | required | Sequence number |
| number | uint32 | required | The robot's jersey number |
| team_name | string | required | The robot's team name |
| peer_name | string | required | The robot's name |
| team_color | Team | optional | Team color, teams MUST sent this |
| pose | Pose2D | optional | Position and orientation of the robot on the LLSF playing field |
| task | AgentTask | optional | Maybe needed for future generalisation of beacon signal and tracking of robots current activity (used by GRIPS currently) current task-id of robot |
| finished_tasks | FinishedTask | repeated | a list of all the tasks that the robot has done. Contains the ID of |
| Field | Type | Label | Description |
| TaskId | uint32 | required | the specific task thats been done |
| successful | bool | required | the result of the task thats been done |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 1 |
| Field | Type | Label | Description |
| signals | ExplorationSignal | repeated | The signal assignments |
| zones | ExplorationZone | repeated | The zones to explore |
| Field | Type | Label | Description |
| type | string | required | machine type of this assignment |
| lights | LightSpec | repeated | Light specification (MachineInfo.proto) |
| Field | Type | Label | Description |
| zone | Zone | required | Zone to explore |
| team_color | Team | required | Team the machine belongs to |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 72 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 70 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 71 |
Game information for controllers
| Field | Type | Label | Description |
| known_teams | string | repeated | The new desired phase |
Request setting of a new game phase
| Field | Type | Label | Description |
| team_name | string | required | Name of the team to set |
| team_color | Team | required | Color of team |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 81 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 82 |
| Field | Type | Label | Description |
| game_time | Time | required | Time in seconds since game start |
| state | GameState.State | required | Current game state |
| phase | GameState.Phase | required | Current game phase |
| points_cyan | uint32 | optional | Awarded points, cyan |
| team_cyan | string | optional | Name of the currently playing team |
| points_magenta | uint32 | optional | Awarded points, magenta |
| team_magenta | string | optional | Name of the currently playing team |
Request setting of a new game phase
| Field | Type | Label | Description |
| phase | GameState.Phase | required | The new desired phase |
Request setting of a new game state
| Field | Type | Label | Description |
| state | GameState.State | required | The new desired state |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 20 |
| Name | Number | Description |
| PRE_GAME | 0 | |
| SETUP | 10 | |
| EXPLORATION | 20 | |
| PRODUCTION | 30 | |
| POST_GAME | 40 |
| Name | Number | Description |
| INIT | 0 | |
| WAIT_START | 1 | |
| RUNNING | 2 | |
| PAUSED | 3 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 23 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 22 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 21 |
Load puck into machine area.
| Field | Type | Label | Description |
| machine_name | string | required | Machine to place puck at |
Set machine lights.
| Field | Type | Label | Description |
| machine_name | string | required | Machine to place puck at |
| lights | LightSpec | repeated | Desired state of the lights |
Load puck into machine area.
| Field | Type | Label | Description |
| machine_name | string | required | Machine to place puck at |
| state | MachineState | required | State to set |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 18 |
| Name | Number | Description |
| IDLE | 1 | |
| AVAILABLE | 2 | |
| PROCESSED | 3 | |
| DELIVERED | 4 | |
| RETRIEVED | 5 | |
| RESET | 15 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 19 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 17 |
| Name | Number | Description |
| RETRIEVE_CAP | 1 | |
| MOUNT_CAP | 2 |
| Name | Number | Description |
| RED | 0 | |
| YELLOW | 1 | |
| GREEN | 2 |
| Name | Number | Description |
| OFF | 0 | |
| ON | 1 | |
| BLINK | 2 |
| Name | Number | Description |
| STORE | 1 | |
| RETRIEVE | 2 | |
| CHANGE_INFO | 3 |
| Field | Type | Label | Description |
| color | LightColor | required | Color and state of described light |
| state | LightState | required |
|
| Field | Type | Label | Description |
| name | string | required | Machine name, type, and team |
| type | string | optional |
|
| state | string | optional |
|
| team_color | Team | optional |
|
| lights | LightSpec | repeated | Current state of the lights |
| pose | Pose2D | optional | Optional pose if known to refbox |
| zone | Zone | optional | Which zone the machine is in |
| rotation | uint32 | optional |
|
| correctly_reported | bool | optional | Only set during exploration phase Correctly reported? (zone and type correct) |
| loaded_with | uint32 | optional | Number of bases loaded Default: 0 |
| ring_colors | RingColor | repeated |
|
| instruction_bs | PrepareInstructionBS | optional | Instruction information (only clients) |
| instruction_ds | PrepareInstructionDS | optional |
|
| instruction_ss | PrepareInstructionSS | optional |
|
| instruction_rs | PrepareInstructionRS | optional |
|
| instruction_cs | PrepareInstructionCS | optional |
|
| exploration_rotation_state | ExplorationState | optional | more fine-grained exploration (only clients) |
| exploration_zone_state | ExplorationState | optional |
|
| status_ss | ShelfSlotInfo | repeated | Status of the storage station shelf-slots |
| Field | Type | Label | Description |
| machines | Machine | repeated | List of machines states |
| team_color | Team | optional | Team color (only broadcast) |
Shelf Information
| Field | Type | Label | Description |
| shelf | uint32 | required | shelf position (see MachineInstructons.proto) |
| slot | uint32 | required | slot position |
| is_filled | bool | required | fill status |
| description | string | optional | additional information of the workpiece in that position |
| Name | Number | Description |
| NO_REPORT | 0 | |
| CORRECT_REPORT | 1 | |
| WRONG_REPORT | 2 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 10 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 12 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 13 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 121 |
| Field | Type | Label | Description |
| side | MachineSide | required |
|
| color | BaseColor | required |
|
| Field | Type | Label | Description |
| operation | CSOp | required |
|
| Field | Type | Label | Description |
| order_id | uint32 | required | Send order_id 0 to let DS consume a product without further action. This can be used to get rid of waste products, such as clear bases. |
| Field | Type | Label | Description |
| ring_color | RingColor | required |
|
| Field | Type | Label | Description |
| operation | SSOp | required |
|
| shelf | uint32 | required | Shelves: Slots: Top 5 4 1 3 5 7 3 0 2 4 6 2 Input ------> OUTPUT 1 (_) BOT 0 | |
| slot | uint32 | required |
|
| wp_description | string | optional | Optional description of the workpiece that is stored. The RefBox attaches this description when sending information about stored products |
| Field | Type | Label | Description |
| team_color | Team | required |
|
| machine | string | required | Machine name which to instruct |
| instruction_bs | PrepareInstructionBS | optional |
|
| instruction_ds | PrepareInstructionDS | optional |
|
| instruction_ss | PrepareInstructionSS | optional |
|
| instruction_rs | PrepareInstructionRS | optional |
|
| instruction_cs | PrepareInstructionCS | optional |
|
| sent_at | uint64 | optional | time since Unix epoch in seconds if specified and the message is too old it gets ignored (threshold is specified in globals.clp) |
| Field | Type | Label | Description |
| team_color | Team | required |
|
| machine | string | required | Machine name which to instruct |
| Name | Number | Description |
| INPUT | 1 | |
| OUTPUT | 2 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 101 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 104 |
Robots send this to announce recognized
machines to the refbox.
| Field | Type | Label | Description |
| team_color | Team | required | Team for which the report is sent |
| machines | MachineReportEntry | repeated | All machines already already recognized or a subset thereof |
| Field | Type | Label | Description |
| name | string | optional | Machine name and recognized type and zone the machine is in |
| type | string | optional |
|
| zone | Zone | optional |
|
| rotation | uint32 | optional | [0-360] in deg |
The refbox periodically sends this to
acknowledge reported machines
| Field | Type | Label | Description |
| reported_machines | string | repeated | Names of machines for which the refbox received a report from a robot (which may have been correct or wrong) |
| team_color | Team | required | Team for which the report is sent |
| reported_types | MachineTypeFeedback | repeated | Responses to reports that were received by the refbox and that contained machine types and zones |
| Field | Type | Label | Description |
| type | string | required | Feedback about whether a reported type in a zone is correct "name" and "team_color" are only set if the reported type is located in the zone and if the number of reported types did not exceed the number of machines with the types |
| zone | Zone | required |
|
| name | string | optional |
|
| team_color | Team | optional |
|
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 61 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 60 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 62 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 63 |
| Field | Type | Label | Description |
| team_color | Team | required |
|
| routes | Route | repeated |
|
| Field | Type | Label | Description |
| id | uint32 | required |
|
| route | Zone | repeated |
|
| reached | Zone | repeated |
|
| remaining | Zone | repeated |
|
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 250 |
| Field | Type | Label | Description |
| delivery_id | uint32 | required |
|
| correct | bool | required |
|
| Field | Type | Label | Description |
| id | uint32 | required | ID and requested product of this order |
| complexity | Order.Complexity | required |
|
| base_color | BaseColor | required |
|
| ring_colors | RingColor | repeated |
|
| cap_color | CapColor | required |
|
| quantity_requested | uint32 | required | Quantity requested and delivered |
| quantity_delivered_cyan | uint32 | required |
|
| quantity_delivered_magenta | uint32 | required |
|
| delivery_period_begin | uint32 | required | Start and end time of the delivery period in seconds of game time |
| delivery_period_end | uint32 | required |
|
| delivery_gate | uint32 | required | The gate to deliver to, defaults to any (non-defunct, i.e. non-red light) gate |
| unconfirmed_deliveries | UnconfirmedDelivery | repeated |
|
| competitive | bool | required |
|
| Field | Type | Label | Description |
| orders | Order | repeated | The current orders |
| Field | Type | Label | Description |
| team_color | Team | required |
|
| order_id | uint32 | required |
|
| Field | Type | Label | Description |
| id | uint32 | required |
|
| team | Team | required |
|
| delivery_time | Time | required |
|
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 46 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 42 |
Ordered product type
| Name | Number | Description |
| C0 | 0 | |
| C1 | 1 | |
| C2 | 2 | |
| C3 | 3 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 41 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 43 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 45 |
Pose information on 2D map
Data is relative to the LLSF field frame
| Field | Type | Label | Description |
| timestamp | Time | required | Time when this pose was measured |
| x | float | required | X/Y coordinates in meters |
| y | float | required |
|
| ori | float | required | Orientation in rad |
| Name | Number | Description |
| BASE_RED | 1 | |
| BASE_BLACK | 2 | |
| BASE_SILVER | 3 | |
| BASE_CLEAR | 4 |
| Name | Number | Description |
| CAP_BLACK | 1 | |
| CAP_GREY | 2 |
| Name | Number | Description |
| RING_BLUE | 1 | |
| RING_GREEN | 2 | |
| RING_ORANGE | 3 | |
| RING_YELLOW | 4 |
| Field | Type | Label | Description |
| ring_color | RingColor | required | Ring color this concerns |
| raw_material | uint32 | required | number of additional bases required to produce this ring type |
| Field | Type | Label | Description |
| rings | Ring | repeated | List of all known pucks |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 110 |
Set a robot's maintenance state
| Field | Type | Label | Description |
| robot_number | uint32 | required | Number of robot to set state |
| maintenance | bool | required | True to activate maintenance, false to bring back robot |
| team_color | Team | required | Team the robot belongs to |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 91 |
| Field | Type | Label | Description |
| name | string | required | Name, team, and number of the robot as it was announced by the robot in the BeaconSignal message. |
| team | string | required |
|
| team_color | Team | required |
|
| number | uint32 | required |
|
| host | string | required | Host from where the BeaconSignal was received |
| last_seen | Time | required | Timestamp in UTC when a BeaconSignal was received last from this robot |
| pose | Pose2D | optional | Pose information (reported by robot) |
| vision_pose | Pose2D | optional | Pose information (reported by vision) |
| state | RobotState | optional | Current state of this robot |
| maintenance_time_remaining | float | optional | Time in seconds remaining in current maintenance cycle, negative if overdue Default: 0 |
| maintenance_cycles | uint32 | optional | number of times maintenance has been performed, including current |
| Field | Type | Label | Description |
| robots | Robot | repeated | List of all known robots |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 31 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 30 |
| Name | Number | Description |
| ACTIVE | 1 | |
| MAINTENANCE | 2 | |
| DISQUALIFIED | 3 |
| Field | Type | Label | Description |
| sim_time | Time | required |
|
| real_time_factor | float | required |
|
| paused | bool | required |
|
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 327 |
Team identifier.
| Name | Number | Description |
| CYAN | 0 | |
| MAGENTA | 1 |
Time stamp and duration structure.
Can be used for absolute times or
durations alike.
| Field | Type | Label | Description |
| sec | int64 | required | Time in seconds since the Unix epoch in UTC or seconds part of duration |
| nsec | int64 | required | Nano seconds after seconds for a time or nanoseconds part for duration |
| Field | Type | Label | Description |
| version_major | uint32 | required |
|
| version_minor | uint32 | required |
|
| version_micro | uint32 | required |
|
| version_string | string | required |
|
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 3 |
| Field | Type | Label | Description |
| id | uint32 | required | Puck unique ID |
| at_machine | string | required | Machine which detected the workpiece |
| visible | float | optional | last seen at machine |
| team_color | Team | optional | Team the puck belongs to |
| base_color | BaseColor | optional |
|
| ring_colors | RingColor | repeated |
|
| cap_color | CapColor | optional |
|
| Field | Type | Label | Description |
| id | uint32 | required | Puck unique ID |
| ring_color | RingColor | required |
|
| Field | Type | Label | Description |
| workpieces | Workpiece | repeated | List of all known pucks |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 55 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 57 |
| Name | Number | Description |
| COMP_ID | 2000 | |
| MSG_TYPE | 56 |
Zone identifiers
| Name | Number | Description |
| C_Z18 | 18 | |
| C_Z28 | 28 | |
| C_Z38 | 38 | |
| C_Z48 | 48 | |
| C_Z58 | 58 | |
| C_Z68 | 68 | |
| C_Z78 | 78 | |
| C_Z17 | 17 | |
| C_Z27 | 27 | |
| C_Z37 | 37 | |
| C_Z47 | 47 | |
| C_Z57 | 57 | |
| C_Z67 | 67 | |
| C_Z77 | 77 | |
| C_Z16 | 16 | |
| C_Z26 | 26 | |
| C_Z36 | 36 | |
| C_Z46 | 46 | |
| C_Z56 | 56 | |
| C_Z66 | 66 | |
| C_Z76 | 76 | |
| C_Z15 | 15 | |
| C_Z25 | 25 | |
| C_Z35 | 35 | |
| C_Z45 | 45 | |
| C_Z55 | 55 | |
| C_Z65 | 65 | |
| C_Z75 | 75 | |
| C_Z14 | 14 | |
| C_Z24 | 24 | |
| C_Z34 | 34 | |
| C_Z44 | 44 | |
| C_Z54 | 54 | |
| C_Z64 | 64 | |
| C_Z74 | 74 | |
| C_Z13 | 13 | |
| C_Z23 | 23 | |
| C_Z33 | 33 | |
| C_Z43 | 43 | |
| C_Z53 | 53 | |
| C_Z63 | 63 | |
| C_Z73 | 73 | |
| C_Z12 | 12 | |
| C_Z22 | 22 | |
| C_Z32 | 32 | |
| C_Z42 | 42 | |
| C_Z52 | 52 | |
| C_Z62 | 62 | |
| C_Z72 | 72 | |
| C_Z11 | 11 | |
| C_Z21 | 21 | |
| C_Z31 | 31 | |
| C_Z41 | 41 | |
| M_Z18 | 1018 | |
| M_Z28 | 1028 | |
| M_Z38 | 1038 | |
| M_Z48 | 1048 | |
| M_Z58 | 1058 | |
| M_Z68 | 1068 | |
| M_Z78 | 1078 | |
| M_Z17 | 1017 | |
| M_Z27 | 1027 | |
| M_Z37 | 1037 | |
| M_Z47 | 1047 | |
| M_Z57 | 1057 | |
| M_Z67 | 1067 | |
| M_Z77 | 1077 | |
| M_Z16 | 1016 | |
| M_Z26 | 1026 | |
| M_Z36 | 1036 | |
| M_Z46 | 1046 | |
| M_Z56 | 1056 | |
| M_Z66 | 1066 | |
| M_Z76 | 1076 | |
| M_Z15 | 1015 | |
| M_Z25 | 1025 | |
| M_Z35 | 1035 | |
| M_Z45 | 1045 | |
| M_Z55 | 1055 | |
| M_Z65 | 1065 | |
| M_Z75 | 1075 | |
| M_Z14 | 1014 | |
| M_Z24 | 1024 | |
| M_Z34 | 1034 | |
| M_Z44 | 1044 | |
| M_Z54 | 1054 | |
| M_Z64 | 1064 | |
| M_Z74 | 1074 | |
| M_Z13 | 1013 | |
| M_Z23 | 1023 | |
| M_Z33 | 1033 | |
| M_Z43 | 1043 | |
| M_Z53 | 1053 | |
| M_Z63 | 1063 | |
| M_Z73 | 1073 | |
| M_Z12 | 1012 | |
| M_Z22 | 1022 | |
| M_Z32 | 1032 | |
| M_Z42 | 1042 | |
| M_Z52 | 1052 | |
| M_Z62 | 1062 | |
| M_Z72 | 1072 | |
| M_Z11 | 1011 | |
| M_Z21 | 1021 | |
| M_Z31 | 1031 | |
| M_Z41 | 1041 |
| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
| double | double | double | float | float64 | double | float | Float | |
| float | float | float | float | float32 | float | float | Float | |
| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| bool | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |