pub fn meta_hash(clip: &Clip, lineage: &LineageContext) -> StringExpand description
A sentinel for the clip’s tag-bearing metadata and chosen art.
Covers every field that affects file content — title, tags, the selected
art URL, video cover, the prompt and description, the account handle, and the
resolved lineage that gets embedded (immediate parent and edge, root id and
title, and the album the clip folders under) — so a change to any of them is
detected as a needed retag. This takes the resolved LineageContext rather
than the raw feed fields precisely because those resolved values are what end
up in the file (HARDENING B1: if a value is embedded, it is in the change
hash), so a retitle, re-point, or album move triggers a retag.
Path-affecting fields such as display_name are excluded on purpose: a path
change is a rename, detected by comparing the rendered path with the stored
one. title is included so a title change triggers both a rename and a
retag.