Public/Get-PsdValue.ps1

function Get-PsdValue {
    <#
    .SYNOPSIS
    Reads a value by path, like 'Server.Tls.Port', 'Plugins[-1]' or '"my.key".Sub'.

    .EXAMPLE
    Get-PsdValue $config -Path 'Server.Port'
    #>

    [CmdletBinding()]
    param(
        [Parameter(Mandatory, Position = 0, ValueFromPipeline)]
        [object] $InputObject,

        [Parameter(Mandatory, Position = 1)]
        [string] $Path
    )
    process {
        $r = Find-PsdObjectPath $InputObject (ConvertFrom-PsdPathText $Path)
        if ($r.Found) { , $r.Value } else { Write-PsdPathError $PSCmdlet $r $Path }
    }
}