By Condition
@Serializable
@SerialName(value = "byCondition" )
Route by predicate, first matching case wins, falling back to default. Each case names a predicate resolved at build time from the builder's predicate registry (behavior is not serialized — only the hook name). An unknown name fails the build loudly.