We need to make a clear distinctions between the Leader and Civilization classes, as well as figure out the distinctions and relationships between Civilizations and Cities (and in the future, potentially individual Unit Groups/Armies).
Here are my suggestions:
Leaders should always be the thing "controlling" the game. They should be the point of communication with players, not Civs, and AI players should control leaders, not Civs or Cities.
Loyalty should always be towards a leader, not a Civ or City.
Civilizations should be able to own units, it should have jersey colors (something that's currently handled by the Leader class), but it should probably not do much else? It could have a list of cities as well, but this can be computed by going through the cities list.
The turn active/turn finished logic should be handled by Leader, not Civ.
Civilizations should possibly also be the one the has the name, and not the Leader? This would pretty much completely flip the current concept of Civs and Leaders on its head.
Cities should be pretty similar to Civs, in that they can own units (and have a name). They maybe shouldn't have a color, though. They also have a set of tiles they own.
Leaders should be able to control both Civs and Cities.
A City should both be able to be controlled by a leader and at the same time be part of a Civilization.
It's up for discussion who should have control of what in this case? For example, can the leader of the Civ control what the City's improvements do? Can they start errands on behalf of the city?
Cities in a Civ that have low enough loyalty towards the Civ's leader should automatically create a new leader for itself.
If the loyalty towards a City's leader is higher (by some margin) than the loyalty towards the Civ's leader, that City should be allowed to break away from the Civ. Once free, there should be two possible outcomes:
The City starts gaining loyalty towards the leader of another Civ. (To make this even remotely likely, Loyalty pressure from Civ leaders should be greater than from City leaders.) Eventually, they join that Civ (unless the Civ rejects them).
The City stabilizes, with the greatest Loyalty being towards the City's own leader. In this case, that Leader should upgrade himself to the leader of a Civ, and the City should join this new Civ.
Leaders should probably also have a friendliness value towards other Leaders. This would be mostly for whatever Diplomatic features are added later, but it would also have a crucial role for City Leaders: if a City Leader is friendly towards the Leader of their Civ, Loyalty towards the City Leader should either increase loyalty towards the Civ Leader as well, or at least stop the City from seceding.
We need to make a clear distinctions between the Leader and Civilization classes, as well as figure out the distinctions and relationships between Civilizations and Cities (and in the future, potentially individual Unit Groups/Armies).
Here are my suggestions: