The canonical contract layer for every Leddy component. It contains strongly typed Rust models plus language-neutral OpenAPI, AsyncAPI, and JSON Schema artifacts. Device firmware, servers, SDKs, and tests should depend on these contracts instead of redefining message shapes.
The recommended physical range is 100–300 pixels wide and 5–20 pixels tall, but the protocol deliberately supports larger or smaller matrices.
Device hello events may now identify the controller family and supported
transports through DeviceCapabilities:
- platforms:
arduino,raspberry_pi,esp32, andstm32 - transports:
usb_serial,wifi,ble, andethernet
The new fields are optional during deserialization, so older devices that emit only dimensions, color depth, and brightness support remain protocol-compatible. Servers should treat a missing platform as unknown and an empty transport list as not yet advertised rather than unsupported.
cargo testThis repository is a Zed package. .zpkg.lock is intentionally absent until a
real resolver run can lock published, resolvable package versions.