Alright I have some more questions. So for starters my intuition that Ops.CONTAINS was going to be invalid was correct. *edits is a list of field name-value updates, represented by a Thrift union. I believe that I updated my logic to work with that more accurately.
However, I'm confused about the flow you described. How can I just directly edit the Series object like that ? I was under the impression I needed to do it via a localTransform on the PState.
Here's what I'm working with now:
So we do the following:
1) Extract the list of edits to be made
2) We get the current series by id, and extract the current start time
3) We iterate over the edits list and get the field name and field value.
4) We look at the field name and see if it was the start field that was edited and assign *startChanged a boolean value
5) We edit the given field in both PStates
6) If we're currently editing the start field, we copy the updated series, delete the old entry at the old start time, get the new start time, and apply the transformation for the new start time
So I'm wondering is the logic I currently have making sense? Is there a fundamental misunderstanding of Rama processes or general programming in here? I see some room for optimization, but I'm having trouble forming a concept about it.
Thanks for the help Nathan, most appreciated.