open

abstract suspend fun open(userId: UserId): UserSessionScope
abstract suspend fun <T> open(userId: UserId, action: UserSessionScope.() -> T): T