ReadonlyappReadonlyfacetsReadonlypermissionsThrows AppPermissionError unless every permission in needed is declared.
needed: null is a no-op — the hook is one of the implicit ones every app is built
out of and is never declared (see sdk/permissions.ts).
What every SDK host hook goes through once rewired (GPHONE-16 step 3). One
Hostper app: what it may ask for (permissions), what refuses an undeclared ask (require), and what it can reach once allowed (facets).