WITH recursive temp AS(
SELECT br.child_cat_id AS descendant_id,
c.cat_name AS descendant_name,
1 AS generation,
br.health_score,
br.birth_date
FROM breeding_records br
JOIN cats c ON br.child_cat_id = c.cat_id
WHERE br.parent_cat_id = (SELECT cat_id FROM cats WHERE cat_name = 'Luna')
AND br.birth_date BETWEEN '2025-01-01' AND '2025-12-31'
UNION ALL
SELECT br.child_cat_id, c.cat_name, t.generation + 1, br.health_score, br.birth_date
FROM temp t
JOIN breeding_records br ON br.parent_cat_id = t.descendant_id
JOIN cats c ON c.cat_id = br.child_cat_id
AND br.birth_date BETWEEN '2025-01-01' AND '2025-12-31'
)
SELECT descendant_id, descendant_name, generation, ROUND(health_score*POWER(0.95,generation),2)composite_index
FROM temp
ORDER BY 3, 4 DESC,1