This is one of the things I built in Crossing Worlds (aka Karma in the Dark), in a way. It seemed necessary both because it’s a game about oppression and I wanted to challenge the violence-first attitudes I see a lot in gaming.
Basically your team has a corruption tracker, and once it fills the game ends (the game also becomes harder as your tracker fills more). You earn ticks for exploiting or harming people with less power, you clear ticks by helping/supporting others with less power. As a group you also pick one other ideal which if broken will increase corruption. So you could pick peace and gain ticks for violence but clear ticks for non-violent situations, or pick common humanity and get ticks for acting hostile towards those who are different from you but clear ticks for connecting with those who are different, etc.
I’ve seen it change player behavior over time. It usually takes ~4 sessions for players to consciously realize how the mechanics don’t support the usual “treat everyone as an enemy/hurt them” model. Once they do, there’s a radical shift.
(In addition, for encouraging safety between players you have shared team goals for XP and the more traditional/explicit safety tools listed as core rules.)
It’s not a perfect mechanic yet by any means. It’s something I’m still improving and want to continue to iterate on for that game and future projects. And I’m really interested in seeing more people look at empathy and safety within the game mechanics. I feel like there’s been a move towards that in a number of games, but they’re still in early playtesting.