## Zod Guidelines ### Schema Definition - Define all schemas in `src/types.ts` - Use `z.object()` for objects, `z.array()` for arrays - Mark optional fields with `.optional()` - Create generic schemas for reusable structures ### Type Inference - Always infer types from schemas: `export type Foo = z.infer` ### Validation - Use `.parse()` to validate API responses - Only validate successful responses (`retcode === RESPONSE_CODES.SUCCESS`) - Return unvalidated responses for error cases ### Patterns - Follow existing schema naming: `FooSchema` for schemas, `Foo` for types - Use `ZZZResponseSchema(dataSchema)` for API responses