If X HATES Y, X should not be able to move onto Y through any means. But, if X EAT Y or X IS SWAP, it is still allowed to move onto a tile with Y on it.
More generally, I feel like if X HATES Y, then if X tries to move onto a tile with Y on it, it should act as though it is LOCKED in that direction, instead of acting as though it's being STOPped by the Y. It's not being physically prevented from moving, it just doesn't want to go that way.
If X HATES Y, X should not be able to move onto Y through any means. But, if X EAT Y or X IS SWAP, it is still allowed to move onto a tile with Y on it.
More generally, I feel like if X HATES Y, then if X tries to move onto a tile with Y on it, it should act as though it is LOCKED in that direction, instead of acting as though it's being STOPped by the Y. It's not being physically prevented from moving, it just doesn't want to go that way.