viewer property
Whose view this is, or null for a view belonging to nobody.
Null means a spectator, and a spectator sees everything. A test harness, a replay watched from above, an editor looking at a map: none of them is a side, and a fog that made them guess would be a fog nobody could debug through. A game passes the side the person is playing, and then this object draws that side's knowledge rather than the simulation — which is the only place in this package where the two are allowed to differ.
Implementation
final int? viewer;