Contact Request v1¶
Source schema: doc/schemas/contact-request.v1.schema.json
Private artifact sent to a route candidate returned by Contact Catalog to request a narrow messaging/contact relationship. It carries a sender subject and optional sender-handle proof; it is not the private message body.
Governing Basis¶
doc/project/30-stories/story-010-message-to-a-friend.mddoc/project/40-proposals/058-contact-catalog.mddoc/project/40-proposals/057-user-and-operator-notifications.md
Project Lineage¶
Stories¶
Fields¶
| Field | Required | Shape | Description |
|---|---|---|---|
schema |
yes |
const: contact-request.v1 |
|
schema/v |
yes |
const: 1 |
|
request/id |
yes |
string | |
request/kind |
yes |
enum: messaging-contact |
|
sender/display-name |
no |
string | |
sender/subject |
yes |
ref: #/$defs/subject |
|
sender/handle-proof-ref |
no |
string | Optional email-control or phone-control passport reference proving that the sender controls the displayed contact handle. |
sender/reply-route |
no |
ref: #/$defs/subject |
|
recipient/route |
no |
ref: #/$defs/subject |
Optional explicit recipient route. Contact Catalog lookup deliveries MAY omit it; the receiving node then binds the request to the local node-id selected by the delivery route. |
recipient/public-handle-ref |
no |
string | Opaque reference to the external handle used for lookup. Raw email or phone MAY be stored locally, but network artifacts SHOULD prefer a redacted or digest-bound reference. |
requested/capability-id |
yes |
enum: messaging-receive |
Capability passport profile requested from the recipient if the user accepts. |
requested/purposes |
yes |
array | |
greeting |
no |
string | |
issued/at |
yes |
string | |
expires/at |
yes |
string | |
correlation/id |
no |
string | |
proof/signature |
yes |
ref: #/$defs/signature |
|
policy_annotations |
no |
object |
Definitions¶
| Definition | Shape | Description |
|---|---|---|
subject |
object | |
signature |
object | |
| ## Field Semantics |
schema¶
- Required:
yes - Shape: const:
contact-request.v1
schema/v¶
- Required:
yes - Shape: const:
1
request/id¶
- Required:
yes - Shape: string
request/kind¶
- Required:
yes - Shape: enum:
messaging-contact
sender/display-name¶
- Required:
no - Shape: string
sender/subject¶
- Required:
yes - Shape: ref:
#/$defs/subject
sender/handle-proof-ref¶
- Required:
no - Shape: string
Optional email-control or phone-control passport reference proving that the sender controls the displayed contact handle.
sender/reply-route¶
- Required:
no - Shape: ref:
#/$defs/subject
recipient/route¶
- Required:
no - Shape: ref:
#/$defs/subject
Optional explicit recipient route. Contact Catalog lookup deliveries MAY omit it; the receiving node then binds the request to the local node-id selected by the delivery route.
recipient/public-handle-ref¶
- Required:
no - Shape: string
Opaque reference to the external handle used for lookup. Raw email or phone MAY be stored locally, but network artifacts SHOULD prefer a redacted or digest-bound reference.
requested/capability-id¶
- Required:
yes - Shape: enum:
messaging-receive
Capability passport profile requested from the recipient if the user accepts.
requested/purposes¶
- Required:
yes - Shape: array
greeting¶
- Required:
no - Shape: string
issued/at¶
- Required:
yes - Shape: string
expires/at¶
- Required:
yes - Shape: string
correlation/id¶
- Required:
no - Shape: string
proof/signature¶
- Required:
yes - Shape: ref:
#/$defs/signature
policy_annotations¶
- Required:
no - Shape: object
Definition Semantics¶
$defs.subject¶
- Shape: object
$defs.signature¶
- Shape: object