A phone-first <gmad-phone> element. The user experiences a plain
address book — Recents · Contacts · Keypad · Voicemail — but underneath the contact list is a
SELF-circle phone-AID list, and a CallRouter picks the rail invisibly:
a member (DID, reachable JNY endpoint) rings in-app over WebRTC; a raw number
(E.164 AID) dials out over PSTN. This build is a UI shell with mock data — no live media.
Two swappable seams, both mocked here (see ADAPTERS.md):
• PhoneProvider (data): contacts() / recents() / voicemails() — later rest (cids / self-circle) + sparql.
• CallRouter (rail): route() is real; place() is mock — later webrtc → Element Call/MatrixRTC (LiveKit), pstn → Asterisk/Telnyx.