To be consistent with other interfaces these may want to be `void Demolish(Actor self, Actor saboteur)` and `bool IsValidTarget { get; }`