The first of my 2 main issues with this is Pokemon is that battles are so short. One Pokemon is rarely satisfying enough to square off against a full team of relatively-even-leveled Pokemon. The apparent solution would be to make the Boss higher leveled to make it more challenging, but it grows to become quickly unfun and unfair when the Boss outspeeds and one-shots everything.
Ideally, you want the Boss to be tanky, so that it takes a while to go down. You want Speed to be about even, so that the player's various Speed Tiers actually matter, and you want Attack to be high, but not overwhelming. Each attack should be a threat that needs to be planned around, not a simple one-shot (but it's doable, I'll come back to this).
Only a few Pokemon have valid stat spreads to match this, but EV's can be applied to fix this (maximizing bulk while keeping attack power respectable). For others, it's probably best to make custom Base Stats for them.
With high HP and Defense, the Boss will take a while to knock out, which makes the fight more intense. Attack and Speed power can be balanced around with the bulk to make different kinds of fights.
If the Boss has too much Attack, they can end up one-shotting the player with little ways to act back. Typically for bosses like this, you want to make them slow and have low bulk (for a Boss), making it a race against time to defeat the Boss. These kinds of battles are ended much faster than normal, but are usually much more intense to compensate.
If the Boss is too fast, then the player won't even get a chance to act before they get blown away. If they're too tanky, then the player won't be able to defeat them before all of their Pokemon get knocked out.
The second, and biggest reason, is that the Pokemon Battle Engine has SO many ways to cheese through a fight. To players, it may feel like ingenuity, but to Developers, it becomes a nightmare to appropriately balance. There should be at least some element of control to the fight's battle mechanics in order to make the lone Boss feel like a fair, yet genuine threat.
Some of these include:
- OHKO
- Indirect Damage (Poison / Sandstorm / Leech Seed / Ghost type Curse / etc)
- Stat drops / raises (especially Evasion / Accuracy)
- PP Stalling
- Type Effectiveness - aka Weaknesses (4x especially)
- Catching Mechanics (for catchable fights, like Legendary Pokemon, if you wanted to do so)
Personally, I'd make a special "Boss Mode Setting" almost coded like an Ability. It would have specific interactions with several of these (I'll ignore catch mechanics for now).
- Immune to Perish Song, Destiny Bond, and OHKO Moves.
This should be a given. No proper Boss should ever get OHKO'd like this.
- The Boss has infinite PP.
Optional. It prevents things like Pressure and Spite from being used to remove options from the Boss. They still only have 4 moves, some of which can be more powerful, thus have less PP. Forcing the Boss to Struggle could be a valid strategy in some cases, I suppose.
- Immune to Stat-Downs, and ignore Evasion (keep Accuracy checks for itself)
This prevents things like Intimidate, Sand Attack, or Double Team from being spammed and forgoing the fight entirely. The scaling for in-battle stat changes is way too insane to be balanced for a fight like this.
- Takes 50% damage from any effect that would deal a % of the Boss's HP (Poison & Burn, Leech Seed, Ghost-type Curse, weather, Super Fang, Rough Skin) as well as effects that reflect dealt damage (Counter, Mirror Coat, Metal Burst, and Bide)
This one's more of a personal preference. It would prevent players from resorting to sole defensive options. The player should fight back with proper attacks, rather than use the Boss's own HP against it, without removing their impact totally.
The inclusion of Counter etc. is because of the sheer damage that gets returned if the Pokemon survives from max HP (ie: Metal Burst Sturdy Bastiodon, or Wobbuffet with its massive HP)
Another option / amendment / idea is to have it so the Boss cannot be affected by ANY kind of status for more than 2 turns (including Sleep, Poison, Curse, Perish Song, and Leech Seed, etc), and only halve Counter-moves and Super Fang instead, since the damage-per-turn is limited. Just an idea.
- Some kind of resistance to Statuses that prevent movement (Sleep, Freeze, Paralyze)
Total immunity is somewhat unfun. See above paragraph.
- 4x Super-Effective against Bosses are only 2x.
This is another preference, totally optional. It would make Pokemon that are normally crippled by 4x weaknesses still a large threat if used as a Boss. It's always been a little silly to me how much 4x damage really is, it keeps the Boss's longevity intact.
---
With all of these intact, you're left to beat down the Boss as quickly as you can, while the fight still goes on for a decent while (hopefully...) Longer fights are usually more satisfying to win, as long as the fight isn't repetitive and drawn out, in my experiences.