anchor.diff:      for (var place in properties['visited']) {
         var city = cities[place];
         visited.add(city);
  +      // TODO: update city as visited by whom.
       }
     }
   
  
positive.code:     if (!properties.containsKey('description')) {
        throw new ArgumentError('Point is lacking a "description" property');
      }
      var name = properties['description'];
      var nameParts = name.split(',').map((e) => e.trim()).toList();
      if (nameParts.length != 2) {
        throw new ArgumentError(
            'name should be in the form of "<locality>, <country>"');
      }
      locality = nameParts[0];
      country = nameParts[1].toUpperCase();
      if (country.length != 2) {
        throw new ArgumentError('country should be in ISO 3166-1 alpha-2 format');
      }
  
negative.code:  * A city that has been visited.
   */
  class City implements Comparable {
    // TODO: marker-size
    // TODO: trips/visits
    String locality;
    String country;
    double longitude;
  