We occasionally run into issues caused by the fact that some of GameSystem's target-based APIs strip all type information by using any. So we can't always reliably know that the parameters passed to subclasses with narrower type constraints are actually receiving the types they think they are.
For example, PlayerTargetSystem's addPropertiesToEvent method expects a Player for its target parameter, but when the superclass calls that method, it passes in an untyped any, which occasionally resolves to an array of Players.
We occasionally run into issues caused by the fact that some of GameSystem's target-based APIs strip all type information by using
any. So we can't always reliably know that the parameters passed to subclasses with narrower type constraints are actually receiving the types they think they are.For example,
PlayerTargetSystem'saddPropertiesToEventmethod expects aPlayerfor itstargetparameter, but when the superclass calls that method, it passes in an untypedany, which occasionally resolves to an array of Players.