# Sequencer Triggers

This document records the `TODOS.phase-72.72.15.1.14` cinematic sequencer
trigger contract. Sequence triggers can enter area to play sequence, interact
with object to play sequence, or respond to gameplay events.

The object interaction fixture is intentionally modeled to interact with object
and play the configured sequence.

## Runtime Ownership

- Runtime module: `V2Cinematics`
- Trigger kind enum: `EV2SequencerSequenceTriggerKind`
- Trigger spec: `FV2SequencerSequenceTriggerSpec`
- Trigger request: `FV2SequencerSequenceTriggerRequest`
- Evaluation: `FV2SequencerSequenceTriggerEvaluation`
- Issue enum: `EV2SequencerSequenceTriggerIssueType`
- Automation: `V2.Cinematics.Sequencer.Triggers`
- CI checker: `V2/ue/Tools/check-v2-sequencer-triggers.py`

## Trigger Model

`FV2SequencerSequenceTriggerSpec` stores a trigger id, target sequence id,
trigger kind, area volume id, interactable id, gameplay event name, required
tag, consume-on-trigger flag, replay-safety flag, and priority. The evaluator
scans available triggers, validates authoring, filters by request kind and
identifiers, rejects replay-unsafe matches during replay playback, and selects
the highest priority matching trigger.

## Default Fixture

`BuildDefaultSequencerSequenceTriggers` creates:

- `Trigger.CouncilIntro.EnterAntechamber`, an area-enter trigger for
  `Volume.CouncilAntechamber.Entry` that plays `Seq.DataModel.CouncilIntro`.
- `Trigger.CouncilIntro.InteractDoor`, an object interaction trigger for
  `Interactable.CouncilDoor` gated by `Cinematic.Council.AccessGranted` that
  plays `Seq.Composition.CouncilTrial`.
- `Trigger.CouncilIntro.StoryEvent`, a gameplay-event trigger for
  `GameplayEvent.Cinematic.CouncilIntro` that plays the abbreviated sequence but
  is not replay-safe.

## Validation

Sequence trigger evaluation reports blocking issues for missing trigger ids,
missing target sequence ids, missing area volumes, missing interactables,
missing gameplay event names, and replay-unsafe trigger matches.

## Verification

Run:

```bash
python3 V2/ue/Tools/check-v2-sequencer-triggers.py
```

Adjacent verification should include
`python3 V2/ue/Tools/check-v2-sequencer-lod.py`,
`python3 V2/ue/Tools/check-v2-sequencer-serialization.py`,
`python3 V2/ue/Tools/check-v2-sequencer-gameplay-blend.py`,
`python3 V2/ue/Tools/check-v2-sequencer-sub-sequence-composition.py`,
`python3 V2/ue/Tools/check-v2-sequencer-actor-bindings.py`,
`python3 V2/ue/Tools/check-v2-sequencer-camera-tracks.py`,
`python3 V2/ue/Tools/check-v2-sequencer-event-tracks.py`,
`python3 V2/ue/Tools/check-v2-sequencer-audio-tracks.py`,
`python3 V2/ue/Tools/check-v2-sequencer-animation-clip-tracks.py`,
`python3 V2/ue/Tools/check-v2-sequencer-property-tracks.py`,
`python3 V2/ue/Tools/check-v2-sequencer-keyframe-interpolation.py`,
`python3 V2/ue/Tools/check-v2-sequencer-timeline-playback.py`,
`python3 V2/ue/Tools/check-v2-sequencer-data-model.py`, and
`python3 V2/ue/Tools/check-v2-cinematics-module.py`.
