Setup for support of generated changelogs
Description of the proposed changes
Closes https://github.com/FAForever/fa/issues/6239.
Related to #6444 and #6472.
Reworks the changelog dialog module.
Lazy loading of changelog data
The changelogs are now lazy-loaded. In practice that means that changelogs are only loaded into memory if a user ends up clicking on a changelog in the changelog dialog. This matters because without this we'd load in about five megabytes worth of data just by clicking on the lobby.
Hot reload
Add additional debugging functionality that allows one to edit the changelog with hot reload-like functionality. This means you can open the dialog and as you make changes to the dialog file it will re-open immediately with your changes applied!
https://github.com/user-attachments/assets/d888d170-ea48-46d9-ad59-ff50146bd7ea
Works better than in .Net 8.0!
Testing done on the proposed changes
Opening and closing of the dialog in a harmonic manner.
Checklist
- [x] Changes are annotated, including comments where useful
- [ ] Changes are documented in the changelog for the next game version
@Zjonn An initial setup of how we'll apply your work in-game. Looking forward to implementing your workflow into the deployment workflows 😃 !
This is ready for an initial review! Everything works, it can definitely be more streamlined though! As an example of the output, see the history of my fork and specifically this commit.