public static String descriptionFor(Trait trait, float level) {
    String bestDesc = null ;
    float minDiff = Float.POSITIVE_INFINITY ;
    int i = 0 ; for (String s : trait.descriptors) {
      float value = trait.descValues[i] ;
      if (value > 0) value -= (trait.maxVal - level) / (trait.maxVal - 1) ;
      if (value < 0) value += 0.5f ;
      
      final float diff = Math.abs(level - value) ;
      if (diff < minDiff) { minDiff = diff ; bestDesc = s ; }
      i++ ;
    }
    return bestDesc ;
  }