private static void Disambiguation(this Move move, Square from, IPosition position, StringBuilder sb) { var simularTypeAttacks = position.GetSimilarAttacks(move); var ambiguity = move.Ambiguity(simularTypeAttacks, position); if (!ambiguity.HasFlagFast(EMoveAmbiguity.Move)) { return; } if (!ambiguity.HasFlagFast(EMoveAmbiguity.File)) { sb.Append(from.FileChar()); } else if (!ambiguity.HasFlagFast(EMoveAmbiguity.Rank)) { sb.Append(from.RankChar()); } else { sb.Append(from.ToString()); } }