$ErrorActionPreference = 'Stop' $source = Get-Content 'pages/notification/n01-message-center.vue' -Raw -Encoding UTF8 $unread = [string]([char]0x672A) + [char]0x8BFB $read = [string]([char]0x5DF2) + [char]0x8BFB $markAllRead = [string]([char]0x5168) + [char]0x90E8 + $read $goToReview = [string]([char]0x524D) + [char]0x5F80 + [char]0x5165 + [char]0x8C31 + [char]0x5BA1 + [char]0x6838 $required = @( 'n01-notice-card.png', 'AppLoading', 'AppToast', 'notice-state--loading', 'notice-state--list', 'notice-state--empty', 'notice-state--error', $unread, $read, $markAllRead, $goToReview ) foreach ($token in $required) { if (-not $source.Contains($token)) { throw "N01 missing contract token: $token" } } if ($source.Contains('application-status-card.png')) { throw 'N01 must not reuse the genealogy application card' } Write-Output 'N01-MODULE-BASELINE-CONTRACT PASS'