public static Explanation readExplanation(StreamInput in) throws IOException {
   float value = in.readFloat();
   String description = in.readString();
   Explanation explanation = new Explanation(value, description);
   if (in.readBoolean()) {
     int size = in.readVInt();
     for (int i = 0; i < size; i++) {
       explanation.addDetail(readExplanation(in));
     }
   }
   return explanation;
 }