Here is my suggestion to gui developer. On automatic analysis of games, provide 1 or more additional alternative lines if there is. Threat pv can also be added when possible so that the user may see what is the threat of the move.
I have a script to analyze a game in pgn together with an engine, sample.
The analyzed pgn.
[pgn]
[Event "3rd Norway Chess 2015"]
[Site "Stavanger NOR"]
[Date "2015.06.18"]
[Round "3"]
[White "Vachier Lagrave,M"]
[Black "Topalov,V"]
[Result "0-1"]
[Annotator "Stockfish 6 (10.0s/pos)"]
1. d4 Nf6 2. c4 e6 3. Nf3 d5 4. Nc3 c6 5. e3 Nbd7 6. Bd3
dxc4 7. Bxc4 b5 8. Bd3 Bb7 9. O-O a6 10. e4 c5 11. d5 Qc7 12. dxe6
fxe6
13. Bc2 $0 $10 {+0.01/18} ({Better is} 13. Qe2 c4 14. Bc2 Bd6 15. Nd4 Bxh2+ 16. Kh1 $10 {+0.06/17})
({Black is threatening} 13. -- 13... Be7 14. Bg5 O-O 15. Bh4 c4 16. Bc2 Bd6 {-0.56})Bd6
14. Ng5 $0 $10 {-0.03/17} ({Better is} 14. Qe2 c4 15. Re1 Bc5 16. h3 O-O 17. Be3 $10 {+0.00/17})
({Black is threatening} 14. -- 14... O-O 15. Qe2 h6 16. Kh1 b4 17. Na4 Bc6 {-0.79})Nf8 15. f4 O-O-O
16. Qe1 $0 $10 {-0.17/19} ({Better is} 16. Qe2 h6 $10 {+0.07/19})
({Black is threatening} 16. -- 16... h6 17. Nf3 Bxf4 18. Qe2 Kb8 19. Bxf4 Qxf4 {-0.77})
e5 $0 $10 {+0.00/18} ({Better is} 16... h6 17. Nf3 Bxf4 18. e5 Bxc1 19. Rxc1 N6d7 $10 {-0.17/19})
({White is threatening} 16. -- 17. e5 h6 18. exd6 Rxd6 19. Nf3 N8d7 20. b3 {3.41})
17. f5 $0 $15 {-0.28/19} ({Better is} 17. fxe5 Bxe5 18. Nf3 Ne6 19. Nxe5 Qxe5 20. Rf5 $10 {+0.00/18})
({Also playable is} 17. Nf3 Ne6 18. fxe5 Bxe5 19. Nxe5 Qxe5 20. Rf5 $10 {+0.00/18})
({Black is threatening} 17. -- 17... exf4 18. Nd5 Nxd5 19. exd5 Bxd5 20. Bd2 b4 {-1.15})h6
18. Nf3 $0 $10 {-0.12/18} ({Better is} 18. Nh3 c4 19. Nf2 N8d7 20. b3 Bc5 21. Be3 $10 {-0.18/19})
({Black is threatening} 18. -- 18... hxg5 19. Bxg5 c4 20. h3 Bc5+ 21. Kh1 N8d7 {-3.43})
N8d7 $0 $10 {-0.18/18} ({Better is} 18... c4 19. a3 N8d7 20. Be3 Bc5 21. h3 Bxe3+ $10 {-0.12/18})
({White is threatening} 18. -- 19. b3 N8d7 20. Bb2 c4 21. bxc4 Qxc4 22. Kh1 {0.15})
19. Kh1 $0 $15 {-0.35/18} ({Better is} 19. Nd1 c4 20. Nf2 Kb8 21. Be3 Bc5 22. Bxc5 $10 {-0.18/18})
({Also playable is} 19. Bd2 c4 20. Nd1 Qc6 21. Nf2 Nc5 22. Ba5 $15 {-0.32/18})
({Black is threatening} 19. -- 19... c4 20. a3 Nc5 21. Kh1 Rd7 22. Bd2 Kb8 {-0.70})
Rhe8 $0 $10 {-0.12/18} ({Better is} 19... c4 20. Bd2 Kb8 21. Rd1 Rhe8 22. Nb1 Bc5 $15 {-0.35/18})
({Also playable is} 19... Kb8 20. Bd2 c4 21. Rd1 Nc5 22. Nd5 Nxd5 $15 {-0.27/18})
({White is threatening} 19. -- 20. b3 Nb8 {0.03})20. Bd2
Qc6 $0 $10 {-0.13/18} ({Better is} 20... Nb6 21. b3 Qc6 22. Rc1 c4 23. Be3 Kb8 $10 {-0.14/17})
({White is threatening} 20. -- 21. Nd1 Qc6 22. Ba5 Bc7 23. Bxc7 Kxc7 24. Nf2 {0.03})
21. Rd1 $0 $15 {-0.50/18} ({Better is} 21. a3 c4 22. Qg3 Re7 23. Rad1 Nc5 24. Be3 $10 {-0.13/18})
({Black is threatening} 21. -- 21... b4 22. Nd5 Nxd5 23. exd5 Qxd5 24. Bb3 Qe4 {-0.64})Nb6
22. Nd5 $0 $15 {-1.27/19} ({Better is} 22. a3 Bc7 23. Be3 Rxd1 24. Qxd1 Nc4 25. Bc1 $15 {-0.65/17})
({Also playable is} 22. Qg3 b4 23. Nb1 Nxe4 24. Qxg7 Bf8 25. Qg6 $15 {-0.74/17})
({Black is threatening} 22. -- 22... b4 23. Nd5 Nbxd5 24. exd5 Qb5 25. Be3 Bxd5 {-1.13})Nbxd5 23. exd5 $8 Qd7
24. Ba5 $0 $17 {-1.55/20} ({Better is} 24. Nh4 e4 25. Ba5 Bc7 26. d6 Bxa5 27. Qxa5 $15 {-1.36/18})
({Black is threatening} 24. -- 24... e4 25. Ng1 e3 26. Ba5 Bc7 27. Bxc7 Qxc7 {-2.19})e4
25. Ng1 $0 $17 {-1.70/19} ({Better is} 25. Nh4 Bc7 26. Bxc7 Qxc7 27. Ng6 e3 28. Qe2 $17 {-1.52/20})
({Black is threatening} 25. -- 25... exf3 26. Qf2 Re2 27. Qxf3 Rxc2 28. Bxd8 Qxd8 {-7.61})Bc7 26. d6 Bxa5 27. Qxa5 $8 e3
28. Ne2 $2 $19 {-3.54/21} ({Better is} 28. Qe1 Bd5 29. Qe2 Qc6 30. b3 Rxd6 31. Rfe1 $17 {-1.94/20})
({Also playable is} 28. Rfe1 Ng4 29. Nh3 Qc6 30. Qc7+ Qxc7 31. dxc7 $17 {-2.91/20})
({Black is threatening} 28. -- 28... e2 29. Rf2 exd1=N 30. Bxd1 Qxd6 31. Bf3 Bxf3 {-7.69})Qc6 0-1
[/pgn]