Sometimes setter will not set their internal value to the requested value, but something very close. In this case, Datastream-backed properties will still put the requested value on the datastream, leading to that value being retrieved the next time the getter is called. Instead of the requested value, we should call the getter right after the setter in the code above, and put that value on the datastream rather than the requested one.
https://github.com/spacetelescope/catkit2/blob/295a07bd62b5960b3f569b517c08225e3397500a/catkit_core/Property.cpp#L81
Sometimes setter will not set their internal value to the requested value, but something very close. In this case, Datastream-backed properties will still put the requested value on the datastream, leading to that value being retrieved the next time the getter is called. Instead of the requested value, we should call the getter right after the setter in the code above, and put that value on the datastream rather than the requested one.
FYI: @asahooexo