- The 'alkcall usage undecided with the first wire consumer' posture
was an inherited assumption, never a decision; it conflated iroh-
blobs' actual weld (no Store trait, store inseparable from irpc —
convention 7's rejection target) with having a protocol substrate
under the ops layer at all
- Settled: ops surface is alkcall-shaped — validated JSON control ops
(OperationSpec/JSON Schema, ADR-016 error schemas), binary data
channels via the channel_open marker (ADR-047; Sub ADR-021 fetch,
Pub/Sink ADR-046 put), ACL via AccessControl + ownership (ADR-011)
under the ADR-017 privilege model; an in-band op/auth scheme would
duplicate reviewed family machinery (convention 6 already mandates
the seam)
- Store layer stays substrate-agnostic (principle 1 unchanged); alkcall
enters only at the ops module/sibling boundary
- Remaining Phase 1 ADR scope reduced to placement: feature-gated ops
module (lean) vs sibling crate
- Synced vision sentence, scope line, alkcall prior-art entry,
OQ-BL-05 ACL line, recommended approach, decision table
Verification: cargo test / clippy -D warnings / fmt --check clean