deriveProblemName

fun deriveProblemName(explicitProblemName: String?, descriptor: ModelDescriptor?, modelReference: ModelReference?): String(source)

Effective problem name for the persisted spec. Uses explicitProblemName when non-blank; otherwise derives a readable default so reports and summary.toml show something meaningful instead of the substrate's Identity(null)"ID_<counter>" fallback.

Order of preference:

  1. user-supplied explicitProblemName,

  2. descriptor.modelName,

  3. deriveModelIdentifier (the model-reference natural id),

  4. "Optimization" (last-resort non-null sentinel).