This document tracks the next likely premium and account-related work. It is intentionally high level and references the current repository layout with relative links.
Goal: add Steam OpenID sign-in so premium features can be tied to a stable account.
Likely touch points:
- RandomSteamGame/Program.cs
- RandomSteamGame/Extensions/ServiceExtensions.cs
- RandomSteamGame/Controllers/GameController.cs
- RandomSteamGame/Services/ServerSteamIdentityReader.cs
- RandomSteamGame/Services/ServerSteamIdentityWriter.cs
- RandomSteamGame.Client/Components/Layout/NavMenu.razor
Goal: move blocked games out of browser cookies and into server-owned storage.
Likely touch points:
- RandomSteamGame.Client/Components/RandomGamePicker.razor
- RandomSteamGame/Services/SteamProvider.cs
- RandomSteamGame/Extensions/ServiceExtensions.cs
Goal: let users save favorite games for quick access and future filters.
Likely touch points:
- RandomSteamGame.Client/Components/RandomGamePicker.razor
- RandomSteamGame/Controllers/GameController.cs
- RandomSteamGame/Extensions/ServiceExtensions.cs
Goal: add more picker filters without making the UI or API too complex.
Current random-game picker flow uses GET /api/{provider}/random-game/details; the older generic route is gone.
Likely touch points:
- RandomSteamGame.Client/Components/SteamPickerForm.razor
- RandomSteamGame.Client/Components/RandomGamePicker.razor
- RandomSteamGame.Client/Services/RandomSteamApiClient.cs
- RandomSteamGame/Controllers/GameController.cs
- RandomSteamGame/Services/SteamProvider.cs
Goal: track past picks so users can revisit them later.
Likely touch points:
- RandomSteamGame/Controllers/GameController.cs
- RandomSteamGame/Services/AppStatsService.cs
- RandomSteamGame.Client/Components/RandomGamePicker.razor
Goal: keep CSV export available behind the right access rules if premium gating is added later.
The export already exists in the current app; this issue is about product gating and UI placement, not building the feature from scratch.
Likely touch points:
- RandomSteamGame/Controllers/GameController.cs
- RandomSteamGame/Services/Interfaces/ISteamLibraryExportService.cs
- RandomSteamGame/Services/SteamLibraryExportService.cs
Goal: persist picker preferences server-side instead of only in browser cookies.
Likely touch points:
- RandomSteamGame.Client/Components/SteamPickerForm.razor
- RandomSteamGame.Client/Models/SteamPickerFormModel.cs
- RandomSteamGame.Client/Services/BrowserSteamIdentityStore.cs
- RandomSteamGame/Services/ServerSteamIdentityReader.cs
- Sign in with Steam
- User preferences
- Permanent blocked games
- Favorites
- Picker history
- Filters
- CSV export gating