Private/ConvertTo-KadenStackChoice.ps1

function ConvertTo-KadenStackChoice {
    <#
    .SYNOPSIS
        Turn one operator stack entry into a tuned or skipped outcome row.
    #>

    param(
        [Parameter(Mandatory = $true)][string]$Name,
        $Entry
    )
    if ($null -eq $Entry -or $null -eq $Entry.PSObject.Properties['model']) {
        return New-KadenStackReport -Name $Name -Disposition 'skipped' -Model $null -Reason 'empty model value - left untouched'
    }
    $model = $Entry.model
    if ($model -isnot [string] -or [string]::IsNullOrWhiteSpace($model)) {
        return New-KadenStackReport -Name $Name -Disposition 'skipped' -Model $null -Reason 'empty model value - left untouched'
    }
    if (-not (Test-KadenOperatorModelFrontmatterValue -Model $model)) {
        return New-KadenStackReport -Name $Name -Disposition 'skipped' -Model $null -Reason 'model value cannot be written as frontmatter - left untouched'
    }
    return New-KadenStackReport -Name $Name -Disposition 'tuned' -Model $model -Reason ''
}