Full name: pub.techne.draft.contactChannel
A single contact channel {type, value, label?}, same-shape wherever placed.
The PLACEMENT ACT is the consent: placed in the owner's space.contact/self ⟺ consented to introduction-disclosure (readers = the owner's connections); placed publicly = a public listing (replaces profile.publicContacts); kept in space.personal = private. A telegram value is the @username (no leading @), NEVER the chatId; a phone value is the dialable number (the tel: reach rung). Placement is the consent. An issuer's proof that the author held the channel is a pub.techne.draft.credential naming this record (the attested channel is its own record, which contact edits never rewrite). Record keys: any; regenOS writes cc-{type} (private), pub-cc-{type} (the public listing) and a TID (an attested channel). Delivery routing (chatId/verified/notifications) is AppView operational state, never a record field.