// Ages are whole game years (one real calendar day per year). export function hasReachedFertility(character, age) { const threshold = character?.fertileFromAge; return Number.isInteger(threshold) && threshold > 0 && Number.isFinite(age) && age >= threshold; } export function getCharacterDevelopment(character, age) { const pubertyStartAge = character?.pubertyStartAge ?? null; return { pubertyStartAge, fertileFromAge: character?.fertileFromAge ?? null, hasReachedPuberty: Number.isInteger(pubertyStartAge) && pubertyStartAge > 0 && Number.isFinite(age) && age >= pubertyStartAge, hasReachedFertility: hasReachedFertility(character, age), }; }