§6 step 2: drop the codec-name allowlist, describe the bounded idet run
and the Multi-frame summary parse.
§6 step 6/7: per-stream audio.<n>.wav / audio.<n>.opus now.
§6 step 8/9: zscale is conditional and width rounds to mod-2; -vf is
omitted entirely when no filter applies. Audio language tags are indexed
by output position. TITLE/COLLECTION values are unquoted.
§6 step 11: series filename no longer requires an IMDb mapping.
§7: added a token example and notes about what the token does and does
not influence in the output filename.
§8: noted the known log-rotation limitation (filename frozen at start;
restart to rotate; structured.json does not rotate).
Source kind is now declared per-file via a `dvd` / `bluray` / `webdl` /
`tvrip` token in the basename (case-insensitive, word-bounded). Matches
the existing `tt…` / `tvm…` filename convention. When no token is
present, falls back to the pixel-count guess in DetectMediaType, which
still only chooses between DVD and Blu-ray.
The parsed media type drives both ORIGINAL_MEDIA_TYPE in the muxed
metadata and the CRF/preset profile used for encoding. EncodingConfig
gains `webdl` and `tvrip` sub-blocks with conservative defaults
(WebDL 30/3, TVRip 32/2); user can override in config.yaml.
Manual updated with the new tokens, config fields, and pipeline
description.