Prelude
Stones are encoded with a version agnostic header, the Prelude, ensuring that version-specific fields can be handled separately from version and format detection. This is a 32-byte header at the start of the stone.
Fields
Section titled “Fields”| Field | Type | Size | Description |
|---|---|---|---|
| Magic | str | 4 | Always 0x006d6f73 |
| Data | Version-dependent | 24 | Version-specific header of the stone |
| Version | uint | 4 | Version number, i.e. 1 |
It’s the magic number of the Stone format.
The Magic field always contains ['\0', 'M', 'O', 'S'].
It is defined after AerynOS’s package manager: moss.
In the Rust language it is defined as:
pub const STONE_MAGIC: &[u8; 4] = b"\0mos";The content of the Data field depends on the Version field. Documentation about Stone versions is available in the next pages.
Version
Section titled “Version”A number that uniquely identifies the version of the Stone format in use.