pub fn open_scan_view(
activator: &mut dyn ModeActivator,
identity: &ScanViewIdentity,
args: &Args,
) -> ProviderViewOutcomeExpand description
MV.3: the agenda’s opener, with its identity as a parameter.
Byte-for-byte the previous open_agenda body except that the four names it
used to hard-code now come from identity. Kept that way on purpose: the
agenda is the first thing ever to run through the plugin-view seam (MV.2 was
dropped), so the migration must be a rename of who-decides, not a rewrite of
what-happens. Every existing agenda test passes unedited, which is the only
signal separating “ownership moved” from “behaviour moved”.