I think one of the things that is being forgotten here, is that you
could design the game master component to _be_ the MUC room. There's
nothing in any spec to say that all participants see the same room
state. You should be able to very easily send different content to
each member of the room.
The game component (acting like a MUC room) can do all the validation
checks based on it's own internal state, and doesn't have to expose
the full game state to anyone.
Remebering that MUC is really just a set of protocols indiciating the
preferred way of simulating joining a room/game, and sending messages.
In a non-game context it makes sense that all users see the same
data, in a game context, not so much.
Except for the fact that it makes implementing it far more complex, and
also makes it very hard if not impossible to use the same exact protocol
no matter if the game host is a component, bot or users client.
Richard