Reading the Specification

This specification assumes knowledge of Rust's basic number types (i32, f64, etc.) as well as a bit of familiarity with semantic versioning. Experience with tag-based formats (XML, HTML, etc.) will also be useful but is not necessary. This specification is fairly simple and there is not a lot of background knowledge required. However, there are a couple things that may not be immediately obvious.

"TAG (value)" Syntax

As you will read later, the RSB format uses an XML-like tag system except binary. Every tag has an i8 value. Often, tags will be written as TAG (#) where the number in parentheses is this i8 value, e.g., COORDINATES (3).

Examples

The specification will occasionally provide examples of the layout of a concept. However, providing actual bytes or hex codes would prove quite inconvenient, so they are written like this:

SKIP_U8 15u8 x_f64 y_f64

This example is composed of a tag (an i8), a u8, and two f64s concatenated. Elements of an example may vary in byte count, as is seen here. Whitespace may vary for readability, but all elements must be immediately concatenated.