Public/Get-NSPToolAnswers.ps1

function Get-NSPToolAnswers {
    <#
    .SYNOPSIS
        Reads a tool's saved answers from its work folder (Answers\Answers.json). Returns $null when
        there are none or the file does not parse (with a warning).
 
    .EXAMPLE
        $answers = Get-NSPToolAnswers -Tool AD
        if ($answers) { $answers.CompanyName }
    #>

    [CmdletBinding()]
    param([Parameter(Mandatory)][ValidatePattern('^[A-Za-z0-9]+$')][string]$Tool)

    $file = Join-Path (Get-NSPToolWorkPath -Tool $Tool -Kind Answers) 'Answers.json'
    if (-not (Test-Path -LiteralPath $file)) { return $null }
    $raw = [IO.File]::ReadAllText($file)
    if ([string]::IsNullOrWhiteSpace($raw)) { return $null }
    try { return (ConvertFrom-Json -InputObject $raw -ErrorAction Stop) }
    catch {
        Write-Warning "$file does not parse ($($_.Exception.Message)) - ignoring it."
        return $null
    }
}