Here's the concept. It's mostly behind the scenes rules, things that I usually wouldn't share, but I guess I'm doing it this time.
A nation may have up to one army for every three cities, always rounded down. For a city to count in this measure it must be either the same culture as your nation or have a continuous land connection to the capital. "Land" connections do include straits and relatively short trade routes.
When two armies fight each other, I will add up the following values to come up with an army's "combat value."
Luck, based on a D3 roll.
Experience Pips, +1 for each pip.
Number of reinforcing armies, +1 for each.
Terrain, +1 each if the defender is in mountains or jungles.
If one side has a tech advantage over the other, add +1 to their combat value for each superior unit.
Other modifiers may be added for temporary advantages and disadvantages.
Whichever army has the higher combat value wins the battle. The higher the difference between combat values, the more drastic the victory. For instance, an advantage of one value point is only a slight victory, whereas an advantage of four absolutely crushes the enemy and will possibly gain huge amounts of territory.
Each military unit can have up to four experience pips. When winning a battle, each participating victorious army has a 66% chance of gaining experience. This chance is only at 50% when losing a battle.
When an attacker or defender has many armies in one location, they do not all get their own attack rolls; instead, they give a reinforcement bonus to the main army engaged in the attack.
If you have no war exhaustion your country will accumulate "military decay" at a rate of one level per turn, with three levels: low, medium, and high. Upon reaching high decay, all of your units will lose one experience per turn. Each turn you spend at war reduces military decay by one level.
When there are no friendly armies nearby, a city may act as an army with no experience, but they can only defend.