The object representing the multiple outputs is a namedtuple. You can destructure as you are based on the order of elements in the tuple. The order is determined by the order of the dictionary passed to out.
The name of the variables you assign to has no effect. You can capture the tuple directly and then key using the names of the outputs though.
When an op returns multiple values, as it does in the case of the conditional branching example, it's not documented what order they will be in.
It would be great to incorporate this answer on Slack into the docs: https://dagster.slack.com/archives/C01U954MEER/p1646422324967139?thread_ts=1646357933.951519&cid=C01U954MEER
The object representing the multiple outputs is a namedtuple. You can destructure as you are based on the order of elements in the tuple. The order is determined by the order of the dictionary passed to out. The name of the variables you assign to has no effect. You can capture the tuple directly and then key using the names of the outputs though.