A way to resolve retargeted target changes

What I ment in the title is that there is a way to check who is targeting who that allows for things like invokers being controlled by other Invokers and mercs preventing occupies except when occupied. This is more for conseptualizing it. This assumes everything resolves at once:

1: Check to see who is targeting who
2: Change that list baised on occupying, redirects ect…
3: Repeat
4: Keep repeating until it stops changing things.

Ex: Merc(1) guards contract (2) A servant (3) targets the Merc and a Butler (4) targets the contract.

1:

(1) - (2)
2 - (Something)
(3) - (1)
(4) - none (prevented)

2:

(1) - none (occupied)
(2) - none (occupied)
(3) - (1)
(4) - (2)

3:

(1) - none (occupied)
(2) - none (occupied)
(3) - (1)
(4) - (2)

3 is the same as 2 so it stops.