sagaphone/spec/line-logic.md
Tim 06df9df339 Initial spec for Sagaphone
Pulled from Notion project docs: overview, architecture, data model,
event system, line logic, and implementation notes for the family-tree
generator + TTS narrator.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-17 22:04:33 +02:00

819 B

Line Logic

  • A family line is a branch: one person and all of their descendants.
  • All descendants count — legitimate, illegitimate, children from multiple partnerships.
  • The active line stays on the current branch until it dies out.
  • "Dies out" means nobody in that branch has living descendants (checked up to current_generation - 1).
  • When a branch dies out → a random pick among the other existing lines.
  • Background persons (not currently narrated) are still simulated — events, death, partnerships, children — just not narrated.

Edge Cases

  • At least one line must always remain.
  • If the last line dies out prematurely → search earlier generations for branches that haven't been narrated yet.
  • From generation 6 onwards, no new generations are simulated in the background.