Optional second argument is an options object for defaults, validation, etc.
Always use camelCase for enum values (e.g., "waitPay", not "WAIT_PAY").
Add 'as const' to the values array for better TypeScript type inference.
Default field value (static or factory function)
Minimum numeric value
Maximum numeric value
Minimum string length
Maximum string length
Custom validation function
Example value for documentation