AdkApiServer
Serves the ADK agent runtime contract, so it can be deployed headlessly; the Development UI stays unmounted unless AdkServerConfig.webUiEnabled or the adk.web.ui.enabled property asks for it.
AdkDevServer widens the surface with the development-only endpoints. start and stop are safe to call from different threads; a stop arriving while start is still binding aborts it, and a failed start leaves the engine recorded, so call stop before retrying.