Event system.
The big stopper right now is that data is fetched on demand. But I think this can work if it uses a mixed system. Initial data is extrapolated from the CVars and from then on the internal event system handles how those variables change. For example, current weapon and player rank. Need to sit on this idea some more.