Transport first
Implement a receiver transport once, then reuse the same Core resolution contract.
Receiver SDK
The Flutter package keeps audio, ultrasonic, QR, visual and BLE transports replaceable. It contains no publisher secret and leaves consent and reporting to the host application.

Implement a receiver transport once, then reuse the same Core resolution contract.
The SDK returns a verified intent; it does not generate a permanent device identity.
Audience reporting belongs to the integrator backend after consent, not to a hidden SDK credential.