Private/Verify-ConfigChange.ps1

function Verify-ConfigChange {
    <#
    .SYNOPSIS
    Re-reads config.json, verifies written value matches expected.
 
    .PARAMETER ConfigPath
    Path to config.json
 
    .PARAMETER Field
    Field name: Token, Channel, Format, Activity
 
    .PARAMETER ExpectedValue
    Value that should be written
 
    .OUTPUTS
    Hashtable with properties: Verified (bool), WrittenValue, Message
    #>


    param(
        [string]$ConfigPath,
        [string]$Field,
        [string]$ExpectedValue
    )

    try {
        $written = Get-Content $ConfigPath -Raw | ConvertFrom-Json

        $fieldMap = @{
            "Token"    = "bot_token"
            "Channel"  = "voice_channel_id"
            "Format"   = "output_format"
            "Activity" = "bot_activity"
        }

        $jsonField = $fieldMap[$Field]
        $actualValue = $written.$jsonField

        if ($actualValue -eq $ExpectedValue) {
            return @{
                Verified     = $true
                WrittenValue = $actualValue
                Message      = "Verification passed"
            }
        }
        else {
            $message = if ($Field -eq "Token") {
                "Token verification failed - value does not match saved configuration"
            } else {
                "Value mismatch: expected value does not match written value"
            }

            return @{
                Verified     = $false
                WrittenValue = $actualValue
                Message      = $message
            }
        }
    }
    catch {
        return @{
            Verified     = $false
            WrittenValue = $null
            Message      = "JSON parse error: $_"
        }
    }
}