Hello people, I am now working on a small project that is hardcore ui loaded.
I would like to have a clear separation between Model (data) and View (UI). So the Nodes containing the data have nothing to do with how this data is visualized.
I am starting with a DataManager and a DataStorage. DataManager is in charge or executing changes in the DataStorage. in an MVC (Model, View, Controller) architecture DataManager would be the Controller, and DataStorage the Model.
Then I have a UIManager (the View), which is in charge of listening to signals from DataStorage to update the visuals, and also calling methods in DataManager to modify the data (clicking buttons and such).
It looks to me like a nice plan, but I am in the middle of the implementation and I am not sure if this is the right approach, I am worried there are many interconnections. And I don't know if this architecture is becoming too heavy to follow and maintain.
This is an illustrative example of a minimized version of what I am dealing with:

In this example DataStorage contains unassigned Gold and a bunch of Bags, each bag contains Gold. UIManager can add Bags and can assign Gold to specific Bag.
I am injecting by @exportvar DataStorage into DataManager, and DataManager into UIManager. Now UIManager has access to everything.
It works, is ok, but I am wondering what other architecture options are used to solve structures like this. Do you have experience with this? or do you know any resource can be helpful to me?