{
  "manifest_version": "0.2.0",
  "prototype_name": "Hallyu Hex Prototype v0 Starter Decks",
  "rights_policy": {
    "summary": "Every card in this file uses invented placeholder names, lines, and visual descriptions. No real idol, actor, drama, lyric, image, or fan translation is used.",
    "production_requirement": "Replace placeholder source fields with licensed or freely usable source material before any public or commercial card release."
  },
  "tag_namespace": {
    "tag_family": "placeholder-visual-tags",
    "reserved_range_min": 900001,
    "reserved_range_max": 900099,
    "note": "The tag_id values reserve future AprilTag payloads. The printable sheet renders deterministic placeholders, not real AprilTags."
  },
  "effect_schema": {
    "version": "0.1.0",
    "effect_order": "array-order",
    "action_order": "array-order",
    "condition_failure": "skip-guarded-action",
    "targets_chosen": "before-cost-payment",
    "allowed_play_windows": [
      "damage-pending-to-controller",
      "main"
    ],
    "allowed_counter_names": [
      "scandal",
      "teaser"
    ],
    "allowed_events": [
      "card-cast",
      "card-pending",
      "damage-pending",
      "resource-gained",
      "target-pending",
      "turn-end"
    ],
    "allowed_effect_kinds": [
      "activated",
      "on-enter",
      "on-resolve",
      "replacement",
      "response",
      "static",
      "triggered"
    ],
    "allowed_action_ops": [
      "add-counter",
      "change-tone",
      "choose-one",
      "counter-card",
      "deal-damage",
      "draw",
      "gain-resource",
      "look-at-top",
      "lose-resource",
      "modify-cost",
      "move-counter",
      "move-top-to-bottom",
      "prevent-damage",
      "redirect-target",
      "remove-counter",
      "return-card"
    ],
    "allowed_condition_facts": [
      "all-players-control",
      "any-player-controls",
      "cards-cast-this-turn",
      "controller-controls",
      "event-count",
      "pending-damage",
      "resource-changed-this-turn",
      "resource-lost-this-turn",
      "source-counter",
      "trigger-source-card"
    ]
  },
  "playtest_defaults": {
    "players": 2,
    "starting_composure": 20,
    "starting_trend": 0,
    "trend_target": 10,
    "trend_direction": "gain-to-win",
    "starting_fandom": 0,
    "starting_hand": 5,
    "max_copies_per_card": 1,
    "target_session_minutes": 30,
    "turn_limit_rounds": 20
  },
  "rules": {
    "version": "0.2.0",
    "zones": {
      "deck": "private-ordered",
      "hand": "private-unordered",
      "stars": "public-unordered",
      "scene": "public-singleton-per-player",
      "discard": "public-ordered",
      "stack": "shared-public-ordered"
    },
    "setup": {
      "first_player": "seeded-random",
      "shuffle": "seeded-per-deck",
      "mulligan": "none",
      "first_player_skips_first_draw": true
    },
    "fandom": {
      "starting_capacity": 0,
      "capacity_gain_per_turn": 1,
      "capacity_cap": 5,
      "pool_cap": 10,
      "refill": "set-to-capacity",
      "star_income": "after-refill-sum-active-star-fandom",
      "carry_over": false,
      "cost_payment": "before-responses",
      "countered_card_refund": false,
      "cost_floor": 0
    },
    "stars": {
      "printed_stats": ["fandom", "scandal"],
      "scandal_limit": 3,
      "scandal_limit_result": "discard-star",
      "combat_enabled": false
    },
    "turn": {
      "phases": ["start", "draw", "main", "end"],
      "start_steps": [
        "reset-turn-trackers",
        "ready-controlled-cards",
        "increase-fandom-capacity",
        "refill-fandom",
        "gain-star-fandom"
      ],
      "draw_count": 1,
      "main_action_limit": "none",
      "main_actions": ["cast-affordable-card", "activate-card-ability", "pass"],
      "end_steps": ["resolve-end-effects", "expire-temporary-effects"],
      "stack_must_be_empty_to_advance": true
    },
    "card_destinations": {
      "Star": "stars",
      "Scene": "replace-scene",
      "Fandom": "resolve-then-discard",
      "Hex Line": "resolve-then-discard",
      "Plot Twist": "resolve-then-discard",
      "Encore": "resolve-then-discard"
    },
    "responses": {
      "stack_resolution": "last-in-first-out",
      "priority": "opponent-first-then-alternate",
      "close_condition": "all-players-pass-consecutively",
      "legal_response": "effect-window-matches-pending-event"
    },
    "targets": {
      "declaration_steps": [
        "choose-card-or-ability",
        "choose-legal-targets",
        "calculate-cost-floor-zero",
        "pay-fandom",
        "put-on-stack"
      ],
      "illegal_on_resolution": "effect-fizzles",
      "paid_cost_refund": false
    },
    "composure": {
      "damage_is_preventable": true,
      "loss_is_preventable": false,
      "minimum": 0
    },
    "terminal": {
      "check_timing": "after-each-atomic-effect-and-end-step",
      "composure_zero_overrides_own_trend": true,
      "simultaneous_terminal_result": "draw",
      "empty_deck_draw_result": "lose-one-composure",
      "turn_limit_tiebreakers": ["higher-trend", "higher-composure", "draw"]
    }
  },
  "decks": [
    {
      "id": "COMEBACK_COVEN",
      "name": "Comeback Coven",
      "strategy": "Build Fandom with teasers and chants, then chain chorus Hex Lines into a late Encore.",
      "cards": [
        "HHX-PROTO-001",
        "HHX-PROTO-002",
        "HHX-PROTO-003",
        "HHX-PROTO-004",
        "HHX-PROTO-005",
        "HHX-PROTO-006",
        "HHX-PROTO-007",
        "HHX-PROTO-008",
        "HHX-PROTO-009",
        "HHX-PROTO-010",
        "HHX-PROTO-011",
        "HHX-PROTO-012"
      ]
    },
    {
      "id": "ROOFTOP_TEMPO",
      "name": "Rooftop Confession Tempo",
      "strategy": "Pressure Composure with fast confession lines while Scenes and Plot Twists redirect danger.",
      "cards": [
        "HHX-PROTO-013",
        "HHX-PROTO-014",
        "HHX-PROTO-015",
        "HHX-PROTO-016",
        "HHX-PROTO-017",
        "HHX-PROTO-018",
        "HHX-PROTO-019",
        "HHX-PROTO-020",
        "HHX-PROTO-021",
        "HHX-PROTO-022",
        "HHX-PROTO-023",
        "HHX-PROTO-024"
      ]
    }
  ],
  "cards": [
    {
      "id": "HHX-PROTO-001",
      "card_code": "HHX-001",
      "tag_id": 900001,
      "deck": "COMEBACK_COVEN",
      "name": "Neon Debut Leader",
      "type": "Star",
      "cost": 0,
      "tone": ["bright", "commanding"],
      "stats": {
        "fandom": 2,
        "scandal": 0
      },
      "rules_text": "Once per turn, when you cast your first Hex Line, gain 1 Fandom.",
      "effects": [
        {
          "id": "HHX-PROTO-001-E1",
          "kind": "triggered",
          "text": "Once per turn, when you cast your first Hex Line, gain 1 Fandom.",
          "trigger": {
            "event": "card-cast",
            "player": "controller",
            "card": {"type": "Hex Line"},
            "ordinal": 1
          },
          "limit": {"count": 1, "scope": "turn"},
          "actions": [
            {"op": "gain-resource", "player": "controller", "resource": "fandom", "amount": 1}
          ]
        }
      ],
      "flavor_title": "Opening pose catches every camera.",
      "visual": {
        "palette": "neon coral and ink",
        "motif": "stage lights forming a crown"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype star and line.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-002",
      "card_code": "HHX-002",
      "tag_id": 900002,
      "deck": "COMEBACK_COVEN",
      "name": "Midnight Main Vocal",
      "type": "Star",
      "cost": 0,
      "tone": ["dramatic", "resonant"],
      "stats": {
        "fandom": 2,
        "scandal": 0
      },
      "rules_text": "Your Encore cards cost 1 less Fandom while this Star has no Scandal.",
      "effects": [
        {
          "id": "HHX-PROTO-002-E1",
          "kind": "static",
          "text": "Your Encore cards cost 1 less Fandom while this Star has no Scandal.",
          "condition": {
            "fact": "source-counter",
            "counter": "scandal",
            "operator": "eq",
            "value": 0
          },
          "actions": [
            {
              "op": "modify-cost",
              "card": {"controller": "controller", "type": "Encore"},
              "amount": -1,
              "duration": "while-source-active"
            }
          ]
        }
      ],
      "flavor_title": "The bridge note makes the room hold its breath.",
      "visual": {
        "palette": "violet, white, and black",
        "motif": "sound wave over a moonlit mic"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype star and line.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-003",
      "card_code": "HHX-003",
      "tag_id": 900003,
      "deck": "COMEBACK_COVEN",
      "name": "Lightstick Wave",
      "type": "Fandom",
      "cost": 0,
      "tone": ["bright", "collective"],
      "rules_text": "Gain 2 Fandom. If you control a Scene, gain 1 additional Fandom.",
      "effects": [
        {
          "id": "HHX-PROTO-003-E1",
          "kind": "on-resolve",
          "text": "Gain 2 Fandom. If you control a Scene, gain 1 additional Fandom.",
          "actions": [
            {"op": "gain-resource", "player": "controller", "resource": "fandom", "amount": 2},
            {
              "op": "gain-resource",
              "player": "controller",
              "resource": "fandom",
              "amount": 1,
              "condition": {"fact": "controller-controls", "card": {"type": "Scene"}}
            }
          ]
        }
      ],
      "flavor_title": "A thousand tiny stars learn choreography.",
      "visual": {
        "palette": "cyan, white, and charcoal",
        "motif": "rows of lightsticks in a ripple"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype fandom moment.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-004",
      "card_code": "HHX-004",
      "tag_id": 900004,
      "deck": "COMEBACK_COVEN",
      "name": "Streaming Party Surge",
      "type": "Fandom",
      "cost": 1,
      "tone": ["urgent", "collective"],
      "rules_text": "Gain 1 Fandom for each Hex Line you have cast this turn, then draw a card.",
      "effects": [
        {
          "id": "HHX-PROTO-004-E1",
          "kind": "on-resolve",
          "text": "Gain 1 Fandom for each Hex Line you have cast this turn, then draw a card.",
          "actions": [
            {
              "op": "gain-resource",
              "player": "controller",
              "resource": "fandom",
              "amount": {
                "count": "cards-cast",
                "player": "controller",
                "card": {"type": "Hex Line"},
                "scope": "turn"
              }
            },
            {"op": "draw", "player": "controller", "amount": 1}
          ]
        }
      ],
      "flavor_title": "Refresh, replay, synchronize, repeat.",
      "visual": {
        "palette": "electric blue and hot pink",
        "motif": "stacked play buttons"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype fandom moment.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-005",
      "card_code": "HHX-005",
      "tag_id": 900005,
      "deck": "COMEBACK_COVEN",
      "name": "Countdown Teaser Room",
      "type": "Scene",
      "cost": 1,
      "tone": ["suspense", "gloss"],
      "rules_text": "When this Scene enters, put a Teaser counter on it. Remove a Teaser counter: your next Hex Line costs 1 less.",
      "effects": [
        {
          "id": "HHX-PROTO-005-E1",
          "kind": "on-enter",
          "text": "When this Scene enters, put a Teaser counter on it.",
          "actions": [
            {"op": "add-counter", "card": "source", "counter": "teaser", "amount": 1}
          ]
        },
        {
          "id": "HHX-PROTO-005-E2",
          "kind": "activated",
          "text": "Remove a Teaser counter: your next Hex Line costs 1 less.",
          "activation_cost": [
            {"op": "remove-counter", "card": "source", "counter": "teaser", "amount": 1}
          ],
          "actions": [
            {
              "op": "modify-cost",
              "card": {"controller": "controller", "type": "Hex Line"},
              "amount": -1,
              "duration": "next-matching-card-this-turn"
            }
          ]
        }
      ],
      "flavor_title": "Every reflection has a release date.",
      "visual": {
        "palette": "silver, black, and lime",
        "motif": "mirrors with timer digits"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype scene.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-006",
      "card_code": "HHX-006",
      "tag_id": 900006,
      "deck": "COMEBACK_COVEN",
      "name": "Comeback Stage Drop",
      "type": "Scene",
      "cost": 2,
      "tone": ["bright", "overwhelming"],
      "rules_text": "The first time a Hex Line or Encore makes you gain Trend each turn, gain 1 additional Trend. If it is an Encore, gain 2 additional Trend instead.",
      "effects": [
        {
          "id": "HHX-PROTO-006-E1",
          "kind": "triggered",
          "text": "The first time a Hex Line or Encore makes you gain Trend each turn, gain 1 additional Trend. If it is an Encore, gain 2 additional Trend instead.",
          "trigger": {
            "event": "resource-gained",
            "player": "controller",
            "resource": "trend",
            "cause": {"type_in": ["Hex Line", "Encore"]}
          },
          "limit": {"count": 1, "scope": "turn"},
          "actions": [
            {"op": "gain-resource", "player": "controller", "resource": "trend", "amount": 1},
            {
              "op": "gain-resource",
              "player": "controller",
              "resource": "trend",
              "amount": 1,
              "condition": {
                "fact": "trigger-source-card",
                "operator": "has-type",
                "value": "Encore"
              }
            }
          ]
        }
      ],
      "flavor_title": "The floor opens exactly when the chorus lands.",
      "visual": {
        "palette": "gold, red, and black",
        "motif": "trapdoor stage with confetti"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype scene.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-007",
      "card_code": "HHX-007",
      "tag_id": 900007,
      "deck": "COMEBACK_COVEN",
      "name": "Chorus Hex",
      "type": "Hex Line",
      "cost": 2,
      "tone": ["bright", "attack"],
      "rules_text": "Gain 3 Trend. If you gained Fandom this turn, deal 1 Composure damage too.",
      "effects": [
        {
          "id": "HHX-PROTO-007-E1",
          "kind": "on-resolve",
          "text": "Gain 3 Trend. If you gained Fandom this turn, deal 1 Composure damage too.",
          "actions": [
            {"op": "gain-resource", "player": "controller", "resource": "trend", "amount": 3},
            {
              "op": "deal-damage",
              "player": "opponent",
              "amount": 1,
              "condition": {
                "fact": "resource-changed-this-turn",
                "player": "controller",
                "resource": "fandom",
                "direction": "gained"
              }
            }
          ]
        }
      ],
      "flavor_title": "A hook sharp enough to catch the skyline.",
      "visual": {
        "palette": "orange, magenta, and black",
        "motif": "lyric syllables as sparks"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype hex title and effect.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-008",
      "card_code": "HHX-008",
      "tag_id": 900008,
      "deck": "COMEBACK_COVEN",
      "name": "Camera Snap Counter",
      "type": "Hex Line",
      "cost": 2,
      "tone": ["sharp", "counter"],
      "rules_text": "Counter a Hex Line that would deal you Composure damage. Gain 1 Trend.",
      "effects": [
        {
          "id": "HHX-PROTO-008-E1",
          "kind": "response",
          "text": "Counter a Hex Line that would deal you Composure damage. Gain 1 Trend.",
          "window": {
            "event": "card-pending",
            "card": {"type": "Hex Line"},
            "would": {"op": "deal-damage", "player": "controller"}
          },
          "targets": [
            {"id": "pending_hex", "kind": "card", "selector": "pending-card"}
          ],
          "actions": [
            {"op": "counter-card", "card": "pending_hex"},
            {"op": "gain-resource", "player": "controller", "resource": "trend", "amount": 1}
          ]
        }
      ],
      "flavor_title": "The lens finds the comeback angle.",
      "visual": {
        "palette": "white, black, and teal",
        "motif": "camera flash breaking a spell ring"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype hex title and effect.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-009",
      "card_code": "HHX-009",
      "tag_id": 900009,
      "deck": "COMEBACK_COVEN",
      "name": "Encore Spark",
      "type": "Hex Line",
      "cost": 3,
      "tone": ["bright", "recursion"],
      "rules_text": "Return a Fandom card from your discard to your hand. If a Scene is active, gain 2 Trend.",
      "effects": [
        {
          "id": "HHX-PROTO-009-E1",
          "kind": "on-resolve",
          "text": "Return a Fandom card from your discard to your hand. If a Scene is active, gain 2 Trend.",
          "targets": [
            {
              "id": "discarded_fandom",
              "kind": "card",
              "controller": "controller",
              "zone": "discard",
              "card": {"type": "Fandom"}
            }
          ],
          "actions": [
            {
              "op": "return-card",
              "card": "discarded_fandom",
              "from_zone": "discard",
              "to_zone": "hand"
            },
            {
              "op": "gain-resource",
              "player": "controller",
              "resource": "trend",
              "amount": 2,
              "condition": {"fact": "any-player-controls", "card": {"type": "Scene"}}
            }
          ]
        }
      ],
      "flavor_title": "The last note refuses to leave.",
      "visual": {
        "palette": "yellow, indigo, and white",
        "motif": "microphone cable as a loop"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype hex title and effect.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-010",
      "card_code": "HHX-010",
      "tag_id": 900010,
      "deck": "COMEBACK_COVEN",
      "name": "Dating Rumor Check",
      "type": "Plot Twist",
      "cost": 1,
      "tone": ["scandal", "risk"],
      "rules_text": "Choose a Star. It gains 1 Scandal. Then draw a card, or, if played in response to incoming damage, prevent 2 of that damage.",
      "effects": [
        {
          "id": "HHX-PROTO-010-E1",
          "kind": "on-resolve",
          "text": "Choose a Star. It gains 1 Scandal. Then draw a card, or, if played in response to incoming damage, prevent 2 of that damage.",
          "play_windows": ["main", "damage-pending-to-controller"],
          "targets": [
            {
              "id": "chosen_star",
              "kind": "card",
              "controller": "any",
              "zone": "stars",
              "card": {"type": "Star"}
            }
          ],
          "actions": [
            {"op": "add-counter", "card": "chosen_star", "counter": "scandal", "amount": 1},
            {
              "op": "choose-one",
              "player": "controller",
              "options": [
                {
                  "id": "draw",
                  "actions": [
                    {"op": "draw", "player": "controller", "amount": 1}
                  ]
                },
                {
                  "id": "prevent",
                  "legal_when": {"fact": "pending-damage", "player": "controller"},
                  "actions": [
                    {"op": "prevent-damage", "player": "controller", "amount": 2}
                  ]
                }
              ]
            }
          ]
        }
      ],
      "flavor_title": "The notification arrives three seconds too early.",
      "visual": {
        "palette": "red, gray, and pearl",
        "motif": "blurred headline over lock-screen bubbles"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype trope event.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-011",
      "card_code": "HHX-011",
      "tag_id": 900011,
      "deck": "COMEBACK_COVEN",
      "name": "Surprise Concept Photo",
      "type": "Plot Twist",
      "cost": 1,
      "tone": ["gloss", "tempo"],
      "rules_text": "Move a Teaser counter from any card to one of your cards, then gain 1 Fandom.",
      "effects": [
        {
          "id": "HHX-PROTO-011-E1",
          "kind": "on-resolve",
          "text": "Move a Teaser counter from any card to one of your cards, then gain 1 Fandom.",
          "targets": [
            {
              "id": "teaser_source",
              "kind": "card",
              "controller": "any",
              "zone": "public",
              "has_counter": "teaser"
            },
            {
              "id": "teaser_destination",
              "kind": "card",
              "controller": "controller",
              "zone": "public"
            }
          ],
          "actions": [
            {
              "op": "move-counter",
              "counter": "teaser",
              "from_card": "teaser_source",
              "to_card": "teaser_destination",
              "amount": 1
            },
            {"op": "gain-resource", "player": "controller", "resource": "fandom", "amount": 1}
          ]
        }
      ],
      "flavor_title": "The timeline decides sleep is cancelled.",
      "visual": {
        "palette": "mint, black, and silver",
        "motif": "photo frame with torn schedule tape"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype trope event.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-012",
      "card_code": "HHX-012",
      "tag_id": 900012,
      "deck": "COMEBACK_COVEN",
      "name": "Final Chorus Bloom",
      "type": "Encore",
      "cost": 5,
      "tone": ["bright", "finisher"],
      "rules_text": "Gain 5 Trend. If you cast three or more cards this turn, deal 3 Composure damage.",
      "effects": [
        {
          "id": "HHX-PROTO-012-E1",
          "kind": "on-resolve",
          "text": "Gain 5 Trend. If you cast three or more cards this turn, deal 3 Composure damage.",
          "actions": [
            {"op": "gain-resource", "player": "controller", "resource": "trend", "amount": 5},
            {
              "op": "deal-damage",
              "player": "opponent",
              "amount": 3,
              "condition": {
                "fact": "cards-cast-this-turn",
                "player": "controller",
                "operator": "gte",
                "value": 3
              }
            }
          ]
        }
      ],
      "flavor_title": "Every teaser becomes true at once.",
      "visual": {
        "palette": "gold, pink, and midnight",
        "motif": "flower made from stage spotlights"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype finisher.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-013",
      "card_code": "HHX-013",
      "tag_id": 900013,
      "deck": "ROOFTOP_TEMPO",
      "name": "Rain-Cut Second Lead",
      "type": "Star",
      "cost": 0,
      "tone": ["tragic", "protective"],
      "stats": {
        "fandom": 1,
        "scandal": 0
      },
      "rules_text": "The first time each turn you would take Composure damage, prevent 1 of that damage.",
      "effects": [
        {
          "id": "HHX-PROTO-013-E1",
          "kind": "replacement",
          "text": "The first time each turn you would take Composure damage, prevent 1 of that damage.",
          "window": {"event": "damage-pending", "player": "controller"},
          "limit": {"count": 1, "scope": "turn"},
          "actions": [
            {"op": "prevent-damage", "player": "controller", "amount": 1}
          ]
        }
      ],
      "flavor_title": "Arrives with an umbrella and terrible timing.",
      "visual": {
        "palette": "blue, gray, and white",
        "motif": "umbrella under rooftop lights"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype star and line.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-014",
      "card_code": "HHX-014",
      "tag_id": 900014,
      "deck": "ROOFTOP_TEMPO",
      "name": "Contract-Romance Rival",
      "type": "Star",
      "cost": 0,
      "tone": ["sharp", "scheming"],
      "stats": {
        "fandom": 1,
        "scandal": 1
      },
      "rules_text": "When an opponent gains Trend from a Scene, you may pay 1 Fandom to gain 1 Trend too.",
      "effects": [
        {
          "id": "HHX-PROTO-014-E1",
          "kind": "triggered",
          "text": "When an opponent gains Trend from a Scene, you may pay 1 Fandom to gain 1 Trend too.",
          "trigger": {
            "event": "resource-gained",
            "player": "opponent",
            "resource": "trend",
            "cause": {"type": "Scene"}
          },
          "optional": true,
          "activation_cost": [
            {"op": "lose-resource", "player": "controller", "resource": "fandom", "amount": 1}
          ],
          "actions": [
            {"op": "gain-resource", "player": "controller", "resource": "trend", "amount": 1}
          ]
        }
      ],
      "flavor_title": "Every clause has eye contact.",
      "visual": {
        "palette": "emerald, black, and cream",
        "motif": "contract paper folded into a dagger"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype star and line.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-015",
      "card_code": "HHX-015",
      "tag_id": 900015,
      "deck": "ROOFTOP_TEMPO",
      "name": "Group Chat Receipts",
      "type": "Fandom",
      "cost": 0,
      "tone": ["urgent", "scheming"],
      "rules_text": "Gain 1 Fandom and look at the top card of each deck. You may put your card on the bottom.",
      "effects": [
        {
          "id": "HHX-PROTO-015-E1",
          "kind": "on-resolve",
          "text": "Gain 1 Fandom and look at the top card of each deck. You may put your card on the bottom.",
          "actions": [
            {"op": "gain-resource", "player": "controller", "resource": "fandom", "amount": 1},
            {"op": "look-at-top", "players": "all", "amount": 1},
            {"op": "move-top-to-bottom", "player": "controller", "optional": true}
          ]
        }
      ],
      "flavor_title": "Someone screenshotted destiny.",
      "visual": {
        "palette": "lime, charcoal, and white",
        "motif": "message bubbles in a branching path"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype fandom moment.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-016",
      "card_code": "HHX-016",
      "tag_id": 900016,
      "deck": "ROOFTOP_TEMPO",
      "name": "Midnight Watch Party",
      "type": "Fandom",
      "cost": 1,
      "tone": ["collective", "melodrama"],
      "rules_text": "Gain 2 Fandom. If you lost Composure this turn, draw a card.",
      "effects": [
        {
          "id": "HHX-PROTO-016-E1",
          "kind": "on-resolve",
          "text": "Gain 2 Fandom. If you lost Composure this turn, draw a card.",
          "actions": [
            {"op": "gain-resource", "player": "controller", "resource": "fandom", "amount": 2},
            {
              "op": "draw",
              "player": "controller",
              "amount": 1,
              "condition": {
                "fact": "resource-lost-this-turn",
                "player": "controller",
                "resource": "composure"
              }
            }
          ]
        }
      ],
      "flavor_title": "Nobody is emotionally ready, but everyone pressed play.",
      "visual": {
        "palette": "navy, amber, and white",
        "motif": "four screens glowing in the dark"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype fandom moment.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-017",
      "card_code": "HHX-017",
      "tag_id": 900017,
      "deck": "ROOFTOP_TEMPO",
      "name": "Rooftop After Rain",
      "type": "Scene",
      "cost": 1,
      "tone": ["tragic", "open", "rain"],
      "rules_text": "Confession Hex Lines cost 1 less. At end of turn, each player who cast no Hex Line loses 1 Composure.",
      "effects": [
        {
          "id": "HHX-PROTO-017-E1",
          "kind": "static",
          "text": "Confession Hex Lines cost 1 less.",
          "actions": [
            {
              "op": "modify-cost",
              "card": {"type": "Hex Line", "tone": "confession"},
              "amount": -1,
              "duration": "while-source-active"
            }
          ]
        },
        {
          "id": "HHX-PROTO-017-E2",
          "kind": "triggered",
          "text": "At end of turn, each player who cast no Hex Line loses 1 Composure.",
          "trigger": {"event": "turn-end"},
          "for_each": {"kind": "player", "selector": "all"},
          "actions": [
            {
              "op": "lose-resource",
              "player": "iteration",
              "resource": "composure",
              "amount": 1,
              "condition": {
                "fact": "event-count",
                "event": "card-cast",
                "player": "iteration",
                "card": {"type": "Hex Line"},
                "scope": "turn",
                "operator": "eq",
                "value": 0
              }
            }
          ]
        }
      ],
      "flavor_title": "The city keeps every secret badly.",
      "visual": {
        "palette": "steel blue, rose, and black",
        "motif": "wet rooftop railing with skyline"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype scene.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-018",
      "card_code": "HHX-018",
      "tag_id": 900018,
      "deck": "ROOFTOP_TEMPO",
      "name": "Subway Near-Miss",
      "type": "Scene",
      "cost": 2,
      "tone": ["tempo", "longing"],
      "rules_text": "Once per turn, when a Star would be targeted, you may move that target to another legal Star.",
      "effects": [
        {
          "id": "HHX-PROTO-018-E1",
          "kind": "replacement",
          "text": "Once per turn, when a Star would be targeted, you may move that target to another legal Star.",
          "window": {"event": "target-pending", "card": {"type": "Star"}},
          "limit": {"count": 1, "scope": "turn"},
          "optional": true,
          "targets": [
            {
              "id": "new_star",
              "kind": "card",
              "zone": "stars",
              "card": {"type": "Star"},
              "selector": "other-legal-target"
            }
          ],
          "actions": [
            {"op": "redirect-target", "from_card": "pending-target", "to_card": "new_star"}
          ]
        }
      ],
      "flavor_title": "The doors close on the wrong confession.",
      "visual": {
        "palette": "yellow, slate, and white",
        "motif": "train doors with a split reflection"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype scene.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-019",
      "card_code": "HHX-019",
      "tag_id": 900019,
      "deck": "ROOFTOP_TEMPO",
      "name": "Confession Feint",
      "type": "Hex Line",
      "cost": 1,
      "tone": ["confession", "tempo"],
      "rules_text": "Deal 2 Composure damage. If prevented, gain 2 Trend instead.",
      "effects": [
        {
          "id": "HHX-PROTO-019-E1",
          "kind": "on-resolve",
          "text": "Deal 2 Composure damage. If prevented, gain 2 Trend instead.",
          "actions": [
            {
              "op": "deal-damage",
              "player": "opponent",
              "amount": 2,
              "on_prevented": {
                "replace": true,
                "actions": [
                  {"op": "gain-resource", "player": "controller", "resource": "trend", "amount": 2}
                ]
              }
            }
          ]
        }
      ],
      "flavor_title": "A half-sentence makes the whole episode turn.",
      "visual": {
        "palette": "rose, black, and mist",
        "motif": "speech bubble with a hidden blade"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype hex title and effect.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-020",
      "card_code": "HHX-020",
      "tag_id": 900020,
      "deck": "ROOFTOP_TEMPO",
      "name": "Umbrella Shield",
      "type": "Hex Line",
      "cost": 2,
      "tone": ["protective", "shield"],
      "rules_text": "Prevent 3 Composure damage to you. If you control a Scene with the rain tone, draw a card.",
      "effects": [
        {
          "id": "HHX-PROTO-020-E1",
          "kind": "response",
          "text": "Prevent 3 Composure damage to you. If you control a Scene with the rain tone, draw a card.",
          "window": {"event": "damage-pending", "player": "controller"},
          "actions": [
            {"op": "prevent-damage", "player": "controller", "amount": 3},
            {
              "op": "draw",
              "player": "controller",
              "amount": 1,
              "condition": {
                "fact": "controller-controls",
                "card": {"type": "Scene", "tone": "rain"}
              }
            }
          ]
        }
      ],
      "flavor_title": "The weather report becomes a promise.",
      "visual": {
        "palette": "indigo, silver, and sky",
        "motif": "umbrella scattering hex sparks"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype hex title and effect.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-021",
      "card_code": "HHX-021",
      "tag_id": 900021,
      "deck": "ROOFTOP_TEMPO",
      "name": "Subtitle Reversal",
      "type": "Hex Line",
      "cost": 2,
      "tone": ["translation", "counter"],
      "rules_text": "Replace one tone on a Hex Line on the stack with a tone on a Scene you control. Gain 1 Fandom.",
      "effects": [
        {
          "id": "HHX-PROTO-021-E1",
          "kind": "response",
          "text": "Replace one tone on a Hex Line on the stack with a tone on a Scene you control. Gain 1 Fandom.",
          "window": {"event": "card-pending", "card": {"type": "Hex Line"}},
          "condition": {"fact": "controller-controls", "card": {"type": "Scene"}},
          "targets": [
            {"id": "pending_hex", "kind": "card", "selector": "pending-card"},
            {
              "id": "replacement_tone",
              "kind": "tone",
              "selector": "tone-on-controller-scene"
            }
          ],
          "actions": [
            {
              "op": "change-tone",
              "card": "pending_hex",
              "from_selector": "one-existing-tone",
              "to_selector": "replacement_tone",
              "duration": "until-card-leaves-stack"
            },
            {"op": "gain-resource", "player": "controller", "resource": "fandom", "amount": 1}
          ]
        }
      ],
      "flavor_title": "The caption says what the heart meant.",
      "visual": {
        "palette": "black, white, and yellow",
        "motif": "subtitles bending under moonlight"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype hex title and effect.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-022",
      "card_code": "HHX-022",
      "tag_id": 900022,
      "deck": "ROOFTOP_TEMPO",
      "name": "Secret Sibling Claim",
      "type": "Plot Twist",
      "cost": 2,
      "tone": ["melodrama", "reversal"],
      "rules_text": "Counter a Hex Line that would deal Composure damage. Its controller may pay 2 Fandom to prevent this counter.",
      "effects": [
        {
          "id": "HHX-PROTO-022-E1",
          "kind": "response",
          "text": "Counter a Hex Line that would deal Composure damage. Its controller may pay 2 Fandom to prevent this counter.",
          "window": {
            "event": "card-pending",
            "card": {"type": "Hex Line"},
            "would": {"op": "deal-damage"}
          },
          "targets": [
            {"id": "pending_hex", "kind": "card", "selector": "pending-card"}
          ],
          "actions": [
            {
              "op": "counter-card",
              "card": "pending_hex",
              "unless": {
                "player": "target-controller",
                "optional_payment": {"resource": "fandom", "amount": 2}
              }
            }
          ]
        }
      ],
      "flavor_title": "The family tree becomes a trap map.",
      "visual": {
        "palette": "burgundy, paper, and black",
        "motif": "family record with red string"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype trope event.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-023",
      "card_code": "HHX-023",
      "tag_id": 900023,
      "deck": "ROOFTOP_TEMPO",
      "name": "Truck Horn Fakeout",
      "type": "Plot Twist",
      "cost": 1,
      "tone": ["suspense", "absurd"],
      "rules_text": "Prevent all Composure damage from the target card this turn. Then each player loses 1 Composure.",
      "effects": [
        {
          "id": "HHX-PROTO-023-E1",
          "kind": "response",
          "text": "Prevent all Composure damage from the target card this turn. Then each player loses 1 Composure.",
          "window": {"event": "card-pending", "would": {"op": "deal-damage"}},
          "targets": [
            {"id": "damage_card", "kind": "card", "selector": "pending-card"}
          ],
          "actions": [
            {
              "op": "prevent-damage",
              "player": "any",
              "amount": "all",
              "source_card": "damage_card",
              "duration": "turn"
            },
            {"op": "lose-resource", "player": "all", "resource": "composure", "amount": 1}
          ]
        }
      ],
      "flavor_title": "A warning sound edits the scene.",
      "visual": {
        "palette": "hazard yellow, black, and rain gray",
        "motif": "headlights stopped at the frame edge"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype trope event.",
        "citation": "No external quote, image, performer, or show used."
      }
    },
    {
      "id": "HHX-PROTO-024",
      "card_code": "HHX-024",
      "tag_id": 900024,
      "deck": "ROOFTOP_TEMPO",
      "name": "Finale Kiss Cut",
      "type": "Encore",
      "cost": 5,
      "tone": ["confession", "finisher"],
      "rules_text": "Deal 4 Composure damage. If both players control a Scene, also gain 4 Trend.",
      "effects": [
        {
          "id": "HHX-PROTO-024-E1",
          "kind": "on-resolve",
          "text": "Deal 4 Composure damage. If both players control a Scene, also gain 4 Trend.",
          "actions": [
            {"op": "deal-damage", "player": "opponent", "amount": 4},
            {
              "op": "gain-resource",
              "player": "controller",
              "resource": "trend",
              "amount": 4,
              "condition": {"fact": "all-players-control", "card": {"type": "Scene"}}
            }
          ]
        }
      ],
      "flavor_title": "The camera turns away exactly when everyone leans in.",
      "visual": {
        "palette": "rose, white, and night blue",
        "motif": "soft-focus skyline with a cut marker"
      },
      "source": {
        "rights_status": "placeholder",
        "basis": "Invented prototype finisher.",
        "citation": "No external quote, image, performer, or show used."
      }
    }
  ]
}
