Shared substrate for the radicle-artifact crates.
Holds everything both sides of the control socket need to agree on,
with no networking stack attached: the wire [protocol], the [cid]
helpers for artifact content addressing, and the [keys] endpoint
identity type. Consumers that only speak the protocol (CLI, async
embedders) depend on this crate without pulling in iroh or tokio.