All types are in little-endian.
## Common Structures
### `Buffer`
Example:
```
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 04 00 01 02 04 05 ......
```
| Name | Description | Type |
|--------|-------------------------------------|--------------|
| Length | The length of the buffer, in bytes. | `u16` |
| Data | The raw data of the buffer. | `u8[Length]` |
The length of the data is `4`, with the bytes being: `.{ 1, 2, 3, 4 }`.
### `String`
Example:
```
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 0E 00 4C 6F 67 69 6E 50 72 6F 74 6F 63 6F 6C 00 ..LoginProtocol.
```
| Name | Description | Type |
|--------|-------------------------------------------------------------|---------------------|
| Buffer | The UTF-8 encoded, null-terminated string data as a buffer. | [`Buffer`](#buffer) |
Strings in RendezVous are null-terminated [buffers](#buffer) in UTF-8 encoding.
### `List`
Example:
```
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 01 00 00 00 12 00 43 6C 69 65 6E 74 56 65 72 73 ......ClientVers
00000010 69 6F 6E 49 6E 66 6F 00 01 00 ionInfo...
```
| Name | Description | Type |
|-----------------|---------------------------------------------|----------------------|
| Number of Items | The number of individual items in the list. | `u32` |
| Items | The items in the list. | `T[Number of Items]` |
##' `UUID`
> TODO