The most important Pokemon move, in terms of its centralizing impact on the competitive metagame (at least in singles), is probably Stealth Rock. Having a Stealth Rock setter on your team is essentially mandatory in serious competitive singles play, and Pokemon like Volcarona and Charizard are singlehandedly dropped several tiers of competitive viability by their 4x weakness to Stealth Rock.
On the one hand, it does seem useful to have some way to check endless switching. But on the other hand, this one single move being Rock type has a really unfortunate impact on the competitive metagame for those of us who favor types that happen to be weak to Rock. The changes to Defog in Gen VI seem to have been intended at least partly as a SR nerf, so Game Freak seems at least somewhat inclined to agree, but several generations later, the impact of Stealth Rock is still enormous.
In your view, is this something that needs fixing? If so, how would you fix it? Remove type advantage/disadvantage from Stealth Rock damage? Add other mutually-exclusive entry hazards of other types (“Stealth Ice???”), forcing teams to decide which they’ll run in a way similar to Terrain? Other ideas?
So, mutually exclusive entry hazards of different types have been my go-to solution for this in the past, but I think there’s several things you could do – some of which Game Freak has done. You mentioned Defog, which I kind of like, since it’s a much more widely available counter to entry hazards, but comes at a cost that Rapid Spin doesn’t have (clearing your own hazards as well), and there’s also the new Heavy-Duty Boots item in Sword and Shield that just makes a Pokémon straight-up immune. Those are both a little blunt for my liking, though; they hit all entry hazards, when we really just want to hit Stealth Rock. I remember Smogon’s very first Create-A-Pokémon, Syclant, was a Bug/Ice-type with an ability that made it immune to Rock-type damage on the turn it switched in, which is an interesting response, but more a cool toy for that Pokémon in particular than a real nerf to Stealth Rock. You could just reduce Stealth Rock’s damage directly, but honestly its neutral damage output is probably fine; you could take away its ability to do more or less damage based on the target’s weakness or resistance to Rock, but that’s the most interesting thing about the move. That’s why I like the idea of having several competing options for that slot, with different type properties; it actually introduces an additional interesting decision (which one is most helpful for your team composition?), while also reducing the victimisation of Pokémon who are weak to Rock attacks in particular. On the other hand, it’s clunky – why are these moves mutually exclusive, when Spikes and Toxic Spikes aren’t? And what’s the best way of communicating that to a new player? My latest idea is to have Stealth Rock actually wear out over time; it can do a total of eight (or twelve, or some other number) “ticks” of damage, each of which is equal to 1/8 of the target’s health (Stealth Rock’s standard neutral damage). Pokémon with a Rock weakness still take a lot more damage, but they also wear the rocks out faster, which turns an unfair-feeling punishment into an additional strategic calculation. It’s another thing players then have to keep track of during battles, but you could probably add a counter or something to the battle UI (which has already been picking up some useful extra functions over the last few generations).