Spec canónica de protocols/schema-versioning/BINDINGS.md, copiada sin reescribir.
protocols/schema-versioning/BINDINGS.mdPágina generada desde
protocols/schema-versioning/BINDINGS.md. No se edita a mano:bun run docs:genla regenera ybun run docs:checkfalla si difiere.
Diseñar el enfoque para generar bindings TS/Swift/Zig desde un schema canónico. Esto permite mantener un único source of truth para los contratos y derivar tipos en todos los lenguajes.
Estado (2026-09-30, dec-0116 + dec-0120): resuelto para TS↔Zig. La fuente de verdad son los JSON Schema (TypeBox 1.x) de
@styx/api-contracts(dec-0116: Arktype fuera). El segundo binding ya existe:@spire/bus/codegengenera structs Zig convalidate()desde los mismos schemas (bun run gen:bus→native/zig/media-daemon/ipc/contracts.generated.zig;check:busfalla si lo versionado difiere) y la conformidad TS↔Zig la fijan los vectores y el fuzz diferencial de spire. El formato del IPC Bun↔Zig es el sobre binario de spire con payload JSON del contrato, no protobuf. Lo de abajo queda como registro de las opciones que se evaluaron; Swift sigue abierto (tras F-FUSION).
┌──────────────────────┐
│ protobuf IDL (.proto)│ ← Source of truth
└──────────┬───────────┘
│
┌──────┴──────┐
│ protoc │ ← Codegen tool
└──────┬──────┘
│
┌──────┴──────┬──────────┐
▼ ▼ ▼
TS types Swift Zig
(ts-proto) (swift-protobuf) (zig-protobuf)