A Zone tracks its neighbors via integer ids. Zone itself, however, does not have an integer attribute that distinguishes it from other zones.
Once this unique identifier is added, Zone will need to provide some way of determining the distance between two zones. This will require a graph traversal of a zone's neighbors.