Don't know the runtime cost to list app ids, but you may consider writing a custom converter that will force passing a valid one + provide TAB completion. See ExistingXDEntityConverter (albeit that one is more complex than what is needed here)