Is there any way to determine which DARs on a ledger have active contracts against them

Scenario

I have been running a Daml ledger for some time, and gone through multiple versions of my DARs, archiving off or migrating contracts that were initially created with older DAR versions.

I now want to determine only those specific DARs that have active contracts against them, so that I can identify which DARs are effectively obsolete/orphaned

Is there any way of doing this through Canton console, ledger API or specific database queries?

(question relevant most immediately to Canton 2.x stack, but if there is context specific to Canton 3.x that is welcome as well)

The removing dars section of the docs alludes to a mechanism performed to ensure that no contract relies on a DAR you are attempting to remove.

Independent of the removal process, is there a way of seeing which DARs are used (and unused) on a participant?

https://docs.daml.com/canton/usermanual/packagemanagement.html#removing-dars

The following checks are performed before a DAR can be removed:

The main package of the DAR must be unused – there should be no active contract from this package
All package dependencies of the DAR should either be unused or contained in another of the participant node’s uploaded DARs. Canton uses this restriction to ensure that the package dependencies of the DAR don’t become “stranded” if they’re in use.

Possible related suggestion

Could there be a remove packages dry-run (which performs all the safety guard checks) and that will then tell you whether the particular DAR you are interested in can be safely removed, or has active contracts against it?

@ participant1.packages.remove(packageId) --dry-run