Files
alknet/docs/architecture/questions/071-builder-api-for-schema-construction.md
T
deepseek-v4-pro 85c5590001 docs(architecture): add alknet-typedef crate specs, ADRs 095-098, and OQs 069-071
Add the alknet-typedef architecture specification — the binary struct
engine that takes JSON Schema with TypeDef:* custom keywords and produces
offset maps, read/write functions, and validation.

Specs (docs/architecture/crates/typedef/):
- overview.md: purpose, 'schema is the format' principle, consumers, scope
- schema-layer.md: 17 TypeDef:* kinds, jsonschema integration, annotations
- layout-engine.md: two layout modes, three variable-length strategies
- data-access.md: read/write, TUnion dispatch, field paths, zero-copy
- validation.md: custom keyword validators, TypedefError, TypedefEngine

ADRs:
- 095: Purpose, scope, and the jsonschema engine
- 096: Two layout modes — packed sequential vs aligned static
- 097: Schema annotations — endianness, alignment, encoding, TUnion
- 098: Error handling and validation strategy

OQs (deferred(scope)):
- 069: Arrays of variable-length-element structs
- 070: no_std + alloc support
- 071: Builder API for schema construction

Index updates: README doc table + ADR table, open-questions.md theme
table + Deferred/Blocked section, overview.md crate graph.

Grounded in the alknet-typedef POC (26 tests passing) and the
call-channels-unification research. Reviewed by architecture-reviewer;
all critical issues, warnings, and suggestions addressed.
2026-07-20 11:57:03 +00:00

1.3 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: No current consumer. Schemas are authored in TypeBox (JS) or hand-written JSON for v1. A Rust builder API would enable programmatic schema construction in Rust without depending on a JS toolchain, but no current consumer needs this.
  • 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