SolveOptions
data class SolveOptions(val command: String, val failWhen: FailWhen, val budget: Budget, val name: String? = null, val trialMinutes: Long = 1, val pilot: Int = 8, val maxRounds: Int = 12, val digests: Map<String, String> = emptyMap(), val passing: String = "passing.json", val failing: String = "failing.json")(source)
How a solve runs. SolveOptions.budget caps the whole run: trials over every arm and wall minutes. SolveOptions.pilot trials per arm check that the failure reproduces and give the failure rate the planner sizes later arms from. SolveOptions.trialMinutes is the planner's assumed wall time of a trial.