from
fun from(options: <Error class: unknown class>, modelRole: String? = options.role, thinkingFingerprint: String? = null, selectionFingerprint: String? = null): ExtractionRequestedModelConfig
The record of what a host asked for, read straight off the LlmOptions it handed the model.
The six hyperparameters and the model and timeout come from options as they stand. modelRole defaults to LlmOptions.role because that is the closest thing the options carry to a job name, but a host is free to pass its own. The two fingerprints are not on LlmOptions at all, so a caller that has them from elsewhere passes them in here.