Add a SCORE_NONE.
[stockfish] / src / hashprobe.proto
index 5df9b9c..bb34806 100644 (file)
@@ -1,15 +1,45 @@
 syntax = "proto3";
 syntax = "proto3";
+package hashprobe;
 
 message HashProbeRequest {
        string fen = 1;
 }
 message HashProbeResponse {
 
 message HashProbeRequest {
        string fen = 1;
 }
 message HashProbeResponse {
-       bool found = 1;
-       int32 move = 2;
-       int32 value = 3;
-       int32 eval = 4;
-       int32 depth = 5;
-       int32 bound = 6;
+       HashProbeLine root = 2;
+       repeated HashProbeLine line = 1;
+}
+message HashProbeLine {
+       HashProbeMove move = 1;
+       bool found = 2;
+
+       repeated HashProbeMove pv = 3;
+       HashProbeScore value = 4;  // Dynamic eval (may be inexact, see the "bound" field)
+       HashProbeScore eval = 5;  // Static eval
+       int32 depth = 6;
+
+       enum ValueBound {
+               BOUND_NONE = 0;
+               BOUND_UPPER = 1;
+               BOUND_LOWER = 2;
+               BOUND_EXACT = 3;
+       };
+       ValueBound bound = 7;
+}
+
+message HashProbeMove {
+       string from_sq = 1;  // a1, a2, etc.
+       string to_sq = 2;
+       string promotion = 3;  // Q, R, etc.
+}
+message HashProbeScore {
+       enum ScoreType {
+               SCORE_NONE = 0;
+               SCORE_CP = 1;
+               SCORE_MATE = 2;
+       }
+       ScoreType score_type = 1;
+       int32 score_cp = 2;
+       int32 score_mate = 3;
 }
 
 service HashProbe {
 }
 
 service HashProbe {