Typed, callable api blocks for .wrn files: sectioned request/response/error, callable from client code as api.name(input), type-checked by tsc against the route contracts. Also two fixes found along the way: defineEndpoint never received its input through the real router, so every typed endpoint was validating undefined; and v.boolean() silently coerced any unrecognised string to false. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>