core/public/Get-JaxBuildRunEntities.ps1

function Get-JaxBuildRunEntities {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true)]
        [System.Collections.IDictionary] $FlowConfig,
        [System.Collections.IDictionary] $Config,
        [string] $ProvenancePath,
        [hashtable] $Context = @{}
    )

    $commonParams = Get-JaxCommonParameters -BoundParameters $PSBoundParameters
    Write-Debug "FUNC: $($MyInvocation.MyCommand.Name) Args: $($PSBoundParameters | ConvertTo-Json -Depth 1 -Compress -WarningAction SilentlyContinue)"

    if (-not $FlowConfig.Contains('suite')) {
        return @()
    }

    $suite = $FlowConfig['suite']
    if ($suite -isnot [System.Collections.IDictionary]) {
        return @()
    }

    $buildSection = $null
    $buildSectionNames = Get-JaxBuildSectionNames -Config $Config
    foreach ($sectionName in $buildSectionNames) {
        if ($suite.Contains($sectionName)) {
            $buildSection = $suite[$sectionName]
            break
        }
    }

    if ($null -eq $buildSection) {
        return @()
    }

    $entities = @()
    if ($buildSection -is [System.Collections.IDictionary]) {
        foreach ($key in $buildSection.Keys) {
            $value = $buildSection[$key]
            $entity = Convert-JaxScenarioItemToRunEntity -Key $key -Value $value -ScenarioName 'build' -ProvenancePath $ProvenancePath -Context $Context
            Add-JaxScenarioEntities -Entities ([ref]$entities) -Result $entity
        }
        return @($entities)
    }

    if ($buildSection -is [System.Collections.IEnumerable] -and $buildSection -isnot [string]) {
        foreach ($item in $buildSection) {
            if ($item -is [string]) {
                $entity = Convert-JaxScenarioItemToRunEntity -Key $item -Value $item -ScenarioName 'build' -ProvenancePath $ProvenancePath -Context $Context
                Add-JaxScenarioEntities -Entities ([ref]$entities) -Result $entity
                continue
            }
            if ($item -is [System.Collections.IDictionary] -and $item.Count -eq 1) {
                $itemKey = $item.Keys | Select-Object -First 1
                $entity = Convert-JaxScenarioItemToRunEntity -Key $itemKey -Value $item[$itemKey] -ScenarioName 'build' -ProvenancePath $ProvenancePath -Context $Context
                Add-JaxScenarioEntities -Entities ([ref]$entities) -Result $entity
                continue
            }
            $entity = Convert-JaxScenarioItemToRunEntity -Key 'build' -Value $item -ScenarioName 'build' -ProvenancePath $ProvenancePath -Context $Context
            Add-JaxScenarioEntities -Entities ([ref]$entities) -Result $entity
        }
        return @($entities)
    }

    $entity = Convert-JaxScenarioItemToRunEntity -Key 'build' -Value $buildSection -ScenarioName 'build' -ProvenancePath $ProvenancePath -Context $Context
    Add-JaxScenarioEntities -Entities ([ref]$entities) -Result $entity
    return @($entities)
}