Consider: Don't use StreamDocument::streamMeta field for internal calculations. The main example is window start and stop time. Just make those fields on the window struct. Then operators only need to update StreamDocument::streamMeta when the user is reading it.