A request the Transport performs. path is already the full path plus
query string (e.g. /agdx/kv/sessions/dXNlcjox?expires_at_micros=10). The
transport prepends its own base URL. A JSON body is present only on
POST/PUT, and when present the transport sends Content-Type: application/json.
What the Transport returns: the numeric status, the response headers (for
the routes that carry metadata out of band, like the KV get expiry), and the
raw body. A transport that does not surface headers leaves headers empty,
in which case header-carried metadata reads as absent.
The result of a single-key KV read: the raw value bytes plus the optional
absolute expiry (epoch microseconds). A kv_get builds it from the raw
response body and the KV_EXPIRES_AT_MICROS_HEADER
header. A scan page carries the base64url KvEntryView
shape instead, since a JSON array cannot hold raw bytes.
The IO seam. A wasm consumer implements it over gloo-net, a native one over
reqwest. The client never constructs URLs beyond the path: the transport
owns the base URL, credentials, and headers.