solverFactoryProfile

fun solverFactoryProfile(factory: SolverFactory, id: SolverProfileId, displayName: String, capabilities: Set<String> = setOf(SolverCapabilities.CANCELLATION), solutionFeatures: (Solution) -> Map<FeatureId, Map<String, FeatureValue>> = { emptyMap() }, runtimeLibraries: List<Library> = listOf(OOPLib, IOLib), newSession: (factory: SolverFactory, request: SolverSessionCreationRequest, capabilities: Set<String>, solutionFeatures: (Solution) -> Map<FeatureId, Map<String, FeatureValue>>, runtimeLibraries: List<Library>) -> SolverFactorySession = ::SolverFactorySession): SolverProfile

Builds a SolverProfile backed by any SolverFactory (prolog, ProbLog, ...); no toolkit dependency.

runtimeLibraries defaults to OOPLib and IOLib, matching every existing caller (e.g. ide-swing). Pass a narrower list on platforms where a default library doesn't work: OOPLib is reflection-based and throws NotImplementedError on Kotlin/JS the moment a runtime tries to use it, which previously failed every single resolution in ide-web regardless of whether the query needed OOP features at all.