One finding: a distinct state, a human-readable cause, and an exact remedy
(ADR-020 §13 — miette-style actionable help; the remedy must be runnable, and
runnable remotely).
The result of open (ADR-020 §4): the recovered bytes plus the trust state
they arrived with. open returns this only when the inner envelope was
intact — a rejected (tampered / unknown-signer / expired / revoked) message
never yields bytes (misuse-resistance, ADR-020 §13). Read a trusted identity
via assurance.identity().
A service instance as seen on the network.
Used in browse results, resolve results, register confirmations,
and event payloads. This is THE service representation across all domains.
Supported health service-check kinds (wire contract). Lives in the kernel so a
client can request a check without depending on the koi-health engine;
koi-health re-exports it.
Default discovery window (ADR-020 §8): long enough for mDNS resolution on a
quiet LAN, short enough to stay responsive — a sane default so the common
discover(type) call needs no tuning.