Pass as much app identifying info as possible throughout mas to improve output, especially for ephemeral info, errors & warnings.
Include the exact app ID specified on the command line. Include whatever salient app identifying info might also be available, e.g., command-line app ID, maybe ADAM ID, maybe bundle ID, name, path, etc..
Maybe use FoundApp<A: App> or SelectedApp<A: App> (app: A, query: AppQuery) tuple with:
enum AppQuery { // maybe selector: AppSelector
case lookup(AppID)
case search(for: String)
}