derive Problem Name
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:
user-supplied explicitProblemName,
descriptor.modelName,deriveModelIdentifier (the model-reference natural id),
"Optimization"(last-resort non-null sentinel).