Source of truth
Published onThe DataModel as the single source of truth is an awful one, because the engine calls all the shots, while scripts are second-class.
Because the engine can be made to do nothing by default, I get around this by conceptualizing my collective codebase as a server, with the data model as a client. This does create two sources of truth, but the data model is usually a good little client that behaves as it should.
A consequence is that this “server” must be considered as a whole, so libraries must be made compatible with this model. But this is fine, because any 3rd-party library is already going to be incompatible in some way no matter what.
Assuming Roact doesn’t expose its own source of truth to be incorporated into the “server”, it could just be treated as another “client” instead.