code: function getNotationPrefix (src, dest, movesForPiece) {
  	let
  		containsDest = (squares) => {
  			let n = 0;
  
  			for (n = 0; n < squares.length; n++) {
  				if (squares[n] === dest) {
  					return true;
  				}
  			}
  
  			return false;
  		},
  		file = '',
  		fileHash = {},
  		i = 0,
  		prefix = src.piece.notation,
  		rank = 0,
  		rankHash = {};
  
  	for (i = 0; i < movesForPiece.length; i++) {
  		if (containsDest(movesForPiece[i].squares)) {
  			file = movesForPiece[i].src.file;
  			rank = movesForPiece[i].src.rank;
  
  			fileHash[file] = (typeof fileHash[file] !== 'undefined' ? fileHash[file] + 1 : 1);
  			rankHash[rank] = (typeof rankHash[rank] !== 'undefined' ? rankHash[rank] + 1 : 1);
  		}
  	}
  
  	if (Object.keys(fileHash).length > 1) {
  		prefix += src.file;
  	}
  
  	if (Object.keys(rankHash).length > Object.keys(fileHash).length) {
  		prefix += src.rank;
  	}
  
  	return prefix;
  }
docs: private methods