I am requesting a reimplementation once again, with options. Please?

The Proposal:
Enabled|Disabled
a) compile option flag
b) by rc file
This would not interfere with your control environment testing of Crafty.
I would like to also see some other things for position learning.
1) a file parser that evaluates each position or move.
a) FENs/EPDs/PGN/SANs formats
2) writes information too position.lrn && position.bin.
a) top x moves specified
b) score(s) associated with x moves
Sometimes there is more than one move to choose from.
learn <format> <moves> <time>
intial position...
learn FEN 20 5
or
learn FEN max 5
evaluating all possible moves for the position...
This would take the starting board position
Write 20 FENs to position.lrn|.bin
Each move listed with it's score evaluated, maybe ply
Spend 5 seconds on each move to, then grab evaluation score||ply
Something like:
FEN [move][score][ply]
For PGN format:
1) read each move
a) evaluate each move
2) convert each move in the PGN into <format> e.g., FEN
a) write FEN [move][score][ply] to position.lrn|.bin
After each game close & reload position.bin into memory.
Maybe a duplication catcher would be good also.
A vast amount of knowledge can be stored.
Other paths to consider is making more phases of learn files,
such as opening, middle-game, end-game, special cases, tournament, etc.
Loading them into memory by rc file would work. This would be useful for selection, & if the files would get too large.
My final idea is having a learn searching fuction. This would start from a move or position and would search x||all moves and branches, maybe in a given evaluation window if desired. This would search either until a certian ply, time, or max. The max would have a hash_signature to where it left off, & storing in chunks of knowledge in appropriate sizes (Less than 2GB).
I know you have a lot on your plate Bob.
Thoughts?
Joshua D. Haglund