// 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. <> // Set when the player has tried the "I'm on the list" line at least once. <> // The bouncer's verdict, read by the scene that called him. <> // Smart variable: derived, not stored. Can never drift out of sync with // $reputation, so there's nothing to remember to update. < 10>> // 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. <> <> ===