**Parent:** #52 ## Requirements - Subscribe/unsubscribe via platform `setNotifyValue` only—never write CCCD 0x2902 directly (FR-10.4.1). - Confirm callback before active; sequence enable before notify-producing work (FR-10.4.2). - Expose subscription state; don’t trust `isNotifying` alone (FR-10.4.3). - Track subscription **intent**; re-arm after reconnect, restore, `didModifyServices` (FR-10.4.5). ## Acceptance criteria - [ ] Public subscribe API on `Peripheral` - [ ] Intent survives reconnect/restore/modify paths (or explicit inactive reporting) - [ ] Tests for enable confirm + re-arm
Parent: #52
Requirements
setNotifyValueonly—never write CCCD 0x2902 directly (FR-10.4.1).isNotifyingalone (FR-10.4.3).didModifyServices(FR-10.4.5).Acceptance criteria
Peripheral