Private/Runtime/ConvertFrom-OpenApiResponseJson.ps1

function ConvertFrom-OpenApiResponseJson {
    <#
    .SYNOPSIS
        Parses JSON text into objects without rewriting values (date strings stay strings where ConvertFrom-Json allows it).
    #>

    [CmdletBinding()]
    [OutputType([object])]
    param(
        [Parameter(Mandatory)]
        [AllowEmptyString()]
        [string]$Text
    )

    if ([string]::IsNullOrWhiteSpace($Text)) {
        return $null
    }
    $parameters = @{ InputObject = $Text; ErrorAction = 'Stop' }
    $command = Get-Command -Name 'ConvertFrom-Json' -CommandType Cmdlet
    if ($command.Parameters.ContainsKey('DateKind')) {
        # PowerShell 7.5+: keep date-like strings as strings
        $parameters['DateKind'] = 'String'
    }
    if ($command.Parameters.ContainsKey('NoEnumerate')) {
        $parameters['NoEnumerate'] = $true
    }
    $value = ConvertFrom-Json @parameters
    return , $value
}