Frame verification, deduplication and submission
flowchart TD
F["Radio frame"] --> V{"Protocol/purpose/authentication valid?"}
V -- No--> R["Reject before state"]
V -- Yes--> D{"Duplication removed?"}
D -- Yes--> A["ACK only"]
D -- No--> C{"commit result"}
C -- Durable --> P["publish UI event"]
C -- Deferred --> B["bounded retry"]
C -- Rejected --> R