Part of #712.
Problem
First-use reads currently expose too much optic and coordinate ceremony. v19 should let application code ask a bounded question through reading, while the runtime lowers that question to formal optics internally.
Target Shape
const result = await timeline.read(
reading.property({
subject: 'user:alice',
key: 'role',
}),
);
result.value;
result.receipt;
Scope
- Add root
reading builders for common bounded questions.
- Add
ReadingResult with value and receipt.
- Keep
Optic as the advanced execution/proof shape.
- Add a provenance-light convenience only if it is clearly named, such as
readValue().
Acceptance
- Primary reads return receipts by default.
- Missing basis or operational uncertainty can return obstructed/underdetermined receipts where appropriate.
- Ordinary app docs do not require
prepareOpticBasis(), coordinate(), or optic().
- Advanced docs still explain the Reading-to-Optic lowering.
Part of #712.
Problem
First-use reads currently expose too much optic and coordinate ceremony. v19 should let application code ask a bounded question through
reading, while the runtime lowers that question to formal optics internally.Target Shape
Scope
readingbuilders for common bounded questions.ReadingResultwithvalueandreceipt.Opticas the advanced execution/proof shape.readValue().Acceptance
prepareOpticBasis(),coordinate(), oroptic().