I like the battlefield idea, I think that is the best route to go. I think both sides should “invest” money into the war effort (basically just wager money, maybe like minimum 100k each), and the losing side would have to pay the war debts (lose the bet). Lets say each city has a maximum of 10 players to register as soldiers. These players could be from other cities and those cities could be seen as ally belligerents.
Two types of battlefields I can see work: Land and Sea
Land Battle: a square piece of land is set up by the HM Gov, preferrably geographically in between the two cities, if not maybe one site to host all battles like that where it warrants a different location, and the combatants can warp there anytime, HOWEVER, by doing so it would clear your inventory, no ah, etc (to restrict OP stuff). Obviously warps are not exclusive, so there would be a reserved area with entry deny for each sides warp. If you try to warp to the enemy side, you will be meeted with entry deny message. Only the combatants of a side are added to the entry deny region. In this region is a chest full of materials like max x amount of planes, cars, helicopters (lets say 2 of each kind max) a stack each of a variety of building blocks (no obsidian or blast restistant/long mining blocks), bows, arrows, swords, flint and steel, lava, tnt, pickaxes, armor etc. The two ends of the battlefield have a flag (a banner) belonging to each city. The first side to destroy the other’s enemy flag, or to kill all combatants wins the battle. The overarching battlefield will have keepinv off (you will have a cleared inv anyway so your inventory is all battle materials except for the vehicles you decide to bring), block-break allow, burn allow, mob griefing allow, etc like a fake city event. If a dead soldier decides to return to the battlefield and start fighting again (in the period of time that they are still added to the spawn region), that side is automatically disqualified. When an enemy combatant dies it will show in discordsrv so then you can report it to a staff if none are online and it can be checked. Both sides must agree for a time to engage in the start of the battle, and after that anything goes. You could theoretically PVP log, but, this would only hurt your chances in battle since it is one less step for the enemy to get to your flag. Once a battle starts it must only end with a treaty (both sides just get tired, but each side pays a fine to the government of lets say 25k because it uses their resources and time and also is a discouraged outcome because we want a winner preferrably), a surrender, a destroyed flag, or a wiped out military. Each city has a design for a building that holds the flag but it must be 15x15 in size. It is meant to be a design for appearance and not for defence or fortification (would blacklist obsidian and lava and things like that).
Naval battles: Same exact stuff as land, except the battlefield is picked in a body of water and each side has a boat design that is maximum 30x50 blocks (idk if too big just an example) and you can capture the enemy flag by enderpearling or boating (limited amount added to each spawn chest, say like 10) or by vehicle (heli or plane). Bows might be more useful in this type of battle and falling in the water would not DQ you, you’d still have to die to be out.
Let me know what you think about this. Obviously trying to cater to like Modern Warfare and Medieval Warfare aspects in there too.