#include //should have a event structure, and a system can subscribe to an event, then whenever the event is triggered by a system, subscriber system should receive a signal. static Event *queue; void EventCreate(void) { queue = calloc(100, sizeof(Event)); } void EventSubscribe(int event_type, void (*callback)(int)) { //this should return an handle that allow to poll event that happen last frame } void EventEmit(Event event) { printf("Event Emited"); } void ConsoleUpdate() { __thread static char *buffer[1024]; }