From 84a9b3ffd784eb5c741c7a46437e992754d41d35 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 8 Aug 2026 05:16:57 +0000 Subject: [PATCH] Keep the Hearts id, which the rules engine needs to compile HeartsRules names GameCatalog.HEARTS as its gameId, so the constant has to exist even though the game is not in the catalogue yet. The id alone puts nothing in the menu -- `all` is what the menu is built from -- so this compiles the engine without offering a game that has no screen behind it. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Urn6eEBA6XzrnfoibL7faC --- app/src/main/java/org/prolibertate/games/game/Catalog.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/org/prolibertate/games/game/Catalog.kt b/app/src/main/java/org/prolibertate/games/game/Catalog.kt index 63a926b..20e3cea 100644 --- a/app/src/main/java/org/prolibertate/games/game/Catalog.kt +++ b/app/src/main/java/org/prolibertate/games/game/Catalog.kt @@ -34,6 +34,13 @@ object GameCatalog { const val WIZARD = "wizard" const val CRAZY_EIGHTS = "crazy8s" const val CRIBBAGE = "cribbage" + + /** + * Hearts has a rules engine and an AI but no screen yet, so it is an id + * without a [GameDescriptor]: nothing to tap, and nothing to crash. It joins + * [all] when its screen lands. + */ + const val HEARTS = "hearts" const val SEQUENCE = "sequence" const val MASTERMIND = "mastermind" const val BACKGAMMON = "backgammon"