public static WordModel GetBestSynonym(WordModel word, ICollection<WordModel> synonyms, WordTrait desired = null)
 {
     if (!synonyms.Any())
     {
         return word;
     }
     if (synonyms.Count() == 1)
     {
         return synonyms.First();
     }
     return BestSynonymMatchByTrait(synonyms, desired);
 }
 private static WordModel BestSynonymMatchByTrait(IEnumerable<WordModel> data, WordTrait desiredTraits)
 {
     //Todo: Lots of logic based on Synonym traits
     //Defaulting to Longest
     return data.OrderByDescending(s => s.Word.Length).First();
 }