presentation/widgets/common/quest_board_panel library

Classes

QuestBoardPanel
Displays a list of QuestViewModels — progress bar + a Claim button that's only enabled once a quest is completed and unclaimed — the ready-to-use on-screen counterpart to DailyQuestService (IDEA-29), which previously had no widget consuming it at all.
QuestViewModel
One caller-supplied quest row — label/progress/target/claimed are already resolved by the caller (typically read straight off DailyQuestService.progressOf/targetOf/isClaimed for id); this widget never talks to that service directly, same "pure/data-driven, caller owns the source of truth" convention as LeaderboardEntry.