Privacy ChoicesApps & admin
iOS and Android use the same status API
Native Privacy Choices call GET|POST /api/v1/privacy-choices. This hub does not replace that contract.
iOS PrivacyChoicesView and Android PrivacyChoicesBlock load and save through /api/v1/privacy-choices with optional bearer auth.
Topic search is GET /api/v1/privacy-choices/topics?q= — public, distinct from status. Never invent optedOut on the client.