 
     public static var allCards:Set<PlayerCard> = [algiers, atlanta, baghdad, bangkok, beijing, bogotá, buenosaires, cairo, chennai, chicago, delhi, essen, hochiminhcity, hongkong, istanbul, jakarta, johannesburg, karachi, khartoum, kinshasa, kolkata, lagos, lima, london, losangeles, madrid, manila, mexicocity, miami, milan, montreal, moscow, mumbai, newyork, osaka, paris, riyadh, sanfrancisco, santiago, sãopaulo, seoul, shanghai, stpetersburg, sydney, taipei, tehran, tokyo, washington]
 
+    /**
+     Finds all PlayerCard values with names that contain the specified portion of a name.
+
+     - returns: All PlayerCards whose names contain the string `portionOfName` anywhere
+     in their name.
+
+     - remark: It is sufficient to pass just the first 4 characters of any name
+     to ensure uniquenss and to return only one PlayerCard. For example the following
+     code will ensure `myCard` gets the value `City.santiago`.
+
+     ````
+     let myCard = PlayerCard.findByName("sant").first!
+     ````
+     */
     public static func findByName(name:String) -> [PlayerCard] {
         return allCards.findByName(name)
     }


}


extension SequenceType  where Generator.Element : HasCity {
    public func findByName(name:String) -> [Generator.Element] {

        return city.hashValue
    }

    private init(city:City) {
        self.city = city
    }

