feat: clue safety-net engine (essential-gap + solvability)
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
export function analyzeClues(clues = [], revealed = []) {
|
||||
const seen = new Set(revealed);
|
||||
const essential = clues.filter((c) => c.essential);
|
||||
const missingEssential = essential.filter((c) => !seen.has(c.id));
|
||||
return {
|
||||
total: clues.length,
|
||||
revealedCount: clues.filter((c) => seen.has(c.id)).length,
|
||||
essentialTotal: essential.length,
|
||||
essentialRevealed: essential.length - missingEssential.length,
|
||||
missingEssential,
|
||||
solvable: missingEssential.length === 0,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user