v0.5.2 — detect redaction from the data
A scan could return with every SSID and BSSID stripped and still be reported as success, because the check was the authorization status alone.
CoreWLAN redacts according to the calling process's own client identity. A bundled executable launched directly rather than through LaunchServices is a different client from its bundle — so the manager can truthfully report that the bundle holds the grant while the scan it returns is stripped. Observed on macOS 27.0: status authorized, 13 networks, not one identifier among them, no error.
DecodeScan now also returns ErrLocationDenied when a scan found networks and named none of them. A real observation always carries a BSSID, so that state is unambiguous. An empty airspace stays a successful empty scan.
This is the failure the package exists to prevent: silently recording signal strengths against nameless BSSIDs, which for a survey looks exactly like data.