Difficulty is a great topic for me, because I tend to find myself disagreeing with a lot of people about it- in general, I don't play games to be challenged by numbers and stats. When I'm challenged in a video game, I have fun when the challenge is almost entirely in my head. Fun in a game comes when there is NOTHING holding me back except myself- fun, to me, comes when there is a solution (or even multiple) to a problem and I am 100% capable of finding and enacting that solution at any given point.
Everyone plays games to have fun- that's the point, right? The only "right way" to play any game is to have fun, and if a game isn't fun for you because it's too hard/too easy, it sucks!! Especially if the game is set up in such a way where you can't just flip a switch in the Option Menu and now the game adheres to exactly how you personally want it to. So, when people complain about the difficulty (or lack thereof) in Pokémon Games, their complaint/argument isn't invalid. Going "that game was too hard" or "this game was too easy" is a legitimate opinion to have on a game, and I wish more people understood that.
I'm tired of people saying "This Game was so easy", and then acting as if I'm somehow factually incorrect when I disagree and say "I found it difficult, actually."
Don't do that. If you found a game difficult/easy, that's completely fine, but don't act like you're making a factually correct statement when someone comes along and says they experienced it the opposite way. You're not superior because you had a specific experience with a specific game.
When I play games, especially RPG-esque genres like Pokémon, my fun comes through the world and the story.
I don't play RPGs to strategically plan my team and my battles- that's not why I play RPGs, so that's not why I play Pokémon. My team and the battles I experience are the secondary part of the game to me: battles are an obstacle preventing me from reaching what I actually want: the next place to explore, the next chapter of the story to see. That's the part of the game that "matters".
So, naturally, when it comes to a Pokémon game, I don't really care about the battles. I don't care about the next Trainer on the route, I don't even really care about the Gyms or the Elite Four. If a game has an engaging story and the battles aren't at all interesting or unique, I'll avoid every Trainer battle I can if it means I can move on with the story faster. Why would I want to have three, four, five random insignificant battles just to get to the next plot point?
That's not why I play Pokémon games, so it's very easy for battles to become a chore for me. However, I still enjoy battles as a mechanic- that's why I still play Pokémon and RPGs in general, rather than simply playing interactive visual novels.
So!!
When it comes to the Difficulty of Pokémon-styled games, I have two requirements if the developers want me personally to have fun:
1) You can't make Battles/encounters so difficult that they feel like a chore. I play games to have fun, not to fight the same Trainer/Boss over and over because I'm underleveled and grinding is quite literally the LAST thing I ever want to do in a Pokémon game. If a game makes me grind, there's a high chance of me not actually finishing it, because I'm not interested in spending time grinding when I could spend that time playing another game that isn't artificially preventing me from moving on because I didn't spend an hour mindlessly running around some grass.
You can't just have the Gym Leader be 10-15 levels higher than their strongest Gym Trainer and expect me to praise the game for being a challenge.
I never had that issue in an official Pokémon game thankfully (except HGSS, but that was an overall level curve issue- again, I shouldn't have to grind away in some grass for an hour to be "caught up" with where I'm at in the region, GameFreak), so I'd rather not have it in a fan-game either. That's not how you make a game a challenge.
2) You can't make Battles/encounters so easy that they feel like a chore. If I feel like I'm blazing through a game, I'm not going to want to battle that one Trainer on the route- why would I want to waste my time OHKOing three Pokémon (that I know I'll OHKO) when I can not waste my time and just move on down the Route to the next town. Very few people want to just mash the A-button through a game- where's the fun in that? Battles need to stay interesting or else they'll become a chore for the player, but then they can't be too (artificially) hard or they'll become a chore for the player. That's not how you make a game interesting.
So, how do you make a game challenging but interesting? How do you make a game that doesn't frustrate casual players, but doesn't bore the average player?
Don't make the game "challenging" by making all the trainers +10 levels above the player (automatically scaled or not). That's not intuitive or interesting, that's boring, a little lazy imo, and just frustrating. In my opinion, if I have to grind, the game's battles could've been organized better: if I battle every single trainer on the Route between Town A and Town B, and then every single trainer in Town B's Gym, I shouldn't be too far off from the Gym Leader's levels.
Because, if a game is challenging in a smart way, a Gym Leader with Pokemon that are 5 levels below me should still have a reasonable chance of kicking my ass. Because levels are not everything, numbers are not everything: numbers like Levels are a guide, not a clean-cut win/lose.
Challenges in Pokémon games come easily from a couple things: held items, and type counters.
Imagine the absolute surprise when you're battling a Fire-type, you pull out your Water-type to snuff that fucker out, and then the asshole hits you with an Electric move. Holy shit, right?
Now you, the player, are forced to think outside of your typical mindset- you can't just pick the obvious answer this time.
Now imagine you attack a Gym Leader's Pokemon and- what the hell, you took extra damage? Your move doesn't have recoil, so what's up? The Pokemon is holding Rocky Helmet. Now you have to work around the damage that comes every time you make contact, and that can be a struggle if you're already having difficulty getting the upper-hand.
That's the best way to make a game challenging, to me. That's the type of challenge that won't bore me. That's the best way to make your game difficult, but not frustrating. You encourage the player to have a diverse team (having a Ground type would help you avoid that Fire type Pokemon's Electric counter, for example) and you encourage the player to also use Held Items to help get the upper-hand. They can't just steam-roll everything with type-advantages, but they also aren't being arbitrarily held down by numbers because the Gym Leader suddenly shot 10-20 levels above every other Trainer in the area.