powered by
Schedule (attach) an event to an agent
an external pointer returned by newAgent
an external pointer returned by newEvent
If agent is an R6 object, then we should use either agent$schedule(event) or schedule(agent$get, event)
Similarly, if event is an R6 object, then we should use schedule(agent, event$get)