import type { KbxLookupDefinition } from './lookup' import type { KbxKnownFieldKey } from './generated/fieldCatalog' export type KbxFieldDataType = | 'text' | 'code' | 'integer' | 'decimal' | 'quantity' | 'money' | 'date' | 'datetime' | 'boolean' | 'lookup' | 'status' export interface KbxFieldDefinition { /** Canonical fields should use KbxKnownFieldKey. string remains for local/read-model fields during staged adoption. */ key: KbxKnownFieldKey | (string & {}) label: string aliases?: string[] dataType: KbxFieldDataType required?: boolean maxLength?: number precision?: number scale?: number readonly?: boolean importable?: boolean exportable?: boolean sensitive?: boolean masking?: 'name' | 'phone' | 'address' | 'partial' deprecated?: boolean replacementKey?: KbxKnownFieldKey defaultValue?: T lookup?: KbxLookupDefinition helpText?: string }