Just to note:
The Components can all update without a context switch, because they are all managed by parent modules. Most scenarios run at 1:1 speed compared to ordinary SmileBasic!
This is possible by templating out the same pattern you see in plain SmileBasic where coders use arrays and Entity IDs.
Very nice work in encapsulating a common game design pattern.
This is an interesting use of your components. They are modules themselves, yes? "DO PROTO" is a new one to me, but seems very useful here.