The biggest problem of any moderation system is a majority downvoting things they don't like into oblivion. You get a majority with a high reputation taking control of your site. We complain about cancel culture, but it's nothing new because people naturally want to kick out people they don't like. After all, the people they don't like are heartless evil assholes.
I'd add a system to let people identify aspects of the post, and then use reputation to verify that they're a good indicator of that aspect.
Liberals know what is "liberal" and conservatives know what's "conservative" quite reliably (in aggregate), even though those concepts are very fuzzy. And the problem most systems see is that politics being politics, those are frequently gamed. (If you've ever listend to C-SPAN's radio program, you know that half the "republican" callers are democrats...)
Then you have to determine which keywords to use. I think some basic guidance, "don't label a thing 'spam' unless it's someone selling crap" would go a long way to incentivizing a critical mass of users to label a thing honestly.
And then you let readers decide what they want to read.
My other notion (building on another comment[1]) is that discussion should include a team-based element. I think offering a way for small teams to come together and present ideas is more useful than individual commentary. A team allows less personal investment because you are now motivated by a desire from admiration from known peers.
But I've put away good number of beers, so I might just be rambling like a drunk idiot.
[1]: https://news.ycombinator.com/item?id=21289078