/**
* Реестры строковых сущностей сюжета: флаги и вары GameState.
* Единственная точка правды: контент (диалоги, интерактивы, квесты, переходы)
* и код сцены ссылаются на них через константы, а data/validate.ts сверяет
* каждое строковое упоминание с реестром — опечатка падает в тестах и
* agent:invariants, а не молча создаёт новый флаг.
*/
/**
* Флаги сюжета: ключ = значение = id (строка в GameState/сейве).
* Знакомства ставятся самими графами диалогов (dialogueFirst), а не кодом
* сцены; старые ключи metElder/metTrader мигрируют (data/migrations.ts).
*/
export const FLAGS = {
/** Познакомились со старейшиной (диалог elder_first). */
met_elder: 'met_elder',
/** Ирвин дал задание о колокольчиках (диалог elder_first; doneFlag стадии 1). */
quest_bells_taken: 'quest_bells_taken',
/** Колокольчики собраны и посажены (диалог elder_hand_in; doneFlag стадии 2). */
quest_bells_done: 'quest_bells_done',
/** Познакомились с Милой (диалог trader_first). */
met_mila: 'met_mila',
/** Мила дала вощёное полотно (диалог trader_first). */
got_cloth: 'got_cloth',
/** Колокол башни звенел (интерактив bell_rope). */
rang_tower: 'rang_tower',
/** Прочитана записка в доме Ирвина (интерактив note_elder). */
read_note: 'read_note',
/** Подсказка «как собирать колокольчики» уже показана (вход в пруды). */
hint_bells: 'hint_bells'
} as const;
export type FlagId = keyof typeof FLAGS;
/** Вары прогресса (числовые; значение живёт в GameState.vars): ключ = id. */
export const VARS = {
/** Пепельные моты в сумке (подбор наростов, победы над врагами). */
motes: 'motes',
/** Собранные лунные колокольчики (квест «Три цветка»). */
flowers: 'flowers',
/** Здоровье героя между входами в локацию. */
hp: 'hp',
/** Побеждённые враги (отладка/статистика). */
kills: 'kills',
/** Смерти героя (статистика). */
deaths: 'deaths',
/** Резонансы башни (кат-сцена, статистика). */
resonances: 'resonances'
} as const;
export type VarId = keyof typeof VARS;
/** Синтезируемый флаг одноразового интерактива (once): used:<id>. */
export function usedFlag(id: string): string {
return `used:${id}`;
}