candor for TypeScript — per-function side effects, transitively, with a policy gate (candor-spec 0.5)