{
  "id": "camp-anniversary-file",
  "title": "The Anniversary File",
  "category": "Grief And Anniversaries",
  "status": "free_pilot",
  "price_label": "Free pilot",
  "purchase_note": "Designed as the first campaign sample. Future campaigns can unlock after purchase.",
  "short_pitch": "A linked grief story where the deck itself starts narrowed by what the family cannot yet say.",
  "description": "Campaigns are curated case-file novellas. They use the same Step Away deck, but the story shapes which cards are available. Cards removed from the deck are not generic difficulty, they are missing kinds of support. As chapters resolve, people recover access to specific cards and the final epitaph changes.",
  "campaign_resource": {
    "name": "Threadlight",
    "starting": 6,
    "floor": 1,
    "replay_cost": 3,
    "text": "Threadlight is the campaign's shared room to try again, restore cards, and keep people connected. Spend it carefully. It prevents a death spiral, but it is not infinite."
  },
  "deck": {
    "rule": "Story-shaped deck. Remove the listed cards before Chapter 1. Restored cards are added back only when the app tells you. Do not use a generic reduced deck.",
    "starting_removed": [
      "♦Q",
      "♦K",
      "♦A",
      "♥A",
      "♣8",
      "♣9",
      "♣10",
      "♣J",
      "♣Q",
      "♣K",
      "♣A",
      "♠K",
      "♠A"
    ],
    "starting_reason": "The anniversary begins with the hardest truths unspoken, practical help not yet mobilised, the strongest anchor absent, and the final safety interventions not yet trusted.",
    "restore_costs": {
      "2-5": 1,
      "6-10": 2,
      "JQK": 3,
      "A": 5
    },
    "restore_market": [
      {
        "card": "♦Q",
        "label": "Name the pattern",
        "story": "Someone starts seeing the repetition instead of treating every warning as isolated."
      },
      {
        "card": "♦K",
        "label": "Bring the truth closer",
        "story": "The family becomes able to say what they have been circling."
      },
      {
        "card": "♥A",
        "label": "Recover the lost anchor",
        "story": "The old ritual stops being only pain and becomes something that can hold a person."
      },
      {
        "card": "♣J",
        "label": "Open practical support",
        "story": "People stop offering concern and begin taking weight off the week."
      },
      {
        "card": "♣Q",
        "label": "Coordinate the week",
        "story": "Transport, meals, calls and appointments finally start linking together."
      },
      {
        "card": "♠K",
        "label": "Make a real safety plan",
        "story": "The table can act decisively when the room narrows."
      },
      {
        "card": "♠A",
        "label": "Secure the final moment",
        "story": "Immediate safety stops being improvised and becomes available."
      }
    ]
  },
  "characters": [
    {
      "id": "rowan",
      "name": "Rowan Vale",
      "role": "the person carrying the date",
      "icon": "◫",
      "text": "Rowan is approaching the anniversary that everyone else has started treating as ordinary.",
      "initial_state": {
        "seen": 1,
        "held": 2,
        "helped": 0,
        "secured": 1,
        "pressure": 5,
        "anchors": 1,
        "state": "Strained"
      }
    },
    {
      "id": "mara",
      "name": "Mara Vale",
      "role": "older sister",
      "icon": "♥",
      "text": "Mara keeps checking in, but her help has started sounding like management rather than care.",
      "initial_state": {
        "seen": 1,
        "held": 1,
        "helped": 1,
        "secured": 1,
        "pressure": 4,
        "anchors": 1,
        "state": "Carrying too much"
      }
    },
    {
      "id": "joel",
      "name": "Joel Park",
      "role": "old friend",
      "icon": "♦",
      "text": "Joel notices the old pattern before he knows what to call it.",
      "initial_state": {
        "seen": 2,
        "held": 0,
        "helped": 0,
        "secured": 1,
        "pressure": 3,
        "anchors": 0,
        "state": "Outside the room"
      }
    },
    {
      "id": "elsie",
      "name": "Elsie Grant",
      "role": "neighbour and routine anchor",
      "icon": "♣",
      "text": "Elsie is not family, but she is part of the week that used to keep Rowan moving.",
      "initial_state": {
        "seen": 1,
        "held": 1,
        "helped": 2,
        "secured": 0,
        "pressure": 2,
        "anchors": 2,
        "state": "Quiet anchor"
      }
    }
  ],
  "chapters": [
    {
      "id": "ch-1",
      "case_id": "CF-025",
      "title": "Chapter 1, The Date Starts Moving",
      "focus_character_id": "rowan",
      "focus_character": "Rowan Vale",
      "intro": "The anniversary is still days away, but Rowan has already started living as if it has arrived. Messages shorten. Food goes uneaten. The old playlist appears again.",
      "deck_note": "Begin with the story-shaped deck. Truth and practical relief are deliberately thinned because nobody has named what is happening yet.",
      "stakes": "If Rowan steps away here, the campaign opens with enough truth in the room. If not, the next chapter begins with the family guessing instead of knowing.",
      "hint": "Seen and Held matter early. Do not ignore practical collapse if it appears.",
      "on_stepped_away": {
        "threadlight": 3,
        "restore": [
          "♦Q"
        ],
        "character_delta": {
          "rowan": {
            "seen": 2,
            "held": 1,
            "pressure": -2,
            "anchors": 1,
            "state": "Seen before the date"
          },
          "joel": {
            "seen": 1
          }
        },
        "narrative": "Rowan does not become safe because the date vanished. They step away because someone finally names the pattern before it finishes closing."
      },
      "on_not_stepped_away": {
        "threadlight": 1,
        "restore": [
          "♦8"
        ],
        "character_delta": {
          "rowan": {
            "pressure": 2,
            "state": "Withdrawing"
          },
          "mara": {
            "pressure": 1
          }
        },
        "narrative": "The warning signs are not gone. They are just better hidden. The campaign gives you a smaller noticing tool, but the bigger truth stays locked."
      }
    },
    {
      "id": "ch-2",
      "case_id": "CF-026",
      "title": "Chapter 2, What Mara Carries",
      "focus_character_id": "mara",
      "focus_character": "Mara Vale",
      "intro": "Mara is trying to keep everyone upright. She says she is fine because someone has to be. The campaign now asks whether the helper is also becoming a case.",
      "deck_note": "Mara's chapter tests whether practical support can come back into the deck. Concern is not enough if the same person carries every job.",
      "stakes": "If Mara steps away, the support network gets softer instead of stricter. If she does not, Rowan's world keeps being held by someone quietly fraying.",
      "hint": "Held and Helped are both valuable. A crisis may punish relying on only one.",
      "on_stepped_away": {
        "threadlight": 3,
        "restore": [
          "♣J",
          "♥K"
        ],
        "character_delta": {
          "mara": {
            "held": 2,
            "helped": 2,
            "pressure": -2,
            "state": "No longer sole carrier"
          },
          "rowan": {
            "held": 1,
            "pressure": -1
          }
        },
        "narrative": "Mara lets help become shared instead of supervised. A practical route opens because the family stops making her the system."
      },
      "on_not_stepped_away": {
        "threadlight": 1,
        "restore": [
          "♣6"
        ],
        "lock": [
          "♥K"
        ],
        "character_delta": {
          "mara": {
            "pressure": 2,
            "state": "Fraying"
          },
          "rowan": {
            "pressure": 1
          }
        },
        "narrative": "Mara keeps functioning, which is not the same as being held. The campaign gives back admin-level help, but a deeper connection card stays out."
      }
    },
    {
      "id": "ch-3",
      "case_id": "CF-029",
      "title": "Chapter 3, The Room Narrows",
      "focus_character_id": "rowan",
      "focus_character": "Rowan Vale",
      "intro": "The date is here. The house has too many ordinary objects and none of them feel ordinary. What was missed now has weight.",
      "deck_note": "This chapter can add the sharpest safety cards, but only if the previous support has made the table willing to act.",
      "stakes": "This is the centre of the campaign. A clean save changes the ending table. A miss does not end the campaign, but it changes who has to carry the aftermath.",
      "hint": "Risk Event Mode is allowed but brutal here. Secured matters late.",
      "on_stepped_away": {
        "threadlight": 4,
        "restore": [
          "♠K",
          "♦K"
        ],
        "character_delta": {
          "rowan": {
            "secured": 3,
            "seen": 1,
            "pressure": -3,
            "anchors": 1,
            "state": "Through the date"
          },
          "elsie": {
            "anchors": 1
          }
        },
        "narrative": "The room narrows, but it does not close. Safety becomes something the table can do, not just hope for."
      },
      "on_not_stepped_away": {
        "threadlight": 1,
        "restore": [
          "♠7"
        ],
        "lock": [
          "♠K"
        ],
        "character_delta": {
          "rowan": {
            "pressure": 3,
            "secured": -1,
            "state": "Critical aftermath"
          },
          "mara": {
            "pressure": 2
          },
          "joel": {
            "pressure": 1
          }
        },
        "narrative": "The campaign does not end, but the centre does not hold cleanly. Smaller safety planning remains possible. Decisive safety stays harder to reach."
      }
    },
    {
      "id": "ch-4",
      "case_id": "CF-030",
      "title": "Chapter 4, The Person Everyone Forgot",
      "focus_character_id": "elsie",
      "focus_character": "Elsie Grant",
      "intro": "Elsie remembers dates other people forget. She also remembers what Rowan used to be like before the room changed. The campaign widens to the quiet witness.",
      "deck_note": "Elsie's chapter favours ordinary practical cards and the soft recovery of anchors. The deck should feel less heroic and more lived-in.",
      "stakes": "If Elsie steps away, the final chapter keeps a living anchor. If not, the ending loses one of its simplest routes back to tomorrow.",
      "hint": "Small Helped cards are not weak here. They keep the ordinary world stitched together.",
      "on_stepped_away": {
        "threadlight": 3,
        "restore": [
          "♣Q",
          "♥A"
        ],
        "character_delta": {
          "elsie": {
            "helped": 2,
            "held": 1,
            "pressure": -2,
            "anchors": 2,
            "state": "Anchor restored"
          },
          "rowan": {
            "anchors": 1,
            "pressure": -1
          }
        },
        "narrative": "The ordinary world re-enters the file. A walk, a meal, a remembered song. Not dramatic, but strong enough to matter."
      },
      "on_not_stepped_away": {
        "threadlight": 1,
        "restore": [
          "♣9"
        ],
        "character_delta": {
          "elsie": {
            "pressure": 2,
            "state": "Fading from the edge"
          },
          "rowan": {
            "anchors": -1
          }
        },
        "narrative": "Elsie remains near the story, but not fully reached. The campaign keeps some ordinary help, but the old anchor does not fully return."
      }
    },
    {
      "id": "ch-5",
      "case_id": "CF-032",
      "title": "Chapter 5, The Week After",
      "focus_character_id": "joel",
      "focus_character": "Joel Park",
      "intro": "After the anniversary, Joel finally understands that noticing was only the first step. The campaign closes on what people do after the emergency stops looking obvious.",
      "deck_note": "The final chapter uses whatever the campaign rebuilt. You are not meant to have everything. You are meant to know what your table chose to restore.",
      "stakes": "The final campaign ending is based on how many people stepped away across all five chapters. Replay to unlock the endings you missed.",
      "hint": "Do not chase perfect. Build enough for the ending to change.",
      "on_stepped_away": {
        "threadlight": 2,
        "restore": [
          "♠A"
        ],
        "character_delta": {
          "joel": {
            "seen": 2,
            "secured": 2,
            "pressure": -2,
            "state": "Stays after the emergency"
          }
        },
        "narrative": "Joel stays past the dramatic part. The campaign closes with follow-through, not a speech."
      },
      "on_not_stepped_away": {
        "threadlight": 0,
        "character_delta": {
          "joel": {
            "pressure": 2,
            "state": "Learnt too late"
          }
        },
        "narrative": "Joel notices, but after the room has already moved. The ending will remember what was late."
      }
    }
  ],
  "campaign_events": [
    {
      "id": "old-playlist",
      "title": "Old Playlist",
      "type": "choice",
      "text": "A song returns before anyone says why. Restore ♥A for 5 Threadlight, or gain 1 Threadlight and leave it locked."
    },
    {
      "id": "missed-call",
      "title": "Missed Call",
      "type": "pressure",
      "text": "If a chapter is replayed, one unfocused character gains Pressure +1. The campaign bends, but it remembers."
    },
    {
      "id": "the-box-under-bed",
      "title": "The Box Under The Bed",
      "type": "deck",
      "text": "If Rowan reaches stepped-away status twice, restore ♦A at no Threadlight cost. The whole picture becomes nameable."
    }
  ],
  "endings": [
    {
      "id": "all-held",
      "threshold": 5,
      "title": "The Table Still Has Seats",
      "hint": "Unlock by helping every campaign chapter reach stepped-away status.",
      "text": "The anniversary does not become easy, but it stops being a private room. Rowan, Mara, Joel and Elsie each keep a place at the table. The date returns, and this time it finds people already there."
    },
    {
      "id": "most-held",
      "threshold": 4,
      "title": "A Different Anniversary",
      "hint": "Unlock by saving most of the people in the campaign.",
      "text": "Not every thread holds cleanly, but enough of them remain. The anniversary comes back altered, less like a trap and more like a hard ritual people can survive together."
    },
    {
      "id": "half-held",
      "threshold": 3,
      "title": "The House Still Remembers",
      "hint": "Unlock by saving three campaign chapters.",
      "text": "Some people step away and some do not. The campaign ends with an honest kind of grief: not fixed, not lost, still asking to be tended."
    },
    {
      "id": "few-held",
      "threshold": 1,
      "title": "What Stayed Unsaid",
      "hint": "Unlock by completing the campaign with only one or two stepped-away chapters.",
      "text": "The final file is full of almosts. Almost asked. Almost stayed. Almost named. The campaign leaves a clear lesson: noticing late still matters, but it cannot carry everything alone."
    },
    {
      "id": "none-held",
      "threshold": 0,
      "title": "The Empty Week",
      "hint": "Unlock by completing all chapters without any stepped-away campaign outcome.",
      "text": "No single moment explains what happened. The week empties slowly. The file closes without triumph, but not without meaning. The path remains readable for the next table."
    }
  ]
}