# Custom Solver Guide Implement the ``ConstraintSolver`` interface: .. code-block:: python from package_maximizer.core.interfaces import ConstraintSolver from package_maximizer.core.package import Package from typing import Iterable class MySolver(ConstraintSolver): def solve(self, packages: Iterable[Package]) -> list[str]: # Return a consistent set of package names. return [] Then register it in your code or via DI: .. code-block:: python from package_maximizer.di import SolverFactory factory = SolverFactory() factory.register("my_solver", lambda: MySolver())