Interesting problem.
I think you've noticed that mapkeys/trail file recording captures positions, not selections. Unless everything in each list is the same, the mapkey recorded that way won't work.
What may work better is to include a search for the item of interest (binoculars) The item of interest should be the only item on the results list, making its list position the same, and allowing the mapkey to proceed. You'd likely create a Query and save it, then use the mapkey to open the query in whatever assembly you are working in.
If a search isn't possible, then you can have the mapkey pause** so you can make selections. Once made, you can resume mapkey execution. Pauses can be recorded while making the mapkey and can include prompts to remind the user what selections need to be made.
**I notice there is a Pause in your mapkey, but others reading this may not.