AnimationFrameInvalidation
data class AnimationFrameInvalidation(val stateId: StateId, val isLayoutState: Boolean, val attribution: String?)
A stable descriptor of an animated value's invalidation, recorded each frame the value changes.
This is a framework-internal contract between AnimatedValue and StateUpdater.applyAnimationFrameUpdates. Its fields are all fixed for the lifetime of the producing AnimatedValue, so a single instance is cached on the value and reused every frame rather than allocated per frame. It carries only what is needed to invalidate the readers of stateId; the animated value itself stays owned by the AnimatedValue, so this is an invalidation key, not a state mutation.