Private/Assert-NSPScanBridgeJobBinding.ps1

function Assert-NSPScanBridgeJobBinding {
    [CmdletBinding()]
    param([Parameter(Mandatory)][object]$Binding, [System.Collections.IDictionary]$ExpectedBinding)
    if ($Binding -isnot [System.Collections.IDictionary] -and $Binding -isnot [pscustomobject]) { throw 'Job destination binding is invalid.' }
    foreach ($field in 'RouteName','TenantId','ClientId','DriveId','FolderItemId') {
        if ($Binding.$field -isnot [string] -or [string]::IsNullOrWhiteSpace($Binding.$field)) { throw 'Job destination binding is incomplete.' }
        if ($null -ne $ExpectedBinding -and [string]$Binding.$field -cne [string]$ExpectedBinding[$field]) {
            throw 'Job destination binding differs from configuration; preserve the job for review.'
        }
    }
}