That's no good.
::notify::EngineBestMove should be invoked with the same displayed value because it may be shown somewhere else (for example chess.com also shows it in the bar).
And this is horrible:
string map is invoked even if it is not necessary and we do not enter the if.
it is not possible for the recipient of the message to distinguish between +M2 and +12
the order is reversed: +M2 becomes a worse evaluation than +M3
If evaluate from engine is mate in X, then evalbar was called with "+MX" instead of a float number