/** * Feature Flags — enable features without new releases * * Pilot 001-010: Control which modules are visible. */ export type FeatureFlag = | 'ENABLE_REPLAY' | 'ENABLE_DATASET_EXPLORER' | 'ENABLE_MODEL_TRAINING' | 'ENABLE_HOTSPOTS' | 'ENABLE_ECONOMIC_ENGINE' | 'ENABLE_DEVELOPER_MODE'; export interface FeatureFlags { readonly flags: Record; } export const DefaultFeatureFlags: FeatureFlags = { flags: { ENABLE_REPLAY: false, ENABLE_DATASET_EXPLORER: true, ENABLE_MODEL_TRAINING: false, ENABLE_HOTSPOTS: false, ENABLE_ECONOMIC_ENGINE: false, ENABLE_DEVELOPER_MODE: false, }, }; export function isEnabled(flags: FeatureFlags, flag: FeatureFlag): boolean { return flags.flags[flag] ?? false; } export function enable(flags: FeatureFlags, flag: FeatureFlag): FeatureFlags { return { flags: { ...flags.flags, [flag]: true, }, }; } export function disable(flags: FeatureFlags, flag: FeatureFlag): FeatureFlags { return { flags: { ...flags.flags, [flag]: false, }, }; }