syntax = "proto3";
+package hashprobe;
+
message HashProbeRequest {
string fen = 1;
}
message HashProbeResponse {
- bool found = 1;
- int32 move = 2; // See types.h
- int32 value = 3; // Dynamic eval (may be inexact, see the "bound" field)
- int32 eval = 4; // Static eval
- int32 depth = 5;
+ 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_LOWER = 2;
BOUND_EXACT = 3;
};
- ValueBound bound = 6;
+ ValueBound bound = 7;
+}
+
+message HashProbeMove {
+ string from_sq = 1; // a1, a2, etc.
+ string to_sq = 2;
+ string promotion = 3; // Q, R, etc.
+
+ string pretty = 4; // e.g. Rxf6+
+}
+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 {