I've been relying on JSON→Zod generators to scaffold schemas from API responses, and kept wondering — how much do they actually infer vs just dumping z.string() ? So I ran three tools on the same payload to find out. Input (same for all): { "status" : "active" , "email" : "a@b.com" , "id" : "a1b2c3d4-…" , "joined" : "2026-01-01T00:00:00Z" , "age" : 30 , "website" : "https://a.com" } json-to-zod z . object ({ status : z . string (), email : z . string (), id : z . string (), joined : z . string (