Finally this page completes the understanding on Board Representation and the 3 main algorithms involving it:
1. Move Generation
2. Move make
3. Move Unmake (Takeback)
The information about move is determined in move generating process.
This information is stored in the variable "move_type"
The next function MakeMove uses this information to process various parameters of the position.
It also stores the soft parameters for unmake move.
UnMakeMove (/takeback) uses this stored information and again processes faster.
Overall, since all the functions are serially staged, the data processed by 1 function is used in the next function for faster processing.
The next step would be to test Board Rep using perft function.
I have added code with the perft function.
Please test for different positions.