I encountered the same problem. Even without using a computed property, just working with airplane.state directly the views wouldn't register the changes. It seems to be related to SwiftData, because If you change your models to just @Observable classes all nested properties work as expected.