plan From Pairs
Maps pairs to a Plan. An "open" pair names the app the whole command is scoped to; when a message/email pair exists it absorbs that open (messaging opens the app itself). Conservative: one unmappable pair empties the plan.