public GameState BuildRoad(Edge edge)
{
if (!valid) throw new IllegalActionException("Tried to perform an action on an invalid GameAction");
if (!isAfterDieRoll) throw new IllegalActionException("Tried to build before the die roll");
return controller.BuildRoad(player, edge);
}