The game is being solved through tablebases, and as more pieces are added, it will get easier, esspecially when it begins encroaching on known openings.
For all practical purposes, chess is already solved. Stockfish 8 has practically solved the game for any human who knows how to "listen" to the engine. That's a video game skill, btw.
This is wrong on many levels, but to start with, it's wrong that Stockfish has already solved the game. It lost 8 games out of 100 against Komodo in the last World Computer Championship. That ain't solved. It's getting closer to being solved, but it ain't there yet.
To answer my own question.
You reflect the position about the vertical (files) axis.
The easiest way to think about this is that the pieces flip sideways.
Every square has a mirror image, d4 with e4, a1 with h1, a8 with h8, etc etc.
You then only use half the board for the white king for files A + B + C + D.
You have 2 sets of bit boards in the code, normal bit boards and reflected bit boards.
If the king is on A1 and it moves to A2 you update the normal bit boards just like with chess.
However you also do the reflected bit boards but the white king moves from H1 to H2 on the mirror.
Note that the reflected bit boards are only used for graphical display to show the position to the player if the king is on file E, F, G or H.
The reflected bit boards are not stored in a database and are not used by the game engine.
Note that refection applies to every possible position on the board, not just the starting position.
So you no longer have to store in a database or use in code for "as many atoms in the universe".
Now you only have "half as many atoms in the universe".
But I got a few more tricks.
The positions below are from Final Wars but it applies to Chess and Fischer Random as well.
The first is the actual game, this is what the player sees, note that the white king is on the "reflected" side. Note that this position is not stored in a database or used by the game engine.
The second is what is going on behind the scenes, it looks like only the kings and queens have changed positions but in reality every piece and pawn has mirrored (changed places). This is what is stored in the database and used by the game engine.
Note that castling short for Chess and Fischer Random would be to the left, but this is behind the scenes, the player would see it as normal. You need a flag in the code to tell it if the position is reflected or not.
Final Wars is a bit different, it has symmetrical king transfers due to the random setup.
This all might sound like a lot but it is not, all it is is one more set of bit boards in code and a bit of code, in return you eliminate virtually 50% of all the possible chess positions in one go and you reduce the database storage for all those positions as well.
How can you possibly solve chess if you do not have the data to solve the problem?
Players View
Program View (Database and Engine)