Private/Get-OpenAIDecisionAnswer.ps1

function Get-OpenAIDecisionAnswer {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory)][object]$Response,
        [Parameter(Mandatory)][ValidateNotNullOrEmpty()][string]$Name
    )
    $answers = $Response.answers
    if ($answers -is [System.Collections.IDictionary]) {
        if ($answers.Contains($Name)) { return $answers[$Name] }
    }
    elseif ($null -ne $answers.PSObject.Properties[$Name]) {
        return $answers.PSObject.Properties[$Name].Value
    }
    else {
        $matches = @($answers | Where-Object { [string]$_.name -eq $Name })
        if ($matches.Count -eq 1) { return $matches[0] }
        if ($matches.Count -gt 1) { throw "OpenAI returned more than one answer named '$Name'." }
    }
    throw "OpenAI returned no answer named '$Name'."
}