The revealed property doesn’t do anything until you implement code to make it do something. Here’s an easy way to make it do something:
A thing can be unrevealed or revealed. A thing is usually revealed.
Rule for deciding the concealed possessions of a thing when the particular possession is unrevealed (this is the unrevealed concealment rule): yes.
There are two principal built-in methods to keep a player from referring to something: concealment, and having it not be in the same room as the player at all until you want the player to be able to refer to it. If either of these apply, the player will get a “You can’t see any such thing.” error, same as if they typed
I’ll note for completeness’ sake and a cautionary tale, that there’s also a straightforward way to let the player refer to absolutely any thing in the game, even if it’s out of play…
Understand "take [any thing]" as any-taking.
Any-taking is an action applying to one visible thing.
Before any-taking, try taking the noun instead.
With that code in place, if you try taking something not in the location (even out of play) you’ll get a “That isn’t available.” error. If you try taking a concealed thing that’s touchable, it’ll simply work (unless there’s some other reason you can’t take it).
Scopability by Brady Garvin is the most surefire way I know to absolutely positively keep something out of scope… which can be handy to absolutely positively guarantee that disambiguation questions can’t telegraph the existence of something. This generally shouldn’t be necessary if you haven’t written any Understand lines with
[any thing] and are keeping things you don’t want the player referring to out of the location or making sure they’re concealed. And if things have names the player shouldn’t know about, make the Understand assertions regarding those names conditional (e.g., assuming
discovered is something you’ve defined):
Understand "magic/wand" as the plain old stick when the plain old stick is discovered.
Without changing other things, concealed things do reveal or imply their existence in a couple of places:
The most unfortunate is that if you take a supporter or container that conceals things, the concealed things will be listed by name in your inventory. They’re still not in scope and the game will tell you you can’t see any such thing. This is an issue worth fixing if you have portable things that conceal things.
And then there are a couple of things that telegraph information, but only to some I7 coders: a scenery supporter with only concealed things on it gets its own paragraph in room descriptions to say it has nothing on it. If you examine a container or supporter with only concealed things you get “In/on the (whatever) is nothing” in addition to their descriptions, if any; if it truly has nothing in/on it, you get “The (container) is empty” for containers and no additional statement for supporters. And if you open a closed container containing only concealed things, you get “You open the (container), revealing nothing.”; if it’s truly empty, you get “You open the (container).”