syntax = "proto3"; package hashprobe; message HashProbeRequest { string fen = 1; } message HashProbeResponse { repeated HashProbeLine line = 1; } message HashProbeLine { HashProbeMove move = 1; bool found = 2; repeated HashProbeMove pv = 3; int32 value = 4; // Dynamic eval (may be inexact, see the "bound" field) int32 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. } service HashProbe { rpc Probe(HashProbeRequest) returns (HashProbeResponse) {} }