this is in the larger context of what should be in the argument and/or result.
so far we tend to add state into the argument and then re-export it as result. that's fine. but not all results are editable, some are just derived and will be overwritten. that's not the case for arguments, but then again extend/iterate is not a great model to disambiguate it. so we might say that result should export everything this charm touches and creates and then distinguish via readonly/readwrite?