checkUser
Checks whether the API user exists and, if not, creates it — then advances to createApiKey.
Uses kotlinx.coroutines.flow.flatMapLatest to flatten the check → create sequence into a single flow without nesting .collect calls:
checkApiUserSuccess → passes through; the outer.collectcalls createApiKey.checkApiUserError → switches the active inner flow tocreateApiUser; the outer.collectcalls createApiKey once that succeeds.Loadingfrom either call → passed through to the outer collect and ignored (no UI state is managed by this ViewModel).
The bootstrap sequence does not repeat: if createApiUser also fails, the error is logged and the chain stops — isBootstrapComplete is set to true to unblock any waiting observers. The user will remain uncredentialled until checkUser is called again.