# V2 Photosensitivity Filter

This runbook covers `TODOS.phase-72.72.13.1.13`: the photosensitivity filter for
rapid flashing, strobe effects, and high-contrast flickering.

## Runtime Surface

The photosensitivity filter profile lives in V2UI:

- C++ header: `V2/ue/Source/V2UI/Public/V2PhotosensitivityFilter.h`
- C++ source: `V2/ue/Source/V2UI/Private/V2PhotosensitivityFilter.cpp`
- automation spec:
  `V2/ue/Source/V2Tests/Private/UI/PhotosensitivityFilter.spec.cpp`
- contract:
  `V2/ue/Content/V2/UI/Accessibility/PhotosensitivityFilter_V2_Contract.json`
- focused checker: `V2/ue/Tools/check-v2-photosensitivity-filter.py`

`FV2PhotosensitivityFilter::BuildDefaultProfile` returns
`Accessibility.PhotosensitivityFilter.V2` for
`PostProcess.Accessibility.PhotosensitivityFilter`.

## Filter Policy

The filter applies before post process and content review signoff. It covers
RapidFlashing, StrobeEffects, HighContrastFlicker, LightningVFX, and KOXRay
targets.

The release profile:

- clamps rapid flashing to 3 flashes per second or lower;
- suppresses authored strobe effects;
- reduces high-contrast flicker by scaling contrast deltas;
- reduces luminance deltas for lightning VFX and KO X-Ray moments;
- remains deterministic for gameplay and replay consistency.

`FV2PhotosensitivityFilterProfile::ApplyFilter` returns an
`FV2PhotosensitivityFilterResult` with filtered flash rate, luminance delta,
contrast delta, strobe suppression, rapid-flashing reduction, and
high-contrast-flicker reduction.

## Verification

Run these checks after changing photosensitivity filtering:

```bash
python3 V2/ue/Tools/check-v2-photosensitivity-filter.py
python3 V2/ue/Tools/check-v2-accessibility-feature-set.py
python3 V2/ue/Tools/check-v2-ui-module.py
python3 V2/ue/Tools/check-v2-ci-workflow.py
python3 V2/tools/validate-v2-docs.py
python3 -m py_compile V2/ue/Tools/check-v2-photosensitivity-filter.py V2/ue/Tools/check-v2-ci-workflow.py
python3 -m json.tool V2/ue/Content/V2/UI/Accessibility/PhotosensitivityFilter_V2_Contract.json
```

Automation test name:
`V2.UI.Accessibility.PhotosensitivityFilter.AssetContract`.

## Horde Gates

- `photosensitivity-filter-source`
- `photosensitivity-filter-flash-rate`
- `photosensitivity-filter-strobe`
- `photosensitivity-filter-flicker`
- `photosensitivity-filter-lightning-ko`
- `photosensitivity-filter-automation`
- `photosensitivity-filter-ci-wired`
