combiner: update join to use struct for cleaner enum behavior