Files
alknet/docs/architecture/questions/071-builder-api-for-schema-construction.md
T
deepseek-v4-pro dd232c3d47 fix(typedef): fix code examples and cross-doc inconsistencies from second review
- Fix code examples hardcoding little-endian: read_string, write_string,
  read_string_indirect now take endian parameter and use match on Endian.
- Fix TUnion dispatch examples: remove undefined functions (read_u8,
  read_field, read_struct, read_f32_raw), remove Value returns
  (contradicts 'no intermediate Value tree'), add endian-aware
  discriminator reading for Uint8/Uint16/Uint32.
- Fix read_f32 example: inline the endian-aware conversion instead of
  calling undefined read_f32_raw; document it as aligned-mode only.
- Fix architecture README: 16→17 kinds in schema-layer and validation
  descriptions.
- Fix ADR-095: clarify validation operates on Value instances, not raw
  byte buffers directly. Fix 'defense in depth' paragraph.
- Fix ADR-097: add §3a defining TRecord 'values' property shape.
- Fix ADR-098: TTimestamp format ISO 8601→RFC 3339.
- Tighten OQ-071 impacts field: state what IS blocked, not just what
  isn't.
2026-07-21 08:42:13 +00:00

1.5 KiB

OQ-071: Builder API for schema construction

  • Origin: crates/typedef/schema-layer.md, crates/typedef/overview.md; docs/research/alknet-typedef/findings.md (the builder API was noted as the one detail not covered by the POCs)
  • Status: deferred(scope)
  • Door type: Two-way (additive — a builder API can be added without changing the existing JSON-consumption path)
  • Priority: medium
  • Impacts: Blocks programmatic schema construction in Rust without a JS toolchain. Any consumer that wants to build typedef schemas at runtime from Rust code (rather than loading pre-authored JSON) must construct the JSON manually or depend on TypeBox. Does NOT block any current consumer — all v1 consumers (SFTP, metatensor, binary call frames, TTY negotiation) use pre-authored schemas.
  • Blocked on: A concrete need for programmatic schema construction in Rust. The current consumers (SFTP, metatensor, binary call frames, TTY negotiation) all have schemas that can be hand-written or generated from TypeBox.
  • Resolution: Not yet decidable. The builder API is important but not needed for the initial consumers. The engine's JSON-consumption path is the primary interface for v1. A builder API would be a fluent Rust API that produces the same JSON Schema structure — it would sit on top of the engine, not inside it.
  • Cross-references: ADR-095, schema-layer.md