The City.is_good property was created in the wrong assumption that the validation() method would be called for each city. In fact, if a CriticalValidationError occurs during city processing, the validation() won't be called.
The 'Stop "{}" {} is nowhere near the tracks' validation error was mistakenly excluded and now resurrected
'colour' and 'infill' attributes were mixed up in one place.
Three bugs were fixed: