fn projection_key(
inst: &LegacyInstance,
by_id: &HashMap<String, &LegacyInstance>,
is_seeded: &HashMap<String, i64>,
) -> StringExpand description
Frozen copy of the v29 projection rule: walk parent_instance_id to the
chain root; if the root’s definition is a user-clone (is_seeded = 0)
the key is that definition’s id (the launch was folded into the def’s
row), otherwise it is the root instance’s own id (a template launch is
its own row). A missing definition counts as seeded, matching the
COALESCE(d.is_seeded, 1) in the live helper. A chain whose parent
pointer no longer resolves is rooted at the last instance that does.