when ToolCalled("approve") → TerminateTarget("approved")
when ToolCalled("request_revision") → AgentTarget(Writer)
when FromSpeaker(User) → AgentTarget(Researcher)
when FromSpeaker(Researcher) → AgentTarget(Writer)
when FromSpeaker(Writer) → AgentTarget(Reviewer)
default_target = TerminateTarget("no_match") · max_turns = 10