Hm. Well, the first step (if you haven't done it already) would probably be stubbing out keyboard navigation, with a card- or deck-level script that overrides navigate[] to do nothing, to make sure the player can't accidentally go to your "protected" card without using editing tools:
on navigate do end
Then you need some way of keeping track of whether cards have been "visited". Several ways to handle this. If you had an invisible checkbox on every card that needed to be visited named "visited", you could record visits something like so in each card's script:
on view do visited.value:1 end
Or even handle it automatically with a deck-level script fragment (not inside a function handler, just bare):
deck.card.widgets.visited.value:1
Left bare, it will execute whenever *any* event is processed. On cards without a "visited" checkbox it will have no effect.
Check if every card with such a checkbox was checked using a query:
if min extract value..value where value from deck.cards..widgets.visited # ... end
The ".." can be read as "at every index". The minimum of a list of 1/0 values is equivalent to logically ANDing them all together.
And you might want a button somewhere for resetting all the visited checks:
on click do deck.cards..widgets.visited.value:0 end
The nice thing about this approach is that as you add new cards in the future, you can decide on an individual basis whether they need to be counted toward "visiting everywhere".
Make sense?