def piece_map(self) -> Dict[Square, Piece]:
        """
        Gets a dictionary of :class:`pieces <chess.Piece>` by square index.
        """
        result = {}
        for square in scan_reversed(self.occupied):
            result[square] = typing.cast(Piece, self.piece_at(square))
        return result
Gets a dictionary of :class:`pieces <chess.Piece>` by square index.