# تمرین انتقال مستقل — PageSettings

این fixture solution آماده ندارد و عمداً rename هم‌شکلِ RequestPayload نیست: `theme` یک literal union است، `layout` یک رکورد nested دارد و `tags` آرایه‌ای از stringهاست. `mapper.ts` را مستقل پیاده کن و بعد `bash run_checks.sh` را اجرا کن.

Evidence انتقال باید این قرارداد را نگه دارد:
- trust boundary و دلیل نامطمئن‌بودن مقدار اولیه؛
- runtime check برای literal union، فیلدهای nested layout و تک‌تک اعضای tags؛
- narrowing پیش از استفادهٔ typed؛
- compile-time evidence؛
- رفتار malformed input؛
- یک **claim boundary**؛
- یک **update condition** که مشخص کند چه تغییر schema/config/compiler باعث می‌شود evidence را دوباره اجرا کنی.

Guard مربوط به RequestPayload را خط‌به‌خط کپی نکن؛ روش را برای shape و control-flow متفاوت بازسازی کن.
