type Default = T; // Test basic Default type transformation interface UserSettings { theme: Default; fontSize: Default; notifications: Default; } // Test nested Default types interface AppConfig { user: { name: string; settings: { language: Default; timezone: Default; }; }; features: { darkMode: Default; autoSave: Default; }; } // Test Default with arrays interface ListConfig { items: Default; selectedIndices: Default; } // Test Default with objects interface ComplexDefault { metadata: Default< { version: number; author: string }, { version: 1; author: "system" } >; config: Default< { enabled: boolean; value: number }, { enabled: true; value: 100 } >; } // Test Default with Cell types interface CellDefaults { counter: Cell>; messages: Cell>; } // Test optional properties with Default interface OptionalWithDefaults { requiredField: string; optionalWithDefault?: Default; nestedOptional?: { value?: Default; }; } // Root schema for testing - we'll test all the interfaces above interface SchemaRoot { userSettings: UserSettings; appConfig: AppConfig; listConfig: ListConfig; complexDefault: ComplexDefault; cellDefaults: CellDefaults; optionalDefaults: OptionalWithDefaults; }