We have opening books and basically all that's needed is to cross the middle game to reach the endgame tables.
So the middle games need to be analysed for faults and corrected. An engine once out of book starts analysing. It can analyse 5 moves and re-evaluate from the new position that looked solid. Working up the ladder. It can do that until it reaches the end game table. Within a few seconds, it will have found a full line that the first few moves are solid enough to continue from there. Once it reaches the end that was done in steps, it will know if the horizon is favorable or not.
There is not need to re-invent an engine, just need to teach it to see the horizon by letting it breath. The engine will take a new positional breath from it's best lines. It most revaluate from that new position, until it reaches an end. The solution does not have to be the quickest, nor guaranteed perfect ending. Winning is all that matters. So the engine took the scenic route to win. Who cares, it wins. Rather than analysing 50 moves deep, it took a best line and used the first 5 moves and continued it's analysis from move 5. It probably will take about 12 positional evaluations to reach a calculate (not fully analysed) conclusion.
Example ... Initial positon evaluated: Stops at move 5 and considers this the new step in it's initial position analyses and does a new search to move 10... and so forth...
https://lichess.org/GxaW5MV7#5
This line was made using ChessX and Stockfish 15. I imported it to see the move number of the debut of the middle game.
The analysis was started from the initial positon and I left it run for days. Which was not needed to build a game in parts.
Even when I left it continue to do a depth search to create a better full line, the end of the lines were not always accurate. That's what lead me to believe that it's not needed to leave the engine analysis so long to build a solid game with zero centipawn loss.
If only an engine would not try to eat the whole game in one mouth full. But rather take it like in spoon fulls. It's lines would have calculated lines to the end. One step at a time to reach a new favorable position, then it jumps to that new psotion to rech another favorable horizon or end game.
If the full main line searched is a winner, it can then play with the move lengths to see if there is a quicker end game that could be less risky. If I can do that manually (resetting every 5 moves), it surely can be programmed to do that.
Chess engines developers, you can now have fun making this add-on idea open source.
Engines need to create positional milestones to calculate an end game, not just analyse none stop. That's a stepping analysis method that can be used to calculate until the end of the game. :)

