{
  "schemaVersion": 1,
  "scope": "local reconstructed behavior only",
  "updatedAt": "2026-09-18T05:50:00Z",
  "contracts": [
    {"component":"search-filter-tab-row","localBehavior":"Selecting a tab updates its aria-selected state and announces the selected reference filter.","source":"source:live-search-signed-out; source:help-search-filters","provenance":"reconstructed from observed and documented evidence"},
    {"component":"share-dialog","localBehavior":"Share opens a modal dialog. Close returns it to hidden, target choices provide local handoff previews, Start at is a native checkbox/time pair, and Copy reports success only after Clipboard API success.","source":"source:live-watch-signed-out","provenance":"reconstructed from observed anatomy"},
    {"component":"engagement-actions","localBehavior":"Like, mute and similar local fixture toggles update aria-pressed and announce the change. They do not call YouTube.","source":"source:live-watch-signed-out","provenance":"reconstructed from observed control labels and states"},
    {"component":"playable-local-media","localBehavior":"A muted, no-autoplay native video element uses a two-second original geometric clip. Play, pause, mute, seek, settings, and full-screen controls expose real local state without claiming recovered YouTube media behavior.","source":"site/assets/original-playback-fixture.mp4","provenance":"original addition"},
    {"component":"channel-tabs","localBehavior":"Selecting a tab updates aria-selected and an inline status message.","source":"source:live-channel","provenance":"reconstructed from observed tab semantics"},
    {"component":"metadata-description","localBehavior":"READ MORE exposes descriptive copy, updates aria-expanded and changes to SHOW LESS.","source":"source:live-channel","provenance":"reconstructed from observed collapsed control"},
    {"component":"appearance-menu","localBehavior":"Appearance opens a local menu; light and dark choices update document colors, scope monochrome icon treatment to shell and action controls, swap the recovered logo variant, and persist under localStorage key youtube-fixture-theme for the local origin until storage is cleared. Fresh browser contexts start without the key.","source":"reference-data/contract-recovery-ledger.json#appearance-contract","provenance":"source-derived reconstruction"},
    {"component":"premium-plan-faq","localBehavior":"The FAQ disclosure opens and closes its answer with matching aria-expanded state.","source":"reference-data/contract-recovery-ledger.json#premium-landing-contract","provenance":"source-derived reconstruction"},
    {"component":"shorts-viewer","localBehavior":"Next Short changes a local status message only. It is not real feed playback.","source":"source:help-shorts","provenance":"source-derived reconstruction"},
    {"component":"sign-in-gate","localBehavior":"Actions that need a private account announce the public-evidence boundary instead of opening authentication.","source":"source:live-history-signed-out","provenance":"reconstructed boundary behavior"}
  ]
}
