r0 := UnboundTable: left
  time1 int32
  value float64

r1 := UnboundTable: right
  time2  int32
  value2 float64

JoinChain[r0]
  JoinLink[asof, r1]
    r0.time1 >= r1.time2
  JoinLink[inner, r1]
    r0.value == r1.value2
  values:
    time1:        r0.time1
    value:        r0.value
    time2:        r1.time2
    value2:       r1.value2
    time2_right:  r1.time2
    value2_right: r1.value2