0001142: "The player has a property" always refers to the default player character, even if the player is really someone else

Description

Normally, Inform does not allow adding new properties to things referenced via variables, but "the player" is apparently treated as a special case, so that "The player has a property" works.

However, this special treatment is apparently handled by treating "the player" as synonymous with "yourself", the default player character. This is not correct if "the player" is actually someone else. In particular, the example source code below fails to compile, giving the following error message:

"Problem. You wrote 'The mood of the player is sad': but the property mood for the Joe is not allowed to exist, because you haven't said it is."

Replacing "The player has a mood" with "Joe has a mood" avoids the error.

Minimal Source Text To Reproduce

There is a room.
Joe is a person. The player is Joe.
A mood is a kind of value. The moods are happy and sad.
The player has a mood. The mood of the player is sad.

Vaguely, but the cause is clearly different. Setting the player's identity at the beginning of the source code avoids 0000638, but this bug is still triggered.

(Conversely, setting the player's identity only at the end of the source makes the example code here compile, but only because it triggers 0000638, so that the mood is added and set for the default player character, not for Joe.)