Bare minimum functionality. Steam Web API, tag weighting, etc

This commit is contained in:
boris committed 2026-07-16 13:19:23 +01:00
1 parent 300a5e53e3
commit 233f0dc48d
82 files changed
+15666 -9

No files matched your search

+12 -2
View File
@@ -26,7 +26,7 @@ Desktop App
Frontend UI
Setup flow
Recommendation flow
Slot-machine picker
Spinning-wheel picker
Settings for API keys and refresh
App Service Layer
Steam import
@@ -49,6 +49,7 @@ Responsibilities:
- Resolve Steam profile inputs.
- Fetch owned games.
- Fetch Steam Store metadata for owned apps so tools, DLC, demos, and other non-game app types can be excluded before recommendation.
- Guide the user through Steam Web API key setup.
- Handle API errors and private profile failures.
- Normalize Steam app IDs and playtime.
@@ -72,6 +73,8 @@ Responsibilities:
- Score candidate games based on the short questionnaire.
- Explain the score in human-readable terms.
- Apply hard eligibility filters before scoring.
- Apply preferred filters as weighting only, not as inclusion/exclusion rules.
- Support a true-random mode that bypasses weighted scoring.
- Return a ranked dynamic shortlist and one primary recommendation.
- Keep mood tagging, history, and accepted/rejected tracking out of the MVP.
@@ -100,6 +103,8 @@ Responsibilities:
- `review_score`
- `is_free_to_play`
- `is_excluded_type`
- `supports_singleplayer`
- `supports_multiplayer`
- `metadata_updated_at`
### game_lengths
@@ -131,11 +136,13 @@ Example scoring inputs:
- Positive weight for matching selected genre or tag.
- Positive weight for fitting available session time.
- Positive weight for matching preferred single-player or multiplayer mode.
- Positive weight for partially played games in "finish something" mode.
- Positive weight for unplayed games in "try something new" mode.
- Positive weight for meeting the user's review-score preference.
- Negative weight for extremely long games in short-session mode.
- Hard exclusion for demos, tools, soundtracks, and DLC.
- Hard exclusion only for explicit eligibility filters; review, mode, genre, and playtime preferences should not remove candidates by themselves.
The UI should show concise explanations such as:
@@ -169,6 +176,7 @@ The UI should show concise explanations such as:
- Fetch Steam Store metadata.
- Fetch public review signals where available.
- Exclude non-game Steam app types before they enter the wheel.
- Integrate a HowLongToBeat-compatible source after validating terms and package health.
- Cache metadata locally with refresh timestamps.
@@ -176,8 +184,10 @@ The UI should show concise explanations such as:
- Implement the short-question flow.
- Add scoring and explanations.
- Add eligibility filters that can remove games from the candidate pool.
- Add preferred filters for review signal, single-player/multiplayer, genre, and playtime weighting.
- Add true-random toggle behavior.
- Add slot-machine reveal.
- Add spinning-wheel reveal.
- Add Steam launch links.
### Phase 5: Packaging