This is not suggesting cities to dwindle in size. But rather under served ones will take time penalty to grow further.
Say a village of 110 population is left unserved for 20 years. After its grace period of 10 years, give it internal negative population of 100.
To this village to be able to grow over 110 population, player must first negate -100 population worth of service to village.
Meanwhile, village should behave same. That means generate pass/mail same way.
Give each cities thresholdservice level requirement for an example.
For simple example, say a village generate 100 passengers in time T.
It got service threshold of 50%.
If player service is 50%(successfully departing 50 passenger), it will not get penalty. But will not grow neither.
If player service is 75%, it will grow 50% of what it should be.
If player service is 100%(serves all demand), village will grow 100% of what it should be.
-Why this feature(1)-
To feedback more accurately how well the player is serving the customers. Even mediocre service will somehow grow
the cities with time. Player can fast forward the game or leave the time flow away from game.
-Why this feature(2)-
Currently cities grow indefinitely and it is infinite race against ever growing demand. Race could be avoided by
INTENTIONALLY not serving some part of cities or industry but it goes against games goal of transporting people and goods.
With this, growth is much more dependent on how well cities are served.
Reflecting player service quality to growth speed much more.
-Problem and thoughts-
Bigger map will suffer from this.
How to set grace period?
How about all cities got different grace period?