// Shared declarations for the whole project. // // This node is never played. Declaring every variable in one place means the // compiler catches typos ("$reputaton") instead of silently creating a second // variable at runtime. // // Writing rules the code deliberately does not enforce (Skill Bible §7 / refactor plan §2.1): // - Wrong Truth failures carry no failure signal in the prose — the UI banner is the only tell. // - Documentary routes are gated on Act and errand state, never on a voice. // // Modifier Yarn commands (see YarnSkillCommands): // <> — source key "scene" = situational; clear on scene exit // <> // Other source keys (drunk, injured, …) are state buckets. title: Declarations --- // How much the door staff likes you. <> // Written by <> (YarnSkillCommands). Never <> these by hand. <> <> <> <> <> <> <> // Candidate lean. Three permanently-live readings of who the PC is; they are // not mutually exclusive and never resolve. Writers <> these; no code // reads them. There is deliberately NO derived "winning candidate" variable — // see docs/candidate-system-implementation-plan.md §6. <> <> <> // Scene witnessed. Convention: $seen_. <> // Clue coverage flags. One per registry clue id ($found_). Writers // <> these at the discovery beat alongside the lean write. Lean tracks // belief (and can move on a Wrong Truth failure); $found_* tracks coverage. // No code reads these. <> <> <> <> <> <> <> <> <> <> <> <> <> <> // Exploration gating. Clue availability is exploration-gated, never skill-gated. // Convention: $visited_ on first arrival; $errand_ when // an errand reaches the state that matters. Writers <> these from scene // content. unlockFlag fields in candidates.json may only name these families. <> <> <> <> <> <> <> <> <> <> <> <> // Player name substitution. Uppercase [PC] in the Skill Bible means the full, // formal form (STANDING ORDER, PROVENANCE); lowercase [pc] means the familiar // short form (CONFLUENCE, FACEWORK). Two variables, not one — collapsing them // loses a characterisation rule the bible states for four separate voices. // Defaults are placeholders; naming the PC is design's call. <> <> // Club alias. Smart variable: deterministically derived from $player_name via // AliasNameGenerator.alias_name (hash-seeded pick from two word pools), so it // is never in sync-drift and never <> by hand. Same real name always // yields the same alias; the alias itself bears no resemblance to the input. <> // Information about history and symbols <> <> // Character dialogue gates <> <> ===