# title
Kitsuno Handshake v0.2 — Self-hosted Discovery

# description
Federation primitive — any domain self-hosts Handshake v0.2 discovery by publishing this JSON at /.well-known/handshake-v0.2.json. Lists supported endpoints (cards, signal, l2, l3) and verifier keys. Other implementations look here first when contacting <domain>; if absent, they fall back to the Kitsuno directory.

# properties.operator_name.description
Display name of the operator hosting this endpoint set (e.g., 'Kitsuno', 'Acme ATS').

# properties.endpoints.properties.cards_base.description
Base URL where individual cards live, e.g., 'https://acme.example.com/handshake/v0.2/cards/'. Card URLs are <cards_base><slug>.json.

# properties.endpoints.properties.cards_index.description
Optional — paginated index of all cards hosted by this operator. Returns a cards-feed.json shaped document. Supports ?since=<iso-datetime> and ?cursor=<opaque> query parameters for incremental crawling.

# properties.endpoints.properties.vacancy_signal.description
Endpoint where seekers POST vacancy-signal messages back to this operator.

# properties.endpoints.properties.l2_delivery.description
Endpoint where vacancy agents receive L2 disclosures.

# properties.endpoints.properties.l3_release.description
Endpoint where seekers receive L3 releases.

# properties.verifier_keys.description
Public keys this operator uses to sign verification attestations. Allows other parties to validate attestations issued by this operator.

# properties.supported_features.description
Which protocol features this operator supports. Implementations check before initiating a flow.

# properties.aggregator_listings.description
Informational — URLs of public aggregator registries where this operator self-declares as listed. No protocol meaning; helps a foreign agent that found this operator via one aggregator confirm what other registries also list it. Example: ["https://github.com/kitsuno-ai/handshake-discovery"].