$ErrorActionPreference = 'Stop' $source = Get-Content 'pages/profile/m01-profile-home.vue' -Raw -Encoding UTF8 foreach ($required in @( 'profile-state--ready', 'profile-state--error', 'm01-profile-archive-hero-v2.png', 'm01-profile-tree-medallion.png', 'class="profile-hero__art"', 'class="profile-hero__content"', 'class="profile-metadata"', 'class="profile-service-row"', 'grid-area: 1 / 1', 'height: 503rpx', 'height: 480rpx', 'white-space: nowrap', 'pointer-events: none', 'AppButton', 'AppTabbar', 'routeKey: "M03"', 'routeKey: "N01"', 'routeKey: "M06"', 'routeKey: "M08"', 'routeKey: "M09"', 'routeKey: "M10"', 'openPage("M02", {}, "M01")', 'openPage(item.routeKey, {}, "M01")' )) { if (-not $source.Contains($required)) { throw "M01 missing archive redesign contract: $required" } } foreach ($forbidden in @( 'auth-divider-knot.png', 'root-header-hall.png', 'm01-profile-notice-card.png', 'm01-profile-menu-frame.png', 'uni.navigateTo', 'uni.navigateBack', 'uni.redirectTo', 'uni.reLaunch', 'getCurrentPages(', '