- robots.txt: proper Disallow rules + sitemap URL
- Layout: robots meta tag, fix canonical syntax, og:site_name, full Twitter Card tags
- Game pages: canonical URLs, og:type website, breadcrumb nav + JSON-LD schema
- Screenshot alt text with game title and index
- VideoGame JSON-LD: review array with rating/author/body
- Similar Games section on game detail (by genre, ordered by rating)
- browse/index: noindex on paginated or multi-filter pages
- search results: noindex + improved title
- User library and lists: noindex
- Unique meta descriptions on browse, top-rated, new-releases pages
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Pin symfony/yaml to ^7.4 — v8.x requires PHP >=8.4.1 which is
incompatible with our PHP 8.3 requirement. All packages that depend
on symfony/yaml accept ^7.0, so this is a safe downgrade.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- CompareController: side-by-side library diff with stats (common games, rating diff)
- GameCommentController + GameCommentPolicy: threaded comments with replies, auth-gated
- GameComment model with top-level scope and self-referential replies relation
- Migration: game_comments table with parent_id for threading
- games/show: Discussion section with Alpine.js (post, reply, delete)
- compare/show: tabbed view (in common, they have, you have) with game cards
- users/show: "Compare Libraries" button visible to other authenticated users
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Review system: ReviewController (store/update/destroy), ReviewPolicy, Review model boot() hooks, review form with Alpine.js (spoiler toggle, edit/delete UX)
- Search autocomplete: Alpine.js searchWidget in nav with 300ms debounce, keyboard navigation, 6-result dropdown
- SEO: og:image, twitter:card in layout; og sections + Schema.org VideoGame JSON-LD on game show pages
- Custom lists: UserList/UserListGame models, ListController, ListPolicy, lists index/show views, Add-to-List button on game pages
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>