You've got a property of your model which is complex to calculate (availableWords) and depends on two other properties (cardPile and languageChoice). That dependency has nothing to do with UI.
You can make a custom setter for cardPile and languageChoice which calls updateAvailableProperties. That satisfies the dependency, independent of UI code.
In the UI, bind to languageChoice and cardPile. That makes the intent clear. The connection between those two properties and changes to availableWords is only visible in WordsManager, your UI doesn't need to know about it.
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: