Private/ConvertTo-KadenInvitationToken.ps1

function ConvertTo-KadenInvitationToken {
    <#
    .SYNOPSIS
        Return one curated invitation word as a PascalCase token.
    #>

    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true)]
        [string]$Word
    )

    if ([string]::IsNullOrWhiteSpace($Word)) {
        throw 'Invitation word is empty.'
    }
    $normalized = $Word.Trim().ToLowerInvariant()
    return ($normalized.Substring(0, 1).ToUpperInvariant() + $normalized.Substring(1))
}