import type { ScenarioMeta } from "./types"; import { rationingScenario } from "./micro/consumer/rationing"; import { priceCeilingScenario } from "./micro/consumer/price_ceiling"; import { cornerSolutionScenario } from "./micro/consumer/corner_solution"; import { inkindVsCashScenario } from "./micro/consumer/inkind_vs_cash"; export interface ScenarioEntry { meta: ScenarioMeta; scenario: | typeof rationingScenario | typeof priceCeilingScenario | typeof cornerSolutionScenario | typeof inkindVsCashScenario; } export const SCENARIO_REGISTRY = [ rationingScenario, priceCeilingScenario, cornerSolutionScenario, ] as const; export type RegisteredScenario = | (typeof SCENARIO_REGISTRY)[number] | typeof inkindVsCashScenario; export const DEFAULT_SCENARIO_ID = "micro.consumer.rationing"; export function getScenarioById(id: string): RegisteredScenario | undefined { if (id === inkindVsCashScenario.meta.id) return inkindVsCashScenario; return SCENARIO_REGISTRY.find((sc) => sc.meta.id === id); }