Public/Get-PSubLyrics.ps1

function Get-PSubLyrics {
    [CmdletBinding()]
    param (
        [Parameter()]
        [string]
        $Artist,

        [Parameter()]
        [string]
        $Title
    )

    process {
        $splat = @{
            Method             = 'getLyrics'
            OptionalParameters = @{}
        }
        foreach ($parameter in @('artist', 'title')) {
            if ($PSBoundParameters.ContainsKey($parameter)) {
                $splat.OptionalParameters.Add($parameter, $PSBoundParameters[$parameter])
            }
        }

        $response = invokeApiMethod @splat
        if ([string]::IsNullOrEmpty($response.lyrics)) {
            Write-Error -Message "No lyrics found matching artist '$Artist' and title '$Title'"
            return
        }

        foreach ($record in (invokeApiMethod @splat).lyrics) {
            $record
        }
    }
}