Table definition with CRUD operations
name: string
primaryKey: keyof Row & string
inputKeyMap: Record<string, string>
Update a row by primary key, returns updated row or null if not found
deleteById: (id: InValue) => Promise<void>
Delete a row by primary key
toDbValues: (input: Input | Partial<Input>) => Promise<Record<string, InValue>>
Transform input to DB values (apply write transforms and defaults)