You can think of theFConversationBranchPointas the owner ofFClientConversationOptionEntry. We don't send this one to the client though, we store temporary state here so that when a user picks a choice there may be other things we need to know or store for actions we need to take due to the user picking this choice. For example, some choices may introduce needing to 'push' a new scope so that when that subtree terminates we return to the previous point, like a stack. There's no reason the client needs to understand this, so we just store it here.