# Decisions ## 2026-04-09 – License: GPLv3 instead of MIT - **Who**: Dom, F.R.I.D.A.Y. - **Why**: Plan to support multiple headset protocols using HeadsetControl (GPLv3) as reference for protocol implementations. HeadsetControl's code is community-tested — reimplementing blind without hardware to test against is impractical. GPL copyleft is acceptable since the tool is open source on GitHub anyway. - **Tradeoffs**: MIT would allow proprietary use, but we gain access to tested protocol implementations. GPL has no practical downside for a CLI tool distributed as source. - **How**: GPLv3-or-later in Cargo.toml and LICENSE file. ## 2026-04-09 – Tool name: must avoid "Corsair" trademark - **Who**: Dom, F.R.I.D.A.Y. - **Why**: "Corsair" is a registered trademark. Publishing under `corsairctl` risks trademark issues. "Bragi" is also risky (Bragi GmbH, Danish audio company). - **Tradeoffs**: `headsetctl` is descriptive and follows Linux naming conventions (`bluetoothctl`, `brightnessctl`). Less specific but safer. - **How**: Rename TBD — to be decided as part of the publish plan. ## 2026-04-09 – Multi-protocol architecture using HeadsetControl as reference - **Who**: Dom, F.R.I.D.A.Y. - **Why**: Each headset vendor uses a proprietary HID protocol. No common standard exists. HeadsetControl already has tested implementations for SteelSeries, Logitech, HyperX, Corsair, etc. - **Tradeoffs**: Porting C code to Rust takes effort, but the protocol logic is the hard part (byte sequences, timing, quirks) — and that's already documented in HeadsetControl's source. - **How**: Modular backend architecture — each protocol as a separate module behind a common trait. Bragi is the first backend; others follow.