# The Specifications for ROSE
Development on the protocol may change the specifications, see the
devlogs for specific decisions on changes.

## Packet specifications
### Packet size
This is determined by the users after considering their applications
during compilation/synthesis of their ROSE setup, the size must be a
power of 2 (and long enough, >16 bytes is recommended).
### Header
#### (1 byte) Command
- Commands are 8 bits with 256 possibilities, see the **Commands**
  section for details.

#### (1 byte) Destination address
- This can refer to any end-device or fabric within the network

#### (1 byte) Source address
- This can refer to any end-device or fabric within the network

### Payload
Via commands, leading or trailing bytes in the payload can also be
repurposed to feature extensions.

### (1 byte) CRC-8
To ensure delivery.

## Commands
1. `[CMD: 0]` Idle.
2. `[CMD: 1]` Send packet.
### Feature Extensions
#### [CMD: TBD] Include timestamp
#### [CMD: TBD] Include sequence number
