What I dislike in pokemon games is that you have to heal your team between fights. If you don't like spending coin in potions, you have to go back in town. In Pokemon, they fixed this issue by making trainers and wild monsters garbage. Nexomon fixed it with the gems that heals to max hp.
Here's my suggestion : a team joy meter. After every fight, the team is healed up to full health thanks to a magical thingy only the player has. However, whenever the player's monsters take a beating, their joy meter decreases. When their joy meter is high, they get full XP and find some random objects for the player. When their joy meter is low, they get fewer XP. That way, people who farm a place to find a particular monster don't overlevel and don't have to go back all the time. Restoring the joy meter can be done with items like fruits or other food. The joy meter could be used to branch evolutions like in pokemon.