- Mask: Start/End (seconds) picks the exact part of a mask video to use.
- Time Mode: Timeline follows project timing; Source FPS follows mask file timing.
- Loop mode then defines playback behavior: Play Once, Repeat, or Ping-Pong.
- Added optional Mask Mode overrides for Blur, Saturation, Brightness, Hue, Pixelate, and Sharpen (Limit to Mask, Vary Strength).
- Kept unified mask property naming (mask_reader) with legacy JSON compatibility where needed.
- Added/updated unit tests for base mask behavior, per-effect mode behavior, and JSON round-trips.
- Fixed profile tests to write generated files into the build/test directory instead of the source examples/ folder.