Thinking overnight about the current stashing problem, here's what I came up with:
- Stash should be a Unit-type instead of a special object in the Feature.
- Each Row should have both an input and output dataset. ("read" ops come from the input set, "write" ops go to the output)
- The dataset should be in arrays in the Row objects; Units should be strictly for translation.
I think there might have been one more, or maybe I was counting differently. Either way, if I've missed anything, it's probably a logical consequence of the first two decisions and will (therefore) become evident after I implement them.