The application context provides signals to make your application ready to run. You basically implement AgsApplicationContext::prepare, AgsApplicationContext::setup and AgsApplicationContext::register-types. It is upto you how the application shall behave.
Note since version 3.13.0 you call only AgsApplicationContext::prepare, which calls AgsApplicationContext::setup and then enters GLib's main loop. So the prepare signal won't return unless you terminate your application.
AgsApplicationContext::quit signal terminates your application. Feel free to provide your own implementation.