Must have:
-P/S split
-Pokémon up to at least gen 4. Can't go back to the stone age when Pokémon like Murkrow, Sneasel, Piloswine, Roselia, and Magneton were final evolutions :D
-Good variety of mons across different gens: not necessarily all of them because I never cared about catching them all, just a wide range of options to build my team, with all the types properly represented.
-Properly balanced game progression and level curve.
-If it's a difficulty focused game: Add Muking QoL and proper team building features, so that finding/raising new mons, and making changes to your team doesn't become a grindy chore. I ended up abandoning a couple of rom hacks/fan games because the majority of tools to properly build a team were either absent or locked into the post-game.
-No fakemon, or at least as few and hidden as possible. This also applies to fanmade Megas.
Big plus, but not necessarily must have:
-New region
-As few legendaries as possible. And no legendary spamming, giving late game trainers full or almost full legendary rosters for the sake of making the game harder is so cheap.
-A plot that doesn't overstay its welcome and doesn't take itself too seriously. It's a Pokémon game, nobody wants to read (skip) through constant endless wall of texts, lots of edgyness, curse words and deep melodrama. Keep it interesting but simple.
-Not too many and not too big edits to Pokémon typings and stats. I prefer it more faithful to the vanilla experience.