I have found what I think is a bug in @ObjectBinding. For cases when a @BindableObject get its didChange.send() called asynchronously, sometimes views that depend on that change
You need to replace your didChange with let objectWillChange = ObservableObjectPublisher()
as ObservableObject implicitly already implements a PassthroughtSubject.
Also, Apple docs recommends now to use @Published instead of the didSet: @Published var value: Int = 1
In your update function, replace self.update() with self.objectWillChange.send()
I found this link explaining how to trigger a view invalidation.