For Further Study: strange and other ideas:

-   Incremental move generation

-   Move generation in parts with large context

-   Defender heuristic "stalemate".
    ==> first do global analysis of type of board/problem,
	then choose special strategy.

-   Defender heuristic "permanent check".
    Speziell, wenn eine D Schach sagt, und der K ziehen muss,
    kann man z.B. mit Gegenfeld-Methode evtl feststellen,
    dass sich das nicht aendern wird ==> geht nicht in 63(!) Zuegen.

-   Special defender strategies when there are only certain attacker figures,
    e.g. when there is only one L for the attacker (no BSTD),
    the defender should hold his king on the nonattackable half of the fields.

-   Executing groups of moves resulting in sets of positions,
    which may be analysed together.
    When necessary split into subgroups.
    Seems to conflict with nearly everything else.

-   Find analysis result by logical (symbolic?) reasoning.
    Must be formally, stringent and complete.
    Hybrid form could be:
    -	By formal logic set restrictive framework, which significantly
	cuts down the extent of the tree of variants to be inspected.

-   Which type of board should be entered into the memory ?
    (1)	Attacker to move
    (2)	Defender to move
    (3)	Both
    Currently we do (1).

-   Use a packed version of the piece list as content in board memory ?
    A hash code and the packed list (1 Byte per entry) can be up/downdated.
    Problem: equal pieces must be sorted by position.

-   We could know who/how many piece is/are on all those different lines
    (horizontal, vertical, diagonal).
    Would allow better/faster analysis of pinnings and indirect checks. (?)

-   job type "force draw (or mate, if possible)"
    problem: in how many moves? what is terminal position?

