I6: removing objects from scope

I know how to add objects to scope, but how do I remove an object from scope that is in the same location as the PC? I have a tiny needle lying on a table. I want the player to be able to refer to the needle only after having examined the table. Before examining the table the needle is invisible to the player, despite being in sight. How do I code this without resorting to removing and moving?

The scope mechanism doesn’t offer a way to do that. The easiest way to have an object unreferrable-to is to keep it off-stage.

You could also give it a conditional name (a parse_name that refuses to match any words until the object is noticed). But then the object is still accessible via “get all”, so you have to do more work to prevent that, and it winds up being more work than it’s worth.