Our convention is that `self` always refers to the actor that holds the trait being called, and that this is the first argument of interface calls (which saves traits from needing to store a self reference if they don't otherwise need it). This probably wants to look like `void OnMovement(Actor self, Actor moved)`, and then the call in ActorMap would become

```
foreach (var p in a.World.Players)
	p.Shrould.OnMovement(p.PlayerActor, a);
```