Almost every Zod schema has .passthrough(), which feels very unusual. Among other downsides, this breaks type safety by allowing arbitrary properties. Just wondering what's the rationale for it?