import {z} from 'zod'; export interface EnumEntry { name: string; value: string | number; description?: string; } export interface BitflagEntry { name: string; value: string; description?: string; } interface SchemaMetadata { name?: string; enumEntries?: Array; openEnum?: boolean; bitflagValues?: Array; format?: string; preserveEmptyValues?: boolean; preserveNullFields?: boolean; experiment?: string; } export const schemaMetadata = z.registry(); export function withSchemaMetadata(schema: T, metadata: SchemaMetadata): T { const registeredSchema: z.ZodType = schema; schemaMetadata.add(registeredSchema, metadata); return schema; }