It complicates things quite a bit since we often end up with things like Player => TurnAction, due to the fact that many sources of TurnActions (ptn etc) don't provide the player as part of the data, only implicitly by context (eg ptn move column; playtak protocol game object)