* Initial work for serialization refactor
* Experiment with new naming conventions
* Mostly implement user and slot serialization.
Still needs to be fine tuned to match original implementation
Many things are left in a broken state like website features/api endpoints/lbp3 categories
* Fix release building
* Migrate scores, reviews, and more to new serialization system.
Many things are still broken but progress is steadily being made
* Fix Api responses and migrate serialization for most types
* Make serialization better and fix bugs
Fix recursive PrepareSerialization when recursive item is set during root item's PrepareSerialization, items, should be properly indexed in order but it's only tested to 1 level of recursion
* Fix review serialization
* Fix user serialization producing malformed SQL query
* Remove DefaultIfEmpty query
* MariaDB doesn't like double nested queries
* Fix LBP1 tag counter
* Implement lbp3 categories and add better deserialization handling
* Implement expression tree caching to speed up reflection and write new serializer tests
* Remove Game column from UserEntity and rename DatabaseContextModelSnapshot.cs back to DatabaseModelSnapshot.cs
* Make UserEntity username not required
* Fix recursive serialization of lists and add relevant unit tests
* Actually commit the migration
* Fix LocationTests to use new deserialization class
* Fix comments not serializing the right author username
* Replace all occurrences of StatusCode with their respective ASP.NET named result
instead of StatusCode(403) everything is now in the form of Forbid()
* Fix SlotBase.ConvertToEntity and LocationTests
* Fix compilation error
* Give Location a default value in GameUserSlot and GameUser
* Reimplement stubbed website functions
* Convert grief reports to new serialization system
* Update DatabaseModelSnapshot and bump dotnet tool version
* Remove unused directives
* Fix broken type reference
* Fix rated comments on website
* Don't include banned users in website comments
* Optimize score submission
* Fix slot id calculating in in-game comment posting
* Move serialization interfaces to types folder and add more documentation
* Allow uploading of versus scores
* Start of reorganization and cleanup
* Remove duplicate title id
* Refactor types
* Fix Release building
* Move classes in /Types to a Types namespace
* Fix compilation error (RoomVisualizerPage strikes again)
* Fix bugs created from auto merge
* Fix auto-merge compilation error
* Changes from review/fix failed merge
* Initial work for TOTP 2FA
* Fix bug in 2FA code script
* Add translations for two factor and /disable2fa
* Fix compilation error
* Add TwoFactorLoginPage
* Add two factor login process
* Little bit of backup code work
* Finish two factor
* Fix unit tests
* ??? goofy ahh code
* Use SHA-256 instead of SHA-512
* I guess SHA-256 doesn't work either
* Fix comments in Base32 helper
* Move QRCoder package to website
* Add name to endregion comment in css
* Fix bug with redirects
* Initial work for user settings page
* Finish user setting and slot setting pages
* Don't show slot upload date on home page and fix team pick redirection
* Fix upload image button alignment on mobile
* Fix image upload on iPhone
* Remove unused css and add selected button color
* Fix login email check and bump ChromeDriver to 105
* Remove duplicated code and allow users to leave fields empty
* Add unpublish button on level settings and move settings button position
* Don't show edit button on mini card
* Self review bug fixes and users can no longer use an in-use email