// source.ts
export interface HeroContact {
email: string; // v-email
name: string; // 2..50
phoneNumber: string; // p-^([+]?d{1,2}[-s]?|)d{3}[-s]?d{3}[-s]?d{4}$
hasSuperPower?: boolean; // v-true
age: number; // 0..500
}
// output.ts
export const heroContactSchema = z.object({
email: z.string().email(),
name: z.string().min(2).max(50),
phoneNumber: z.string().regex(/^([+]?d{1,2}[-s]?|)d{3}[-s]?d{3}[-s]?d{4}$/),
hasSuperPower: z.boolean().default(true),
age: z.number().min(0).max(500),
});