{
  "status": "passed: complete current image-to-title review and opened public desktop/mobile/link acceptance",
  "version": "2026-11-03-r2",
  "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
  "date": "2026-11-03T18:10:52.010086+00:00",
  "original_occurrences": 232,
  "original_unique_images": 123,
  "current_occurrences": 239,
  "current_unique_image_URLs": 128,
  "page_counts": {
    "index.html": 109,
    "audits/ui-20261103-r2/index.html": 130
  },
  "original_findings_and_corrections": [
    {
      "occurrence": "index.html#image-2",
      "page": "index.html",
      "index": 2,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/credits.png",
      "title": "Faster main-menu input, continuous music and consistent team OVR",
      "section": "main-menu-r2",
      "caption": "2026-11-03-r2 \u00b7 Actual startup credits: Website https://games.jdc.se.",
      "alt": "Actual startup credits: Website https://games.jdc.se.",
      "surrounding_text": "Faster main-menu input, continuous music and consistent team OVR Only the main-menu audio path changes. Complete save/journal checks remain; checksum work services the native sequencer instead of holding it. In the continuous postmatch test, scrolling drops from at most24 to10 blocked frames, and mode changes from69 to57. Both match idle sequencer timing exactly. A literal music-start command was not reproduced, so this is a verified stall correction rather than a claim that every reported restart is reproduced. Explicit Y can select an available goalkeeper even while the controlled skater is down; the skater stays down and original ownership/pause/penalty guards remain. Ordinary team presentations use one actual-roster base-OVR mean before and after transfers. Player stats, prices, budgets and season records keep their original rules. The startup address is https://games.jdc.se. 2026-11-03-r2 \u00b7 Actual startup credits: Website https://games.jdc.se. 2026-11-03-r2 \u00b7 presentation-1400 2026-11-03-r2 \u00b7 Original native presentation after actual star99/middle79 purchases and valid squads. Opened native review \u00b7 Scope, controls and remaining live-play limits",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/credits.png",
      "image_sha256": "bbe450fc2aaf7796987764a748f7d0987b1ba6a925b23004052218a180464286",
      "nearest_description": "Explicit Y can select an available goalkeeper even while the controlled skater is down; the skater stays down and original ownership/pause/penalty guards remain. Ordinary team presentations use one actual-roster base-OVR mean before and after transfers. Player stats, prices, budgets and season records keep their original rules. The startup address is https://games.jdc.se.",
      "original_id": "credits",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/credits.png",
      "after_caption": "Actual startup credits: Website https://games.jdc.se.",
      "actual_visible": "Native black credits card; Website: https://games.jdc.se and START to continue.",
      "visually_opened": true,
      "after_title": "Faster main-menu input, continuous music and consistent team OVR",
      "after_section": "main-menu-r2",
      "after_visible": "Actual startup credits: Website https://games.jdc.se.",
      "after_anchor": "picture-001"
    },
    {
      "occurrence": "index.html#image-3",
      "page": "index.html",
      "index": 3,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-ovr-early-final-v4-presentation-1400.png",
      "title": "Faster main-menu input, continuous music and consistent team OVR",
      "section": "main-menu-r2",
      "caption": "2026-11-03-r2 \u00b7 presentation-1400",
      "alt": "presentation-1400",
      "surrounding_text": "Faster main-menu input, continuous music and consistent team OVR Only the main-menu audio path changes. Complete save/journal checks remain; checksum work services the native sequencer instead of holding it. In the continuous postmatch test, scrolling drops from at most24 to10 blocked frames, and mode changes from69 to57. Both match idle sequencer timing exactly. A literal music-start command was not reproduced, so this is a verified stall correction rather than a claim that every reported restart is reproduced. Explicit Y can select an available goalkeeper even while the controlled skater is down; the skater stays down and original ownership/pause/penalty guards remain. Ordinary team presentations use one actual-roster base-OVR mean before and after transfers. Player stats, prices, budgets and season records keep their original rules. The startup address is https://games.jdc.se. 2026-11-03-r2 \u00b7 Actual startup credits: Website https://games.jdc.se. 2026-11-03-r2 \u00b7 presentation-1400 2026-11-03-r2 \u00b7 Original native presentation after actual star99/middle79 purchases and valid squads. Opened native review \u00b7 Scope, controls and remaining live-play limits",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-ovr-early-final-v4-presentation-1400.png",
      "image_sha256": "83e4c004a7dc94edf323430d2ebb68d2bbbaabc8bd83eed51792e5773ed12b5b",
      "nearest_description": "Explicit Y can select an available goalkeeper even while the controlled skater is down; the skater stays down and original ownership/pause/penalty guards remain. Ordinary team presentations use one actual-roster base-OVR mean before and after transfers. Player stats, prices, budgets and season records keep their original rules. The startup address is https://games.jdc.se.",
      "original_id": "extra-ovr-early-final-v4-presentation-1400",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/ovr-before.png",
      "after_caption": "Native Matchups Overall: New York Rangers55, Edmonton57.",
      "actual_visible": "Native MATCHUPS Overall screen: Rangers55, Edmonton57.",
      "visually_opened": true,
      "after_title": "Faster main-menu input, continuous music and consistent team OVR",
      "after_section": "main-menu-r2",
      "after_visible": "Native Matchups Overall: New York Rangers55, Edmonton57.",
      "after_anchor": "picture-002"
    },
    {
      "occurrence": "index.html#image-4",
      "page": "index.html",
      "index": 4,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-acceptance-after-trades-presentation-250.png",
      "title": "Faster main-menu input, continuous music and consistent team OVR",
      "section": "main-menu-r2",
      "caption": "2026-11-03-r2 \u00b7 Original native presentation after actual star99/middle79 purchases and valid squads.",
      "alt": "Original native presentation after actual star99/middle79 purchases and valid squads.",
      "surrounding_text": "Faster main-menu input, continuous music and consistent team OVR Only the main-menu audio path changes. Complete save/journal checks remain; checksum work services the native sequencer instead of holding it. In the continuous postmatch test, scrolling drops from at most24 to10 blocked frames, and mode changes from69 to57. Both match idle sequencer timing exactly. A literal music-start command was not reproduced, so this is a verified stall correction rather than a claim that every reported restart is reproduced. Explicit Y can select an available goalkeeper even while the controlled skater is down; the skater stays down and original ownership/pause/penalty guards remain. Ordinary team presentations use one actual-roster base-OVR mean before and after transfers. Player stats, prices, budgets and season records keep their original rules. The startup address is https://games.jdc.se. 2026-11-03-r2 \u00b7 Actual startup credits: Website https://games.jdc.se. 2026-11-03-r2 \u00b7 presentation-1400 2026-11-03-r2 \u00b7 Original native presentation after actual star99/middle79 purchases and valid squads. Opened native review \u00b7 Scope, controls and remaining live-play limits",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-acceptance-after-trades-presentation-250.png",
      "image_sha256": "bb19f178db657bc4508b4c6b151c6db3c3e82d3b45d0d7ba92c49b773053c823",
      "nearest_description": "Explicit Y can select an available goalkeeper even while the controlled skater is down; the skater stays down and original ownership/pause/penalty guards remain. Ordinary team presentations use one actual-roster base-OVR mean before and after transfers. Player stats, prices, budgets and season records keep their original rules. The startup address is https://games.jdc.se.",
      "original_id": "extra-acceptance-after-trades-presentation-250",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/ovr-after.png",
      "after_caption": "Native Matchups Overall: New York Rangers55, Edmonton62.",
      "actual_visible": "Native MATCHUPS Overall screen: Rangers55, Edmonton62.",
      "visually_opened": true,
      "after_title": "Faster main-menu input, continuous music and consistent team OVR",
      "after_section": "main-menu-r2",
      "after_visible": "Native Matchups Overall: New York Rangers55, Edmonton62.",
      "after_anchor": "picture-003"
    },
    {
      "occurrence": "index.html#image-5",
      "page": "index.html",
      "index": 5,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "title": "Transfer dollars and centred menu controls",
      "section": "cosmetic-ui-nov3",
      "caption": "2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "alt": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "surrounding_text": "Transfer dollars and centred menu controls Prices and budgets use clear dollar amounts with dot-separated thousands. The original OVR-squared economy is unchanged: $16.042.000 buys one OVR99 star plus one OVR79 middle player. Main-menu controls are centred inside a matching native border. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. 2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands. 2026-11-03-r2 \u00b7 OVR99 Nathan MacKinnon bought for $9.801.000; remaining budget $12.277.000. 2026-11-03-r2 \u00b7 OVR79 Morgan Geekie bought for $6.241.000; remaining budget $6.036.000. Opened native gallery and preserved before/after evidence \u00b7 Scale, code scope and Stars erratum Stars QG-V01 was already repaired in r2. Fresh exact-version reproduction confirms the compact final result; the previous unresolved label was stale.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "image_sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab",
      "nearest_description": "Prices and budgets use clear dollar amounts with dot-separated thousands. The original OVR-squared economy is unchanged: $16.042.000 buys one OVR99 star plus one OVR79 middle player. Main-menu controls are centred inside a matching native border.",
      "original_id": "menu",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/menu.png",
      "after_caption": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "actual_visible": "Main menu: New Full Season, Players One, Home Edmonton, Away84vsNYR, period5minutes. Centred D-Pad Change B/Start Play footer inside native frame.",
      "visually_opened": true,
      "after_title": "Transfer dollars and centred menu controls",
      "after_section": "cosmetic-ui-nov3",
      "after_visible": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "after_anchor": "picture-004"
    },
    {
      "occurrence": "index.html#image-6",
      "page": "index.html",
      "index": 6,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/sell-roster.png",
      "title": "Transfer dollars and centred menu controls",
      "section": "cosmetic-ui-nov3",
      "caption": "2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "alt": "Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "surrounding_text": "Transfer dollars and centred menu controls Prices and budgets use clear dollar amounts with dot-separated thousands. The original OVR-squared economy is unchanged: $16.042.000 buys one OVR99 star plus one OVR79 middle player. Main-menu controls are centred inside a matching native border. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. 2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands. 2026-11-03-r2 \u00b7 OVR99 Nathan MacKinnon bought for $9.801.000; remaining budget $12.277.000. 2026-11-03-r2 \u00b7 OVR79 Morgan Geekie bought for $6.241.000; remaining budget $6.036.000. Opened native gallery and preserved before/after evidence \u00b7 Scale, code scope and Stars erratum Stars QG-V01 was already repaired in r2. Fresh exact-version reproduction confirms the compact final result; the previous unresolved label was stale.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/sell-roster.png",
      "image_sha256": "3ddef5c2a251d7206b4b458fa0fdb51d9b36f7874a5d3e2ceb09186a0220a909",
      "nearest_description": "Prices and budgets use clear dollar amounts with dot-separated thousands. The original OVR-squared economy is unchanged: $16.042.000 buys one OVR99 star plus one OVR79 middle player. Main-menu controls are centred inside a matching native border.",
      "original_id": "sell-roster",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/sell-roster.png",
      "after_caption": "Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "actual_visible": "Edmonton Sell your players, OVR-sorted96 McDavid,85 Draisaitl,76 Bouchard; initial budget$16.042.000 and dollar prices.",
      "visually_opened": true,
      "after_title": "Transfer dollars and centred menu controls",
      "after_section": "cosmetic-ui-nov3",
      "after_visible": "Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "after_anchor": "picture-005"
    },
    {
      "occurrence": "index.html#image-7",
      "page": "index.html",
      "index": 7,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/bought-star-99.png",
      "title": "Transfer dollars and centred menu controls",
      "section": "cosmetic-ui-nov3",
      "caption": "2026-11-03-r2 \u00b7 OVR99 Nathan MacKinnon bought for $9.801.000; remaining budget $12.277.000.",
      "alt": "OVR99 Nathan MacKinnon bought for $9.801.000; remaining budget $12.277.000.",
      "surrounding_text": "Transfer dollars and centred menu controls Prices and budgets use clear dollar amounts with dot-separated thousands. The original OVR-squared economy is unchanged: $16.042.000 buys one OVR99 star plus one OVR79 middle player. Main-menu controls are centred inside a matching native border. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. 2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands. 2026-11-03-r2 \u00b7 OVR99 Nathan MacKinnon bought for $9.801.000; remaining budget $12.277.000. 2026-11-03-r2 \u00b7 OVR79 Morgan Geekie bought for $6.241.000; remaining budget $6.036.000. Opened native gallery and preserved before/after evidence \u00b7 Scale, code scope and Stars erratum Stars QG-V01 was already repaired in r2. Fresh exact-version reproduction confirms the compact final result; the previous unresolved label was stale.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/bought-star-99.png",
      "image_sha256": "73657e134a70a0ba7f9236f4a78a6d9c27e3823b42ba467a384713e2bb6fe6bd",
      "nearest_description": "Prices and budgets use clear dollar amounts with dot-separated thousands. The original OVR-squared economy is unchanged: $16.042.000 buys one OVR99 star plus one OVR79 middle player. Main-menu controls are centred inside a matching native border.",
      "original_id": "bought-star-99",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/acquired-star.png",
      "after_caption": "Edmonton owned roster: Nathan MacKinnon C99 at$9.801.000; remaining budget$12.277.000.",
      "actual_visible": "Colorado remaining buy list starts Martin Necas86; budget$12.277.000. Nathan MacKinnon is absent.",
      "visually_opened": true,
      "after_title": "Transfer dollars and centred menu controls",
      "after_section": "cosmetic-ui-nov3",
      "after_visible": "Edmonton owned roster: Nathan MacKinnon C99 at$9.801.000; remaining budget$12.277.000.",
      "after_anchor": "picture-006"
    },
    {
      "occurrence": "index.html#image-8",
      "page": "index.html",
      "index": 8,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/bought-middle-79.png",
      "title": "Transfer dollars and centred menu controls",
      "section": "cosmetic-ui-nov3",
      "caption": "2026-11-03-r2 \u00b7 OVR79 Morgan Geekie bought for $6.241.000; remaining budget $6.036.000.",
      "alt": "OVR79 Morgan Geekie bought for $6.241.000; remaining budget $6.036.000.",
      "surrounding_text": "Transfer dollars and centred menu controls Prices and budgets use clear dollar amounts with dot-separated thousands. The original OVR-squared economy is unchanged: $16.042.000 buys one OVR99 star plus one OVR79 middle player. Main-menu controls are centred inside a matching native border. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. 2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands. 2026-11-03-r2 \u00b7 OVR99 Nathan MacKinnon bought for $9.801.000; remaining budget $12.277.000. 2026-11-03-r2 \u00b7 OVR79 Morgan Geekie bought for $6.241.000; remaining budget $6.036.000. Opened native gallery and preserved before/after evidence \u00b7 Scale, code scope and Stars erratum Stars QG-V01 was already repaired in r2. Fresh exact-version reproduction confirms the compact final result; the previous unresolved label was stale.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/bought-middle-79.png",
      "image_sha256": "8057ca4a654867662bb45e96d808d967cd8b4a10549ebc579bcb5411af15f266",
      "nearest_description": "Prices and budgets use clear dollar amounts with dot-separated thousands. The original OVR-squared economy is unchanged: $16.042.000 buys one OVR99 star plus one OVR79 middle player. Main-menu controls are centred inside a matching native border.",
      "original_id": "bought-middle-79",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/acquired-middle.png",
      "after_caption": "Edmonton owned roster includes Morgan Geekie C79 at$6.241.000 and Nathan MacKinnon C99; budget$6.036.000.",
      "actual_visible": "Boston remaining buy list starts Pastrnak82; budget$6.036.000. Morgan Geekie is absent.",
      "visually_opened": true,
      "after_title": "Transfer dollars and centred menu controls",
      "after_section": "cosmetic-ui-nov3",
      "after_visible": "Edmonton owned roster includes Morgan Geekie C79 at$6.241.000 and Nathan MacKinnon C99; budget$6.036.000.",
      "after_anchor": "picture-007"
    },
    {
      "occurrence": "index.html#image-9",
      "page": "index.html",
      "index": 9,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/transfers-on.png",
      "title": "Preseason transfers and native match presentation",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Transfers On selected immediately below Icing.",
      "alt": "Transfers On selected immediately below Icing.",
      "surrounding_text": "2026-11-02-r2 Preseason transfers and native match presentation Select a new Full, Light or Mini season, then set Transfers On directly below Icing. Start opens Buy players / Sell players / Ready for season. Off gives the ordinary season start. Ready continues through the original native team-overall and hot/cold presentation before play. Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged. 2026-11-03-r2 \u00b7 Transfers On selected immediately below Icing. 2026-11-03-r2 \u00b7 Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season. 2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands. 2026-11-03-r2 \u00b7 Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap. 2026-11-03-r2 \u00b7 Restored native team presentation: current Rangers55, transferred Edmonton56. 2026-11-03-r2 \u00b7 Current native presentation: Adam Fox COLD and Evan Bouchard HOT. Defaults: Edmonton, Hard, automatic lines, Icing On, Transfers Off, Low passes, Normal pass speed, Assisted targeting, Penaltys 50%, Alt Goalies On, AI Shot Plan On, Momentum On, KMH and Fragile Glass On. Pass Charge remains optional and uses the same visible charge gauge as shooting. The period warning plays five native beeps at 0:40. Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM ",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/transfers-on.png",
      "image_sha256": "b7dad958ef5ca258f7f708f758ad0da829e231c8279dd92169c2eefe673a567e",
      "nearest_description": "Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged.",
      "original_id": "transfers-on",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/transfers-on.png",
      "after_caption": "Transfers On selected immediately below Icing.",
      "actual_visible": "Main menu: Difficulty Hard, AutoReplays Off, CritShots Off, Icing On, Transfers On selected immediately below Icing; framed centred help.",
      "visually_opened": true,
      "after_title": "How purchases and sales change the teams",
      "after_section": "current-features",
      "after_visible": "Transfers On selected immediately below Icing.",
      "after_anchor": "picture-008"
    },
    {
      "occurrence": "index.html#image-10",
      "page": "index.html",
      "index": 10,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/transfer-home.png",
      "title": "Preseason transfers and native match presentation",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season.",
      "alt": "Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season.",
      "surrounding_text": "2026-11-02-r2 Preseason transfers and native match presentation Select a new Full, Light or Mini season, then set Transfers On directly below Icing. Start opens Buy players / Sell players / Ready for season. Off gives the ordinary season start. Ready continues through the original native team-overall and hot/cold presentation before play. Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged. 2026-11-03-r2 \u00b7 Transfers On selected immediately below Icing. 2026-11-03-r2 \u00b7 Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season. 2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands. 2026-11-03-r2 \u00b7 Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap. 2026-11-03-r2 \u00b7 Restored native team presentation: current Rangers55, transferred Edmonton56. 2026-11-03-r2 \u00b7 Current native presentation: Adam Fox COLD and Evan Bouchard HOT. Defaults: Edmonton, Hard, automatic lines, Icing On, Transfers Off, Low passes, Normal pass speed, Assisted targeting, Penaltys 50%, Alt Goalies On, AI Shot Plan On, Momentum On, KMH and Fragile Glass On. Pass Charge remains optional and uses the same visible charge gauge as shooting. The period warning plays five native beeps at 0:40. Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM ",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/transfer-home.png",
      "image_sha256": "2446c76b0e1ae098b5ffca66310d802736e36555c4d73a9fbb63982184fac86f",
      "nearest_description": "Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged.",
      "original_id": "transfer-home",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/transfer-home.png",
      "after_caption": "Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season.",
      "actual_visible": "Preseason Transfers home for Edmonton, budget$16.042.000, Buy players, Sell players, Ready for season.",
      "visually_opened": true,
      "after_title": "How purchases and sales change the teams",
      "after_section": "current-features",
      "after_visible": "Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season.",
      "after_anchor": "picture-009"
    },
    {
      "occurrence": "index.html#image-11",
      "page": "index.html",
      "index": 11,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/sell-roster.png",
      "title": "Preseason transfers and native match presentation",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "alt": "Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "surrounding_text": "2026-11-02-r2 Preseason transfers and native match presentation Select a new Full, Light or Mini season, then set Transfers On directly below Icing. Start opens Buy players / Sell players / Ready for season. Off gives the ordinary season start. Ready continues through the original native team-overall and hot/cold presentation before play. Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged. 2026-11-03-r2 \u00b7 Transfers On selected immediately below Icing. 2026-11-03-r2 \u00b7 Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season. 2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands. 2026-11-03-r2 \u00b7 Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap. 2026-11-03-r2 \u00b7 Restored native team presentation: current Rangers55, transferred Edmonton56. 2026-11-03-r2 \u00b7 Current native presentation: Adam Fox COLD and Evan Bouchard HOT. Defaults: Edmonton, Hard, automatic lines, Icing On, Transfers Off, Low passes, Normal pass speed, Assisted targeting, Penaltys 50%, Alt Goalies On, AI Shot Plan On, Momentum On, KMH and Fragile Glass On. Pass Charge remains optional and uses the same visible charge gauge as shooting. The period warning plays five native beeps at 0:40. Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM ",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/sell-roster.png",
      "image_sha256": "3ddef5c2a251d7206b4b458fa0fdb51d9b36f7874a5d3e2ceb09186a0220a909",
      "nearest_description": "Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged.",
      "original_id": "sell-roster",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/sell-roster.png",
      "after_caption": "Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "actual_visible": "Edmonton Sell your players, OVR-sorted96 McDavid,85 Draisaitl,76 Bouchard; initial budget$16.042.000 and dollar prices.",
      "visually_opened": true,
      "after_title": "How purchases and sales change the teams",
      "after_section": "current-features",
      "after_visible": "Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "after_anchor": "picture-010"
    },
    {
      "occurrence": "index.html#image-12",
      "page": "index.html",
      "index": 12,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/free-agents.png",
      "title": "Preseason transfers and native match presentation",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap.",
      "alt": "Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap.",
      "surrounding_text": "2026-11-02-r2 Preseason transfers and native match presentation Select a new Full, Light or Mini season, then set Transfers On directly below Icing. Start opens Buy players / Sell players / Ready for season. Off gives the ordinary season start. Ready continues through the original native team-overall and hot/cold presentation before play. Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged. 2026-11-03-r2 \u00b7 Transfers On selected immediately below Icing. 2026-11-03-r2 \u00b7 Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season. 2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands. 2026-11-03-r2 \u00b7 Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap. 2026-11-03-r2 \u00b7 Restored native team presentation: current Rangers55, transferred Edmonton56. 2026-11-03-r2 \u00b7 Current native presentation: Adam Fox COLD and Evan Bouchard HOT. Defaults: Edmonton, Hard, automatic lines, Icing On, Transfers Off, Low passes, Normal pass speed, Assisted targeting, Penaltys 50%, Alt Goalies On, AI Shot Plan On, Momentum On, KMH and Fragile Glass On. Pass Charge remains optional and uses the same visible charge gauge as shooting. The period warning plays five native beeps at 0:40. Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM ",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/free-agents.png",
      "image_sha256": "f5bd508cc8856496e3d50443b1680bf0a19102ee5e30c462bf7c9297d66a9640",
      "nearest_description": "Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged.",
      "original_id": "free-agents",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/free-agents.png",
      "after_caption": "Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap.",
      "actual_visible": "Free agents buy list containing Connor McDavid C96 at$9.216.000; budget$25.258.000.",
      "visually_opened": true,
      "after_title": "How purchases and sales change the teams",
      "after_section": "current-features",
      "after_visible": "Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap.",
      "after_anchor": "picture-011"
    },
    {
      "occurrence": "index.html#image-13",
      "page": "index.html",
      "index": 13,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/matchups.png",
      "title": "Preseason transfers and native match presentation",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Restored native team presentation: current Rangers55, transferred Edmonton56.",
      "alt": "Restored native team presentation: current Rangers55, transferred Edmonton56.",
      "surrounding_text": "2026-11-02-r2 Preseason transfers and native match presentation Select a new Full, Light or Mini season, then set Transfers On directly below Icing. Start opens Buy players / Sell players / Ready for season. Off gives the ordinary season start. Ready continues through the original native team-overall and hot/cold presentation before play. Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged. 2026-11-03-r2 \u00b7 Transfers On selected immediately below Icing. 2026-11-03-r2 \u00b7 Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season. 2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands. 2026-11-03-r2 \u00b7 Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap. 2026-11-03-r2 \u00b7 Restored native team presentation: current Rangers55, transferred Edmonton56. 2026-11-03-r2 \u00b7 Current native presentation: Adam Fox COLD and Evan Bouchard HOT. Defaults: Edmonton, Hard, automatic lines, Icing On, Transfers Off, Low passes, Normal pass speed, Assisted targeting, Penaltys 50%, Alt Goalies On, AI Shot Plan On, Momentum On, KMH and Fragile Glass On. Pass Charge remains optional and uses the same visible charge gauge as shooting. The period warning plays five native beeps at 0:40. Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM ",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/matchups.png",
      "image_sha256": "88e73d0513b0a969d1837672f2d46dac7166533209ca64871b1f9fe3f93d0a01",
      "nearest_description": "Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged.",
      "original_id": "matchups",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/matchups.png",
      "after_caption": "Restored native team presentation: current Rangers55, transferred Edmonton56.",
      "actual_visible": "Native Overall presentation: Rangers55 vs transferred Edmonton56.",
      "visually_opened": true,
      "after_title": "How purchases and sales change the teams",
      "after_section": "current-features",
      "after_visible": "Restored native team presentation: current Rangers55, transferred Edmonton56.",
      "after_anchor": "picture-012"
    },
    {
      "occurrence": "index.html#image-14",
      "page": "index.html",
      "index": 14,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/hot-cold.png",
      "title": "Preseason transfers and native match presentation",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Current native presentation: Adam Fox COLD and Evan Bouchard HOT.",
      "alt": "Current native presentation: Adam Fox COLD and Evan Bouchard HOT.",
      "surrounding_text": "2026-11-02-r2 Preseason transfers and native match presentation Select a new Full, Light or Mini season, then set Transfers On directly below Icing. Start opens Buy players / Sell players / Ready for season. Off gives the ordinary season start. Ready continues through the original native team-overall and hot/cold presentation before play. Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged. 2026-11-03-r2 \u00b7 Transfers On selected immediately below Icing. 2026-11-03-r2 \u00b7 Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season. 2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands. 2026-11-03-r2 \u00b7 Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap. 2026-11-03-r2 \u00b7 Restored native team presentation: current Rangers55, transferred Edmonton56. 2026-11-03-r2 \u00b7 Current native presentation: Adam Fox COLD and Evan Bouchard HOT. Defaults: Edmonton, Hard, automatic lines, Icing On, Transfers Off, Low passes, Normal pass speed, Assisted targeting, Penaltys 50%, Alt Goalies On, AI Shot Plan On, Momentum On, KMH and Fragile Glass On. Pass Charge remains optional and uses the same visible charge gauge as shooting. The period warning plays five native beeps at 0:40. Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM ",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/hot-cold.png",
      "image_sha256": "d918949cd10f203b0630652387047cbcdf67da1e962c43e7d3b6befc95fe31e8",
      "nearest_description": "Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged.",
      "original_id": "hot-cold",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/hot-cold.png",
      "after_caption": "Current native presentation: Adam Fox COLD and Evan Bouchard HOT.",
      "actual_visible": "Native left defenseman Matchups: Adam Fox73 COLD, Evan Bouchard88 HOT, with portraits.",
      "visually_opened": true,
      "after_title": "How purchases and sales change the teams",
      "after_section": "current-features",
      "after_visible": "Current native presentation: Adam Fox COLD and Evan Bouchard HOT.",
      "after_anchor": "picture-013"
    },
    {
      "occurrence": "index.html#image-15",
      "page": "index.html",
      "index": 15,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/roster-after-star-middle.png",
      "title": "Preseason transfers and native match presentation",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Current Edmonton roster after buying the OVR99 star and OVR79 middle player.",
      "alt": "Current Edmonton roster after buying the OVR99 star and OVR79 middle player.",
      "surrounding_text": "2026-11-02-r2 Preseason transfers and native match presentation Select a new Full, Light or Mini season, then set Transfers On directly below Icing. Start opens Buy players / Sell players / Ready for season. Off gives the ordinary season start. Ready continues through the original native team-overall and hot/cold presentation before play. Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged. 2026-11-03-r2 \u00b7 Transfers On selected immediately below Icing. 2026-11-03-r2 \u00b7 Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season. 2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands. 2026-11-03-r2 \u00b7 Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap. 2026-11-03-r2 \u00b7 Restored native team presentation: current Rangers55, transferred Edmonton56. 2026-11-03-r2 \u00b7 Current native presentation: Adam Fox COLD and Evan Bouchard HOT. Defaults: Edmonton, Hard, automatic lines, Icing On, Transfers Off, Low passes, Normal pass speed, Assisted targeting, Penaltys 50%, Alt Goalies On, AI Shot Plan On, Momentum On, KMH and Fragile Glass On. Pass Charge remains optional and uses the same visible charge gauge as shooting. The period warning plays five native beeps at 0:40. Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM ",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/roster-after-star-middle.png",
      "image_sha256": "60ebdce91afb584cb0764152dad0460b03dd47c0a8b53cea1feb193519e9855d",
      "nearest_description": "Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM hash .",
      "original_id": "roster-after-star-middle",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/roster-after-star-middle.png",
      "after_caption": "Current Edmonton roster after buying the OVR99 star and OVR79 middle player.",
      "actual_visible": "Edmonton owned Sell roster: Nathan MacKinnon99, McDavid96, Draisaitl85, Morgan Geekie79; budget$6.036.000.",
      "visually_opened": true,
      "after_title": "How purchases and sales change the teams",
      "after_section": "current-features",
      "after_visible": "Current Edmonton roster after buying the OVR99 star and OVR79 middle player.",
      "after_anchor": "picture-014"
    },
    {
      "occurrence": "index.html#image-16",
      "page": "index.html",
      "index": 16,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/full-roster-blocked.png",
      "title": "Preseason transfers and native match presentation",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 A full roster refuses a purchase; budget remains $16.042.000.",
      "alt": "A full roster refuses a purchase; budget remains $16.042.000.",
      "surrounding_text": "2026-11-02-r2 Preseason transfers and native match presentation Select a new Full, Light or Mini season, then set Transfers On directly below Icing. Start opens Buy players / Sell players / Ready for season. Off gives the ordinary season start. Ready continues through the original native team-overall and hot/cold presentation before play. Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged. 2026-11-03-r2 \u00b7 Transfers On selected immediately below Icing. 2026-11-03-r2 \u00b7 Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season. 2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands. 2026-11-03-r2 \u00b7 Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap. 2026-11-03-r2 \u00b7 Restored native team presentation: current Rangers55, transferred Edmonton56. 2026-11-03-r2 \u00b7 Current native presentation: Adam Fox COLD and Evan Bouchard HOT. Defaults: Edmonton, Hard, automatic lines, Icing On, Transfers Off, Low passes, Normal pass speed, Assisted targeting, Penaltys 50%, Alt Goalies On, AI Shot Plan On, Momentum On, KMH and Fragile Glass On. Pass Charge remains optional and uses the same visible charge gauge as shooting. The period warning plays five native beeps at 0:40. Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM ",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/full-roster-blocked.png",
      "image_sha256": "7b72c850e3cc547aaa740aa389b9f422da1c2ff9b3aa208cbf12171877f9dcd4",
      "nearest_description": "Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM hash .",
      "original_id": "full-roster-blocked",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/full-roster-blocked.png",
      "after_caption": "A full roster refuses a purchase; budget remains $16.042.000.",
      "actual_visible": "Anaheim buy list, budget$16.042.000; visible Roster full, sell a player first refusal above footer.",
      "visually_opened": true,
      "after_title": "How purchases and sales change the teams",
      "after_section": "current-features",
      "after_visible": "A full roster refuses a purchase; budget remains $16.042.000.",
      "after_anchor": "picture-015"
    },
    {
      "occurrence": "index.html#image-17",
      "page": "index.html",
      "index": 17,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/insufficient-budget-protected.png",
      "title": "Preseason transfers and native match presentation",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 A $9.801.000 purchase is refused with only $6.036.000 remaining.",
      "alt": "A $9.801.000 purchase is refused with only $6.036.000 remaining.",
      "surrounding_text": "2026-11-02-r2 Preseason transfers and native match presentation Select a new Full, Light or Mini season, then set Transfers On directly below Icing. Start opens Buy players / Sell players / Ready for season. Off gives the ordinary season start. Ready continues through the original native team-overall and hot/cold presentation before play. Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged. 2026-11-03-r2 \u00b7 Transfers On selected immediately below Icing. 2026-11-03-r2 \u00b7 Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season. 2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands. 2026-11-03-r2 \u00b7 Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap. 2026-11-03-r2 \u00b7 Restored native team presentation: current Rangers55, transferred Edmonton56. 2026-11-03-r2 \u00b7 Current native presentation: Adam Fox COLD and Evan Bouchard HOT. Defaults: Edmonton, Hard, automatic lines, Icing On, Transfers Off, Low passes, Normal pass speed, Assisted targeting, Penaltys 50%, Alt Goalies On, AI Shot Plan On, Momentum On, KMH and Fragile Glass On. Pass Charge remains optional and uses the same visible charge gauge as shooting. The period warning plays five native beeps at 0:40. Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM ",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/insufficient-budget-protected.png",
      "image_sha256": "b4cd9189a10ca3da6c93d856b20aca542791c15673961c0268fc9f9610509beb",
      "nearest_description": "Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM hash .",
      "original_id": "insufficient-budget-protected",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/insufficient-budget-protected.png",
      "after_caption": "A $9.801.000 purchase is refused with only $6.036.000 remaining.",
      "actual_visible": "Islanders buy list: Ilya Sorokin G99$9.801.000, budget$6.036.000; visible Not enough money for this player.",
      "visually_opened": true,
      "after_title": "How purchases and sales change the teams",
      "after_section": "current-features",
      "after_visible": "A $9.801.000 purchase is refused with only $6.036.000 remaining.",
      "after_anchor": "picture-016"
    },
    {
      "occurrence": "index.html#image-18",
      "page": "index.html",
      "index": 18,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/after-trades-presentation-550.png",
      "title": "Preseason transfers and native match presentation",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Original native Matchups presentation uses the actual transferred roster.",
      "alt": "Original native Matchups presentation uses the actual transferred roster.",
      "surrounding_text": "2026-11-02-r2 Preseason transfers and native match presentation Select a new Full, Light or Mini season, then set Transfers On directly below Icing. Start opens Buy players / Sell players / Ready for season. Off gives the ordinary season start. Ready continues through the original native team-overall and hot/cold presentation before play. Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged. 2026-11-03-r2 \u00b7 Transfers On selected immediately below Icing. 2026-11-03-r2 \u00b7 Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season. 2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands. 2026-11-03-r2 \u00b7 Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap. 2026-11-03-r2 \u00b7 Restored native team presentation: current Rangers55, transferred Edmonton56. 2026-11-03-r2 \u00b7 Current native presentation: Adam Fox COLD and Evan Bouchard HOT. Defaults: Edmonton, Hard, automatic lines, Icing On, Transfers Off, Low passes, Normal pass speed, Assisted targeting, Penaltys 50%, Alt Goalies On, AI Shot Plan On, Momentum On, KMH and Fragile Glass On. Pass Charge remains optional and uses the same visible charge gauge as shooting. The period warning plays five native beeps at 0:40. Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM ",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/after-trades-presentation-550.png",
      "image_sha256": "d31dfe27af351152d0b89b215910d8a21854427adf4936313a342d36721794af",
      "nearest_description": "Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM hash .",
      "original_id": "after-trades-presentation-550",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/after-trades-presentation-550.png",
      "after_caption": "Native centre presentation after the documented trades: Zibanejad68 versus Edmonton\u2019s MacKinnon98.",
      "actual_visible": "Native centre Matchups: NYR Zibanejad68 vs Edmonton MacKinnon98, with portraits.",
      "visually_opened": true,
      "after_title": "How purchases and sales change the teams",
      "after_section": "current-features",
      "after_visible": "Native centre presentation after the documented trades: Zibanejad68 versus Edmonton\u2019s MacKinnon98.",
      "after_anchor": "picture-017"
    },
    {
      "occurrence": "index.html#image-19",
      "page": "index.html",
      "index": 19,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-0.png",
      "title": "Quickgame \u2014 four human matchups",
      "section": "quickgame-r6",
      "caption": "2026-11-03-r2 \u00b7 Quickgame: 1 vs1; centred controls inside the native footer frame.",
      "alt": "Quickgame: 1 vs1; centred controls inside the native footer frame.",
      "surrounding_text": "Quickgame \u2014 four human matchups Choose 1 vs 1,1 vs 2,1 vs 3 or 2 vs 2 human controllers. P 1 plays home; a four-player adapter enables three/four controllers. Native AI teammates fill the remaining positions. Quickgame preserves the current Full/Light/Mini season while you switch modes. Pregame and result menus contain the relevant match actions. 2026-11-03-r2 \u00b7 Quickgame: 1 vs1; centred controls inside the native footer frame. 2026-11-03-r2 \u00b7 Quickgame: 2 vs2; centred controls inside the native footer frame. Current policy, pad assignments and qualification \u00b7 Earlier Quickgame release .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-0.png",
      "image_sha256": "aa7d7fd199ed43839f671620c084aebf928db797259737a1a7a43d79bef29172",
      "nearest_description": "Choose 1 vs 1,1 vs 2,1 vs 3 or 2 vs 2 human controllers. P 1 plays home; a four-player adapter enables three/four controllers. Native AI teammates fill the remaining positions. Quickgame preserves the current Full/Light/Mini season while you switch modes. Pregame and result menus contain the relevant match actions.",
      "original_id": "quick-0",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/quick-0.png",
      "after_caption": "Quickgame: 1 vs1; centred controls inside the native footer frame.",
      "actual_visible": "Quickgame main menu, Players1vs1 Humans, Edmonton/NewYork, five-minute period, framed centred footer.",
      "visually_opened": true,
      "after_title": "Quickgame \u2014 four human matchups",
      "after_section": "quickgame-r6",
      "after_visible": "Quickgame: 1 vs1; centred controls inside the native footer frame.",
      "after_anchor": "picture-018"
    },
    {
      "occurrence": "index.html#image-20",
      "page": "index.html",
      "index": 20,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-3.png",
      "title": "Quickgame \u2014 four human matchups",
      "section": "quickgame-r6",
      "caption": "2026-11-03-r2 \u00b7 Quickgame: 2 vs2; centred controls inside the native footer frame.",
      "alt": "Quickgame: 2 vs2; centred controls inside the native footer frame.",
      "surrounding_text": "Quickgame \u2014 four human matchups Choose 1 vs 1,1 vs 2,1 vs 3 or 2 vs 2 human controllers. P 1 plays home; a four-player adapter enables three/four controllers. Native AI teammates fill the remaining positions. Quickgame preserves the current Full/Light/Mini season while you switch modes. Pregame and result menus contain the relevant match actions. 2026-11-03-r2 \u00b7 Quickgame: 1 vs1; centred controls inside the native footer frame. 2026-11-03-r2 \u00b7 Quickgame: 2 vs2; centred controls inside the native footer frame. Current policy, pad assignments and qualification \u00b7 Earlier Quickgame release .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-3.png",
      "image_sha256": "960d18c85b135ca8acb7f6105533b0866afc7fbff9e5097ab8a7bf2c590c2b54",
      "nearest_description": "Choose 1 vs 1,1 vs 2,1 vs 3 or 2 vs 2 human controllers. P 1 plays home; a four-player adapter enables three/four controllers. Native AI teammates fill the remaining positions. Quickgame preserves the current Full/Light/Mini season while you switch modes. Pregame and result menus contain the relevant match actions.",
      "original_id": "quick-3",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/quick-3.png",
      "after_caption": "Quickgame: 2 vs2; centred controls inside the native footer frame.",
      "actual_visible": "Quickgame main menu, Players2vs2 Humans, Edmonton/NewYork, framed centred footer.",
      "visually_opened": true,
      "after_title": "Quickgame \u2014 four human matchups",
      "after_section": "quickgame-r6",
      "after_visible": "Quickgame: 2 vs2; centred controls inside the native footer frame.",
      "after_anchor": "picture-019"
    },
    {
      "occurrence": "index.html#image-21",
      "page": "index.html",
      "index": 21,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/replay.png",
      "title": "Replay, menu background and player markers",
      "section": "replay-quick-menu-nov2",
      "caption": "2026-11-03-r2 \u00b7 Clean REPLAY heading and preserved lower-left clock/frame during a real automatic replay.",
      "alt": "Clean REPLAY heading and preserved lower-left clock/frame during a real automatic replay.",
      "surrounding_text": "Replay, menu background and player markers The automatic REPLAY heading stays clean and the lower-left clock/frame keeps its pre-replay appearance. The supplied menu78 image is the menu background; the original NHL94 Season Edition startup stays. Physical player markers are P1 blue, P2 red, P3 neon green and P4 yellow, with the original red goal. 2026-11-03-r2 \u00b7 Clean REPLAY heading and preserved lower-left clock/frame during a real automatic replay. 2026-11-03-r2 \u00b7 Blue P1, red P2, neon-green P3 and yellow P4 in the actual four-pad match. Historical November2 release and paired evidence \u00b7 Current changes .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/replay.png",
      "image_sha256": "9f085ad0565793515c85691f3e91ee228f7da3904f99611f4773b9f2285aecfa",
      "nearest_description": "The automatic REPLAY heading stays clean and the lower-left clock/frame keeps its pre-replay appearance. The supplied menu78 image is the menu background; the original NHL94 Season Edition startup stays. Physical player markers are P1 blue, P2 red, P3 neon green and P4 yellow, with the original red goal.",
      "original_id": "replay",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/replay-native.png",
      "after_caption": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "actual_visible": "REPLAY heading and X+B SKIP upper-left; lower-left framed1st1:50 clock remains clear during rink replay.",
      "visually_opened": true,
      "after_title": "Replay, menu background and player markers",
      "after_section": "replay-quick-menu-nov2",
      "after_visible": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "after_anchor": "picture-020"
    },
    {
      "occurrence": "index.html#image-22",
      "page": "index.html",
      "index": 22,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/four-stars.png",
      "title": "Replay, menu background and player markers",
      "section": "replay-quick-menu-nov2",
      "caption": "2026-11-03-r2 \u00b7 Blue P1, red P2, neon-green P3 and yellow P4 in the actual four-pad match.",
      "alt": "Blue P1, red P2, neon-green P3 and yellow P4 in the actual four-pad match.",
      "surrounding_text": "Replay, menu background and player markers The automatic REPLAY heading stays clean and the lower-left clock/frame keeps its pre-replay appearance. The supplied menu78 image is the menu background; the original NHL94 Season Edition startup stays. Physical player markers are P1 blue, P2 red, P3 neon green and P4 yellow, with the original red goal. 2026-11-03-r2 \u00b7 Clean REPLAY heading and preserved lower-left clock/frame during a real automatic replay. 2026-11-03-r2 \u00b7 Blue P1, red P2, neon-green P3 and yellow P4 in the actual four-pad match. Historical November2 release and paired evidence \u00b7 Current changes .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/four-stars.png",
      "image_sha256": "52c376048c8cb61306554e2b97e25cb13cfe042dbef3e68cbdb55f55ffd0ac5a",
      "nearest_description": "The automatic REPLAY heading stays clean and the lower-left clock/frame keeps its pre-replay appearance. The supplied menu78 image is the menu background; the original NHL94 Season Edition startup stays. Physical player markers are P1 blue, P2 red, P3 neon green and P4 yellow, with the original red goal.",
      "original_id": "four-stars",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/faceoff.png",
      "after_caption": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation.",
      "actual_visible": "Four-pad rink play, clustered colored control stars, EDM powerplay0:42,3rd4:33,NYR1 EDM1; red offscreen down arrow at bottom.",
      "visually_opened": true,
      "after_title": "Replay, menu background and player markers",
      "after_section": "replay-quick-menu-nov2",
      "after_visible": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation.",
      "after_anchor": "picture-021"
    },
    {
      "occurrence": "index.html#image-23",
      "page": "index.html",
      "index": 23,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-cpu.png",
      "title": "Allstar \u2014 humans or CPU",
      "section": "allstar-r7",
      "caption": "2026-11-03-r2 \u00b7 Allstar: 1 vs CPU; centred controls inside the native footer frame.",
      "alt": "Allstar: 1 vs CPU; centred controls inside the native footer frame.",
      "surrounding_text": "Allstar \u2014 humans or CPU Allstar offers 1 vs CPU plus 1 vs 1, 1 vs 2, 1 vs 3 and 2 vs 2 humans. The 52 best eligible players are selected by native base overall and split by natural position into two valid 26-player teams. Each has 3 goalkeepers, 8 defenders and 5 players at each forward position. Allstar A wears all black; Allstar B wears all red. Ordinary club uniforms are preserved. 2026-11-03-r2 \u00b7 Allstar: 1 vs CPU; centred controls inside the native footer frame. 2026-11-03-r2 \u00b7 Allstar A wears all black and Allstar B all red in the actual CPU match. 2026-11-03-r2 \u00b7 Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms. 2026-11-03-r2 \u00b7 Native Allstar player presentation and hot-player commentary. The native ANA/BOS logo shells and inherited arena art remain. The current Allstar names, roster, uniforms and 82/82 team-overall values are shown above. Selection, actual CPU/human control, source and tests .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-cpu.png",
      "image_sha256": "7e31ec1416b73d83a7fc709a14c7af7dd99de4af556eed955e72bfe6b01e91fb",
      "nearest_description": "Allstar offers 1 vs CPU plus 1 vs 1, 1 vs 2, 1 vs 3 and 2 vs 2 humans. The 52 best eligible players are selected by native base overall and split by natural position into two valid 26-player teams. Each has 3 goalkeepers, 8 defenders and 5 players at each forward position. Allstar A wears all black; Allstar B wears all red. Ordinary club uniforms are preserved.",
      "original_id": "allstar-cpu",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/allstar-cpu.png",
      "after_caption": "Allstar: 1 vs CPU; centred controls inside the native footer frame.",
      "actual_visible": "ALLSTAR MODE menu: Players1vsCPU, HomeAllstarA AwayAllstarB, centred framed footer.",
      "visually_opened": true,
      "after_title": "Allstar \u2014 humans or CPU",
      "after_section": "allstar-r7",
      "after_visible": "Allstar: 1 vs CPU; centred controls inside the native footer frame.",
      "after_anchor": "picture-022"
    },
    {
      "occurrence": "index.html#image-24",
      "page": "index.html",
      "index": 24,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-uniforms.png",
      "title": "Allstar \u2014 humans or CPU",
      "section": "allstar-r7",
      "caption": "2026-11-03-r2 \u00b7 Allstar A wears all black and Allstar B all red in the actual CPU match.",
      "alt": "Allstar A wears all black and Allstar B all red in the actual CPU match.",
      "surrounding_text": "Allstar \u2014 humans or CPU Allstar offers 1 vs CPU plus 1 vs 1, 1 vs 2, 1 vs 3 and 2 vs 2 humans. The 52 best eligible players are selected by native base overall and split by natural position into two valid 26-player teams. Each has 3 goalkeepers, 8 defenders and 5 players at each forward position. Allstar A wears all black; Allstar B wears all red. Ordinary club uniforms are preserved. 2026-11-03-r2 \u00b7 Allstar: 1 vs CPU; centred controls inside the native footer frame. 2026-11-03-r2 \u00b7 Allstar A wears all black and Allstar B all red in the actual CPU match. 2026-11-03-r2 \u00b7 Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms. 2026-11-03-r2 \u00b7 Native Allstar player presentation and hot-player commentary. The native ANA/BOS logo shells and inherited arena art remain. The current Allstar names, roster, uniforms and 82/82 team-overall values are shown above. Selection, actual CPU/human control, source and tests .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-uniforms.png",
      "image_sha256": "1e4d27997a9a28e55f1c186e0f284b0927c7568a0baccf8af4aa2a1b9e75fa12",
      "nearest_description": "Allstar offers 1 vs CPU plus 1 vs 1, 1 vs 2, 1 vs 3 and 2 vs 2 humans. The 52 best eligible players are selected by native base overall and split by natural position into two valid 26-player teams. Each has 3 goalkeepers, 8 defenders and 5 players at each forward position. Allstar A wears all black; Allstar B wears all red. Ordinary club uniforms are preserved.",
      "original_id": "allstar-uniforms",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/allstar-uniforms.png",
      "after_caption": "Allstar A skaters wear solid black and Allstar B solid red; ASB0 ASA0 at1st4:57.",
      "actual_visible": "Native match at centre ice: solid black skaters vs solid red skaters, scoreboardASB0 ASA0,1st4:57.",
      "visually_opened": true,
      "after_title": "Allstar \u2014 humans or CPU",
      "after_section": "allstar-r7",
      "after_visible": "Allstar A skaters wear solid black and Allstar B solid red; ASB0 ASA0 at1st4:57.",
      "after_anchor": "picture-023"
    },
    {
      "occurrence": "index.html#image-25",
      "page": "index.html",
      "index": 25,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-overall.png",
      "title": "Allstar \u2014 humans or CPU",
      "section": "allstar-r7",
      "caption": "2026-11-03-r2 \u00b7 Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms.",
      "alt": "Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms.",
      "surrounding_text": "Allstar \u2014 humans or CPU Allstar offers 1 vs CPU plus 1 vs 1, 1 vs 2, 1 vs 3 and 2 vs 2 humans. The 52 best eligible players are selected by native base overall and split by natural position into two valid 26-player teams. Each has 3 goalkeepers, 8 defenders and 5 players at each forward position. Allstar A wears all black; Allstar B wears all red. Ordinary club uniforms are preserved. 2026-11-03-r2 \u00b7 Allstar: 1 vs CPU; centred controls inside the native footer frame. 2026-11-03-r2 \u00b7 Allstar A wears all black and Allstar B all red in the actual CPU match. 2026-11-03-r2 \u00b7 Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms. 2026-11-03-r2 \u00b7 Native Allstar player presentation and hot-player commentary. The native ANA/BOS logo shells and inherited arena art remain. The current Allstar names, roster, uniforms and 82/82 team-overall values are shown above. Selection, actual CPU/human control, source and tests .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-overall.png",
      "image_sha256": "acbbf46ac4b350c52dfd31ab8f57b4350ca594a42c5dfd970ae3254fb0d6a1e3",
      "nearest_description": "Allstar offers 1 vs CPU plus 1 vs 1, 1 vs 2, 1 vs 3 and 2 vs 2 humans. The 52 best eligible players are selected by native base overall and split by natural position into two valid 26-player teams. Each has 3 goalkeepers, 8 defenders and 5 players at each forward position. Allstar A wears all black; Allstar B wears all red. Ordinary club uniforms are preserved.",
      "original_id": "allstar-overall",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/allstar-overall.png",
      "after_caption": "Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms.",
      "actual_visible": "Native Matchups Overall82/82 with Boston/Anaheim logo shells.",
      "visually_opened": true,
      "after_title": "Allstar \u2014 humans or CPU",
      "after_section": "allstar-r7",
      "after_visible": "Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms.",
      "after_anchor": "picture-024"
    },
    {
      "occurrence": "index.html#image-26",
      "page": "index.html",
      "index": 26,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-hot.png",
      "title": "Allstar \u2014 humans or CPU",
      "section": "allstar-r7",
      "caption": "2026-11-03-r2 \u00b7 Native Allstar player presentation and hot-player commentary.",
      "alt": "Native Allstar player presentation and hot-player commentary.",
      "surrounding_text": "Allstar \u2014 humans or CPU Allstar offers 1 vs CPU plus 1 vs 1, 1 vs 2, 1 vs 3 and 2 vs 2 humans. The 52 best eligible players are selected by native base overall and split by natural position into two valid 26-player teams. Each has 3 goalkeepers, 8 defenders and 5 players at each forward position. Allstar A wears all black; Allstar B wears all red. Ordinary club uniforms are preserved. 2026-11-03-r2 \u00b7 Allstar: 1 vs CPU; centred controls inside the native footer frame. 2026-11-03-r2 \u00b7 Allstar A wears all black and Allstar B all red in the actual CPU match. 2026-11-03-r2 \u00b7 Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms. 2026-11-03-r2 \u00b7 Native Allstar player presentation and hot-player commentary. The native ANA/BOS logo shells and inherited arena art remain. The current Allstar names, roster, uniforms and 82/82 team-overall values are shown above. Selection, actual CPU/human control, source and tests .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-hot.png",
      "image_sha256": "59ccbde46886092e118b29dd8ea7e53ef51010256f19e8ad91a7f04a1e7f6a42",
      "nearest_description": "Allstar offers 1 vs CPU plus 1 vs 1, 1 vs 2, 1 vs 3 and 2 vs 2 humans. The 52 best eligible players are selected by native base overall and split by natural position into two valid 26-player teams. Each has 3 goalkeepers, 8 defenders and 5 players at each forward position. Allstar A wears all black; Allstar B wears all red. Ordinary club uniforms are preserved.",
      "original_id": "allstar-hot",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/allstar-hot.png",
      "after_caption": "Allstar left-forward presentation: #97 Kaprizov marked HOT versus #41 Stenberg, with their native rating display and commentary.",
      "actual_visible": "Allstar native left-forward comparison: Kaprizov97 HOT versus Stenberg88; commentary mentions Kucherov hot.",
      "visually_opened": true,
      "after_title": "Allstar \u2014 humans or CPU",
      "after_section": "allstar-r7",
      "after_visible": "Allstar left-forward presentation: #97 Kaprizov marked HOT versus #41 Stenberg, with their native rating display and commentary.",
      "after_anchor": "picture-025"
    },
    {
      "occurrence": "index.html#image-27",
      "page": "index.html",
      "index": 27,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/credits.png",
      "title": "Credits and sources",
      "section": "credits",
      "caption": "2026-11-03-r2 \u00b7 Actual startup credits: Website https://games.jdc.se.",
      "alt": "Actual startup credits: Website https://games.jdc.se.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Credits and sources NHL 94 was created by EA Sports. This is a modification of NHL 2026 - 94 Edition v5.1W , by Jkline3 and von Ozbourne . Their original release and credits are the source for the inherited community work below. Drezz: presentation/background work; slapshot67: color player cards; AdamCatalyst: team-color puck work. chaos: weight/checking work; smozoma: rating consistency and goalie range; clockwise: Y-goalie work; McMarkis: CPU goalie-pull behavior. These are base-ROM credits, not new jdc fixes. Research references: abdulahmad / NHL94Genesis , Chaos81 / nhl94-disassembly , and Tickenest / NHL94MatchViewer . These informed engine analysis; this project patches v5.1W rather than rebuilding those repositories. Season - jdc additions: jdc's design and playtesting with Bodin; implementation and automated tests with Claude and Codex. Sources and change history are published under Tools. Roster/headshot data: NHL; line references: DailyFaceoff. The critical-shot digital effect was adapted from Twin Cobra (Toaplan). Full provenance, scope and the original authors' remaining acknowledgements: Credits notes . 2026-11-03-r2 \u00b7 Actual startup credits: Website https://games.jdc.se.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/credits.png",
      "image_sha256": "bbe450fc2aaf7796987764a748f7d0987b1ba6a925b23004052218a180464286",
      "nearest_description": "Roster/headshot data: NHL; line references: DailyFaceoff. The critical-shot digital effect was adapted from Twin Cobra (Toaplan). Full provenance, scope and the original authors' remaining acknowledgements: Credits notes .",
      "original_id": "credits",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/credits.png",
      "after_caption": "Actual startup credits: Website https://games.jdc.se.",
      "actual_visible": "Native black credits card; Website: https://games.jdc.se and START to continue.",
      "visually_opened": true,
      "after_title": "Credits and sources",
      "after_section": "credits",
      "after_visible": "Actual startup credits: Website https://games.jdc.se.",
      "after_anchor": "picture-026"
    },
    {
      "occurrence": "index.html#image-28",
      "page": "index.html",
      "index": 28,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-rink.png",
      "title": "Momentum, shot gauge and powerplay HUD",
      "section": "momentum-left-r5",
      "caption": "2026-11-03-r2 \u00b7 Actual earned Momentum bars beneath each team name in the lower-right HUD.",
      "alt": "Actual earned Momentum bars beneath each team name in the lower-right HUD.",
      "surrounding_text": "2026-11-02-r2 Momentum, shot gauge and powerplay HUD Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock. 2026-11-03-r2 \u00b7 Actual earned Momentum bars beneath each team name in the lower-right HUD. 2026-11-03-r2 \u00b7 Actual menu-selected Momentum Off: no bars or stat bonus in play. 2026-11-03-r2 \u00b7 The rendered full shot gauge is solid red; actual C input continues the authenticated charge state. 2026-11-03-r2 \u00b7 Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock. 2026-11-03-r2 \u00b7 Natural match: Edmonton has positive Momentum and the Rangers negative. 2026-11-03-r2 \u00b7 Natural match: the Rangers have positive Momentum and Edmonton negative.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-rink.png",
      "image_sha256": "09ea715ebbebc96113c734e4bfac07b0a121c124aaad41648cbaaf971ce35e3d",
      "nearest_description": "Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock.",
      "original_id": "momentum-rink",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/momentum-away.png",
      "after_caption": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "actual_visible": "NYR1 EDM0 at1st3:05, tiny red Momentum indicator beneath EDM in lower-right scoreboard; ordinary puck/rink play.",
      "visually_opened": true,
      "after_title": "Momentum, shot gauge and powerplay HUD",
      "after_section": "momentum-left-r5",
      "after_visible": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "after_anchor": "picture-027"
    },
    {
      "occurrence": "index.html#image-29",
      "page": "index.html",
      "index": 29,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-off.png",
      "title": "Momentum, shot gauge and powerplay HUD",
      "section": "momentum-left-r5",
      "caption": "2026-11-03-r2 \u00b7 Actual menu-selected Momentum Off: no bars or stat bonus in play.",
      "alt": "Actual menu-selected Momentum Off: no bars or stat bonus in play.",
      "surrounding_text": "2026-11-02-r2 Momentum, shot gauge and powerplay HUD Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock. 2026-11-03-r2 \u00b7 Actual earned Momentum bars beneath each team name in the lower-right HUD. 2026-11-03-r2 \u00b7 Actual menu-selected Momentum Off: no bars or stat bonus in play. 2026-11-03-r2 \u00b7 The rendered full shot gauge is solid red; actual C input continues the authenticated charge state. 2026-11-03-r2 \u00b7 Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock. 2026-11-03-r2 \u00b7 Natural match: Edmonton has positive Momentum and the Rangers negative. 2026-11-03-r2 \u00b7 Natural match: the Rangers have positive Momentum and Edmonton negative.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-off.png",
      "image_sha256": "4713f214e04a86678a24db09afdf62650bc7bc8054285b0b45c09cb500d2feb9",
      "nearest_description": "Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock.",
      "original_id": "momentum-off",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/momentum-off.png",
      "after_caption": "Native play with Momentum Off: the lower-right scoreboard has no Momentum strips. Stat scaling is checked separately.",
      "actual_visible": "NYR0 EDM0 at1st4:47; lower-right scoreboard has no Momentum bars; ordinary rink scene.",
      "visually_opened": true,
      "after_title": "Momentum, shot gauge and powerplay HUD",
      "after_section": "momentum-left-r5",
      "after_visible": "Native play with Momentum Off: the lower-right scoreboard has no Momentum strips. Stat scaling is checked separately.",
      "after_anchor": "picture-028"
    },
    {
      "occurrence": "index.html#image-30",
      "page": "index.html",
      "index": 30,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "title": "Momentum, shot gauge and powerplay HUD",
      "section": "momentum-left-r5",
      "caption": "2026-11-03-r2 \u00b7 The rendered full shot gauge is solid red; actual C input continues the authenticated charge state.",
      "alt": "The rendered full shot gauge is solid red; actual C input continues the authenticated charge state.",
      "surrounding_text": "2026-11-02-r2 Momentum, shot gauge and powerplay HUD Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock. 2026-11-03-r2 \u00b7 Actual earned Momentum bars beneath each team name in the lower-right HUD. 2026-11-03-r2 \u00b7 Actual menu-selected Momentum Off: no bars or stat bonus in play. 2026-11-03-r2 \u00b7 The rendered full shot gauge is solid red; actual C input continues the authenticated charge state. 2026-11-03-r2 \u00b7 Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock. 2026-11-03-r2 \u00b7 Natural match: Edmonton has positive Momentum and the Rangers negative. 2026-11-03-r2 \u00b7 Natural match: the Rangers have positive Momentum and Edmonton negative.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "image_sha256": "4772b3f7ac9f4de821b28cd0a861109b40ffc6e83118eb228136e1e40e785e65",
      "nearest_description": "Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock.",
      "original_id": "shot-full",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "after_caption": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "actual_visible": "Solid red full-width charge bar under lower-left1st4:40 clock, puck/carrier near right of rink.",
      "visually_opened": true,
      "after_title": "Momentum, shot gauge and powerplay HUD",
      "after_section": "momentum-left-r5",
      "after_visible": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "after_anchor": "picture-029"
    },
    {
      "occurrence": "index.html#image-31",
      "page": "index.html",
      "index": 31,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/powerplay-home.png",
      "title": "Momentum, shot gauge and powerplay HUD",
      "section": "momentum-left-r5",
      "caption": "2026-11-03-r2 \u00b7 Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock.",
      "alt": "Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock.",
      "surrounding_text": "2026-11-02-r2 Momentum, shot gauge and powerplay HUD Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock. 2026-11-03-r2 \u00b7 Actual earned Momentum bars beneath each team name in the lower-right HUD. 2026-11-03-r2 \u00b7 Actual menu-selected Momentum Off: no bars or stat bonus in play. 2026-11-03-r2 \u00b7 The rendered full shot gauge is solid red; actual C input continues the authenticated charge state. 2026-11-03-r2 \u00b7 Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock. 2026-11-03-r2 \u00b7 Natural match: Edmonton has positive Momentum and the Rangers negative. 2026-11-03-r2 \u00b7 Natural match: the Rangers have positive Momentum and Edmonton negative.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/powerplay-home.png",
      "image_sha256": "a608bd04ee873589185eb945163754d4cecbd33be38dc0a5b2c3c2464ff73d9c",
      "nearest_description": "Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock.",
      "original_id": "powerplay-home",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/powerplay-home.png",
      "after_caption": "Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock.",
      "actual_visible": "EDM PwrPlay0:36 framed box directly above unchanged1st1:09 clock; native rink play.",
      "visually_opened": true,
      "after_title": "Momentum, shot gauge and powerplay HUD",
      "after_section": "momentum-left-r5",
      "after_visible": "Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock.",
      "after_anchor": "picture-030"
    },
    {
      "occurrence": "index.html#image-32",
      "page": "index.html",
      "index": 32,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-home-positive.png",
      "title": "Momentum, shot gauge and powerplay HUD",
      "section": "momentum-left-r5",
      "caption": "2026-11-03-r2 \u00b7 Natural match: Edmonton has positive Momentum and the Rangers negative.",
      "alt": "Natural match: Edmonton has positive Momentum and the Rangers negative.",
      "surrounding_text": "2026-11-02-r2 Momentum, shot gauge and powerplay HUD Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock. 2026-11-03-r2 \u00b7 Actual earned Momentum bars beneath each team name in the lower-right HUD. 2026-11-03-r2 \u00b7 Actual menu-selected Momentum Off: no bars or stat bonus in play. 2026-11-03-r2 \u00b7 The rendered full shot gauge is solid red; actual C input continues the authenticated charge state. 2026-11-03-r2 \u00b7 Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock. 2026-11-03-r2 \u00b7 Natural match: Edmonton has positive Momentum and the Rangers negative. 2026-11-03-r2 \u00b7 Natural match: the Rangers have positive Momentum and Edmonton negative.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-home-positive.png",
      "image_sha256": "62e3519c23c55202ca8905264de6a7464e0a7cb7c17903c341b10678121517b2",
      "nearest_description": "Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock.",
      "original_id": "momentum-home-positive",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/momentum-home.png",
      "after_caption": "Momentum strips beneath both team names at3rd3:02, NYR1 EDM2. The visible bars are separate from the lower-left clock.",
      "actual_visible": "NYR1 EDM1,1st1:55; small contrasting Momentum indicators under both names;56KMH panel.",
      "visually_opened": true,
      "after_title": "Momentum, shot gauge and powerplay HUD",
      "after_section": "momentum-left-r5",
      "after_visible": "Momentum strips beneath both team names at3rd3:02, NYR1 EDM2. The visible bars are separate from the lower-left clock.",
      "after_anchor": "picture-031"
    },
    {
      "occurrence": "index.html#image-33",
      "page": "index.html",
      "index": 33,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-away-positive.png",
      "title": "Momentum, shot gauge and powerplay HUD",
      "section": "momentum-left-r5",
      "caption": "2026-11-03-r2 \u00b7 Natural match: the Rangers have positive Momentum and Edmonton negative.",
      "alt": "Natural match: the Rangers have positive Momentum and Edmonton negative.",
      "surrounding_text": "2026-11-02-r2 Momentum, shot gauge and powerplay HUD Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock. 2026-11-03-r2 \u00b7 Actual earned Momentum bars beneath each team name in the lower-right HUD. 2026-11-03-r2 \u00b7 Actual menu-selected Momentum Off: no bars or stat bonus in play. 2026-11-03-r2 \u00b7 The rendered full shot gauge is solid red; actual C input continues the authenticated charge state. 2026-11-03-r2 \u00b7 Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock. 2026-11-03-r2 \u00b7 Natural match: Edmonton has positive Momentum and the Rangers negative. 2026-11-03-r2 \u00b7 Natural match: the Rangers have positive Momentum and Edmonton negative.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-away-positive.png",
      "image_sha256": "6bd985ecb4d5ece8307000e6b2fbfa92d794ae70d1b4d30ed6313f596e20367e",
      "nearest_description": "Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock.",
      "original_id": "momentum-away-positive",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/momentum-away.png",
      "after_caption": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "actual_visible": "NYR1 EDM1,2nd0:23; lower-right Momentum strips and113KMH panel.",
      "visually_opened": true,
      "after_title": "Momentum, shot gauge and powerplay HUD",
      "after_section": "momentum-left-r5",
      "after_visible": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "after_anchor": "picture-032"
    },
    {
      "occurrence": "index.html#image-34",
      "page": "index.html",
      "index": 34,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/rink.png",
      "title": "Painted faceoff dots \u2014 always On",
      "section": "faceoff-dots-r4",
      "caption": "2026-11-03-r2 \u00b7 Current players, puck, original red goal and distinct controller stars.",
      "alt": "Current players, puck, original red goal and distinct controller stars.",
      "surrounding_text": "2026-11-02-r2 Painted faceoff dots \u2014 always On Native stoppage formations use the painted-dot policy. As requested, this is always On and the redundant start-menu choice is hidden. Native formation, puck placement, line selection and rendering remain responsible. 2026-11-03-r2 \u00b7 Current players, puck, original red goal and distinct controller stars. Original cause and implementation history \u00b7 Current permanent-rule policy .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/rink.png",
      "image_sha256": "bf56f3e30865ba5dbf231e73e68f86278993e887ba0bd5a6f40e654e88c8e869",
      "nearest_description": "Native stoppage formations use the painted-dot policy. As requested, this is always On and the redundant start-menu choice is hidden. Native formation, puck placement, line selection and rendering remain responsible.",
      "original_id": "rink",
      "action": "Replaced ordinary skating with actual centre-ice faceoff formation",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/faceoff.png",
      "after_caption": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation.",
      "actual_visible": "Native defensive-zone rink, players near red goal, red painted faceoff circles and controller markers,1st4:33 NYR0 EDM0.",
      "visually_opened": true,
      "after_title": "Painted faceoff dots \u2014 always On",
      "after_section": "faceoff-dots-r4",
      "after_visible": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation.",
      "after_anchor": "picture-033"
    },
    {
      "occurrence": "index.html#image-35",
      "page": "index.html",
      "index": 35,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/shootout.png",
      "title": "Overtime shootout rules \u2014 always On",
      "section": "strict-so-r2",
      "caption": "2026-11-03-r2 \u00b7 Native shootout starts without further input. This screenshot uses a declared clock-only OT expiry fixture.",
      "alt": "Native shootout starts without further input. This screenshot uses a declared clock-only OT expiry fixture.",
      "surrounding_text": "2026-11-02-r2 Overtime shootout rules \u2014 always On The selected period length also sets overtime. Tied overtime leads to native shootouts with automatic starts, eligible-skater rotation, full-spin checks and native single-shot/retouch handling. This rule set is always On and its start-menu row is hidden. 2026-11-03-r2 \u00b7 Native shootout starts without further input. This screenshot uses a declared clock-only OT expiry fixture. Rule scope and native tolerances .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shootout.png",
      "image_sha256": "12138496eb50d8c7bc28ee253756374e92089dbc2a63933ccc257464bfa5e450",
      "nearest_description": "The selected period length also sets overtime. Tied overtime leads to native shootouts with automatic starts, eligible-skater rotation, full-spin checks and native single-shot/retouch handling. This rule set is always On and its start-menu row is hidden.",
      "original_id": "shootout",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/shootout.png",
      "after_caption": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "actual_visible": "Single shooter at centre ice, native attempt countdown0:20,NYR0 EDM0.",
      "visually_opened": true,
      "after_title": "Overtime shootout rules \u2014 always On",
      "after_section": "strict-so-r2",
      "after_visible": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "after_anchor": "picture-034"
    },
    {
      "occurrence": "index.html#image-36",
      "page": "index.html",
      "index": 36,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/penalty-default.png",
      "title": "Choose penalty frequency separately",
      "section": "penalty-rate-r8",
      "caption": "2026-11-03-r2 \u00b7 Penaltys50% by default; centred help stays inside its native border.",
      "alt": "Penaltys50% by default; centred help stays inside its native border.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-31-r8 Choose penalty frequency separately Penaltys offers 100% / 50% / Off; the current default is 50%. The separate Rules setting retains Off / On / On, Except Off-sides. Icing has its own switch. Native penalty-shot eligibility and P1\u2013P4 shooter ownership remain intact. Buffered pass shots retain real stick contact and native shot setup. 50% admits approximately half the eligible ordinary fouls. Off suppresses new ordinary penalties and new fights. Injury stoppages remain through the native injury-only report, and fighting penalties stay paired. All five percentage/pass choices save per season and lock after its first match. 2026-11-03-r2 \u00b7 Penaltys50% by default; centred help stays inside its native border. Historical release evidence: Why the original setting also controlled offside \u00b7 Behavior, hooks, hex, storage and tests \u00b7 Exact-build evidence . 88/89 shared checks pass; only the retained AI geometry failure remains and the strict gate stays failed.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/penalty-default.png",
      "image_sha256": "f88ec3c7e8b75bfbf91b5b70e0724bec9edb75f7a5899b06839dfb4d3a037988",
      "nearest_description": "50% admits approximately half the eligible ordinary fouls. Off suppresses new ordinary penalties and new fights. Injury stoppages remain through the native injury-only report, and fighting penalties stay paired. All five percentage/pass choices save per season and lock after its first match.",
      "original_id": "penalty-default",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/penalty-default.png",
      "after_caption": "Penaltys50% by default; centred help stays inside its native border.",
      "actual_visible": "Main-menu selected Penaltys50%, with Low/Normal/Assisted/Default-cone rows and framed footer.",
      "visually_opened": true,
      "after_title": "Choose penalty frequency separately",
      "after_section": "penalty-rate-r8",
      "after_visible": "Penaltys50% by default; centred help stays inside its native border.",
      "after_anchor": "picture-035"
    },
    {
      "occurrence": "index.html#image-37",
      "page": "index.html",
      "index": 37,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/directional.png",
      "title": "Choose directional passing and receiver cone",
      "section": "pass-mode-r7",
      "caption": "2026-11-03-r2 \u00b7 Directional mode selected; Low pass height remains independent. Help is centred in its native frame.",
      "alt": "Directional mode selected; Low pass height remains independent. Help is centred in its native frame.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-31-r7 Choose directional passing and receiver cone Two new start-menu rows: Pass Mode: Assisted / Directional and Target Cone: Default / 15 / 30 / 45 degrees . Defaults remain Assisted and Default. Directional follows your eight-way aim without choosing a teammate; explicit cones narrow Assisted target selection by the actual vector half-angle. Height and Speed stay independent. Seasons save all four choices and lock them after the first match. P1\u2013P4, manual keepers and requested CPU-keeper outlets are tested. Hold/release charging remains separate research. 2026-11-03-r2 \u00b7 Directional mode selected; Low pass height remains independent. Help is centred in its native frame. Historical release evidence: Brodeur30\u2019s proposal, menus, hooks, hex and tests \u00b7 Exact-build evidence . 87/88 checks pass; the inherited AI geometry failure remains and the strict gate stays failed. All 40 ordinary scenes match fresh r6 controls.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/directional.png",
      "image_sha256": "b0b5b9426559d135212d61c0f652d5065a91e0ec17d33d258839e77a406eb3ba",
      "nearest_description": "Height and Speed stay independent. Seasons save all four choices and lock them after the first match. P1\u2013P4, manual keepers and requested CPU-keeper outlets are tested. Hold/release charging remains separate research.",
      "original_id": "directional",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/directional.png",
      "after_caption": "Directional mode selected; Low pass height remains independent. Help is centred in its native frame.",
      "actual_visible": "Pass Mode Directional selected; Pass HeightLow and Pass SpeedNormal visible; framed footer.",
      "visually_opened": true,
      "after_title": "Choose directional passing and receiver cone",
      "after_section": "pass-mode-r7",
      "after_visible": "Directional mode selected; Low pass height remains independent. Help is centred in its native frame.",
      "after_anchor": "picture-036"
    },
    {
      "occurrence": "index.html#image-38",
      "page": "index.html",
      "index": 38,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/slow.png",
      "title": "Choose pass speed separately",
      "section": "pass-speed-r5",
      "caption": "2026-11-03-r2 \u00b7 Slow pass speed remains independent of Low height and Assisted mode. Help is centred in its native frame.",
      "alt": "Slow pass speed remains independent of Low height and Assisted mode. Help is centred in its native frame.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-31-r5 Choose pass speed separately The last main-menu row now offers Pass Speed: Normal / Slow , default Normal. Slow recalculates the pass to a moving receiver with lower nominal power. The separate Normal/Low height choice keeps its original lift calculation. Native short-pass limits and fast-receiver guards can leave a pass unchanged. Both choices save per season and lock after the first completed game. This also corrects r4\u2019s standalone height storage, which could overlap Full-season goalie data; separate native preferences now survive slot changes and reboot. Historical release evidence: Brodeur30\u2019s proposal, hooks, storage correction and tests \u00b7 Exact-build evidence . 85/86 shared checks pass; the inherited AI geometry failure remains and the strict gate stays failed. 2026-11-03-r2 \u00b7 Slow pass speed remains independent of Low height and Assisted mode. Help is centred in its native frame.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/slow.png",
      "image_sha256": "30a905a015847d2666e1c0196301338dfbffb5f2e32df580a2d1867c0d1164dd",
      "nearest_description": "Historical release evidence: Brodeur30\u2019s proposal, hooks, storage correction and tests \u00b7 Exact-build evidence . 85/86 shared checks pass; the inherited AI geometry failure remains and the strict gate stays failed.",
      "original_id": "slow",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/slow.png",
      "after_caption": "Pass Speed Slow selected, alongside Low height, Assisted mode and a45-degree target cone.",
      "actual_visible": "Pass SpeedSlow selected, Pass HeightLow, Assisted, TargetCone45degrees, framed footer.",
      "visually_opened": true,
      "after_title": "Choose pass speed separately",
      "after_section": "pass-speed-r5",
      "after_visible": "Pass Speed Slow selected, alongside Low height, Assisted mode and a45-degree target cone.",
      "after_anchor": "picture-037"
    },
    {
      "occurrence": "index.html#image-39",
      "page": "index.html",
      "index": 39,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-defaults.png",
      "title": "Choose lower pass height",
      "section": "pass-height-r4",
      "caption": "2026-11-03-r2 \u00b7 Low passes, Normal speed and Assisted targeting; centred framed help.",
      "alt": "Low passes, Normal speed and Assisted targeting; centred framed help.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-31-r4 Choose lower pass height Pass Height offers Normal / Low; the current default is Low. Low reduces targeted pass lift for both teams, including keeper passes. Short passes retain their existing lift, and horizontal interception stays native. This option is independent of Pass Mode and Pass Speed. Each season saves its own choice and locks it after the first completed game. Standalone play has a separate preference. Lower lift can change landing and interception; The separate speed control was added in r5 above. Historical release evidence: Brodeur30\u2019s proposal, hooks, records and tests \u00b7 Exact-build evidence . 84/85 shared checks pass; the inherited AI geometry failure remains and the strict gate stays failed. 2026-11-03-r2 \u00b7 Low passes, Normal speed and Assisted targeting; centred framed help.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-defaults.png",
      "image_sha256": "04e01d870ae884ff309d167e57340228d8f284f9e9871985b611f459ed633567",
      "nearest_description": "Historical release evidence: Brodeur30\u2019s proposal, hooks, records and tests \u00b7 Exact-build evidence . 84/85 shared checks pass; the inherited AI geometry failure remains and the strict gate stays failed.",
      "original_id": "pass-defaults",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/pass-defaults.png",
      "after_caption": "Low passes, Normal speed and Assisted targeting; centred framed help.",
      "actual_visible": "Pass HeightLow, SpeedNormal and ModeAssisted selected in main menu; centred framed footer.",
      "visually_opened": true,
      "after_title": "Choose lower pass height",
      "after_section": "pass-height-r4",
      "after_visible": "Low passes, Normal speed and Assisted targeting; centred framed help.",
      "after_anchor": "picture-038"
    },
    {
      "occurrence": "index.html#image-40",
      "page": "index.html",
      "index": 40,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/mini.png",
      "title": "Mini: seven rivals, seven games",
      "section": "mini-seven-r12",
      "caption": "2026-11-03-r2 \u00b7 Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "alt": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-30-r12 Mini: seven rivals, seven games Mini now plays seven regular-season games , one against every other club in your division. The menu starts at 1/7 , all 32teams finish with7games, and there is no eighth return fixture. The season summary or qualification follows game7. Mini still uses one game per playoff pairing. Schedule, persistence, native tests and source \u00b7 Exact-build QA . 2026-11-03-r2 \u00b7 Mini season: seven divisional games; framed centred help. Help is centred in its native frame. The inherited AI geometry failure remains documented; the strict gate remains failed. Other requests and the queued controller colors .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/mini.png",
      "image_sha256": "dbcf2297356d7edeb651bed17e2abd7882cd2e23eeeaac4129aea5f0013cd73b",
      "nearest_description": "The season summary or qualification follows game7. Mini still uses one game per playoff pairing. Schedule, persistence, native tests and source \u00b7 Exact-build QA .",
      "original_id": "mini",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/mini.png",
      "after_caption": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "actual_visible": "New SeasonMini menu, Edmonton, Away1/7vsSEA, five-minute period and framed footer.",
      "visually_opened": true,
      "after_title": "Mini: seven rivals, seven games",
      "after_section": "mini-seven-r12",
      "after_visible": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "after_anchor": "picture-039"
    },
    {
      "occurrence": "index.html#image-41",
      "page": "index.html",
      "index": 41,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/icing-transfers.png",
      "title": "Icing starts On",
      "section": "icing-default-r7",
      "caption": "2026-11-03-r2 \u00b7 Icing On and Transfers directly below it; centred framed help.",
      "alt": "Icing On and Transfers directly below it; centred framed help.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-30-r7 Icing starts On Icing now defaults On , as clarified by jdc. Fresh starts, new Full/Light/Mini formats and season restarts use On. The toggle and saved-season locks remain. Edmonton, Auto line changes, Fighting Off, Hard, Auto Replays Off and Crit Shots Off keep their r6 defaults. The CPU keeper catch handoff and P1\u2013P4 current-skater pass requests are unchanged. 2026-11-03-r2 \u00b7 Icing On and Transfers directly below it; centred framed help. Only three default bytes change outside version/checksum. All 75 checks ran: 74 pass, with the inherited receiver-positioning failure still documented; the strict gate remains failed. Code and tests \u00b7 Current QA .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/icing-transfers.png",
      "image_sha256": "2564e8e278eb0ce6ddebc2a61a7b66f996b0ecd48084bf0e6ee90e0f16c82d7c",
      "nearest_description": "Edmonton, Auto line changes, Fighting Off, Hard, Auto Replays Off and Crit Shots Off keep their r6 defaults. The CPU keeper catch handoff and P1\u2013P4 current-skater pass requests are unchanged.",
      "original_id": "icing-transfers",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/icing-transfers.png",
      "after_caption": "Icing On and Transfers directly below it; centred framed help.",
      "actual_visible": "Main menu Hard, AutoReplaysOff, CritShotsOff, IcingOn and TransfersOff selected; framed footer.",
      "visually_opened": true,
      "after_title": "Icing starts On",
      "after_section": "icing-default-r7",
      "after_visible": "Icing On and Transfers directly below it; centred framed help.",
      "after_anchor": "picture-040"
    },
    {
      "occurrence": "index.html#image-42",
      "page": "index.html",
      "index": 42,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "title": "The keeper returns to CPU control on a catch",
      "section": "goalie-catch-r6",
      "caption": "2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "alt": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-30-r6 The keeper returns to CPU control on a catch A keeper selected before catching the puck now returns to the computer, with the native AI marker. Your control moves to a free skater. When P1, P2, P3 or P4 presses pass, the keeper sends the outlet to that controller's current skater. Fresh defaults: Auto line changes, Fighting Off, Hard, Auto Replays Off, Crit Shots Off and Icing Off, following jdc's latest menu screenshot. Edmonton remains preselected. Valid saved choices and season locks are retained. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. Historical release evidence: The reported catch is reproduced from recorded inputs. All 75 shared checks ran: 74 pass, with the same inherited receiver-positioning failure; the strict gate remains failed. Code, tests and compatibility \u00b7 Exact-build QA .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "image_sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab",
      "nearest_description": "Fresh defaults: Auto line changes, Fighting Off, Hard, Auto Replays Off, Crit Shots Off and Icing Off, following jdc's latest menu screenshot. Edmonton remains preselected. Valid saved choices and season locks are retained.",
      "original_id": "menu",
      "action": "Replaced unrelated main menu with actual own CPU keeper holding puck",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/keeper-catch.png",
      "after_caption": "Edmonton goalkeeper35 holds the puck with a pale-blue marker at2nd2:35; the NYR powerplay frame remains above the clock.",
      "actual_visible": "Main menu: New Full Season, Players One, Home Edmonton, Away84vsNYR, period5minutes. Centred D-Pad Change B/Start Play footer inside native frame.",
      "visually_opened": true,
      "after_title": "The keeper returns to CPU control on a catch",
      "after_section": "goalie-catch-r6",
      "after_visible": "Edmonton goalkeeper35 holds the puck with a pale-blue marker at2nd2:35; the NYR powerplay frame remains above the clock.",
      "after_anchor": "picture-041"
    },
    {
      "occurrence": "index.html#image-43",
      "page": "index.html",
      "index": 43,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/icing-transfers.png",
      "title": "Icing On/Off and Edmonton by default",
      "section": "icing-menu-r5",
      "caption": "2026-11-03-r2 \u00b7 Icing On and Transfers directly below it; centred framed help.",
      "alt": "Icing On and Transfers directly below it; centred framed help.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-30-r5 Icing On/Off and Edmonton by default Icing is the last row in the start menu, with a visible On / Off switch. It starts On , is saved separately for Full, Light and Mini, and locks with the other match rules after the first completed game. Edmonton is selected on fresh startup and in newly created or restarted seasons. You can choose another club before starting; ongoing saves keep their club. 2026-11-03-r2 \u00b7 Icing On and Transfers directly below it; centred framed help. Historical release evidence: 34 native menu/persistence cases and 56 native rule fixtures pass. All 72 shared checks ran: 71 pass, with the same inherited receiver-positioning failure; the strict gate remains failed. Forty current default-On no-B scenes match fresh r4 controls exactly. Code, tests and compatibility \u00b7 Current QA .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/icing-transfers.png",
      "image_sha256": "2564e8e278eb0ce6ddebc2a61a7b66f996b0ecd48084bf0e6ee90e0f16c82d7c",
      "nearest_description": "Edmonton is selected on fresh startup and in newly created or restarted seasons. You can choose another club before starting; ongoing saves keep their club.",
      "original_id": "icing-transfers",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/icing-transfers.png",
      "after_caption": "Icing On and Transfers directly below it; centred framed help.",
      "actual_visible": "Main menu Hard, AutoReplaysOff, CritShotsOff, IcingOn and TransfersOff selected; framed footer.",
      "visually_opened": true,
      "after_title": "Icing On/Off and Edmonton by default",
      "after_section": "icing-menu-r5",
      "after_visible": "Icing On and Transfers directly below it; centred framed help.",
      "after_anchor": "picture-042"
    },
    {
      "occurrence": "index.html#image-44",
      "page": "index.html",
      "index": 44,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/keeper.png",
      "title": "Keepers recover from the lateral-carry fake",
      "section": "goalie-lateral-r3",
      "caption": "2026-11-03-r2 \u00b7 Actual native goalie, puck and original red goal frame in the fresh four-pad match.",
      "alt": "Actual native goalie, puck and original red goal frame in the fresh four-pad match.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-30-r3 Keepers recover from the lateral-carry fake CPU keepers track the actual puck on the stick. When a carrier moves across an anticipating lateral save, the keeper can finish its stale hold sooner and reassess. Native movement, player ratings and shot physics remain. Manual keepers and ordinary loose-shot/catch saves keep their behavior. In 48 paired native approaches, goals fell from 10 to 4 and keeper catches rose from 15 to 22 . All 69 checks executed: 68 passed. The inherited receiver-hold positioning check still fails, so the strict release gate remains FAILED. This is the same documented AI limitation retained in the user-selected playtest. No new Hard-versus-Normal win-rate series is claimed. Code, tests and limits \u00b7 Exact-build QA . 2026-11-03-r2 \u00b7 Actual native goalie, puck and original red goal frame in the fresh four-pad match.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/keeper.png",
      "image_sha256": "f37b0ca9cb53477be8a2b2a477283061b5277690364a4645c84f805d31172033",
      "nearest_description": "In 48 paired native approaches, goals fell from 10 to 4 and keeper catches rose from 15 to 22 . All 69 checks executed: 68 passed. The inherited receiver-hold positioning check still fails, so the strict release gate remains FAILED. This is the same documented AI limitation retained in the user-selected playtest. No new Hard-versus-Normal win-rate series is claimed. Code, tests and limits \u00b7 Exact-build QA .",
      "original_id": "keeper",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/keeper.png",
      "after_caption": "Goalkeeper and red crease during native play at3rd3:42. This is rink context; recovery timing and defensive policy require native QA.",
      "actual_visible": "Crowded native play at upper red goal,3rd3:42 NYR1 EDM1, goalie and puck/skaters close to crease.",
      "visually_opened": true,
      "after_title": "Keepers recover from the lateral-carry fake",
      "after_section": "goalie-lateral-r3",
      "after_visible": "Goalkeeper and red crease during native play at3rd3:42. This is rink context; recovery timing and defensive policy require native QA.",
      "after_anchor": "picture-043"
    },
    {
      "occurrence": "index.html#image-45",
      "page": "index.html",
      "index": 45,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/stars.png",
      "title": "Crit lock, immediate B switching and the complete Stars panel",
      "section": "maintenance38-r2",
      "caption": "2026-11-03-r2 \u00b7 Stars of the Game after the actual fresh final-ROM match: New York3, Edmonton2.",
      "alt": "Stars of the Game after the actual fresh final-ROM match: New York3, Edmonton2.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-30-r2 Crit lock, immediate B switching and the complete Stars panel Crit Shots locks after the selected season completes its first match. Auto Replays and other choices keep their behavior. B switches immediately to the eligible teammate nearest the actual puck when your skater does not own it, including your goalie\u2019s possession. Own-skater passing and Y keep their behavior. Stars of the Game keeps its whole native window. Shot and crowd meters retire before it draws. The selected 38-win tactical base is retained. All 40 saved no-B AI situations match it frame-for-frame. All 67 checks ran: 66 passed; the inherited receiver-positioning limitation remains documented, so the strict gate is still failed. No new win-rate series is claimed. Changes, exact tests and rollback \u00b7 Current QA . 2026-11-03-r2 \u00b7 Stars of the Game after the actual fresh final-ROM match: New York3, Edmonton2.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/stars.png",
      "image_sha256": "27e389209e7fdb292fd92890611c2d2d1fdc0f385a3550b0ae4e6e7a47979bd6",
      "nearest_description": "The selected 38-win tactical base is retained. All 40 saved no-B AI situations match it frame-for-frame. All 67 checks ran: 66 passed; the inherited receiver-positioning limitation remains documented, so the strict gate is still failed. No new win-rate series is claimed. Changes, exact tests and rollback \u00b7 Current QA .",
      "original_id": "stars",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/stars.png",
      "after_caption": "Stars of the Game after the actual fresh final-ROM match: New York3, Edmonton2.",
      "actual_visible": "GameOver and Stars of Game panel: Dorofeyev, Zibanejad, Bouchard; lower-right NYR3 EDM2,OT0:00.",
      "visually_opened": true,
      "after_title": "Crit lock, immediate B switching and the complete Stars panel",
      "after_section": "maintenance38-r2",
      "after_visible": "Stars of the Game after the actual fresh final-ROM match: New York3, Edmonton2.",
      "after_anchor": "picture-044"
    },
    {
      "occurrence": "index.html#image-46",
      "page": "index.html",
      "index": 46,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-menu.png",
      "title": "Crit Shots now shows On / Off",
      "section": "crit-render-fix",
      "caption": "2026-11-03-r2 \u00b7 Crit Shots Off by default; independent option and centred framed controls.",
      "alt": "Crit Shots Off by default; independent option and centred framed controls.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-29-r3 Crit Shots now shows On / Off The Crit Shots value now appears on first selection and after a restart. Left/Right switches between On and Off , aligned with Auto Replays. Off still applies on Easy. All40 shared release checks pass, including a native rendering regression reproducing the missing initial value in r2. This update corrects the menu display; Hard AI work continues separately. 2026-11-03-r2 \u00b7 Crit Shots Off by default; independent option and centred framed controls. Correction and tests \u00b7 Exact-build QA",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-menu.png",
      "image_sha256": "b8a3ee1008a5a6415833676ab00365bea94b817fcf428d6170aa0b5c0de3c291",
      "nearest_description": "All40 shared release checks pass, including a native rendering regression reproducing the missing initial value in r2. This update corrects the menu display; Hard AI work continues separately.",
      "original_id": "crit-menu",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/crit-menu.png",
      "after_caption": "Crit Shots Off is selected and visibly rendered in the main menu; the help is centred inside its native border.",
      "actual_visible": "Main menu RulesOnExceptOffsides, LineChangesAuto, FightingOff, DifficultyHard, AutoReplaysOff selected. NO CritShots row is visible.",
      "visually_opened": true,
      "after_title": "Crit Shots now shows On / Off",
      "after_section": "crit-render-fix",
      "after_visible": "Crit Shots Off is selected and visibly rendered in the main menu; the help is centred inside its native border.",
      "after_anchor": "picture-045"
    },
    {
      "occurrence": "index.html#image-47",
      "page": "index.html",
      "index": 47,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/icing-transfers.png",
      "title": "Crit Shots: On / Off",
      "section": "crit-option",
      "caption": "2026-11-03-r2 \u00b7 Icing On and Transfers directly below it; centred framed help.",
      "alt": "Icing On and Transfers directly below it; centred framed help.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-29-r2 Crit Shots: On / Off Crit Shots has a saved On/Off choice and starts Off in a fresh release. Played seasons retain their chosen value and lock it after the first completed match. Auto Replays remains an independent, editable choice; manual replay is available separately. Historical release evidence: Off also applies on Easy: no critical power bonus, red puck, flames or special shot sound. Auto Replays keeps its own independent setting. All 39 shared release checks pass; the Hard strength investigation was still running then and is now archived. 2026-11-03-r2 \u00b7 Icing On and Transfers directly below it; centred framed help. Changes and tests \u00b7 Exact-build QA",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/icing-transfers.png",
      "image_sha256": "2564e8e278eb0ce6ddebc2a61a7b66f996b0ecd48084bf0e6ee90e0f16c82d7c",
      "nearest_description": "Historical release evidence: Off also applies on Easy: no critical power bonus, red puck, flames or special shot sound. Auto Replays keeps its own independent setting. All 39 shared release checks pass; the Hard strength investigation was still running then and is now archived.",
      "original_id": "icing-transfers",
      "action": "Replaced Icing-focused image with visibly selected Crit Shots row",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/crit-menu.png",
      "after_caption": "Crit Shots Off is selected and visibly rendered in the main menu; the help is centred inside its native border.",
      "actual_visible": "Main menu Hard, AutoReplaysOff, CritShotsOff, IcingOn and TransfersOff selected; framed footer.",
      "visually_opened": true,
      "after_title": "Crit Shots: On / Off",
      "after_section": "crit-option",
      "after_visible": "Crit Shots Off is selected and visibly rendered in the main menu; the help is centred inside its native border.",
      "after_anchor": "picture-046"
    },
    {
      "occurrence": "index.html#image-48",
      "page": "index.html",
      "index": 48,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/rink.png",
      "title": "Hard defenders meet the puck carrier earlier",
      "section": "ai-gap",
      "caption": "2026-11-03-r2 \u00b7 Current players, puck, original red goal and distinct controller stars.",
      "alt": "Current players, puck, original red goal and distinct controller stars.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-28-r8 Hard defenders meet the puck carrier earlier On Hard, the nearer available back closes the carrying lane from the goal side. His partner protects a dangerous slot receiver, or the weak post when no receiver is there. This builds on the existing Hard attack and weak-side winger work. In 16 paired defensive situations, the goal-side pressure gap fell in 15, averaging 33 rink units closer. One case had a 4-unit larger gap with better slot coverage. Eight Normal/Easy controls retained native target decisions. In 24 scripted rush/shot situations, observed attacker releases fell from 11 to 7 and attacking-team goals from 7 to 6. These small controlled samples do not establish a win rate or guarantee fewer goals in every match. 2026-11-03-r2 \u00b7 Current players, puck, original red goal and distinct controller stars. 2026-11-03-r2 \u00b7 Actual final-ROM Hard gameplay, puck and physical controller indicators. Player controls, ratings, skating speed, shot physics and goalkeeper reach keep their established rules. Implementation and test limits \u00b7 Exact-build test receipt .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/rink.png",
      "image_sha256": "bf56f3e30865ba5dbf231e73e68f86278993e887ba0bd5a6f40e654e88c8e869",
      "nearest_description": "In 16 paired defensive situations, the goal-side pressure gap fell in 15, averaging 33 rink units closer. One case had a 4-unit larger gap with better slot coverage. Eight Normal/Easy controls retained native target decisions. In 24 scripted rush/shot situations, observed attacker releases fell from 11 to 7 and attacking-team goals from 7 to 6. These small controlled samples do not establish a win rate or guarantee fewer goals in every match.",
      "original_id": "rink",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/rink.png",
      "after_caption": "Current players, puck, original red goal and distinct controller stars. Representative native play; this still does not measure the AI policy.",
      "actual_visible": "Native defensive-zone rink, players near red goal, red painted faceoff circles and controller markers,1st4:33 NYR0 EDM0.",
      "visually_opened": true,
      "after_title": "Hard defenders meet the puck carrier earlier",
      "after_section": "ai-gap",
      "after_visible": "Current players, puck, original red goal and distinct controller stars. Representative native play; this still does not measure the AI policy.",
      "after_anchor": "picture-049"
    },
    {
      "occurrence": "index.html#image-49",
      "page": "index.html",
      "index": 49,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/attack.png",
      "title": "Hard defenders meet the puck carrier earlier",
      "section": "ai-gap",
      "caption": "2026-11-03-r2 \u00b7 Actual final-ROM Hard gameplay, puck and physical controller indicators.",
      "alt": "Actual final-ROM Hard gameplay, puck and physical controller indicators.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-28-r8 Hard defenders meet the puck carrier earlier On Hard, the nearer available back closes the carrying lane from the goal side. His partner protects a dangerous slot receiver, or the weak post when no receiver is there. This builds on the existing Hard attack and weak-side winger work. In 16 paired defensive situations, the goal-side pressure gap fell in 15, averaging 33 rink units closer. One case had a 4-unit larger gap with better slot coverage. Eight Normal/Easy controls retained native target decisions. In 24 scripted rush/shot situations, observed attacker releases fell from 11 to 7 and attacking-team goals from 7 to 6. These small controlled samples do not establish a win rate or guarantee fewer goals in every match. 2026-11-03-r2 \u00b7 Current players, puck, original red goal and distinct controller stars. 2026-11-03-r2 \u00b7 Actual final-ROM Hard gameplay, puck and physical controller indicators. Player controls, ratings, skating speed, shot physics and goalkeeper reach keep their established rules. Implementation and test limits \u00b7 Exact-build test receipt .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/attack.png",
      "image_sha256": "97d3e3883330265184aa603ca130ba79f6079edcd6ad58f65b9f886e52f396fa",
      "nearest_description": "In 16 paired defensive situations, the goal-side pressure gap fell in 15, averaging 33 rink units closer. One case had a 4-unit larger gap with better slot coverage. Eight Normal/Easy controls retained native target decisions. In 24 scripted rush/shot situations, observed attacker releases fell from 11 to 7 and attacking-team goals from 7 to 6. These small controlled samples do not establish a win rate or guarantee fewer goals in every match.",
      "original_id": "attack",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/attack.png",
      "after_caption": "Actual final-ROM Hard gameplay, puck and physical controller indicators. Representative native play; this still does not measure the AI policy.",
      "actual_visible": "Offensive-zone native play NYRpowerplay0:46,2nd2:27 NYR1 EDM0, controlled skaters and red goal.",
      "visually_opened": true,
      "after_title": "Hard defenders meet the puck carrier earlier",
      "after_section": "ai-gap",
      "after_visible": "Actual final-ROM Hard gameplay, puck and physical controller indicators. Representative native play; this still does not measure the AI policy.",
      "after_anchor": "picture-050"
    },
    {
      "occurrence": "index.html#image-50",
      "page": "index.html",
      "index": 50,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "title": "Shot charge: white, orange, red",
      "section": "shot-charge",
      "caption": "2026-11-03-r2 \u00b7 The rendered full shot gauge is solid red; actual C input continues the authenticated charge state.",
      "alt": "The rendered full shot gauge is solid red; actual C input continues the authenticated charge state.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-28-r7 Shot charge: white, orange, red The charge meter starts white, turns orange as the slapshot builds, and stays solid red at full power. The fill remains visible at maximum charge. Release timing, shot power, critical chance and shot speed keep their established behavior. 2026-11-03-r2 \u00b7 The rendered full shot gauge is solid red; actual C input continues the authenticated charge state. Source and test evidence \u00b7 Exact-build test receipt .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "image_sha256": "4772b3f7ac9f4de821b28cd0a861109b40ffc6e83118eb228136e1e40e785e65",
      "nearest_description": "The charge meter starts white, turns orange as the slapshot builds, and stays solid red at full power. The fill remains visible at maximum charge. Release timing, shot power, critical chance and shot speed keep their established behavior.",
      "original_id": "shot-full",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "after_caption": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "actual_visible": "Solid red full-width charge bar under lower-left1st4:40 clock, puck/carrier near right of rink.",
      "visually_opened": true,
      "after_title": "Shot charge: white, orange, red",
      "after_section": "shot-charge",
      "after_visible": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "after_anchor": "picture-051"
    },
    {
      "occurrence": "index.html#image-51",
      "page": "index.html",
      "index": 51,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/icing-transfers.png",
      "title": "Keep your team, choose automatic replays",
      "section": "intermission-fixes",
      "caption": "2026-11-03-r2 \u00b7 Icing On and Transfers directly below it; centred framed help.",
      "alt": "Icing On and Transfers directly below it; centred framed help.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-28-r6 Keep your team, choose automatic replays Continue Season keeps your controller on your chosen club in away games. Reloading the locked settings could previously assign a solo player to the home opponent. Full, Light and Mini now preserve the correct side at match start. Auto Replays: On / Off is the row above Crit Shots in the main start menu. The choice is saved across restarts and shared between leagues and native modes. It can be changed during a season; match settings remain locked. Manual Instant Replay remains available when automatic replays are Off. Leaving Scoring Leaders before the third period now returns to a visible menu with one Start press. Automatic replay no longer leaves a stale redraw flag. Crowd meters also stop erasing the right edge of the EA Hockey Night score ticker during penalty scenes. 2026-11-03-r2 \u00b7 Icing On and Transfers directly below it; centred framed help. Historical release evidence: All 28 shared release checks pass for this build. New coverage includes 32 native match starts across two cold boots per scenario, pre-third statistics exits, a pixel comparison of the ticker, saved replay preferences and a real goal with automatic replays Off followed by manual Instant Replay. Fresh progress on each new release; controller mappings retained. Causes, source addresses and test details \u00b7 Exact-build test receipt .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/icing-transfers.png",
      "image_sha256": "2564e8e278eb0ce6ddebc2a61a7b66f996b0ecd48084bf0e6ee90e0f16c82d7c",
      "nearest_description": "Leaving Scoring Leaders before the third period now returns to a visible menu with one Start press. Automatic replay no longer leaves a stale redraw flag. Crowd meters also stop erasing the right edge of the EA Hockey Night score ticker during penalty scenes.",
      "original_id": "icing-transfers",
      "action": "Replaced Icing-focused image with selected Auto Replays row",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/auto-replays-menu.png",
      "after_caption": "Auto Replays Off selected in the main menu, independent of Crit Shots; centred controls inside the native footer frame.",
      "actual_visible": "Main menu Hard, AutoReplaysOff, CritShotsOff, IcingOn and TransfersOff selected; framed footer.",
      "visually_opened": true,
      "after_title": "Keep your team, choose automatic replays",
      "after_section": "intermission-fixes",
      "after_visible": "Auto Replays Off selected in the main menu, independent of Crit Shots; centred controls inside the native footer frame.",
      "after_anchor": "picture-052"
    },
    {
      "occurrence": "index.html#image-52",
      "page": "index.html",
      "index": 52,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/attack.png",
      "title": "Hard: attacking support and better pass choices",
      "section": "ai-attack",
      "caption": "2026-11-03-r2 \u00b7 Actual final-ROM Hard gameplay, puck and physical controller indicators.",
      "alt": "Actual final-ROM Hard gameplay, puck and physical controller indicators.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-28-r5 Hard: attacking support and better pass choices AI forwards move with the puck: a far-side option toward the slot, a near-side return outlet and inside support from the center. A marked preferred spot makes the forward drop into another lane. CPU pass decisions evaluate free teammates in better positions. A poor-angle shot can wait when a better receiver is available. Hard now has the same dynamic crowd momentum and rating effect as Normal. The permanent human \u221210% / CPU +10% handicap is removed. Hard keeps the new attack decisions and r4 defensive coverage. Both teams' AI teammates benefit. Easy keeps its existing bonuses; Normal and Easy retain native attacking decisions. Historical release evidence: In eight paired staged native pass situations, passes toward the free receiver rose from 3/8 to 8/8 , and actual receptions from 2/8 to 4/8 . Eight additional support comparisons show the forward escaping a designated marker more often. These are controlled small samples, not match win-rate or guaranteed scoring claims. Native pass checks, reception and shot physics remain in use. 2026-11-03-r2 \u00b7 Actual final-ROM Hard gameplay, puck and physical controller indicators. 2026-11-03-r2 \u00b7 Blue P1, red P2, neon-green P3 and yellow P4 in the actual four-pad match. Credits stay until Start. The automatic timeout is gone; A/B/C and directions do not dismiss the card. Historical release evidence: All 24 shared release checks pass, including 76 native attack cases, 16 paired attack scenarios, 12 crowd profiles, Start-only credits and a complete Hard CPU match. Implementation, backup and test limits \u00b7 Exact-build test receipt .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/attack.png",
      "image_sha256": "97d3e3883330265184aa603ca130ba79f6079edcd6ad58f65b9f886e52f396fa",
      "nearest_description": "Historical release evidence: In eight paired staged native pass situations, passes toward the free receiver rose from 3/8 to 8/8 , and actual receptions from 2/8 to 4/8 . Eight additional support comparisons show the forward escaping a designated marker more often. These are controlled small samples, not match win-rate or guaranteed scoring claims. Native pass checks, reception and shot physics remain in use.",
      "original_id": "attack",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/attack.png",
      "after_caption": "Actual final-ROM Hard gameplay, puck and physical controller indicators. Representative native play; this still does not measure the AI policy.",
      "actual_visible": "Offensive-zone native play NYRpowerplay0:46,2nd2:27 NYR1 EDM0, controlled skaters and red goal.",
      "visually_opened": true,
      "after_title": "Hard: attacking support and better pass choices",
      "after_section": "ai-attack",
      "after_visible": "Actual final-ROM Hard gameplay, puck and physical controller indicators. Representative native play; this still does not measure the AI policy.",
      "after_anchor": "picture-053"
    },
    {
      "occurrence": "index.html#image-53",
      "page": "index.html",
      "index": 53,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/four-stars.png",
      "title": "Hard: attacking support and better pass choices",
      "section": "ai-attack",
      "caption": "2026-11-03-r2 \u00b7 Blue P1, red P2, neon-green P3 and yellow P4 in the actual four-pad match.",
      "alt": "Blue P1, red P2, neon-green P3 and yellow P4 in the actual four-pad match.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-28-r5 Hard: attacking support and better pass choices AI forwards move with the puck: a far-side option toward the slot, a near-side return outlet and inside support from the center. A marked preferred spot makes the forward drop into another lane. CPU pass decisions evaluate free teammates in better positions. A poor-angle shot can wait when a better receiver is available. Hard now has the same dynamic crowd momentum and rating effect as Normal. The permanent human \u221210% / CPU +10% handicap is removed. Hard keeps the new attack decisions and r4 defensive coverage. Both teams' AI teammates benefit. Easy keeps its existing bonuses; Normal and Easy retain native attacking decisions. Historical release evidence: In eight paired staged native pass situations, passes toward the free receiver rose from 3/8 to 8/8 , and actual receptions from 2/8 to 4/8 . Eight additional support comparisons show the forward escaping a designated marker more often. These are controlled small samples, not match win-rate or guaranteed scoring claims. Native pass checks, reception and shot physics remain in use. 2026-11-03-r2 \u00b7 Actual final-ROM Hard gameplay, puck and physical controller indicators. 2026-11-03-r2 \u00b7 Blue P1, red P2, neon-green P3 and yellow P4 in the actual four-pad match. Credits stay until Start. The automatic timeout is gone; A/B/C and directions do not dismiss the card. Historical release evidence: All 24 shared release checks pass, including 76 native attack cases, 16 paired attack scenarios, 12 crowd profiles, Start-only credits and a complete Hard CPU match. Implementation, backup and test limits \u00b7 Exact-build test receipt .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/four-stars.png",
      "image_sha256": "52c376048c8cb61306554e2b97e25cb13cfe042dbef3e68cbdb55f55ffd0ac5a",
      "nearest_description": "Historical release evidence: In eight paired staged native pass situations, passes toward the free receiver rose from 3/8 to 8/8 , and actual receptions from 2/8 to 4/8 . Eight additional support comparisons show the forward escaping a designated marker more often. These are controlled small samples, not match win-rate or guaranteed scoring claims. Native pass checks, reception and shot physics remain in use.",
      "original_id": "four-stars",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/faceoff.png",
      "after_caption": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation. Representative native play; this still does not measure the AI policy.",
      "actual_visible": "Four-pad rink play, clustered colored control stars, EDM powerplay0:42,3rd4:33,NYR1 EDM1; red offscreen down arrow at bottom.",
      "visually_opened": true,
      "after_title": "Hard: attacking support and better pass choices",
      "after_section": "ai-attack",
      "after_visible": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation. Representative native play; this still does not measure the AI policy.",
      "after_anchor": "picture-054"
    },
    {
      "occurrence": "index.html#image-54",
      "page": "index.html",
      "index": 54,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/keeper.png",
      "title": "Hard AI covers the far-side threat",
      "section": "ai-defence",
      "caption": "2026-11-03-r2 \u00b7 Actual native goalie, puck and original red goal frame in the fresh four-pad match.",
      "alt": "Actual native goalie, puck and original red goal frame in the fresh four-pad match.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-28-r4 Hard AI covers the far-side threat On Hard , when the opponent carries deep along the boards, the AI winger on the other side now drops into the low slot. He chooses a dangerous receiver, anticipates a short movement and covers from slightly inside and goal-side. Without a receiver he protects the weak post. This applies to both teams and both ends, including your AI teammates. Easy and Normal keep native positioning. Human controls, player ratings, skating speed, shot chances and goalie reach keep their established behavior. Native steering and checking still run. In 11 paired native Hard skating situations , the winger moved closer to the receiver in every comparison. Average coverage distance on Hard fell by 27 rink units over the measured frames. Eight Normal/Easy controls retain the baseline positioning. This measures positioning, not a guaranteed scoring or win-rate change. 44 target/guard cases and the full 20-check shared release gate also pass. Tests use scripted native input. 2026-11-03-r2 \u00b7 Actual native goalie, puck and original red goal frame in the fresh four-pad match. 2026-11-03-r2 \u00b7 Current players, puck, original red goal and distinct controller stars. Implementation, exact comparison limits, rollback backup and research credits: AI coverage notes . Current test receipt: QA_STATUS.json .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/keeper.png",
      "image_sha256": "f37b0ca9cb53477be8a2b2a477283061b5277690364a4645c84f805d31172033",
      "nearest_description": "In 11 paired native Hard skating situations , the winger moved closer to the receiver in every comparison. Average coverage distance on Hard fell by 27 rink units over the measured frames. Eight Normal/Easy controls retain the baseline positioning. This measures positioning, not a guaranteed scoring or win-rate change. 44 target/guard cases and the full 20-check shared release gate also pass. Tests use scripted native input.",
      "original_id": "keeper",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/keeper.png",
      "after_caption": "Goalkeeper and red crease during native play at3rd3:42. This is rink context; recovery timing and defensive policy require native QA. Representative native play; this still does not measure the AI policy.",
      "actual_visible": "Crowded native play at upper red goal,3rd3:42 NYR1 EDM1, goalie and puck/skaters close to crease.",
      "visually_opened": true,
      "after_title": "Hard AI covers the far-side threat",
      "after_section": "ai-defence",
      "after_visible": "Goalkeeper and red crease during native play at3rd3:42. This is rink context; recovery timing and defensive policy require native QA. Representative native play; this still does not measure the AI policy.",
      "after_anchor": "picture-055"
    },
    {
      "occurrence": "index.html#image-55",
      "page": "index.html",
      "index": 55,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/rink.png",
      "title": "Hard AI covers the far-side threat",
      "section": "ai-defence",
      "caption": "2026-11-03-r2 \u00b7 Current players, puck, original red goal and distinct controller stars.",
      "alt": "Current players, puck, original red goal and distinct controller stars.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-28-r4 Hard AI covers the far-side threat On Hard , when the opponent carries deep along the boards, the AI winger on the other side now drops into the low slot. He chooses a dangerous receiver, anticipates a short movement and covers from slightly inside and goal-side. Without a receiver he protects the weak post. This applies to both teams and both ends, including your AI teammates. Easy and Normal keep native positioning. Human controls, player ratings, skating speed, shot chances and goalie reach keep their established behavior. Native steering and checking still run. In 11 paired native Hard skating situations , the winger moved closer to the receiver in every comparison. Average coverage distance on Hard fell by 27 rink units over the measured frames. Eight Normal/Easy controls retain the baseline positioning. This measures positioning, not a guaranteed scoring or win-rate change. 44 target/guard cases and the full 20-check shared release gate also pass. Tests use scripted native input. 2026-11-03-r2 \u00b7 Actual native goalie, puck and original red goal frame in the fresh four-pad match. 2026-11-03-r2 \u00b7 Current players, puck, original red goal and distinct controller stars. Implementation, exact comparison limits, rollback backup and research credits: AI coverage notes . Current test receipt: QA_STATUS.json .",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/rink.png",
      "image_sha256": "bf56f3e30865ba5dbf231e73e68f86278993e887ba0bd5a6f40e654e88c8e869",
      "nearest_description": "In 11 paired native Hard skating situations , the winger moved closer to the receiver in every comparison. Average coverage distance on Hard fell by 27 rink units over the measured frames. Eight Normal/Easy controls retain the baseline positioning. This measures positioning, not a guaranteed scoring or win-rate change. 44 target/guard cases and the full 20-check shared release gate also pass. Tests use scripted native input.",
      "original_id": "rink",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/rink.png",
      "after_caption": "Current players, puck, original red goal and distinct controller stars. Representative native play; this still does not measure the AI policy.",
      "actual_visible": "Native defensive-zone rink, players near red goal, red painted faceoff circles and controller markers,1st4:33 NYR0 EDM0.",
      "visually_opened": true,
      "after_title": "Hard AI covers the far-side threat",
      "after_section": "ai-defence",
      "after_visible": "Current players, puck, original red goal and distinct controller stars. Representative native play; this still does not measure the AI policy.",
      "after_anchor": "picture-056"
    },
    {
      "occurrence": "index.html#image-56",
      "page": "index.html",
      "index": 56,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-flight.png",
      "title": "Measured",
      "section": "blueline",
      "caption": "2026-11-03-r2 \u00b7 The current critical puck during actual native flight.",
      "alt": "The current critical puck during actual native flight.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-20 3 Shots from the blue line can score A set goalie saves everything below height 15 within 12\u201315 pixels, and the crossbar is at height 13. So a\n          goalie in position was practically unbeatable from distance: 0.3 % of blue-line shots went in. The shot routine stores the distance to the net. From distance 160 or more (the green zone, starting about 20 pixels inside the blue line) the game's own\n            random generator decides, once per shot, whether the goalie misses it: 15 % chance. While that is active the goalie can't reach or pick up the puck. It still has to go under the bar and between the posts. Long shots get 1/8 less lift so fewer of them sail over the bar. Applies to both teams, CPU included. You don't have to stand exactly on the line, anywhere in the green works. The zone started at distance 140 at first and was moved out to 160 to make it a bit harder. Measured 288 bot shots from 12 blue-line spots Goals Original 1 (0.3 %) Only shrinking the goalie's reach 2\u20135 25 % miss chance 12 (4.2 %) 40 % miss chance 21 Historical 15 % estimate (before crit/Easy) \u2248 2.8 % The table above records the original pre-crit experiment, not current Easy scoring odds. The r32 audit verifies the current 15% roll separately. In that older experiment, about 17 % of shots where the goalie misses actually go in, so 15 % \u00d7 17 % + 0.3 % \u2248 2.8 %, close to the\n          real NHL's ~3 % from the point. With 25 %, ten CPU games with Edmonton gave 8.7 % from the green zone versus 7.8 % from\n          closer in, which was too generous. Better shooters score more: with the same 288 shots and the 25 % chance, McDavid's ratings\n          scored 7.3 %, Draisaitl's",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-flight.png",
      "image_sha256": "9ae9e10d886ebc7a714c96363ffe0e4eaa1009bc2b64caaa77e263dcb60a2cf4",
      "nearest_description": "The table above records the original pre-crit experiment, not current Easy scoring odds. The r32 audit verifies the current 15% roll separately. In that older experiment, about 17 % of shots where the goalie misses actually go in, so 15 % \u00d7 17 % + 0.3 % \u2248 2.8 %, close to the\n          real NHL's ~3 % from the point. With 25 %, ten CPU games with Edmonton gave 8.7 % from the green zone versus 7.8 % from\n          closer in, which was too generous. Better shooters score more: with the same 288 shots and the 25 % chance, McDavid's ratings\n          scored 7.3 %, Draisaitl's 5.9 %, an average player's 4.2 %.",
      "original_id": "crit-flight",
      "action": "Moved critical-shot effect out of blue-line statistical measurement into dedicated critical-shot heading",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/critical-flight.png",
      "after_caption": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "actual_visible": "Blue critical puck and orange effect disc in flight toward upper net,2nd3:51 NYR1 EDM0, coloured offscreen arrows.",
      "visually_opened": true,
      "after_title": "Critical-shot puck and trail",
      "after_section": "crit-option",
      "after_visible": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "after_anchor": "picture-047"
    },
    {
      "occurrence": "index.html#image-57",
      "page": "index.html",
      "index": 57,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "title": "Measured",
      "section": "blueline",
      "caption": "2026-11-03-r2 \u00b7 The actual current critical puck and separated flame trail.",
      "alt": "The actual current critical puck and separated flame trail.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-20 3 Shots from the blue line can score A set goalie saves everything below height 15 within 12\u201315 pixels, and the crossbar is at height 13. So a\n          goalie in position was practically unbeatable from distance: 0.3 % of blue-line shots went in. The shot routine stores the distance to the net. From distance 160 or more (the green zone, starting about 20 pixels inside the blue line) the game's own\n            random generator decides, once per shot, whether the goalie misses it: 15 % chance. While that is active the goalie can't reach or pick up the puck. It still has to go under the bar and between the posts. Long shots get 1/8 less lift so fewer of them sail over the bar. Applies to both teams, CPU included. You don't have to stand exactly on the line, anywhere in the green works. The zone started at distance 140 at first and was moved out to 160 to make it a bit harder. Measured 288 bot shots from 12 blue-line spots Goals Original 1 (0.3 %) Only shrinking the goalie's reach 2\u20135 25 % miss chance 12 (4.2 %) 40 % miss chance 21 Historical 15 % estimate (before crit/Easy) \u2248 2.8 % The table above records the original pre-crit experiment, not current Easy scoring odds. The r32 audit verifies the current 15% roll separately. In that older experiment, about 17 % of shots where the goalie misses actually go in, so 15 % \u00d7 17 % + 0.3 % \u2248 2.8 %, close to the\n          real NHL's ~3 % from the point. With 25 %, ten CPU games with Edmonton gave 8.7 % from the green zone versus 7.8 % from\n          closer in, which was too generous. Better shooters score more: with the same 288 shots and the 25 % chance, McDavid's ratings\n          scored 7.3 %, Draisaitl's",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "image_sha256": "01daf8426b9bacc78f4987effb3835f04733dc09780548c5d8882dd1c82a7081",
      "nearest_description": "The table above records the original pre-crit experiment, not current Easy scoring odds. The r32 audit verifies the current 15% roll separately. In that older experiment, about 17 % of shots where the goalie misses actually go in, so 15 % \u00d7 17 % + 0.3 % \u2248 2.8 %, close to the\n          real NHL's ~3 % from the point. With 25 %, ten CPU games with Edmonton gave 8.7 % from the green zone versus 7.8 % from\n          closer in, which was too generous. Better shooters score more: with the same 288 shots and the 25 % chance, McDavid's ratings\n          scored 7.3 %, Draisaitl's 5.9 %, an average player's 4.2 %.",
      "original_id": "crit-trail",
      "action": "Moved critical-shot effect out of blue-line statistical measurement into dedicated critical-shot heading",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/critical-trail.png",
      "after_caption": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "actual_visible": "Blue critical puck with separated orange circular trail toward upper goal,2nd3:50, colored offscreen arrows.",
      "visually_opened": true,
      "after_title": "Critical-shot puck and trail",
      "after_section": "crit-option",
      "after_visible": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "after_anchor": "picture-048"
    },
    {
      "occurrence": "index.html#image-58",
      "page": "index.html",
      "index": 58,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/shootout.png",
      "title": "Shootouts",
      "section": "blueline",
      "caption": "2026-11-03-r2 \u00b7 Native shootout starts without further input. This screenshot uses a declared clock-only OT expiry fixture.",
      "alt": "Native shootout starts without further input. This screenshot uses a declared clock-only OT expiry fixture.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-20 3 Shots from the blue line can score A set goalie saves everything below height 15 within 12\u201315 pixels, and the crossbar is at height 13. So a\n          goalie in position was practically unbeatable from distance: 0.3 % of blue-line shots went in. The shot routine stores the distance to the net. From distance 160 or more (the green zone, starting about 20 pixels inside the blue line) the game's own\n            random generator decides, once per shot, whether the goalie misses it: 15 % chance. While that is active the goalie can't reach or pick up the puck. It still has to go under the bar and between the posts. Long shots get 1/8 less lift so fewer of them sail over the bar. Applies to both teams, CPU included. You don't have to stand exactly on the line, anywhere in the green works. The zone started at distance 140 at first and was moved out to 160 to make it a bit harder. Measured 288 bot shots from 12 blue-line spots Goals Original 1 (0.3 %) Only shrinking the goalie's reach 2\u20135 25 % miss chance 12 (4.2 %) 40 % miss chance 21 Historical 15 % estimate (before crit/Easy) \u2248 2.8 % The table above records the original pre-crit experiment, not current Easy scoring odds. The r32 audit verifies the current 15% roll separately. In that older experiment, about 17 % of shots where the goalie misses actually go in, so 15 % \u00d7 17 % + 0.3 % \u2248 2.8 %, close to the\n          real NHL's ~3 % from the point. With 25 %, ten CPU games with Edmonton gave 8.7 % from the green zone versus 7.8 % from\n          closer in, which was too generous. Better shooters score more: with the same 288 shots and the 25 % chance, McDavid's ratings\n          scored 7.3 %, Draisaitl's",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shootout.png",
      "image_sha256": "12138496eb50d8c7bc28ee253756374e92089dbc2a63933ccc257464bfa5e450",
      "nearest_description": "Shootouts (Play Mode \u2192 Shootout) are decided close to the net, so the change does not touch them. 810 bot attempts per ROM:\n          original 20 goals, patched 19, none from long range in either. Almost every goal came from the same move: skate straight,\n          cut left briefly, shoot about 38 pixels from the goal line. CPU vs CPU barely ever scores (0 in 85 attempts on the original).",
      "original_id": "shootout",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/shootout.png",
      "after_caption": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "actual_visible": "Single shooter at centre ice, native attempt countdown0:20,NYR0 EDM0.",
      "visually_opened": true,
      "after_title": "Shootouts",
      "after_section": "blueline",
      "after_visible": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "after_anchor": "picture-057"
    },
    {
      "occurrence": "index.html#image-59",
      "page": "index.html",
      "index": 59,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/attack.png",
      "title": "4 Off-screen arrow points the right way",
      "section": "arrow",
      "caption": "2026-11-03-r2 \u00b7 Actual final-ROM Hard gameplay, puck and physical controller indicators.",
      "alt": "Actual final-ROM Hard gameplay, puck and physical controller indicators.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-21 4 Off-screen arrow points the right way When the goalie is off screen an arrow at the top edge shows where he is. In shootouts with a manual goalie it said the goalie was\n      to the left, but when the shooter got there he was in the middle of the net. The arrow code comes from the original NHL 94,\n      whose screen was 256 pixels wide (centre 128). This hack runs at 320 pixels (centre 160), so every edge arrow was drawn 32 pixels\n      too far left. One constant changed ( $16590 : +$100 \u2192 +$120 ). Measured: the arrow for a goalie at x = 0\n      now sits at screen x 159 instead of 127. 2026-11-03-r2 \u00b7 Actual final-ROM Hard gameplay, puck and physical controller indicators. 2026-11-03-r2 \u00b7 Blue P1, red P2, neon-green P3 and yellow P4 in the actual four-pad match.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/attack.png",
      "image_sha256": "97d3e3883330265184aa603ca130ba79f6079edcd6ad58f65b9f886e52f396fa",
      "nearest_description": "When the goalie is off screen an arrow at the top edge shows where he is. In shootouts with a manual goalie it said the goalie was\n      to the left, but when the shooter got there he was in the middle of the net. The arrow code comes from the original NHL 94,\n      whose screen was 256 pixels wide (centre 128). This hack runs at 320 pixels (centre 160), so every edge arrow was drawn 32 pixels\n      too far left. One constant changed ( $16590 : +$100 \u2192 +$120 ). Measured: the arrow for a goalie at x = 0\n      now sits at screen x 159 instead of 127.",
      "original_id": "attack",
      "action": "Replaced generic attack/player-star photos with real Y-selected offscreen goalkeeper arrow",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/offscreen-goalie-arrow.png",
      "after_caption": "Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "actual_visible": "Offensive-zone native play NYRpowerplay0:46,2nd2:27 NYR1 EDM0, controlled skaters and red goal.",
      "visually_opened": true,
      "after_title": "4 Off-screen arrow points the right way",
      "after_section": "arrow",
      "after_visible": "Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "after_anchor": "picture-058"
    },
    {
      "occurrence": "index.html#image-60",
      "page": "index.html",
      "index": 60,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/four-stars.png",
      "title": "4 Off-screen arrow points the right way",
      "section": "arrow",
      "caption": "2026-11-03-r2 \u00b7 Blue P1, red P2, neon-green P3 and yellow P4 in the actual four-pad match.",
      "alt": "Blue P1, red P2, neon-green P3 and yellow P4 in the actual four-pad match.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-21 4 Off-screen arrow points the right way When the goalie is off screen an arrow at the top edge shows where he is. In shootouts with a manual goalie it said the goalie was\n      to the left, but when the shooter got there he was in the middle of the net. The arrow code comes from the original NHL 94,\n      whose screen was 256 pixels wide (centre 128). This hack runs at 320 pixels (centre 160), so every edge arrow was drawn 32 pixels\n      too far left. One constant changed ( $16590 : +$100 \u2192 +$120 ). Measured: the arrow for a goalie at x = 0\n      now sits at screen x 159 instead of 127. 2026-11-03-r2 \u00b7 Actual final-ROM Hard gameplay, puck and physical controller indicators. 2026-11-03-r2 \u00b7 Blue P1, red P2, neon-green P3 and yellow P4 in the actual four-pad match.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/four-stars.png",
      "image_sha256": "52c376048c8cb61306554e2b97e25cb13cfe042dbef3e68cbdb55f55ffd0ac5a",
      "nearest_description": "When the goalie is off screen an arrow at the top edge shows where he is. In shootouts with a manual goalie it said the goalie was\n      to the left, but when the shooter got there he was in the middle of the net. The arrow code comes from the original NHL 94,\n      whose screen was 256 pixels wide (centre 128). This hack runs at 320 pixels (centre 160), so every edge arrow was drawn 32 pixels\n      too far left. One constant changed ( $16590 : +$100 \u2192 +$120 ). Measured: the arrow for a goalie at x = 0\n      now sits at screen x 159 instead of 127.",
      "original_id": "four-stars",
      "action": "Replaced generic attack/player-star photos with real Y-selected offscreen goalkeeper arrow",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/offscreen-goalie-arrow.png",
      "after_caption": "Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "actual_visible": "Four-pad rink play, clustered colored control stars, EDM powerplay0:42,3rd4:33,NYR1 EDM1; red offscreen down arrow at bottom.",
      "visually_opened": true,
      "after_title": "4 Off-screen arrow points the right way",
      "after_section": "arrow",
      "after_visible": "Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "after_anchor": "picture-059"
    },
    {
      "occurrence": "index.html#image-61",
      "page": "index.html",
      "index": 61,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/difficulty.png",
      "title": "The fix",
      "section": "fighting",
      "caption": "2026-11-03-r2 \u00b7 Hard and native match settings, with framed centred help.",
      "alt": "Hard and native match settings, with framed centred help.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-21 5 Fighting: just Off and On, and it sticks How fights work in this hack Fights are added by the hack (the original NHL 94 has none). A fight can only start from a body check, and then the game checks: Fighting is on and Penalties is not Off. Neither player is a goalie and play is live. Both players' fighting rating beats a threshold. The threshold drops as the game gets heated and when the players already have penalty minutes. Finally a 25 % random chance. Most players have a fighting rating of 0\u20136 and rarely pass the threshold, enforcers around 14 do. So fights are rare by design. The bug The setting was stored in RAM $FFDF00 , which lies inside an event log the hack writes during the game (14 bytes per entry from $FFDEF6 ). After the first entry the setting held player data such as $0D12 , so the menu choice stopped\n          meaning anything mid-game. Value 0, which disables fights in the code, was labelled \"Also On\" in the menu. The fix The setting moved to free RAM $FFF004 (6 code references and 3 menu references changed). The menu now has two choices, Off and On .\n          When Penalties is Off, Fighting shows N/A (fights need penalties on anyway). Tested: Off stays 0 and On stays 1 for whole CPU games. With everyone's fighting rating forced to max, a real fight happened (Beauvillier vs Toews). 2026-11-03-r2 \u00b7 Hard and native match settings, with framed centred help. 2026-11-03-r2 \u00b7 Hard and native match settings, with framed centred help.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/difficulty.png",
      "image_sha256": "7349d760e24aef376ac146a081aff6ca6c50bc685ec466b31247993fbbace43e",
      "nearest_description": "The setting moved to free RAM $FFF004 (6 code references and 3 menu references changed). The menu now has two choices, Off and On .\n          When Penalties is Off, Fighting shows N/A (fights need penalties on anyway). Tested: Off stays 0 and On stays 1 for whole CPU games. With everyone's fighting rating forced to max, a real fight happened (Beauvillier vs Toews).",
      "original_id": "difficulty",
      "action": "Replaced Hard-selected image with selected Fighting Off row",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/fighting-menu.png",
      "after_caption": "Fighting Off selected in the main menu; Auto line changes and centred framed controls remain visible.",
      "actual_visible": "DifficultyHard selected; FightingOff, LineChangesAuto, RulesOnExceptOffsides and GoalieCtrlManual visible.",
      "visually_opened": true,
      "after_title": "The fix",
      "after_section": "fighting",
      "after_visible": "Fighting Off selected in the main menu; Auto line changes and centred framed controls remain visible.",
      "after_anchor": "picture-060"
    },
    {
      "occurrence": "index.html#image-62",
      "page": "index.html",
      "index": 62,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/difficulty.png",
      "title": "The fix",
      "section": "fighting",
      "caption": "2026-11-03-r2 \u00b7 Hard and native match settings, with framed centred help.",
      "alt": "Hard and native match settings, with framed centred help.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-21 5 Fighting: just Off and On, and it sticks How fights work in this hack Fights are added by the hack (the original NHL 94 has none). A fight can only start from a body check, and then the game checks: Fighting is on and Penalties is not Off. Neither player is a goalie and play is live. Both players' fighting rating beats a threshold. The threshold drops as the game gets heated and when the players already have penalty minutes. Finally a 25 % random chance. Most players have a fighting rating of 0\u20136 and rarely pass the threshold, enforcers around 14 do. So fights are rare by design. The bug The setting was stored in RAM $FFDF00 , which lies inside an event log the hack writes during the game (14 bytes per entry from $FFDEF6 ). After the first entry the setting held player data such as $0D12 , so the menu choice stopped\n          meaning anything mid-game. Value 0, which disables fights in the code, was labelled \"Also On\" in the menu. The fix The setting moved to free RAM $FFF004 (6 code references and 3 menu references changed). The menu now has two choices, Off and On .\n          When Penalties is Off, Fighting shows N/A (fights need penalties on anyway). Tested: Off stays 0 and On stays 1 for whole CPU games. With everyone's fighting rating forced to max, a real fight happened (Beauvillier vs Toews). 2026-11-03-r2 \u00b7 Hard and native match settings, with framed centred help. 2026-11-03-r2 \u00b7 Hard and native match settings, with framed centred help.",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/difficulty.png",
      "image_sha256": "7349d760e24aef376ac146a081aff6ca6c50bc685ec466b31247993fbbace43e",
      "nearest_description": "The setting moved to free RAM $FFF004 (6 code references and 3 menu references changed). The menu now has two choices, Off and On .\n          When Penalties is Off, Fighting shows N/A (fights need penalties on anyway). Tested: Off stays 0 and On stays 1 for whole CPU games. With everyone's fighting rating forced to max, a real fight happened (Beauvillier vs Toews).",
      "original_id": "difficulty",
      "action": "Replaced Hard-selected image with selected Fighting Off row",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/fighting-menu.png",
      "after_caption": "Fighting Off selected in the main menu; Auto line changes and centred framed controls remain visible.",
      "actual_visible": "DifficultyHard selected; FightingOff, LineChangesAuto, RulesOnExceptOffsides and GoalieCtrlManual visible.",
      "visually_opened": true,
      "after_title": "The fix",
      "after_section": "fighting",
      "after_visible": "Fighting Off selected in the main menu; Auto line changes and centred framed controls remain visible.",
      "after_anchor": "picture-061"
    },
    {
      "occurrence": "index.html#image-63",
      "page": "index.html",
      "index": 63,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/drai-line.png",
      "title": "6 All 32 rosters, October 21, 2026",
      "section": "roster",
      "caption": "2026-11-03-r2 \u00b7 Draisaitl placed at Scoring Line1 RW, with McDavid retained at centre.",
      "alt": "Draisaitl placed at Scoring Line1 RW, with McDavid retained at centre.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. 2026-10-21 6 All 32 rosters, October 21, 2026 Every team was rebuilt from the NHL's official API (rosters and prospects) and the current DailyFaceoff line combinations.\n      Each team keeps the hack's 26 slots and its number of goalies, forwards and defencemen. Players are chosen in this order: in tonight's lines,\n      rest of the roster, injured, prospects with NHL games, other prospects. The lines keep DailyFaceoff's trios and pairs, turned so every player\n      plays his official NHL position (centre in the middle, left and right wings on their sides). Click a team under Teams to see its lines and ratings. Edmonton was done first, by hand: lineup from the 4\u20133 win over Minnesota on October 20, Max Jones (not playing) and Mattias Janmark (injured) left out. Line LW C RW Scoring 1 Hyman McDavid Podkolzin Scoring 2 Formenton Draisaitl Kapanen Checking Howard Dach Joseph Pairs LD RD Scoring 1 Ekholm Bouchard Scoring 2 Shea Murphy Checking Walman Emberson Goalie: Levi (Jarry, Andersen). PP1 Hyman\u2013McDavid\u2013Draisaitl, Ekholm\u2013Bouchard. PP2 Howard\u2013Hallander\u2013Kapanen, Walman\u2013Murphy.\n          PK1 Kapanen\u2013McDavid, Shea\u2013Bouchard. PK2 Formenton\u2013Michaels, Ekholm\u2013Murphy. 2026-11-03-r2 \u00b7 Draisaitl placed at Scoring Line1 RW, with McDavid retained at centre. Ratings for new players EA's public NHL 27 ratings only list the top 300 players, and the 8 Oilers there are already in the ROM. So the new players got ratings from\n      their NHL stats (points, goals, shots, ice time, hits, blocks, penalty minutes, weight): each one gets the average of the 12 ROM players with the most\n      similar stats, which keeps them on the hack's own scale. Tested on the players already in the",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/drai-line.png",
      "image_sha256": "97ff482f0045da6554ae0dc598c5ffd8fd74a78a11479b3a08d2968fb6521a2a",
      "nearest_description": "Goalie: Levi (Jarry, Andersen). PP1 Hyman\u2013McDavid\u2013Draisaitl, Ekholm\u2013Bouchard. PP2 Howard\u2013Hallander\u2013Kapanen, Walman\u2013Murphy.\n          PK1 Kapanen\u2013McDavid, Shea\u2013Bouchard. PK2 Formenton\u2013Michaels, Ekholm\u2013Murphy.",
      "original_id": "drai-line",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/drai-line.png",
      "after_caption": "Draisaitl placed at Scoring Line1 RW, with McDavid retained at centre.",
      "actual_visible": "Edmonton LINE EDITOR: Sc1Line centreMcDavid and RWDraisaitl; selected29LeonDraisaitl, normal controls visible.",
      "visually_opened": true,
      "after_title": "6 All 32 rosters, October 21, 2026",
      "after_section": "roster",
      "after_visible": "Draisaitl placed at Scoring Line1 RW, with McDavid retained at centre.",
      "after_anchor": "picture-062"
    },
    {
      "occurrence": "index.html#image-64",
      "page": "index.html",
      "index": 64,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "title": "The main menu",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "alt": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "image_sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab",
      "nearest_description": "The main menu",
      "original_id": "menu",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/menu.png",
      "after_caption": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "actual_visible": "Main menu: New Full Season, Players One, Home Edmonton, Away84vsNYR, period5minutes. Centred D-Pad Change B/Start Play footer inside native frame.",
      "visually_opened": true,
      "after_title": "The main menu",
      "after_section": "season",
      "after_visible": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "after_anchor": "picture-063"
    },
    {
      "occurrence": "index.html#image-65",
      "page": "index.html",
      "index": 65,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/standings.png",
      "title": "The season menu",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Native division standings and player/statistics controls.",
      "alt": "Native division standings and player/statistics controls.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/standings.png",
      "image_sha256": "c5515c86b6bbbf9aabd530468e7fc59b0ec690d9d797d83b8ff2a7d0458ac429",
      "nearest_description": "Press Start in the main menu to see the restored native Matchups presentation for the current teams and players, followed by the pre-game menu. There:",
      "original_id": "standings",
      "action": "Replaced unrelated standings with actual ordinary-season pregame action menu",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/pregame.png",
      "after_caption": "Ordinary season pregame: New York0, Edmonton0,1st5:00 and Start Game. This is not the Quickgame action menu.",
      "actual_visible": "STANDINGS table AtlanticDivision, eight clubs with zero initial records, L/RDivision U/DTeam A/StartBack BPlayers.",
      "visually_opened": true,
      "after_title": "The season menu",
      "after_section": "season",
      "after_visible": "Ordinary season pregame: New York0, Edmonton0,1st5:00 and Start Game. This is not the Quickgame action menu.",
      "after_anchor": "picture-064"
    },
    {
      "occurrence": "index.html#image-66",
      "page": "index.html",
      "index": 66,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/standings.png",
      "title": "The division table after every game",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Native division standings and player/statistics controls.",
      "alt": "Native division standings and player/statistics controls.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/standings.png",
      "image_sha256": "c5515c86b6bbbf9aabd530468e7fc59b0ec690d9d797d83b8ff2a7d0458ac429",
      "nearest_description": "When a season game is over you get the standings drawn with the team banners from the game's own playoff tree (no cup),\n          one division per screen: its 8 teams by points, with games played, points and the gap to the division leader (the leader shows his lead over number 2).\n          It opens on your division, your team is marked with an arrow and blinks. Left/Right = the other divisions, Start goes on to the main menu.\n          The font's shadow colour is darkened on this screen (the game's light shadow made the digits look blurry on dark blue).",
      "original_id": "standings",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/standings.png",
      "after_caption": "Native Atlantic Division standings with eight clubs and initial zero records; division/team/player controls are visible.",
      "actual_visible": "STANDINGS table AtlanticDivision, eight clubs with zero initial records, L/RDivision U/DTeam A/StartBack BPlayers.",
      "visually_opened": true,
      "after_title": "Division standings, player statistics and leaders",
      "after_section": "season",
      "after_visible": "Native Atlantic Division standings with eight clubs and initial zero records; division/team/player controls are visible.",
      "after_anchor": "picture-065"
    },
    {
      "occurrence": "index.html#image-67",
      "page": "index.html",
      "index": 67,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/player-stats.png",
      "title": "The division table after every game",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current player statistics and sorting controls.",
      "alt": "Current player statistics and sorting controls.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/player-stats.png",
      "image_sha256": "56d7e5d29aba64cc06ea30ebe3328b1f3260073c6c72716881bacf73c6099aae",
      "nearest_description": "When a season game is over you get the standings drawn with the team banners from the game's own playoff tree (no cup),\n          one division per screen: its 8 teams by points, with games played, points and the gap to the division leader (the leader shows his lead over number 2).\n          It opens on your division, your team is marked with an arrow and blinks. Left/Right = the other divisions, Start goes on to the main menu.\n          The font's shadow colour is darkened on this screen (the game's light shadow made the digits look blurry on dark blue).",
      "original_id": "player-stats",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/player-stats.png",
      "after_caption": "Current player statistics and sorting controls.",
      "actual_visible": "Edmonton PLAYER STATS, Goals selected, Bouchard/Murphy/Shea/Frederic/Ekholm initial zero totals, stat/scroll/back controls.",
      "visually_opened": true,
      "after_title": "Division standings, player statistics and leaders",
      "after_section": "season",
      "after_visible": "Current player statistics and sorting controls.",
      "after_anchor": "picture-066"
    },
    {
      "occurrence": "index.html#image-68",
      "page": "index.html",
      "index": 68,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/leaders.png",
      "title": "The division table after every game",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current scoring leaders with native sorting controls.",
      "alt": "Current scoring leaders with native sorting controls.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/leaders.png",
      "image_sha256": "bf7160eefd218ae48543041ec47ff1fcbfa5828477d35d6514ba6cda9efbb342",
      "nearest_description": "When a season game is over you get the standings drawn with the team banners from the game's own playoff tree (no cup),\n          one division per screen: its 8 teams by points, with games played, points and the gap to the division leader (the leader shows his lead over number 2).\n          It opens on your division, your team is marked with an arrow and blinks. Left/Right = the other divisions, Start goes on to the main menu.\n          The font's shadow colour is darkened on this screen (the game's light shadow made the digits look blurry on dark blue).",
      "original_id": "leaders",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/leaders.png",
      "after_caption": "Current scoring leaders with native sorting controls.",
      "actual_visible": "SCORING LEADERS with Anaheim players and initial zero G/A/Pts, Left/RightPage A/StartBack BSort.",
      "visually_opened": true,
      "after_title": "Division standings, player statistics and leaders",
      "after_section": "season",
      "after_visible": "Current scoring leaders with native sorting controls.",
      "after_anchor": "picture-067"
    },
    {
      "occurrence": "index.html#image-69",
      "page": "index.html",
      "index": 69,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "title": "The division table after every game",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "alt": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "image_sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab",
      "nearest_description": "When a season game is over you get the standings drawn with the team banners from the game's own playoff tree (no cup),\n          one division per screen: its 8 teams by points, with games played, points and the gap to the division leader (the leader shows his lead over number 2).\n          It opens on your division, your team is marked with an arrow and blinks. Left/Right = the other divisions, Start goes on to the main menu.\n          The font's shadow colour is darkened on this screen (the game's light shadow made the digits look blurry on dark blue).",
      "original_id": "menu",
      "action": "Removed unrelated duplicate main-menu image from standings/statistics subsection",
      "removed": true,
      "after_image": null,
      "after_caption": null,
      "actual_visible": "Main menu: New Full Season, Players One, Home Edmonton, Away84vsNYR, period5minutes. Centred D-Pad Change B/Start Play footer inside native frame.",
      "visually_opened": true
    },
    {
      "occurrence": "index.html#image-70",
      "page": "index.html",
      "index": 70,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-flight.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 The current critical puck during actual native flight.",
      "alt": "The current critical puck during actual native flight.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-flight.png",
      "image_sha256": "9ae9e10d886ebc7a714c96363ffe0e4eaa1009bc2b64caaa77e263dcb60a2cf4",
      "nearest_description": "Crit flames follow the puck (26 October, r33): a crit could have its red puck and bomb sound but almost no visible flame trail. When the camera followed the shot, the six circles overlapped. They now follow the puck's path across the ice while the camera scrolls. Reproduced and checked in Mini, Easy, 5-minute periods, Fighting Off, Edmonton\u2013Chicago. Shot power and goal bonuses are unchanged. Source, tests and before/after pictures .",
      "original_id": "crit-flight",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/critical-flight.png",
      "after_caption": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "actual_visible": "Blue critical puck and orange effect disc in flight toward upper net,2nd3:51 NYR1 EDM0, coloured offscreen arrows.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "after_anchor": "picture-068"
    },
    {
      "occurrence": "index.html#image-71",
      "page": "index.html",
      "index": 71,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 The actual current critical puck and separated flame trail.",
      "alt": "The actual current critical puck and separated flame trail.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "image_sha256": "01daf8426b9bacc78f4987effb3835f04733dc09780548c5d8882dd1c82a7081",
      "nearest_description": "Crit flames follow the puck (26 October, r33): a crit could have its red puck and bomb sound but almost no visible flame trail. When the camera followed the shot, the six circles overlapped. They now follow the puck's path across the ice while the camera scrolls. Reproduced and checked in Mini, Easy, 5-minute periods, Fighting Off, Edmonton\u2013Chicago. Shot power and goal bonuses are unchanged. Source, tests and before/after pictures .",
      "original_id": "crit-trail",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/critical-trail.png",
      "after_caption": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "actual_visible": "Blue critical puck with separated orange circular trail toward upper goal,2nd3:50, colored offscreen arrows.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "after_anchor": "picture-069"
    },
    {
      "occurrence": "index.html#image-72",
      "page": "index.html",
      "index": 72,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-speed.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Measured shot speed is displayed below the clock, using the selected unit.",
      "alt": "Measured shot speed is displayed below the clock, using the selected unit.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-speed.png",
      "image_sha256": "874c4f9fb4f37d903aa79796d3a1e8e7887ce3bb002913a43dfd6525859f2854",
      "nearest_description": "Strong crits fixed and measured (26 October, r32): the very hardest crits could become slower and swerve the wrong way because the original velocity calculation overflowed. That is fixed. Tested Edmonton, Colorado and Toronto on Easy, Normal and Hard with 5, 7, 10 and 20-minute periods: 14,400 matched shots before/after. Bouchard #2 scored 32/100 full crit shots from the long-shot zone on Easy against an active goalie. The goalie-miss bonus activated 15.03% beyond distance 160 and never below it; Easy produced 2,400/2,400 actual crits. These are isolated goalie tests with other skaters out of the lane, not normal match scoring odds. Method, source and results \u00b7 Full comparison CSV .",
      "original_id": "shot-speed",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/shot-speed.png",
      "after_caption": "Measured shot speed is displayed below the clock, using the selected unit.",
      "actual_visible": "Lower-left shot panel shows29KMH beneath1st4:29 clock; goalie/carrier at upper goal, NYR0 EDM0.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Measured shot speed is displayed below the clock, using the selected unit.",
      "after_anchor": "picture-070"
    },
    {
      "occurrence": "index.html#image-73",
      "page": "index.html",
      "index": 73,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-flight.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 The current critical puck during actual native flight.",
      "alt": "The current critical puck during actual native flight.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-flight.png",
      "image_sha256": "9ae9e10d886ebc7a714c96363ffe0e4eaa1009bc2b64caaa77e263dcb60a2cf4",
      "nearest_description": "Strong crits fixed and measured (26 October, r32): the very hardest crits could become slower and swerve the wrong way because the original velocity calculation overflowed. That is fixed. Tested Edmonton, Colorado and Toronto on Easy, Normal and Hard with 5, 7, 10 and 20-minute periods: 14,400 matched shots before/after. Bouchard #2 scored 32/100 full crit shots from the long-shot zone on Easy against an active goalie. The goalie-miss bonus activated 15.03% beyond distance 160 and never below it; Easy produced 2,400/2,400 actual crits. These are isolated goalie tests with other skaters out of the lane, not normal match scoring odds. Method, source and results \u00b7 Full comparison CSV .",
      "original_id": "crit-flight",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/critical-flight.png",
      "after_caption": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "actual_visible": "Blue critical puck and orange effect disc in flight toward upper net,2nd3:51 NYR1 EDM0, coloured offscreen arrows.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "after_anchor": "picture-071"
    },
    {
      "occurrence": "index.html#image-74",
      "page": "index.html",
      "index": 74,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-speed.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Measured shot speed is displayed below the clock, using the selected unit.",
      "alt": "Measured shot speed is displayed below the clock, using the selected unit.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-speed.png",
      "image_sha256": "874c4f9fb4f37d903aa79796d3a1e8e7887ce3bb002913a43dfd6525859f2854",
      "nearest_description": "Shot panel stays through the replay (26 October, r31): the speed box now sits directly above the team/score box and has the same width and height. The charge meter is inside. The recorded km/h and mph stay visible throughout the goal replay, then disappear when play returns (also when skipped). The full-charge display now follows the complete wind-up. Source and tests .",
      "original_id": "shot-speed",
      "action": "Replaced unrelated shot-speed example with the exact before frame of the SAME measured native replay fixture",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/replay-before.png",
      "after_caption": "Declared native shot/goal fixture before replay:172KMH and the solid red shot bar below the1st4:36 clock, LAK0 WAS1.",
      "actual_visible": "Lower-left shot panel shows29KMH beneath1st4:29 clock; goalie/carrier at upper goal, NYR0 EDM0.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Declared native shot/goal fixture before replay:172KMH and the solid red shot bar below the1st4:36 clock, LAK0 WAS1.",
      "after_anchor": "picture-072"
    },
    {
      "occurrence": "index.html#image-75",
      "page": "index.html",
      "index": 75,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/replay.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Clean REPLAY heading and preserved lower-left clock/frame during a real automatic replay.",
      "alt": "Clean REPLAY heading and preserved lower-left clock/frame during a real automatic replay.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/replay.png",
      "image_sha256": "9f085ad0565793515c85691f3e91ee228f7da3904f99611f4773b9f2285aecfa",
      "nearest_description": "Shot panel stays through the replay (26 October, r31): the speed box now sits directly above the team/score box and has the same width and height. The charge meter is inside. The recorded km/h and mph stay visible throughout the goal replay, then disappear when play returns (also when skipped). The full-charge display now follows the complete wind-up. Source and tests .",
      "original_id": "replay",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/replay-native.png",
      "after_caption": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "actual_visible": "REPLAY heading and X+B SKIP upper-left; lower-left framed1st1:50 clock remains clear during rink replay.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "after_anchor": "picture-073"
    },
    {
      "occurrence": "index.html#image-76",
      "page": "index.html",
      "index": 76,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 The rendered full shot gauge is solid red; actual C input continues the authenticated charge state.",
      "alt": "The rendered full shot gauge is solid red; actual C input continues the authenticated charge state.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "image_sha256": "4772b3f7ac9f4de821b28cd0a861109b40ffc6e83118eb228136e1e40e785e65",
      "nearest_description": "Shot meter and Easy difficulty (26 October, r27): a small meter top right fills while you wind up a slapshot; full = red and blinking in that release. Since 2026-10-28-r7 it starts white, turns orange and stays solid red at full charge. After the shot its speed shows under it in km/h and mph, measured honestly from the rink (centre line to goal line = 89 ft): the hardest normal slapshot is about 148-153 km/h (92-95 mph), a crit up to about 176-184 km/h (109-114 mph), above Zdeno Chara's NHL record of 108.8 mph (2012 All-Star Skills). Difficulty now has Easy too: your meters are always full (CPU empty), and every forehand slapshot of yours is a crit (backhands and quick wrists never crit).",
      "original_id": "shot-full",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "after_caption": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "actual_visible": "Solid red full-width charge bar under lower-left1st4:40 clock, puck/carrier near right of rink.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "after_anchor": "picture-074"
    },
    {
      "occurrence": "index.html#image-77",
      "page": "index.html",
      "index": 77,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/replay.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Clean REPLAY heading and preserved lower-left clock/frame during a real automatic replay.",
      "alt": "Clean REPLAY heading and preserved lower-left clock/frame during a real automatic replay.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/replay.png",
      "image_sha256": "9f085ad0565793515c85691f3e91ee228f7da3904f99611f4773b9f2285aecfa",
      "nearest_description": "REPLAY title (26 October, r23): the automatic goal replay shows a big chrome \"REPLAY\" in the corner, in the style of the NHL'94 logo, instead of the grey A/B/C VCR box. The Instant Replay from the pause menu keeps its controls.",
      "original_id": "replay",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/replay-native.png",
      "after_caption": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "actual_visible": "REPLAY heading and X+B SKIP upper-left; lower-left framed1st1:50 clock remains clear during rink replay.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "after_anchor": "picture-075"
    },
    {
      "occurrence": "index.html#image-78",
      "page": "index.html",
      "index": 78,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "alt": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "image_sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab",
      "nearest_description": "Season Edition main menu (26 October, r14): the main menu now shows the same \"NHL'94 Season Edition\" picture as the start-up screen behind its panels, instead of the old sunset skyline.",
      "original_id": "menu",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/menu.png",
      "after_caption": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "actual_visible": "Main menu: New Full Season, Players One, Home Edmonton, Away84vsNYR, period5minutes. Centred D-Pad Change B/Start Play footer inside native frame.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "after_anchor": "picture-076"
    },
    {
      "occurrence": "index.html#image-79",
      "page": "index.html",
      "index": 79,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 The actual current critical puck and separated flame trail.",
      "alt": "The actual current critical puck and separated flame trail.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "image_sha256": "01daf8426b9bacc78f4987effb3835f04733dc09780548c5d8882dd1c82a7081",
      "nearest_description": "Longer crit flames, crits in shootouts (26 October, r2): the crit tail is now six flames that follow the puck through the whole shot and burn out slowly afterwards, and it no longer disappears when many players are on screen. In shootouts a crit now also turns the puck red with flames (before, it only got the extra power and the effect stopped after one frame).",
      "original_id": "crit-trail",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/critical-trail.png",
      "after_caption": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "actual_visible": "Blue critical puck with separated orange circular trail toward upper goal,2nd3:50, colored offscreen arrows.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "after_anchor": "picture-077"
    },
    {
      "occurrence": "index.html#image-80",
      "page": "index.html",
      "index": 80,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-mini.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Completed Mini review menu, from an explicitly declared completed-save fixture. Centred native-frame help.",
      "alt": "Completed Mini review menu, from an explicitly declared completed-save fixture. Centred native-frame help.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-mini.png",
      "image_sha256": "dddcc95f595f3c90f733e682de36c401a113e2e178cb508edc4647742447ecdd",
      "nearest_description": "Finished seasons show their saved results (26 October): completed slots say See Old Full Season / See Old Light Season / See Old Mini Season . Start opens the saved statistics instead of an extra match. After Scoring Leaders, choose to view again, start a new season in that slot, or return. Xbox X + B confirms a new season; Start cancels. Other seasons are kept. Code and native tests .",
      "original_id": "completed-mini",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/completed-mini.png",
      "after_caption": "Completed Mini review menu, from an explicitly declared completed-save fixture. Centred native-frame help.",
      "actual_visible": "See Old Mini Season, HomeDallas, AwaySeasonfinished, five-minute setting and centred framed help.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Completed Mini review menu, from an explicitly declared completed-save fixture. Centred native-frame help.",
      "after_anchor": "picture-078"
    },
    {
      "occurrence": "index.html#image-81",
      "page": "index.html",
      "index": 81,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "alt": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "image_sha256": "55fbcdcc30953072dca7181d74392f7199755fb24f04a648f301603aa68446ec",
      "nearest_description": "Finished seasons show their saved results (26 October): completed slots say See Old Full Season / See Old Light Season / See Old Mini Season . Start opens the saved statistics instead of an extra match. After Scoring Leaders, choose to view again, start a new season in that slot, or return. Xbox X + B confirms a new season; Start cancels. Other seasons are kept. Code and native tests .",
      "original_id": "playoffs-menu",
      "action": "Replaced New Playoffs with actual completed-season actions",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/completed-actions.png",
      "after_caption": "Season Complete: See Results, Scoring Leaders, Start New Mini Season and Back to Main Menu. Declared completed-save fixture.",
      "actual_visible": "Main menu PlayModeNewPlayoffs, PlayersOne, Edmonton vsAnaheim, framed footer.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Season Complete: See Results, Scoring Leaders, Start New Mini Season and Back to Main Menu. Declared completed-save fixture.",
      "after_anchor": "picture-079"
    },
    {
      "occurrence": "index.html#image-82",
      "page": "index.html",
      "index": 82,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-browser.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current completed-season player browser, from a declared saved-season fixture.",
      "alt": "Current completed-season player browser, from a declared saved-season fixture.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-browser.png",
      "image_sha256": "c0eb6473fb6780346e2c6d9d981c806f2a55f493d34adf976acf00974158d01e",
      "nearest_description": "Browse every club after the season (r26): Left/Right cycles all 32 teams. A switches Season + Playoffs / Regular Season / Playoffs , C sorts points/goals/assists, Up/Down shows page2 with goalies. Start opens league Scoring Leaders; B there returns to your selected club. Both controllers work. On the Xbox layout A/B/C mean X/A/B. Code and verification .",
      "original_id": "completed-browser",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/completed-browser.png",
      "after_caption": "Season+Playoffs browser for Dallas, sorted by points, from the declared completed-season save fixture.",
      "actual_visible": "Season+Playoffs browser, Dallas, Sortpoints, player list with mostly zero test-fixture totals and native controls.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Season+Playoffs browser for Dallas, sorted by points, from the declared completed-season save fixture.",
      "after_anchor": "picture-080"
    },
    {
      "occurrence": "index.html#image-83",
      "page": "index.html",
      "index": 83,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 The actual current critical puck and separated flame trail.",
      "alt": "The actual current critical puck and separated flame trail.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "image_sha256": "01daf8426b9bacc78f4987effb3835f04733dc09780548c5d8882dd1c82a7081",
      "nearest_description": "Flame trail on crits (25 October, r23, fixed in r24): a critical slapshot now leaves a red and orange flame tail behind the puck while it flashes. In r23 it was sometimes missing when many sprites were on screen; since r24 it always shows.",
      "original_id": "crit-trail",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/critical-trail.png",
      "after_caption": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "actual_visible": "Blue critical puck with separated orange circular trail toward upper goal,2nd3:50, colored offscreen arrows.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "after_anchor": "picture-081"
    },
    {
      "occurrence": "index.html#image-84",
      "page": "index.html",
      "index": 84,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-sorted.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current completed-season browser sorted by goals, from a declared saved-season fixture.",
      "alt": "Current completed-season browser sorted by goals, from a declared saved-season fixture.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-sorted.png",
      "image_sha256": "e3dea1d4c46ecf6637c8e4ad1e14d9291f66e4b57489a5185426ed1b22bd447d",
      "nearest_description": "Season statistics with tabs and scoring leaders (25 October, r21): after the Season Summary you can browse all 32 teams' players and then the league's top18 Scoring Leaders . Both have three tabs, switched with A (also Left/Right on Scoring Leaders): Season + Playoffs , Regular Season and Playoffs ; C changes the sorting between points, goals and assists; Up/Down shows page2 of the selected team with the goalies. Playoff statistics are now stored separately from the league. All the other playoff series get games and statistics too, and if you are knocked out the rest of the playoffs is simulated to the end in the background, so the playoff leaders are complete.",
      "original_id": "completed-sorted",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/completed-sorted.png",
      "after_caption": "Current completed-season browser sorted by goals, from a declared saved-season fixture.",
      "actual_visible": "Season+Playoffs browser, Detroit, Sortgoals, fixture totals and native controls.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Current completed-season browser sorted by goals, from a declared saved-season fixture.",
      "after_anchor": "picture-082"
    },
    {
      "occurrence": "index.html#image-85",
      "page": "index.html",
      "index": 85,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/leaders.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current scoring leaders with native sorting controls.",
      "alt": "Current scoring leaders with native sorting controls.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/leaders.png",
      "image_sha256": "bf7160eefd218ae48543041ec47ff1fcbfa5828477d35d6514ba6cda9efbb342",
      "nearest_description": "Season statistics with tabs and scoring leaders (25 October, r21): after the Season Summary you can browse all 32 teams' players and then the league's top18 Scoring Leaders . Both have three tabs, switched with A (also Left/Right on Scoring Leaders): Season + Playoffs , Regular Season and Playoffs ; C changes the sorting between points, goals and assists; Up/Down shows page2 of the selected team with the goalies. Playoff statistics are now stored separately from the league. All the other playoff series get games and statistics too, and if you are knocked out the rest of the playoffs is simulated to the end in the background, so the playoff leaders are complete.",
      "original_id": "leaders",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/leaders.png",
      "after_caption": "Current scoring leaders with native sorting controls.",
      "actual_visible": "SCORING LEADERS with Anaheim players and initial zero G/A/Pts, Left/RightPage A/StartBack BSort.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Current scoring leaders with native sorting controls.",
      "after_anchor": "picture-083"
    },
    {
      "occurrence": "index.html#image-86",
      "page": "index.html",
      "index": 86,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-actions.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Completed-season actions and the native Back/Select controls, from a declared fixture.",
      "alt": "Completed-season actions and the native Back/Select controls, from a declared fixture.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-actions.png",
      "image_sha256": "72acb37d43dc932bfb37902bfbe7bffb50948bf7da76362de57c537d730e3cdd",
      "nearest_description": "End-of-season summary (25 October, r19): when your season ends, the game now wraps it up. If you win the Stanley Cup you first see the game's own Playoff Stats and Champions page with the cup; if you are knocked out, the playoff bracket; if you miss the playoffs, the league table after your last game. Press Start and a Season Summary follows (record, points, goals for and against, and how it ended), then Start again for every player's statistics for the whole run, regular season and playoffs together (goals, assists, points, shots; page 2 with the goalies: games, wins, goals against, shots against). Playoff games now count in the season's player and goalie statistics.",
      "original_id": "completed-actions",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/completed-actions.png",
      "after_caption": "Season Complete: See Results, Scoring Leaders, Start New Mini Season and Back to Main Menu. Declared completed-save fixture.",
      "actual_visible": "SeasonComplete menu: SeeResults, ScoringLeaders, StartNewMiniSeason, BacktoMainMenu; normal controls.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Season Complete: See Results, Scoring Leaders, Start New Mini Season and Back to Main Menu. Declared completed-save fixture.",
      "after_anchor": "picture-084"
    },
    {
      "occurrence": "index.html#image-87",
      "page": "index.html",
      "index": 87,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current Player Cards: Tristan Jarry, matching the actual bought-back goalkeeper.",
      "alt": "Current Player Cards: Tristan Jarry, matching the actual bought-back goalkeeper.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "image_sha256": "761f339e89599354bab97ad4a71de7275a44cdf2fb3d561fc3043f380b7dde1d",
      "nearest_description": "End-of-season summary (25 October, r19): when your season ends, the game now wraps it up. If you win the Stanley Cup you first see the game's own Playoff Stats and Champions page with the cup; if you are knocked out, the playoff bracket; if you miss the playoffs, the league table after your last game. Press Start and a Season Summary follows (record, points, goals for and against, and how it ended), then Start again for every player's statistics for the whole run, regular season and playoffs together (goals, assists, points, shots; page 2 with the goalies: games, wins, goals against, shots against). Playoff games now count in the season's player and goalie statistics.",
      "original_id": "card-goalie",
      "action": "Replaced unrelated goalie card with completed-season statistics browser",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/completed-browser.png",
      "after_caption": "Season+Playoffs browser for Dallas, sorted by points, from the declared completed-season save fixture.",
      "actual_visible": "Edmonton TristanJarry35 goalie card, Overall70,2saves,50savepercent, native card footer.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Season+Playoffs browser for Dallas, sorted by points, from the declared completed-season save fixture.",
      "after_anchor": "picture-085"
    },
    {
      "occurrence": "index.html#image-88",
      "page": "index.html",
      "index": 88,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/roster.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current on-ice and bench roster status.",
      "alt": "Current on-ice and bench roster status.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/roster.png",
      "image_sha256": "1ba3ad0a016f5509b55dc9aaaca9570f3de3f386257eeeb6fa953f7c36d50a33",
      "nearest_description": "Meter effect in Team Roster (25 October, r16): during a game, Team Roster (pause menu) shows Overall and the 0\u201399 ratings with the team's current meter bonus or penalty included. After every game the meter starts over from the middle, and Roster outside a game shows the normal values.",
      "original_id": "roster",
      "action": "Replaced Status-only view with actual Overall rating column",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/roster-overall.png",
      "after_caption": "Team Roster: Overall selected for Scoring2; Draisaitl79 and the other current player ratings are visible.",
      "actual_visible": "Edmonton TEAM ROSTER, Scoring2 Status; Walman/Shea/Howard/Draisaitl/Podkolzin all markedIce.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Team Roster: Overall selected for Scoring2; Draisaitl79 and the other current player ratings are visible.",
      "after_anchor": "picture-086"
    },
    {
      "occurrence": "index.html#image-89",
      "page": "index.html",
      "index": 89,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/difficulty.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Hard and native match settings, with framed centred help.",
      "alt": "Hard and native match settings, with framed centred help.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/difficulty.png",
      "image_sha256": "7349d760e24aef376ac146a081aff6ca6c50bc685ec466b31247993fbbace43e",
      "nearest_description": "Historical difficulty behavior (25 October, r15; superseded by r5): Current Hard uses Normal-style momentum and improved AI. In r15, a new last row in the main menu. Normal is the momentum meter described below. Hard locks it for the whole game: human-controlled teams are always at the bottom (\u221210% ratings) and computer teams always full (+10%). It can be changed even during a season (the other settings stay locked) and starts as Normal after power-on.",
      "original_id": "difficulty",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/difficulty.png",
      "after_caption": "Hard and native match settings, with framed centred help.",
      "actual_visible": "DifficultyHard selected; FightingOff, LineChangesAuto, RulesOnExceptOffsides and GoalieCtrlManual visible.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Hard and native match settings, with framed centred help.",
      "after_anchor": "picture-087"
    },
    {
      "occurrence": "index.html#image-90",
      "page": "index.html",
      "index": 90,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-rink.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Actual earned Momentum bars beneath each team name in the lower-right HUD.",
      "alt": "Actual earned Momentum bars beneath each team name in the lower-right HUD.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-rink.png",
      "image_sha256": "09ea715ebbebc96113c734e4bfac07b0a121c124aaad41648cbaaf971ce35e3d",
      "nearest_description": "Crowd momentum meters (25 October, r12): two live bars beside the score box, one per team. Shots on goal and body checks pull the momentum toward your team (and away from the other); it slowly fades back toward the middle with every second on the game clock, so it works the same for 5, 10 or 20 minute periods. The bar's position is a rating modifier for everyone on the ice: full bar +10%, middle 0%, empty \u221210% (red when your team is below the middle). Players coming on the ice get the current modifier straight away. Before this, the native crowd meter only drove the crowd noise and the \"Current/Peak Level\" stats; it never changed ratings.",
      "original_id": "momentum-rink",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/momentum-away.png",
      "after_caption": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "actual_visible": "NYR1 EDM0 at1st3:05, tiny red Momentum indicator beneath EDM in lower-right scoreboard; ordinary puck/rink play.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "after_anchor": "picture-088"
    },
    {
      "occurrence": "index.html#image-91",
      "page": "index.html",
      "index": 91,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-flight.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 The current critical puck during actual native flight.",
      "alt": "The current critical puck during actual native flight.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-flight.png",
      "image_sha256": "9ae9e10d886ebc7a714c96363ffe0e4eaa1009bc2b64caaa77e263dcb60a2cf4",
      "nearest_description": "Bright red crit puck (25 October, r11): a critical slapshot now turns the puck fully bright red instead of the dull pinkish rink-line colour. A few spectators' dark-green shirts in the crowd use the same colour slot and are now red.",
      "original_id": "crit-flight",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/critical-flight.png",
      "after_caption": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "actual_visible": "Blue critical puck and orange effect disc in flight toward upper net,2nd3:51 NYR1 EDM0, coloured offscreen arrows.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "after_anchor": "picture-089"
    },
    {
      "occurrence": "index.html#image-92",
      "page": "index.html",
      "index": 92,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/startup.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 The preserved NHL94 Season Edition startup.",
      "alt": "The preserved NHL94 Season Edition startup.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/startup.png",
      "image_sha256": "b727dc9a72889380934d1586acad56cde9e1435b4844342825445c6d6f2fa545",
      "nearest_description": "New start-up (25 October, r10): the EA Sports logo is gone; the game opens directly with the new NHL'94 Season Edition picture, then the main menu (any button skips it).",
      "original_id": "startup",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/startup.png",
      "after_caption": "The preserved NHL94 Season Edition startup.",
      "actual_visible": "Greyscale NHL94 shield with SeasonEdition text.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "The preserved NHL94 Season Edition startup.",
      "after_anchor": "picture-090"
    },
    {
      "occurrence": "index.html#image-93",
      "page": "index.html",
      "index": 93,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current Player Cards: Tristan Jarry, matching the actual bought-back goalkeeper.",
      "alt": "Current Player Cards: Tristan Jarry, matching the actual bought-back goalkeeper.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "image_sha256": "761f339e89599354bab97ad4a71de7275a44cdf2fb3d561fc3043f380b7dde1d",
      "nearest_description": "Correct player-card portraits (25 October): faces now follow the player identity after roster changes, in both the main-menu slideshow and Player Cards. All 832 card associations are checked: 702 reuse existing portraits, 123 use newly converted official NHL photos and seven show a neutral silhouette where NHL has no usable headshot. Names, ratings, statistics and saved seasons carry over.",
      "original_id": "card-goalie",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "after_caption": "Edmonton player card: Tristan Jarry35, Overall70,2 saves and50% save percentage. This independent card scene does not show a transfer history.",
      "actual_visible": "Edmonton TristanJarry35 goalie card, Overall70,2saves,50savepercent, native card footer.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Edmonton player card: Tristan Jarry35, Overall70,2 saves and50% save percentage. This independent card scene does not show a transfer history.",
      "after_anchor": "picture-091"
    },
    {
      "occurrence": "index.html#image-94",
      "page": "index.html",
      "index": 94,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/card-forward.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current Player Cards: Ryan Nugent-Hopkins and his actual in-game rating.",
      "alt": "Current Player Cards: Ryan Nugent-Hopkins and his actual in-game rating.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/card-forward.png",
      "image_sha256": "adf9198ea5fe98b0a9d1f1fb3e412e15c525fde2f4dbabbb1b35607c9be77666",
      "nearest_description": "Correct player-card portraits (25 October): faces now follow the player identity after roster changes, in both the main-menu slideshow and Player Cards. All 832 card associations are checked: 702 reuse existing portraits, 123 use newly converted official NHL photos and seven show a neutral silhouette where NHL has no usable headshot. Names, ratings, statistics and saved seasons carry over.",
      "original_id": "card-forward",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/card-forward.png",
      "after_caption": "Current Player Cards: Ryan Nugent-Hopkins and his actual in-game rating.",
      "actual_visible": "Edmonton RyanNugent-Hopkins93 centre player card, Overall57,0goals0assists, native footer.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Current Player Cards: Ryan Nugent-Hopkins and his actual in-game rating.",
      "after_anchor": "picture-092"
    },
    {
      "occurrence": "index.html#image-95",
      "page": "index.html",
      "index": 95,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/cards-cover.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current Player Cards team cover and starting line.",
      "alt": "Current Player Cards team cover and starting line.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/cards-cover.png",
      "image_sha256": "da4effde11db5c67a5619315d1a9178c7017fc578813ba040c384c23dae67f7b",
      "nearest_description": "Correct player-card portraits (25 October): faces now follow the player identity after roster changes, in both the main-menu slideshow and Player Cards. All 832 card associations are checked: 702 reuse existing portraits, 123 use newly converted official NHL photos and seven show a neutral silhouette where NHL has no usable headshot. Names, ratings, statistics and saved seasons carry over.",
      "original_id": "cards-cover",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/cards-cover.png",
      "after_caption": "Current Player Cards team cover and starting line.",
      "actual_visible": "Edmonton player-cards cover, TeamRating56 and starting lineupJarry/Bouchard/Ekholm/Formenton/McDavid/Kapanen.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Current Player Cards team cover and starting line.",
      "after_anchor": "picture-093"
    },
    {
      "occurrence": "index.html#image-96",
      "page": "index.html",
      "index": 96,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/shootout.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Native shootout starts without further input. This screenshot uses a declared clock-only OT expiry fixture.",
      "alt": "Native shootout starts without further input. This screenshot uses a declared clock-only OT expiry fixture.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shootout.png",
      "image_sha256": "12138496eb50d8c7bc28ee253756374e92089dbc2a63933ccc257464bfa5e450",
      "nearest_description": "The winner receives one deciding goal in the final score. Shootout attempts do not add player goals, assists, shots or goalie goals against. League points and playoff progress are saved normally; Full keeps best-of-seven series and Light/Mini keep single-game pairings. Existing saves carry over.",
      "original_id": "shootout",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/shootout.png",
      "after_caption": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "actual_visible": "Single shooter at centre ice, native attempt countdown0:20,NYR0 EDM0.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "after_anchor": "picture-094"
    },
    {
      "occurrence": "index.html#image-97",
      "page": "index.html",
      "index": 97,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "alt": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "image_sha256": "55fbcdcc30953072dca7181d74392f7199755fb24f04a648f301603aa68446ec",
      "nearest_description": "Sharp menu text when switching modes: original menu values now keep the correct small font when cycling between seasons, playoffs and Shootout.",
      "original_id": "playoffs-menu",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "after_caption": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "actual_visible": "Main menu PlayModeNewPlayoffs, PlayersOne, Edmonton vsAnaheim, framed footer.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "after_anchor": "picture-095"
    },
    {
      "occurrence": "index.html#image-98",
      "page": "index.html",
      "index": 98,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "alt": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "image_sha256": "55fbcdcc30953072dca7181d74392f7199755fb24f04a648f301603aa68446ec",
      "nearest_description": "Sharp menu text when switching modes: original menu values now keep the correct small font when cycling between seasons, playoffs and Shootout.",
      "original_id": "playoffs-menu",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "after_caption": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "actual_visible": "Main menu PlayModeNewPlayoffs, PlayersOne, Edmonton vsAnaheim, framed footer.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "after_anchor": "picture-096"
    },
    {
      "occurrence": "index.html#image-99",
      "page": "index.html",
      "index": 99,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "alt": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "image_sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab",
      "nearest_description": "Abandon Season (formerly Restart Season) resets only the selected series, with confirmation, including from its playoff pre-game menu. The other two seasons stay saved. Full keeps best-of-seven playoffs; Light and Mini keep single-game playoffs.",
      "original_id": "menu",
      "action": "Replaced generic main menu with actual abandon-season confirmation",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/abandon.png",
      "after_caption": "Abandon Season confirmation: B confirms; A/Start cancels. The notice distinguishes this season from the other saved seasons.",
      "actual_visible": "Main menu: New Full Season, Players One, Home Edmonton, Away84vsNYR, period5minutes. Centred D-Pad Change B/Start Play footer inside native frame.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Abandon Season confirmation: B confirms; A/Start cancels. The notice distinguishes this season from the other saved seasons.",
      "after_anchor": "picture-097"
    },
    {
      "occurrence": "index.html#image-100",
      "page": "index.html",
      "index": 100,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/light.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Light season:31 games and framed centred help. Help is centred in its native frame.",
      "alt": "Light season:31 games and framed centred help. Help is centred in its native frame.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/light.png",
      "image_sha256": "b5f749f9f05daccaba6585922d58a4464915d6297beba2460eb91c2866c38a6f",
      "nearest_description": "Abandon Season (formerly Restart Season) resets only the selected series, with confirmation, including from its playoff pre-game menu. The other two seasons stay saved. Full keeps best-of-seven playoffs; Light and Mini keep single-game playoffs.",
      "original_id": "light",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/light.png",
      "after_caption": "Light season:31 games and framed centred help. Help is centred in its native frame.",
      "actual_visible": "New SeasonLight main menu, Edmonton, Away1/31vsNYR, framed footer.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Light season:31 games and framed centred help. Help is centred in its native frame.",
      "after_anchor": "picture-098"
    },
    {
      "occurrence": "index.html#image-101",
      "page": "index.html",
      "index": 101,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/mini.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "alt": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/mini.png",
      "image_sha256": "dbcf2297356d7edeb651bed17e2abd7882cd2e23eeeaac4129aea5f0013cd73b",
      "nearest_description": "Abandon Season (formerly Restart Season) resets only the selected series, with confirmation, including from its playoff pre-game menu. The other two seasons stay saved. Full keeps best-of-seven playoffs; Light and Mini keep single-game playoffs.",
      "original_id": "mini",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/mini.png",
      "after_caption": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "actual_visible": "New SeasonMini menu, Edmonton, Away1/7vsSEA, five-minute period and framed footer.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "after_anchor": "picture-099"
    },
    {
      "occurrence": "index.html#image-102",
      "page": "index.html",
      "index": 102,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/mini.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "alt": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/mini.png",
      "image_sha256": "dbcf2297356d7edeb651bed17e2abd7882cd2e23eeeaac4129aea5f0013cd73b",
      "nearest_description": "Correct team-selection logos: Full, Light and Mini now immediately show your club and its scheduled opponent when you change Team. This fixes both logos sometimes showing Edmonton even though the actual fixture was Edmonton\u2013Detroit. Switching between One and Teammates also refreshes both sides correctly.",
      "original_id": "mini",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/mini.png",
      "after_caption": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "actual_visible": "New SeasonMini menu, Edmonton, Away1/7vsSEA, five-minute period and framed footer.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "after_anchor": "picture-100"
    },
    {
      "occurrence": "index.html#image-103",
      "page": "index.html",
      "index": 103,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 The actual current critical puck and separated flame trail.",
      "alt": "The actual current critical puck and separated flame trail.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "image_sha256": "01daf8426b9bacc78f4987effb3835f04733dc09780548c5d8882dd1c82a7081",
      "nearest_description": "Red crit puck: a critical shot now makes the puck briefly blink red and normal. It returns to normal when someone takes possession, play is stopped or a new shot starts. The Crit Chance rating and 25% power bonus stay the same.",
      "original_id": "crit-trail",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/critical-trail.png",
      "after_caption": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "actual_visible": "Blue critical puck with separated orange circular trail toward upper goal,2nd3:50, colored offscreen arrows.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "after_anchor": "picture-101"
    },
    {
      "occurrence": "index.html#image-104",
      "page": "index.html",
      "index": 104,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/roster.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current on-ice and bench roster status.",
      "alt": "Current on-ice and bench roster status.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/roster.png",
      "image_sha256": "1ba3ad0a016f5509b55dc9aaaca9570f3de3f386257eeeb6fa953f7c36d50a33",
      "nearest_description": "Red crit puck: a critical shot now makes the puck briefly blink red and normal. It returns to normal when someone takes possession, play is stopped or a new shot starts. The Crit Chance rating and 25% power bonus stay the same.",
      "original_id": "roster",
      "action": "Replaced unrelated roster menu with actual critical puck flight",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/critical-flight.png",
      "after_caption": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "actual_visible": "Edmonton TEAM ROSTER, Scoring2 Status; Walman/Shea/Howard/Draisaitl/Podkolzin all markedIce.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "after_anchor": "picture-102"
    },
    {
      "occurrence": "index.html#image-105",
      "page": "index.html",
      "index": 105,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "alt": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "image_sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab",
      "nearest_description": "Fixed an empty old Mini save making New Full Season show 1/8: it now correctly shows 1/84 without resetting any saved season.",
      "original_id": "menu",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/menu.png",
      "after_caption": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "actual_visible": "Main menu: New Full Season, Players One, Home Edmonton, Away84vsNYR, period5minutes. Centred D-Pad Change B/Start Play footer inside native frame.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "after_anchor": "picture-103"
    },
    {
      "occurrence": "index.html#image-106",
      "page": "index.html",
      "index": 106,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/mini.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "alt": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/mini.png",
      "image_sha256": "dbcf2297356d7edeb651bed17e2abd7882cd2e23eeeaac4129aea5f0013cd73b",
      "nearest_description": "On the main menu's Game row, Left/Right selects a different first opponent before game 1 of a new season, for some variety. After the first game the schedule is locked. The choice survives power-off, and the rest of the league plays the matching round.",
      "original_id": "mini",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/mini.png",
      "after_caption": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "actual_visible": "New SeasonMini menu, Edmonton, Away1/7vsSEA, five-minute period and framed footer.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "after_anchor": "picture-104"
    },
    {
      "occurrence": "index.html#image-107",
      "page": "index.html",
      "index": 107,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/scoring.png",
      "title": "Season - jdc - 2026-10-31",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 The actual current match scoring summary.",
      "alt": "The actual current match scoring summary.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/scoring.png",
      "image_sha256": "744ff5c804b581421a333974ce5bac7ac03fd57a6d8774060659ee34ad83dbee",
      "nearest_description": "The same private copy also tests automatic goalie control with explicit Y selection, a three-beep warning at 0:40 each period, and 1-minute ordinary / 2-minute fighting or injury penalties with 5-minute periods.",
      "original_id": "scoring",
      "action": "Replaced unrelated scoring summary with actual0:40 clock scene; audio limitation explicit",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/warning040.png",
      "after_caption": "The native second-period clock at0:40. The five warning beeps are audio, verified separately; they cannot be heard in this still.",
      "actual_visible": "NewYork/Edmonton SCORING SUMMARY with1st0:55Dorofeyev and1:43Gavrikov goals and assists.",
      "visually_opened": true,
      "after_title": "Current views of earlier season changes",
      "after_section": "season",
      "after_visible": "The native second-period clock at0:40. The five warning beeps are audio, verified separately; they cannot be heard in this still.",
      "after_anchor": "picture-105"
    },
    {
      "occurrence": "index.html#image-108",
      "page": "index.html",
      "index": 108,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-tree.png",
      "title": "What is counted",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 The actual native16-team playoff tree after real Start input.",
      "alt": "The actual native16-team playoff tree after real Start input.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-tree.png",
      "image_sha256": "886904c9f14c58e07fe5a9a0b38d70538c21b73078ce6ee80d6d256c182d9923",
      "nearest_description": "What is counted",
      "original_id": "playoffs-tree",
      "action": "Removed playoff bracket from statistics-counting subsection; fresh bracket shown under playoff heading",
      "removed": true,
      "after_image": null,
      "after_caption": null,
      "actual_visible": "Native16-club bracket surrounding StanleyCup, including Edmonton/Anaheim lower left.",
      "visually_opened": true
    },
    {
      "occurrence": "index.html#image-109",
      "page": "index.html",
      "index": 109,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "title": "What is counted",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current Player Cards: Tristan Jarry, matching the actual bought-back goalkeeper.",
      "alt": "Current Player Cards: Tristan Jarry, matching the actual bought-back goalkeeper.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "image_sha256": "761f339e89599354bab97ad4a71de7275a44cdf2fb3d561fc3043f380b7dde1d",
      "nearest_description": "What is counted",
      "original_id": "card-goalie",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "after_caption": "Edmonton player card: Tristan Jarry35, Overall70,2 saves and50% save percentage. This independent card scene does not show a transfer history.",
      "actual_visible": "Edmonton TristanJarry35 goalie card, Overall70,2saves,50savepercent, native card footer.",
      "visually_opened": true,
      "after_title": "What is counted",
      "after_section": "season",
      "after_visible": "Edmonton player card: Tristan Jarry35, Overall70,2 saves and50% save percentage. This independent card scene does not show a transfer history.",
      "after_anchor": "picture-107"
    },
    {
      "occurrence": "index.html#image-110",
      "page": "index.html",
      "index": 110,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "title": "Playoffs after the full season",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "alt": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "surrounding_text": "Current game screenshots: 2026-11-03-r2. Earlier dated images and audit archives retain their historical versions. Current behavior \u00b72026-11-02-r2 7 A full season Regular Season is now a season. In the dated Season - jdc version, pick your team, play an 84-game schedule, and follow the standings and the\n      stats of every player. Everything is saved in the game's battery memory, so it works in any emulator (RetroArch saves it as a .srm file) and on real hardware with a flash cart. The main menu Play Mode shows Continue Season when a season is saved. Move right to New Full Season (84 games), then New Season Light (31) and New Season Mini (7). Left and Right cycle through the available modes and wrap around. New Season Light : 31 games. Each of the 32 teams meets every other team once. After game 31, the 16 qualifying teams enter a single-elimination playoff: one game decides each pairing. New Full Season: select your club before starting. Erasing an existing season uses the native confirmed restart; cancelling preserves the saved progress. Players supports One or Two - Teammates, plus Three/Four - Teammates with a4-Way Play adapter. Controllers follow the selected club. Season settings remain locked after the first completed game. Game shows your next game: 5/84 vs CAR (home) or at CGY (away). The schedule has every opponent 2\u20133 times, home and away alternating. After the first game, match settings stay locked across restarts and slot changes. Players and Auto Replays retain their separate editable behavior. Full, Light and Mini progress are saved independently; Quickgame and Allstar preserve those seasons. 2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame. The season menu Press Start in the main menu to see the re",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "image_sha256": "55fbcdcc30953072dca7181d74392f7199755fb24f04a648f301603aa68446ec",
      "nearest_description": "New Season Light: after game 31, select Continue to Playoffs and press Start to see the qualified teams in the playoff tree. Each pairing takes one game, including the final.",
      "original_id": "playoffs-menu",
      "action": "Replaced standalone setup menu with actual playoff bracket and scoped its separate fixture history",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/playoffs-tree.png",
      "after_caption": "Native16-team playoff bracket around the Stanley Cup; this representative standalone scene does not establish season-qualification history.",
      "actual_visible": "Main menu PlayModeNewPlayoffs, PlayersOne, Edmonton vsAnaheim, framed footer.",
      "visually_opened": true,
      "after_title": "Playoff continuation and native bracket",
      "after_section": "season",
      "after_visible": "Native16-team playoff bracket around the Stanley Cup; this representative standalone scene does not establish season-qualification history.",
      "after_anchor": "picture-108"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-1",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 1,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "alt": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "image_sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "menu",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/menu.png",
      "after_caption": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "actual_visible": "Main menu: New Full Season, Players One, Home Edmonton, Away84vsNYR, period5minutes. Centred D-Pad Change B/Start Play footer inside native frame.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "after_anchor": "picture-001"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-2",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 2,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/difficulty.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Hard and native match settings, with framed centred help.",
      "alt": "Hard and native match settings, with framed centred help.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/difficulty.png",
      "image_sha256": "7349d760e24aef376ac146a081aff6ca6c50bc685ec466b31247993fbbace43e",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "difficulty",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/difficulty.png",
      "after_caption": "Hard and native match settings, with framed centred help.",
      "actual_visible": "DifficultyHard selected; FightingOff, LineChangesAuto, RulesOnExceptOffsides and GoalieCtrlManual visible.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Hard and native match settings, with framed centred help.",
      "after_anchor": "picture-002"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-3",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 3,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/icing-transfers.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Icing On and Transfers directly below it; centred framed help.",
      "alt": "Icing On and Transfers directly below it; centred framed help.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/icing-transfers.png",
      "image_sha256": "2564e8e278eb0ce6ddebc2a61a7b66f996b0ecd48084bf0e6ee90e0f16c82d7c",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "icing-transfers",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/icing-transfers.png",
      "after_caption": "Icing On and Transfers directly below it; centred framed help.",
      "actual_visible": "Main menu Hard, AutoReplaysOff, CritShotsOff, IcingOn and TransfersOff selected; framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Icing On and Transfers directly below it; centred framed help.",
      "after_anchor": "picture-003"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-4",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 4,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-defaults.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Low passes, Normal speed and Assisted targeting; centred framed help.",
      "alt": "Low passes, Normal speed and Assisted targeting; centred framed help.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-defaults.png",
      "image_sha256": "04e01d870ae884ff309d167e57340228d8f284f9e9871985b611f459ed633567",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "pass-defaults",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/pass-defaults.png",
      "after_caption": "Low passes, Normal speed and Assisted targeting; centred framed help.",
      "actual_visible": "Pass HeightLow, SpeedNormal and ModeAssisted selected in main menu; centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Low passes, Normal speed and Assisted targeting; centred framed help.",
      "after_anchor": "picture-004"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-5",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 5,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/penalty-default.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Penaltys50% by default; centred help stays inside its native border.",
      "alt": "Penaltys50% by default; centred help stays inside its native border.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/penalty-default.png",
      "image_sha256": "f88ec3c7e8b75bfbf91b5b70e0724bec9edb75f7a5899b06839dfb4d3a037988",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "penalty-default",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/penalty-default.png",
      "after_caption": "Penaltys50% by default; centred help stays inside its native border.",
      "actual_visible": "Main-menu selected Penaltys50%, with Low/Normal/Assisted/Default-cone rows and framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Penaltys50% by default; centred help stays inside its native border.",
      "after_anchor": "picture-005"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-6",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 6,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/goalie-default.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Alt Goalies On by default, with independent Pickup Delay.",
      "alt": "Alt Goalies On by default, with independent Pickup Delay.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/goalie-default.png",
      "image_sha256": "3a09a383af54a8aa5fe8b94b9e636a8e27df83a4a576740163886a21f6d364dc",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "goalie-default",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/goalie-default.png",
      "after_caption": "Alt Goalies On by default, with independent Pickup Delay.",
      "actual_visible": "AltGoaliesOn NewGoalieModel selected, PickupDelayOff BriefCatchLock, PassChargeOff, Penaltys50%, Defaultcone; framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Alt Goalies On by default, with independent Pickup Delay.",
      "after_anchor": "picture-006"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-7",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 7,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Momentum On, \u00b110% Stats, and centred help inside the native frame.",
      "alt": "Momentum On, \u00b110% Stats, and centred help inside the native frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-menu.png",
      "image_sha256": "28dbf2758e0e951a609fcb07b9ba5ec836f5006540324a6acaa2292379d2c599",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "momentum-menu",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/momentum-menu.png",
      "after_caption": "Momentum On, \u00b110% Stats, and centred help inside the native frame.",
      "actual_visible": "MomentumOn \u00b110%Stats selected; AIShotPlanOn, AltGoaliesOn, PickupDelayOff and PassChargeOff visible; centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Momentum On, \u00b110% Stats, and centred help inside the native frame.",
      "after_anchor": "picture-007"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-8",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 8,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/units-menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 KMH selected by default; framed help remains fully visible.",
      "alt": "KMH selected by default; framed help remains fully visible.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/units-menu.png",
      "image_sha256": "c61d638ffda492e966b4d845cc19e82b6912f7ae79d80fffc842cac0bc7e6fca",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "units-menu",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/units-menu.png",
      "after_caption": "KMH selected by default; framed help remains fully visible.",
      "actual_visible": "ShotUnitsKMH selected with MomentumOn and AIShotPlanOn; centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "KMH selected by default; framed help remains fully visible.",
      "after_anchor": "picture-008"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-9",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 9,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/glass-menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Fragile Glass On by default; final scroll row and footer frame remain separate.",
      "alt": "Fragile Glass On by default; final scroll row and footer frame remain separate.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/glass-menu.png",
      "image_sha256": "4ee0e8d800eb9abf990079763a951343089de218ec741db6d208fd141c1b2154",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "glass-menu",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/glass-menu.png",
      "after_caption": "Fragile Glass On by default; final scroll row and footer frame remain separate.",
      "actual_visible": "FragileGlassOn selected on last menu row, KMH and MomentumOn above, separate centred footer frame.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Fragile Glass On by default; final scroll row and footer frame remain separate.",
      "after_anchor": "picture-009"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-10",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 10,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Crit Shots Off by default; independent option and centred framed controls.",
      "alt": "Crit Shots Off by default; independent option and centred framed controls.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-menu.png",
      "image_sha256": "b8a3ee1008a5a6415833676ab00365bea94b817fcf428d6170aa0b5c0de3c291",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "crit-menu",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/crit-menu.png",
      "after_caption": "Crit Shots Off is selected and visibly rendered in the main menu; the help is centred inside its native border.",
      "actual_visible": "Main menu RulesOnExceptOffsides, LineChangesAuto, FightingOff, DifficultyHard, AutoReplaysOff selected. NO CritShots row is visible.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Crit Shots Off is selected and visibly rendered in the main menu; the help is centred inside its native border.",
      "after_anchor": "picture-010"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-11",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 11,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-0.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Quickgame: 1 vs1; centred controls inside the native footer frame.",
      "alt": "Quickgame: 1 vs1; centred controls inside the native footer frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-0.png",
      "image_sha256": "aa7d7fd199ed43839f671620c084aebf928db797259737a1a7a43d79bef29172",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "quick-0",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/quick-0.png",
      "after_caption": "Quickgame: 1 vs1; centred controls inside the native footer frame.",
      "actual_visible": "Quickgame main menu, Players1vs1 Humans, Edmonton/NewYork, five-minute period, framed centred footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Quickgame: 1 vs1; centred controls inside the native footer frame.",
      "after_anchor": "picture-011"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-12",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 12,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-1.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Quickgame: 1 vs2; centred controls inside the native footer frame.",
      "alt": "Quickgame: 1 vs2; centred controls inside the native footer frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-1.png",
      "image_sha256": "66061db17275c6e5dd6e5b912b99f943ed7e34504f491f5a2f40f4a7a61755f7",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "quick-1",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/quick-1.png",
      "after_caption": "Quickgame: 1 vs2; centred controls inside the native footer frame.",
      "actual_visible": "Quickgame1vs2Humans, Edmonton/NewYork, five-minute period, centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Quickgame: 1 vs2; centred controls inside the native footer frame.",
      "after_anchor": "picture-012"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-13",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 13,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-2.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Quickgame: 1 vs3; centred controls inside the native footer frame.",
      "alt": "Quickgame: 1 vs3; centred controls inside the native footer frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-2.png",
      "image_sha256": "3bd8f5a5f13d6c5c39ccfec3a60b3de8d8164bf337af18d05a4fcd5ed9de29f3",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "quick-2",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/quick-2.png",
      "after_caption": "Quickgame: 1 vs3; centred controls inside the native footer frame.",
      "actual_visible": "Quickgame1vs3Humans, Edmonton/NewYork, centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Quickgame: 1 vs3; centred controls inside the native footer frame.",
      "after_anchor": "picture-013"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-14",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 14,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-3.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Quickgame: 2 vs2; centred controls inside the native footer frame.",
      "alt": "Quickgame: 2 vs2; centred controls inside the native footer frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-3.png",
      "image_sha256": "960d18c85b135ca8acb7f6105533b0866afc7fbff9e5097ab8a7bf2c590c2b54",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "quick-3",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/quick-3.png",
      "after_caption": "Quickgame: 2 vs2; centred controls inside the native footer frame.",
      "actual_visible": "Quickgame main menu, Players2vs2 Humans, Edmonton/NewYork, framed centred footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Quickgame: 2 vs2; centred controls inside the native footer frame.",
      "after_anchor": "picture-014"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-15",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 15,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-0.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Allstar: 1 vs1; centred controls inside the native footer frame.",
      "alt": "Allstar: 1 vs1; centred controls inside the native footer frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-0.png",
      "image_sha256": "196c3d8f1d9f0e5d5dd01b11b832b1bddef44330f6cca8d81f54e0662c6548b4",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "allstar-0",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/allstar-0.png",
      "after_caption": "Allstar: 1 vs1; centred controls inside the native footer frame.",
      "actual_visible": "AllstarMode1vs1Humans, AllstarA/AllstarB, centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Allstar: 1 vs1; centred controls inside the native footer frame.",
      "after_anchor": "picture-015"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-16",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 16,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-1.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Allstar: 1 vs2; centred controls inside the native footer frame.",
      "alt": "Allstar: 1 vs2; centred controls inside the native footer frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-1.png",
      "image_sha256": "2ad61142311ab6830ff7c11a700e9e2bb4ac98f2eb73a34526b1c7b65c4eda4f",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "allstar-1",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/allstar-1.png",
      "after_caption": "Allstar: 1 vs2; centred controls inside the native footer frame.",
      "actual_visible": "AllstarMode1vs2Humans, AllstarA/AllstarB, centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Allstar: 1 vs2; centred controls inside the native footer frame.",
      "after_anchor": "picture-016"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-17",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 17,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-2.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Allstar: 1 vs3; centred controls inside the native footer frame.",
      "alt": "Allstar: 1 vs3; centred controls inside the native footer frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-2.png",
      "image_sha256": "3e6790ca395546a6fd1759704b5068eaea4cbf1e140e47fd93f051877f544a0e",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "allstar-2",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/allstar-2.png",
      "after_caption": "Allstar: 1 vs3; centred controls inside the native footer frame.",
      "actual_visible": "AllstarMode1vs3Humans, AllstarA/AllstarB, centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Allstar: 1 vs3; centred controls inside the native footer frame.",
      "after_anchor": "picture-017"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-18",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 18,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-3.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Allstar: 2 vs2; centred controls inside the native footer frame.",
      "alt": "Allstar: 2 vs2; centred controls inside the native footer frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-3.png",
      "image_sha256": "6a3c2d3ff5e42f360a6275bbb5316cccbe2f70edd5a796c4ac6e3a2570ec4699",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "allstar-3",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/allstar-3.png",
      "after_caption": "Allstar: 2 vs2; centred controls inside the native footer frame.",
      "actual_visible": "AllstarMode2vs2Humans, AllstarA/AllstarB, centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Allstar: 2 vs2; centred controls inside the native footer frame.",
      "after_anchor": "picture-018"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-19",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 19,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-cpu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Allstar: 1 vs CPU; centred controls inside the native footer frame.",
      "alt": "Allstar: 1 vs CPU; centred controls inside the native footer frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-cpu.png",
      "image_sha256": "7e31ec1416b73d83a7fc709a14c7af7dd99de4af556eed955e72bfe6b01e91fb",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "allstar-cpu",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/allstar-cpu.png",
      "after_caption": "Allstar: 1 vs CPU; centred controls inside the native footer frame.",
      "actual_visible": "ALLSTAR MODE menu: Players1vsCPU, HomeAllstarA AwayAllstarB, centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Allstar: 1 vs CPU; centred controls inside the native footer frame.",
      "after_anchor": "picture-019"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-20",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 20,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/light.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Light season:31 games and framed centred help. Help is centred in its native frame.",
      "alt": "Light season:31 games and framed centred help. Help is centred in its native frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/light.png",
      "image_sha256": "b5f749f9f05daccaba6585922d58a4464915d6297beba2460eb91c2866c38a6f",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "light",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/light.png",
      "after_caption": "Light season:31 games and framed centred help. Help is centred in its native frame.",
      "actual_visible": "New SeasonLight main menu, Edmonton, Away1/31vsNYR, framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Light season:31 games and framed centred help. Help is centred in its native frame.",
      "after_anchor": "picture-020"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-21",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 21,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/mini.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "alt": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/mini.png",
      "image_sha256": "dbcf2297356d7edeb651bed17e2abd7882cd2e23eeeaac4129aea5f0013cd73b",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "mini",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/mini.png",
      "after_caption": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "actual_visible": "New SeasonMini menu, Edmonton, Away1/7vsSEA, five-minute period and framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "after_anchor": "picture-021"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-22",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 22,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/directional.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Directional mode selected; Low pass height remains independent. Help is centred in its native frame.",
      "alt": "Directional mode selected; Low pass height remains independent. Help is centred in its native frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/directional.png",
      "image_sha256": "b0b5b9426559d135212d61c0f652d5065a91e0ec17d33d258839e77a406eb3ba",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "directional",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/directional.png",
      "after_caption": "Directional mode selected; Low pass height remains independent. Help is centred in its native frame.",
      "actual_visible": "Pass Mode Directional selected; Pass HeightLow and Pass SpeedNormal visible; framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Directional mode selected; Low pass height remains independent. Help is centred in its native frame.",
      "after_anchor": "picture-022"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-23",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 23,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/cone45.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Assisted targeting with a45-degree half-cone. Help is centred in its native frame.",
      "alt": "Assisted targeting with a45-degree half-cone. Help is centred in its native frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/cone45.png",
      "image_sha256": "f6409782bf78e4509e10828fff2670fbc35f174ea82642ab4dd3370d61755d4d",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "cone45",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/cone45.png",
      "after_caption": "Pass Mode Assisted and Target Cone45degrees selected; framed centred controls remain below.",
      "actual_visible": "Assisted PassMode, TargetCone45degrees selected, Low/Normal, centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Pass Mode Assisted and Target Cone45degrees selected; framed centred controls remain below.",
      "after_anchor": "picture-023"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-24",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 24,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/slow.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Slow pass speed remains independent of Low height and Assisted mode. Help is centred in its native frame.",
      "alt": "Slow pass speed remains independent of Low height and Assisted mode. Help is centred in its native frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/slow.png",
      "image_sha256": "30a905a015847d2666e1c0196301338dfbffb5f2e32df580a2d1867c0d1164dd",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "slow",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/slow.png",
      "after_caption": "Pass Speed Slow selected, alongside Low height, Assisted mode and a45-degree target cone.",
      "actual_visible": "Pass SpeedSlow selected, Pass HeightLow, Assisted, TargetCone45degrees, framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Pass Speed Slow selected, alongside Low height, Assisted mode and a45-degree target cone.",
      "after_anchor": "picture-024"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-25",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 25,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/mph.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 MPH selected instead of default KMH. Help is centred in its native frame.",
      "alt": "MPH selected instead of default KMH. Help is centred in its native frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/mph.png",
      "image_sha256": "d55954e376397a230947d9c6a536a580a1cde0c35694720805be5e964f91aa26",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "mph",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/mph.png",
      "after_caption": "MPH selected instead of default KMH. Help is centred in its native frame.",
      "actual_visible": "ShotUnitsMPH selected, MomentumOn, centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "MPH selected instead of default KMH. Help is centred in its native frame.",
      "after_anchor": "picture-025"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-26",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 26,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/glass-off.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Fragile Glass Off keeps the original glass behavior. Help is centred in its native frame.",
      "alt": "Fragile Glass Off keeps the original glass behavior. Help is centred in its native frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/glass-off.png",
      "image_sha256": "e31b54758ca564bfc3c6cc1269e1552732e124e66354a1487ee74509fbda19a9",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "glass-off",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/glass-off.png",
      "after_caption": "Fragile Glass Off selected in the main menu; centred framed controls. The behavior is verified separately.",
      "actual_visible": "FragileGlassOff selected, ShotUnitsMPH, centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Fragile Glass Off selected in the main menu; centred framed controls. The behavior is verified separately.",
      "after_anchor": "picture-026"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-27",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 27,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/pickup-on.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Optional Pickup Delay On. Help is centred in its native frame.",
      "alt": "Optional Pickup Delay On. Help is centred in its native frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pickup-on.png",
      "image_sha256": "b14776aa7d1bf797494ede65a3714545ba216f0f0d86c66a9c5f6e0a388528dd",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "pickup-on",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/pickup-on.png",
      "after_caption": "Optional Pickup Delay On. Help is centred in its native frame.",
      "actual_visible": "PickupDelayOn BriefCatchLock selected, AltGoalies/AIShotPlan/MomentumOff, centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Optional Pickup Delay On. Help is centred in its native frame.",
      "after_anchor": "picture-027"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-28",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 28,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/charge-on.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Optional Pass Charge On. Help is centred in its native frame.",
      "alt": "Optional Pass Charge On. Help is centred in its native frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/charge-on.png",
      "image_sha256": "ac3ba74b31944c7283a654798ba96bd0f795ddabc1ae659ec916ec0ef2f65bc8",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "charge-on",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/charge-on.png",
      "after_caption": "Optional Pass Charge On. Help is centred in its native frame.",
      "actual_visible": "PassChargeOn selected, PickupDelayOn and other optionsOff, centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Optional Pass Charge On. Help is centred in its native frame.",
      "after_anchor": "picture-028"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-29",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 29,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/penalty-off.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Penaltys Off selected. Help is centred in its native frame.",
      "alt": "Penaltys Off selected. Help is centred in its native frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/penalty-off.png",
      "image_sha256": "eb401fd6c806acaae3a6fc08cff3ac407877411291284bf20c364fdb54241f21",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "penalty-off",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/penalty-off.png",
      "after_caption": "Penaltys Off selected. Help is centred in its native frame.",
      "actual_visible": "PenaltysOff selected, PassChargeOn and PickupDelayOn, centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Penaltys Off selected. Help is centred in its native frame.",
      "after_anchor": "picture-029"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-30",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 30,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/penalty100.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Penaltys100% selected; default remains50%. Help is centred in its native frame.",
      "alt": "Penaltys100% selected; default remains50%. Help is centred in its native frame.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/penalty100.png",
      "image_sha256": "c989a81b7c100339469fdba0fea94783d2ad641d29f461593d869623b79158cd",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "penalty100",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/penalty100.png",
      "after_caption": "Penaltys100% selected; default remains50%. Help is centred in its native frame.",
      "actual_visible": "Penaltys100% selected, PassChargeOn, centred framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Penaltys100% selected; default remains50%. Help is centred in its native frame.",
      "after_anchor": "picture-030"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-31",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 31,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/transfers-on.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Transfers On selected immediately below Icing.",
      "alt": "Transfers On selected immediately below Icing.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/transfers-on.png",
      "image_sha256": "b7dad958ef5ca258f7f708f758ad0da829e231c8279dd92169c2eefe673a567e",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "transfers-on",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/transfers-on.png",
      "after_caption": "Transfers On selected immediately below Icing.",
      "actual_visible": "Main menu: Difficulty Hard, AutoReplays Off, CritShots Off, Icing On, Transfers On selected immediately below Icing; framed centred help.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Transfers On selected immediately below Icing.",
      "after_anchor": "picture-031"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-32",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 32,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/transfer-home.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season.",
      "alt": "Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/transfer-home.png",
      "image_sha256": "2446c76b0e1ae098b5ffca66310d802736e36555c4d73a9fbb63982184fac86f",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "transfer-home",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/transfer-home.png",
      "after_caption": "Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season.",
      "actual_visible": "Preseason Transfers home for Edmonton, budget$16.042.000, Buy players, Sell players, Ready for season.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season.",
      "after_anchor": "picture-032"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-33",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 33,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/sell-roster.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "alt": "Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/sell-roster.png",
      "image_sha256": "3ddef5c2a251d7206b4b458fa0fdb51d9b36f7874a5d3e2ceb09186a0220a909",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "sell-roster",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/sell-roster.png",
      "after_caption": "Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "actual_visible": "Edmonton Sell your players, OVR-sorted96 McDavid,85 Draisaitl,76 Bouchard; initial budget$16.042.000 and dollar prices.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "after_anchor": "picture-033"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-34",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 34,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/sold-jarry.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 After selling Connor McDavid for $9.216.000, the budget is $25.258.000.",
      "alt": "After selling Connor McDavid for $9.216.000, the budget is $25.258.000.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/sold-jarry.png",
      "image_sha256": "33bcf197226dd292d12aaddd55b5fe4c383879c4ae2c0a6aef82f1670d2fdf8c",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "sold-jarry",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/sold-remaining.png",
      "after_caption": "Edmonton\u2019s remaining owned roster is led by Draisaitl85; the budget is$25.258.000 after the separate McDavid sale.",
      "actual_visible": "Edmonton remaining Sell list startsDraisaitl85; McDavid absent; budget$25.258.000.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Edmonton\u2019s remaining owned roster is led by Draisaitl85; the budget is$25.258.000 after the separate McDavid sale.",
      "after_anchor": "picture-034"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-35",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 35,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/sold-hyman.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 After buying Connor McDavid back, the budget returns to $16.042.000.",
      "alt": "After buying Connor McDavid back, the budget returns to $16.042.000.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/sold-hyman.png",
      "image_sha256": "8b0e6dfa5d3963a6a619e2c21de9c48d1a76796b30b129b1d4d58ae7fd300bb6",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "sold-hyman",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/bought-back.png",
      "after_caption": "Connor McDavid C96 is back in Edmonton\u2019s owned roster; budget$16.042.000 and price$9.216.000 are visible.",
      "actual_visible": "Empty FreeAgents buy list saysNoavailableplayers; budget$16.042.000.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Connor McDavid C96 is back in Edmonton\u2019s owned roster; budget$16.042.000 and price$9.216.000 are visible.",
      "after_anchor": "picture-035"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-36",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 36,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/buy-club.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Boston buying list: original player names, natural positions, overall and dollar prices.",
      "alt": "Boston buying list: original player names, natural positions, overall and dollar prices.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/buy-club.png",
      "image_sha256": "2a882eb0567ec199fed7b837fcde087d1ef7b407f61e6d8f875264da6973415e",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "buy-club",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/buy-club.png",
      "after_caption": "Boston buying list: original player names, natural positions, overall and dollar prices.",
      "actual_visible": "Boston buy list includesPastrnak82,Swayman81,Geekie79; dollar prices/positions and$16.042.000 budget.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Boston buying list: original player names, natural positions, overall and dollar prices.",
      "after_anchor": "picture-036"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-37",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 37,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/free-agents.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap.",
      "alt": "Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/free-agents.png",
      "image_sha256": "f5bd508cc8856496e3d50443b1680bf0a19102ee5e30c462bf7c9297d66a9640",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "free-agents",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/free-agents.png",
      "after_caption": "Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap.",
      "actual_visible": "Free agents buy list containing Connor McDavid C96 at$9.216.000; budget$25.258.000.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap.",
      "after_anchor": "picture-037"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-38",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 38,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/bought-jarry.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Buying McDavid back costs $9.216.000 and leaves $16.042.000.",
      "alt": "Buying McDavid back costs $9.216.000 and leaves $16.042.000.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/bought-jarry.png",
      "image_sha256": "8b0e6dfa5d3963a6a619e2c21de9c48d1a76796b30b129b1d4d58ae7fd300bb6",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "bought-jarry",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/bought-back.png",
      "after_caption": "Connor McDavid C96 is back in Edmonton\u2019s owned roster; budget$16.042.000 and price$9.216.000 are visible.",
      "actual_visible": "Empty FreeAgents buy list saysNoavailableplayers; budget$16.042.000.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Connor McDavid C96 is back in Edmonton\u2019s owned roster; budget$16.042.000 and price$9.216.000 are visible.",
      "after_anchor": "picture-038"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-39",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 39,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/full-roster-blocked.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 A full roster refuses a purchase; budget remains $16.042.000.",
      "alt": "A full roster refuses a purchase; budget remains $16.042.000.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/full-roster-blocked.png",
      "image_sha256": "7b72c850e3cc547aaa740aa389b9f422da1c2ff9b3aa208cbf12171877f9dcd4",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "full-roster-blocked",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/full-roster-blocked.png",
      "after_caption": "A full roster refuses a purchase; budget remains $16.042.000.",
      "actual_visible": "Anaheim buy list, budget$16.042.000; visible Roster full, sell a player first refusal above footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "A full roster refuses a purchase; budget remains $16.042.000.",
      "after_anchor": "picture-039"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-40",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 40,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/minimum-keepers-protected.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The final required goalkeeper cannot be sold; $22.078.000 remains unchanged.",
      "alt": "The final required goalkeeper cannot be sold; $22.078.000 remains unchanged.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/minimum-keepers-protected.png",
      "image_sha256": "ecdb62bf4f26772a582e4f4d494849ea5c337b2d22501c1592cf869b1f4d2979",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "minimum-keepers-protected",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/minimum-keepers-protected.png",
      "after_caption": "Jarry G70 is selected for sale; Club needs this position or player refuses it. The$22.078.000 budget is unchanged.",
      "actual_visible": "JarryG70 selected inSell list; visibleClubneedsthispositionorplayer refusal, budget$22.078.000.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Jarry G70 is selected for sale; Club needs this position or player refuses it. The$22.078.000 budget is unchanged.",
      "after_anchor": "picture-040"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-41",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 41,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/bought-star-99.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 OVR99 Nathan MacKinnon bought for $9.801.000; remaining budget $12.277.000.",
      "alt": "OVR99 Nathan MacKinnon bought for $9.801.000; remaining budget $12.277.000.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/bought-star-99.png",
      "image_sha256": "73657e134a70a0ba7f9236f4a78a6d9c27e3823b42ba467a384713e2bb6fe6bd",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "bought-star-99",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/acquired-star.png",
      "after_caption": "Edmonton owned roster: Nathan MacKinnon C99 at$9.801.000; remaining budget$12.277.000.",
      "actual_visible": "Colorado remaining buy list starts Martin Necas86; budget$12.277.000. Nathan MacKinnon is absent.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Edmonton owned roster: Nathan MacKinnon C99 at$9.801.000; remaining budget$12.277.000.",
      "after_anchor": "picture-041"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-42",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 42,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/bought-middle-79.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 OVR79 Morgan Geekie bought for $6.241.000; remaining budget $6.036.000.",
      "alt": "OVR79 Morgan Geekie bought for $6.241.000; remaining budget $6.036.000.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/bought-middle-79.png",
      "image_sha256": "8057ca4a654867662bb45e96d808d967cd8b4a10549ebc579bcb5411af15f266",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "bought-middle-79",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/acquired-middle.png",
      "after_caption": "Edmonton owned roster includes Morgan Geekie C79 at$6.241.000 and Nathan MacKinnon C99; budget$6.036.000.",
      "actual_visible": "Boston remaining buy list starts Pastrnak82; budget$6.036.000. Morgan Geekie is absent.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Edmonton owned roster includes Morgan Geekie C79 at$6.241.000 and Nathan MacKinnon C99; budget$6.036.000.",
      "after_anchor": "picture-042"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-43",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 43,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/insufficient-budget-protected.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 A $9.801.000 purchase is refused with only $6.036.000 remaining.",
      "alt": "A $9.801.000 purchase is refused with only $6.036.000 remaining.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/insufficient-budget-protected.png",
      "image_sha256": "b4cd9189a10ca3da6c93d856b20aca542791c15673961c0268fc9f9610509beb",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "insufficient-budget-protected",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/insufficient-budget-protected.png",
      "after_caption": "A $9.801.000 purchase is refused with only $6.036.000 remaining.",
      "actual_visible": "Islanders buy list: Ilya Sorokin G99$9.801.000, budget$6.036.000; visible Not enough money for this player.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "A $9.801.000 purchase is refused with only $6.036.000 remaining.",
      "after_anchor": "picture-043"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-44",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 44,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/roster-after-star-middle.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current Edmonton roster after buying the OVR99 star and OVR79 middle player.",
      "alt": "Current Edmonton roster after buying the OVR99 star and OVR79 middle player.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/roster-after-star-middle.png",
      "image_sha256": "60ebdce91afb584cb0764152dad0460b03dd47c0a8b53cea1feb193519e9855d",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "roster-after-star-middle",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/roster-after-star-middle.png",
      "after_caption": "Current Edmonton roster after buying the OVR99 star and OVR79 middle player.",
      "actual_visible": "Edmonton owned Sell roster: Nathan MacKinnon99, McDavid96, Draisaitl85, Morgan Geekie79; budget$6.036.000.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Current Edmonton roster after buying the OVR99 star and OVR79 middle player.",
      "after_anchor": "picture-044"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-45",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 45,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/after-trades-presentation-550.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Original native Matchups presentation uses the actual transferred roster.",
      "alt": "Original native Matchups presentation uses the actual transferred roster.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/after-trades-presentation-550.png",
      "image_sha256": "d31dfe27af351152d0b89b215910d8a21854427adf4936313a342d36721794af",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "after-trades-presentation-550",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/after-trades-presentation-550.png",
      "after_caption": "Native centre presentation after the documented trades: Zibanejad68 versus Edmonton\u2019s MacKinnon98.",
      "actual_visible": "Native centre Matchups: NYR Zibanejad68 vs Edmonton MacKinnon98, with portraits.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Native centre presentation after the documented trades: Zibanejad68 versus Edmonton\u2019s MacKinnon98.",
      "after_anchor": "picture-045"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-46",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 46,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/after-trades-presentation-1000.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current players and native hot/cold commentary after real transfers.",
      "alt": "Current players and native hot/cold commentary after real transfers.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/after-trades-presentation-1000.png",
      "image_sha256": "b3e06c80fc2be5a5f33d3bcadfea7a7e928fe6aa35cf910d9a49d3ed4b8b186b",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "after-trades-presentation-1000",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/after-trades-presentation-1000.png",
      "after_caption": "Native right-forward presentation: Dorofeyev71 COLD versus Kapanen66, with separate hot/cold commentary.",
      "actual_visible": "Native right-forward Matchups,Dorofeyev71COLD vsKapanen66; commentary saysJarryhot/Hymanpoor.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Native right-forward presentation: Dorofeyev71 COLD versus Kapanen66, with separate hot/cold commentary.",
      "after_anchor": "picture-046"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-47",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 47,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/startup.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The preserved NHL94 Season Edition startup.",
      "alt": "The preserved NHL94 Season Edition startup.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/startup.png",
      "image_sha256": "b727dc9a72889380934d1586acad56cde9e1435b4844342825445c6d6f2fa545",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "startup",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/startup.png",
      "after_caption": "The preserved NHL94 Season Edition startup.",
      "actual_visible": "Greyscale NHL94 shield with SeasonEdition text.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "The preserved NHL94 Season Edition startup.",
      "after_anchor": "picture-047"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-48",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 48,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/credits.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Actual startup credits: Website https://games.jdc.se.",
      "alt": "Actual startup credits: Website https://games.jdc.se.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/credits.png",
      "image_sha256": "bbe450fc2aaf7796987764a748f7d0987b1ba6a925b23004052218a180464286",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "credits",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/credits.png",
      "after_caption": "Actual startup credits: Website https://games.jdc.se.",
      "actual_visible": "Native black credits card; Website: https://games.jdc.se and START to continue.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Actual startup credits: Website https://games.jdc.se.",
      "after_anchor": "picture-048"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-49",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 49,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-uniforms.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Allstar A wears all black and Allstar B all red in the actual CPU match.",
      "alt": "Allstar A wears all black and Allstar B all red in the actual CPU match.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-uniforms.png",
      "image_sha256": "1e4d27997a9a28e55f1c186e0f284b0927c7568a0baccf8af4aa2a1b9e75fa12",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "allstar-uniforms",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/allstar-uniforms.png",
      "after_caption": "Allstar A skaters wear solid black and Allstar B solid red; ASB0 ASA0 at1st4:57.",
      "actual_visible": "Native match at centre ice: solid black skaters vs solid red skaters, scoreboardASB0 ASA0,1st4:57.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Allstar A skaters wear solid black and Allstar B solid red; ASB0 ASA0 at1st4:57.",
      "after_anchor": "picture-049"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-50",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 50,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/matchups.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Restored native team presentation: current Rangers55, transferred Edmonton56.",
      "alt": "Restored native team presentation: current Rangers55, transferred Edmonton56.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/matchups.png",
      "image_sha256": "88e73d0513b0a969d1837672f2d46dac7166533209ca64871b1f9fe3f93d0a01",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "matchups",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/matchups.png",
      "after_caption": "Restored native team presentation: current Rangers55, transferred Edmonton56.",
      "actual_visible": "Native Overall presentation: Rangers55 vs transferred Edmonton56.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Restored native team presentation: current Rangers55, transferred Edmonton56.",
      "after_anchor": "picture-050"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-51",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 51,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/pregame.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native pregame scoreboard and menu; the root has no extra button footer.",
      "alt": "Native pregame scoreboard and menu; the root has no extra button footer.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pregame.png",
      "image_sha256": "da1023fb599a733cdb3d3cef90953730097fea4c648fc51439444188be5c6021",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "pregame",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/pregame.png",
      "after_caption": "Ordinary season pregame: New York0, Edmonton0,1st5:00 and Start Game. This is not the Quickgame action menu.",
      "actual_visible": "Native NewYork0 Edmonton0,1st5:00 pregame menu withStartGame; no extra bottom button footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Ordinary season pregame: New York0, Edmonton0,1st5:00 and Start Game. This is not the Quickgame action menu.",
      "after_anchor": "picture-051"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-52",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 52,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/rink.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current players, puck, original red goal and distinct controller stars.",
      "alt": "Current players, puck, original red goal and distinct controller stars.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/rink.png",
      "image_sha256": "bf56f3e30865ba5dbf231e73e68f86278993e887ba0bd5a6f40e654e88c8e869",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "rink",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/rink.png",
      "after_caption": "Current players, puck, original red goal and distinct controller stars.",
      "actual_visible": "Native defensive-zone rink, players near red goal, red painted faceoff circles and controller markers,1st4:33 NYR0 EDM0.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Current players, puck, original red goal and distinct controller stars.",
      "after_anchor": "picture-052"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-53",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 53,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/four-stars.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Blue P1, red P2, neon-green P3 and yellow P4 in the actual four-pad match.",
      "alt": "Blue P1, red P2, neon-green P3 and yellow P4 in the actual four-pad match.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/four-stars.png",
      "image_sha256": "52c376048c8cb61306554e2b97e25cb13cfe042dbef3e68cbdb55f55ffd0ac5a",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "four-stars",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/faceoff.png",
      "after_caption": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation.",
      "actual_visible": "Four-pad rink play, clustered colored control stars, EDM powerplay0:42,3rd4:33,NYR1 EDM1; red offscreen down arrow at bottom.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation.",
      "after_anchor": "picture-053"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-54",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 54,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/powerplay-away.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Away NYR powerplay and countdown share the width and native frame of the clock below.",
      "alt": "Away NYR powerplay and countdown share the width and native frame of the clock below.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/powerplay-away.png",
      "image_sha256": "d52da8cf5efdad1fee9f54351e30528767ac4b26e09ca9ff14ee085779cfc02b",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "powerplay-away",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/powerplay-away.png",
      "after_caption": "Away NYR powerplay and countdown share the width and native frame of the clock below.",
      "actual_visible": "FramedNYRPwrPlay0:31 above3rd4:16 clock and100KMH lower panel,NYR2 EDM0.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Away NYR powerplay and countdown share the width and native frame of the clock below.",
      "after_anchor": "picture-054"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-55",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 55,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/powerplay-home.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock.",
      "alt": "Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/powerplay-home.png",
      "image_sha256": "a608bd04ee873589185eb945163754d4cecbd33be38dc0a5b2c3c2464ff73d9c",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "powerplay-home",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/powerplay-home.png",
      "after_caption": "Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock.",
      "actual_visible": "EDM PwrPlay0:36 framed box directly above unchanged1st1:09 clock; native rink play.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock.",
      "after_anchor": "picture-055"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-56",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 56,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-rink.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Actual earned Momentum bars beneath each team name in the lower-right HUD.",
      "alt": "Actual earned Momentum bars beneath each team name in the lower-right HUD.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-rink.png",
      "image_sha256": "09ea715ebbebc96113c734e4bfac07b0a121c124aaad41648cbaaf971ce35e3d",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "momentum-rink",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/momentum-away.png",
      "after_caption": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "actual_visible": "NYR1 EDM0 at1st3:05, tiny red Momentum indicator beneath EDM in lower-right scoreboard; ordinary puck/rink play.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "after_anchor": "picture-056"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-57",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 57,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/attack.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Actual final-ROM Hard gameplay, puck and physical controller indicators.",
      "alt": "Actual final-ROM Hard gameplay, puck and physical controller indicators.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/attack.png",
      "image_sha256": "97d3e3883330265184aa603ca130ba79f6079edcd6ad58f65b9f886e52f396fa",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "attack",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/attack.png",
      "after_caption": "Actual final-ROM Hard gameplay, puck and physical controller indicators.",
      "actual_visible": "Offensive-zone native play NYRpowerplay0:46,2nd2:27 NYR1 EDM0, controlled skaters and red goal.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Actual final-ROM Hard gameplay, puck and physical controller indicators.",
      "after_anchor": "picture-057"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-58",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 58,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/keeper.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Actual native goalie, puck and original red goal frame in the fresh four-pad match.",
      "alt": "Actual native goalie, puck and original red goal frame in the fresh four-pad match.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/keeper.png",
      "image_sha256": "f37b0ca9cb53477be8a2b2a477283061b5277690364a4645c84f805d31172033",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "keeper",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/keeper.png",
      "after_caption": "Goalkeeper and red crease during native play at3rd3:42. This is rink context; recovery timing and defensive policy require native QA.",
      "actual_visible": "Crowded native play at upper red goal,3rd3:42 NYR1 EDM1, goalie and puck/skaters close to crease.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Goalkeeper and red crease during native play at3rd3:42. This is rink context; recovery timing and defensive policy require native QA.",
      "after_anchor": "picture-058"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-59",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 59,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/period-menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The native second-period Resume Game screen, with its original muted palette.",
      "alt": "The native second-period Resume Game screen, with its original muted palette.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/period-menu.png",
      "image_sha256": "01f550fc7dd2fd80d152ba0bfb687b20feed8f06e81a9da058b87c8acea73e6a",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "period-menu",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/period-menu.png",
      "after_caption": "The native second-period Resume Game screen, with its original muted palette.",
      "actual_visible": "Second-period ResumeGame native menu,5:00,NYR1 EDM1; original muted inactive choices and scores ticker.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "The native second-period Resume Game screen, with its original muted palette.",
      "after_anchor": "picture-059"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-60",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 60,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/stars.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Stars of the Game after the actual fresh final-ROM match: New York3, Edmonton2.",
      "alt": "Stars of the Game after the actual fresh final-ROM match: New York3, Edmonton2.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/stars.png",
      "image_sha256": "27e389209e7fdb292fd92890611c2d2d1fdc0f385a3550b0ae4e6e7a47979bd6",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "stars",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/stars.png",
      "after_caption": "Stars of the Game after the actual fresh final-ROM match: New York3, Edmonton2.",
      "actual_visible": "GameOver and Stars of Game panel: Dorofeyev, Zibanejad, Bouchard; lower-right NYR3 EDM2,OT0:00.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Stars of the Game after the actual fresh final-ROM match: New York3, Edmonton2.",
      "after_anchor": "picture-060"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-61",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 61,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/hot-cold.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current native presentation: Adam Fox COLD and Evan Bouchard HOT.",
      "alt": "Current native presentation: Adam Fox COLD and Evan Bouchard HOT.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/hot-cold.png",
      "image_sha256": "d918949cd10f203b0630652387047cbcdf67da1e962c43e7d3b6befc95fe31e8",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "hot-cold",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/hot-cold.png",
      "after_caption": "Current native presentation: Adam Fox COLD and Evan Bouchard HOT.",
      "actual_visible": "Native left defenseman Matchups: Adam Fox73 COLD, Evan Bouchard88 HOT, with portraits.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Current native presentation: Adam Fox COLD and Evan Bouchard HOT.",
      "after_anchor": "picture-061"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-62",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 62,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/hot-commentary.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native commentary reflects the current transferred-season roster and hot/cold state.",
      "alt": "Native commentary reflects the current transferred-season roster and hot/cold state.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/hot-commentary.png",
      "image_sha256": "cbc48eba00f17ad196941d18d2cca814d94803dac7e3d6d4ba2542f445fb0de1",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "hot-commentary",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/hot-commentary.png",
      "after_caption": "Native right-forward presentation: Dorofeyev80 HOT versus Kapanen78; commentary mentions Bouchard and Jarry.",
      "actual_visible": "Native right-forward Matchups,Dorofeyev80HOT vsKapanen78; commentary saysBouchardhot/Jarrypoor.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Native right-forward presentation: Dorofeyev80 HOT versus Kapanen78; commentary mentions Bouchard and Jarry.",
      "after_anchor": "picture-062"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-63",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 63,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-overall.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms.",
      "alt": "Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-overall.png",
      "image_sha256": "acbbf46ac4b350c52dfd31ab8f57b4350ca594a42c5dfd970ae3254fb0d6a1e3",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "allstar-overall",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/allstar-overall.png",
      "after_caption": "Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms.",
      "actual_visible": "Native Matchups Overall82/82 with Boston/Anaheim logo shells.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms.",
      "after_anchor": "picture-063"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-64",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 64,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-hot.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native Allstar player presentation and hot-player commentary.",
      "alt": "Native Allstar player presentation and hot-player commentary.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-hot.png",
      "image_sha256": "59ccbde46886092e118b29dd8ea7e53ef51010256f19e8ad91a7f04a1e7f6a42",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "allstar-hot",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/allstar-hot.png",
      "after_caption": "Allstar left-forward presentation: #97 Kaprizov marked HOT versus #41 Stenberg, with their native rating display and commentary.",
      "actual_visible": "Allstar native left-forward comparison: Kaprizov97 HOT versus Stenberg88; commentary mentions Kucherov hot.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Allstar left-forward presentation: #97 Kaprizov marked HOT versus #41 Stenberg, with their native rating display and commentary.",
      "after_anchor": "picture-064"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-65",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 65,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/keeper-select.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native goalkeeper selection and current roster names.",
      "alt": "Native goalkeeper selection and current roster names.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/keeper-select.png",
      "image_sha256": "c9ef8d0181c7fafbb382881faa881d52f072b611576740ebe5ec5e05920f75b2",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "keeper-select",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/keeper-select.png",
      "after_caption": "Native goalkeeper selection and current roster names.",
      "actual_visible": "ChangeGoalie substitution menu listsJarry/Levi/Andersen,1st3:17 NYR2 EDM0, shared controls.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Native goalkeeper selection and current roster names.",
      "after_anchor": "picture-065"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-66",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 66,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/lines.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The current native Line Editor and consistent controls.",
      "alt": "The current native Line Editor and consistent controls.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/lines.png",
      "image_sha256": "1343baaaddcdd3b0b46ba2c1522359dc7bcb255a4b1694cd7745470795765282",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "lines",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/lines.png",
      "after_caption": "The current native Line Editor and consistent controls.",
      "actual_visible": "EdmontonLineEditor selectedEvanBouchard; Sc1/Sc2/Chk columns and sharedA/B/Start controls.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "The current native Line Editor and consistent controls.",
      "after_anchor": "picture-066"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-67",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 67,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/game-stats.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current match statistics.",
      "alt": "Current match statistics.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/game-stats.png",
      "image_sha256": "8ddff4a249a681be7aeea4f1f16d67c4dddbf1a6b41926a5bd0170727d927699",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "game-stats",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/game-stats.png",
      "after_caption": "Current match statistics.",
      "actual_visible": "GameStatistics,NYR2 EDM0,shots4vs0,shooting50%vs0%,PP andSH rows.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Current match statistics.",
      "after_anchor": "picture-067"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-68",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 68,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/player-stats.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current player statistics and sorting controls.",
      "alt": "Current player statistics and sorting controls.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/player-stats.png",
      "image_sha256": "56d7e5d29aba64cc06ea30ebe3328b1f3260073c6c72716881bacf73c6099aae",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "player-stats",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/player-stats.png",
      "after_caption": "Current player statistics and sorting controls.",
      "actual_visible": "Edmonton PLAYER STATS, Goals selected, Bouchard/Murphy/Shea/Frederic/Ekholm initial zero totals, stat/scroll/back controls.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Current player statistics and sorting controls.",
      "after_anchor": "picture-068"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-69",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 69,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/scoring.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The actual current match scoring summary.",
      "alt": "The actual current match scoring summary.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/scoring.png",
      "image_sha256": "744ff5c804b581421a333974ce5bac7ac03fd57a6d8774060659ee34ad83dbee",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "scoring",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/scoring.png",
      "after_caption": "Scoring Summary: first-period New York goals by Dorofeyev at0:55 and Gavrikov at1:43, with their assists.",
      "actual_visible": "NewYork/Edmonton SCORING SUMMARY with1st0:55Dorofeyev and1:43Gavrikov goals and assists.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Scoring Summary: first-period New York goals by Dorofeyev at0:55 and Gavrikov at1:43, with their assists.",
      "after_anchor": "picture-069"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-70",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 70,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/penalties.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The native penalty summary and Back controls.",
      "alt": "The native penalty summary and Back controls.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/penalties.png",
      "image_sha256": "4ef0b43a2159a45a508f5d35bffe2ffc19084c3d1089768a8b7968bcd552ac03",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "penalties",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/penalties.png",
      "after_caption": "Native Penalty Summary with no entries in this match moment; scroll/back controls remain visible.",
      "actual_visible": "Empty NewYork/EdmontonPenaltySummary table with scroll/back controls.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Native Penalty Summary with no entries in this match moment; scroll/back controls remain visible.",
      "after_anchor": "picture-070"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-71",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 71,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/roster.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current on-ice and bench roster status.",
      "alt": "Current on-ice and bench roster status.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/roster.png",
      "image_sha256": "1ba3ad0a016f5509b55dc9aaaca9570f3de3f386257eeeb6fa953f7c36d50a33",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "roster",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/roster.png",
      "after_caption": "Team Roster Status for Scoring2: Walman, Shea, Howard, Draisaitl and Podkolzin are marked Ice.",
      "actual_visible": "Edmonton TEAM ROSTER, Scoring2 Status; Walman/Shea/Howard/Draisaitl/Podkolzin all markedIce.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Team Roster Status for Scoring2: Walman, Shea, Howard, Draisaitl and Podkolzin are marked Ice.",
      "after_anchor": "picture-071"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-72",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 72,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/standings.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native division standings and player/statistics controls.",
      "alt": "Native division standings and player/statistics controls.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/standings.png",
      "image_sha256": "c5515c86b6bbbf9aabd530468e7fc59b0ec690d9d797d83b8ff2a7d0458ac429",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "standings",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/standings.png",
      "after_caption": "Native Atlantic Division standings with eight clubs and initial zero records; division/team/player controls are visible.",
      "actual_visible": "STANDINGS table AtlanticDivision, eight clubs with zero initial records, L/RDivision U/DTeam A/StartBack BPlayers.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Native Atlantic Division standings with eight clubs and initial zero records; division/team/player controls are visible.",
      "after_anchor": "picture-072"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-73",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 73,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/crowd.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The current native crowd-meter statistics page.",
      "alt": "The current native crowd-meter statistics page.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crowd.png",
      "image_sha256": "b929e80ebe995ce9cafe0435ff19281d6858f6f7052620d57c75caaac69ca118",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "crowd",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/crowd.png",
      "after_caption": "The current native crowd-meter statistics page.",
      "actual_visible": "CrowdMeter statistics:current76dB,average73,peak78,arena80,league80.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "The current native crowd-meter statistics page.",
      "after_anchor": "picture-073"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-74",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 74,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/cards-cover.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current Player Cards team cover and starting line.",
      "alt": "Current Player Cards team cover and starting line.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/cards-cover.png",
      "image_sha256": "da4effde11db5c67a5619315d1a9178c7017fc578813ba040c384c23dae67f7b",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "cards-cover",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/cards-cover.png",
      "after_caption": "Current Player Cards team cover and starting line.",
      "actual_visible": "Edmonton player-cards cover, TeamRating56 and starting lineupJarry/Bouchard/Ekholm/Formenton/McDavid/Kapanen.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Current Player Cards team cover and starting line.",
      "after_anchor": "picture-074"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-75",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 75,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/leaders.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current scoring leaders with native sorting controls.",
      "alt": "Current scoring leaders with native sorting controls.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/leaders.png",
      "image_sha256": "bf7160eefd218ae48543041ec47ff1fcbfa5828477d35d6514ba6cda9efbb342",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "leaders",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/leaders.png",
      "after_caption": "Current scoring leaders with native sorting controls.",
      "actual_visible": "SCORING LEADERS with Anaheim players and initial zero G/A/Pts, Left/RightPage A/StartBack BSort.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Current scoring leaders with native sorting controls.",
      "after_anchor": "picture-075"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-76",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 76,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/period-stats.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current period-by-period team statistics.",
      "alt": "Current period-by-period team statistics.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/period-stats.png",
      "image_sha256": "03ce669eaeaa64d33924e7e9271e86776879bc2dd5297c21d77e77b75b810f60",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "period-stats",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/period-stats.png",
      "after_caption": "Current period-by-period team statistics.",
      "actual_visible": "PeriodStatsGoals,NYR2 inperiod1 and2total,EDM0;L/RStat A/StartBack.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Current period-by-period team statistics.",
      "after_anchor": "picture-076"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-77",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 77,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/abandon.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Abandon-season confirmation: B confirms, A/Start cancels.",
      "alt": "Abandon-season confirmation: B confirms, A/Start cancels.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/abandon.png",
      "image_sha256": "7da77d2f8105bc4e99a65ac73fc49db2ff62b44b8f621e0a0ddbe3388712901b",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "abandon",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/abandon.png",
      "after_caption": "Abandon Season confirmation: B confirms; A/Start cancels. The notice distinguishes this season from the other saved seasons.",
      "actual_visible": "ABANDONSEASON confirmation explaining selected-season data cleared/otherseasonskept;Bconfirm,A/Startcancel.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Abandon Season confirmation: B confirms; A/Start cancels. The notice distinguishes this season from the other saved seasons.",
      "after_anchor": "picture-077"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-78",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 78,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-low.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The actual shot gauge at low charge.",
      "alt": "The actual shot gauge at low charge.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-low.png",
      "image_sha256": "147787620782d2cea794c204f12cc5cbc4d4a580a49e6a1a5705ece72bb7ac98",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "shot-low",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/shot-low.png",
      "after_caption": "The actual shot gauge at low charge.",
      "actual_visible": "Native rink1st4:41; nearly empty low-charge strip under lower-left clock.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "The actual shot gauge at low charge.",
      "after_anchor": "picture-078"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-79",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 79,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-middle.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The actual shot gauge while charging, with orange fill.",
      "alt": "The actual shot gauge while charging, with orange fill.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-middle.png",
      "image_sha256": "9be026ade9f16d6c320c26068bb5bd272fdab680faac43561379061d82bc0767",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "shot-middle",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/shot-middle.png",
      "after_caption": "The actual shot gauge while charging, with orange fill.",
      "actual_visible": "Orange short charge fill beneath1st4:41 clock during rink play.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "The actual shot gauge while charging, with orange fill.",
      "after_anchor": "picture-079"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-80",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 80,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The rendered full shot gauge is solid red; actual C input continues the authenticated charge state.",
      "alt": "The rendered full shot gauge is solid red; actual C input continues the authenticated charge state.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "image_sha256": "4772b3f7ac9f4de821b28cd0a861109b40ffc6e83118eb228136e1e40e785e65",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "shot-full",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "after_caption": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "actual_visible": "Solid red full-width charge bar under lower-left1st4:40 clock, puck/carrier near right of rink.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "after_anchor": "picture-080"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-81",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 81,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-low.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Pass Charge On uses the shared gauge while the actual pass button is held.",
      "alt": "Pass Charge On uses the shared gauge while the actual pass button is held.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-low.png",
      "image_sha256": "8a129f2516a05dadee6af0afb7ff49fc97150040fe29bd5c8a3b5be06fd46397",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "pass-low",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/pass-low.png",
      "after_caption": "The shared charge gauge has a small low fill beneath the1st4:57 clock.",
      "actual_visible": "Native rink1st4:57, low near-empty shared charge strip underclock.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "The shared charge gauge has a small low fill beneath the1st4:57 clock.",
      "after_anchor": "picture-081"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-82",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 82,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-middle.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The shared gauge increases during an actual held pass.",
      "alt": "The shared gauge increases during an actual held pass.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-middle.png",
      "image_sha256": "e20a65e1961ac328842a592dfc1d287d469f074aec679d4965e5d9f40f2bbcb9",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "pass-middle",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/pass-middle.png",
      "after_caption": "The shared charge gauge has orange fill beneath the1st4:57 clock.",
      "actual_visible": "Orange shared charge strip beneath1st4:57 clock, carrier at centre.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "The shared charge gauge has orange fill beneath the1st4:57 clock.",
      "after_anchor": "picture-082"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-83",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 83,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-full.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The actual held pass reaches a solid red full gauge.",
      "alt": "The actual held pass reaches a solid red full gauge.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-full.png",
      "image_sha256": "26524e14b4c03d9ea95815aca4cadfbce1fd0329327842fb399d54b21b4d1487",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "pass-full",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/pass-full.png",
      "after_caption": "The shared charge gauge is solid red beneath the1st4:54 clock.",
      "actual_visible": "Solid red full shared charge strip beneath1st4:54 clock, carrier at centre.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "The shared charge gauge is solid red beneath the1st4:54 clock.",
      "after_anchor": "picture-083"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-84",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 84,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-release.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Releasing the charged pass sends the actual native puck.",
      "alt": "Releasing the charged pass sends the actual native puck.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-release.png",
      "image_sha256": "71134a2a9182e790aeda65c2664d4983fcfb56562f2c072cb9821162916406fc",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "pass-release",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/pass-release.png",
      "after_caption": "The charge bar has disappeared in the following1st4:54 native pass frame.",
      "actual_visible": "Same centre-ice scene1st4:54; charged bar has disappeared and puck is released.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "The charge bar has disappeared in the following1st4:54 native pass frame.",
      "after_anchor": "picture-084"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-85",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 85,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-speed.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Measured shot speed is displayed below the clock, using the selected unit.",
      "alt": "Measured shot speed is displayed below the clock, using the selected unit.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-speed.png",
      "image_sha256": "874c4f9fb4f37d903aa79796d3a1e8e7887ce3bb002913a43dfd6525859f2854",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "shot-speed",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/shot-speed.png",
      "after_caption": "Measured shot speed is displayed below the clock, using the selected unit.",
      "actual_visible": "Lower-left shot panel shows29KMH beneath1st4:29 clock; goalie/carrier at upper goal, NYR0 EDM0.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Measured shot speed is displayed below the clock, using the selected unit.",
      "after_anchor": "picture-085"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-86",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 86,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/replay.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Clean REPLAY heading and preserved lower-left clock/frame during a real automatic replay.",
      "alt": "Clean REPLAY heading and preserved lower-left clock/frame during a real automatic replay.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/replay.png",
      "image_sha256": "9f085ad0565793515c85691f3e91ee228f7da3904f99611f4773b9f2285aecfa",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "replay",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/replay-native.png",
      "after_caption": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "actual_visible": "REPLAY heading and X+B SKIP upper-left; lower-left framed1st1:50 clock remains clear during rink replay.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "after_anchor": "picture-086"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-87",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 87,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-flight.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The current critical puck during actual native flight.",
      "alt": "The current critical puck during actual native flight.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-flight.png",
      "image_sha256": "9ae9e10d886ebc7a714c96363ffe0e4eaa1009bc2b64caaa77e263dcb60a2cf4",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "crit-flight",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/critical-flight.png",
      "after_caption": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "actual_visible": "Blue critical puck and orange effect disc in flight toward upper net,2nd3:51 NYR1 EDM0, coloured offscreen arrows.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "after_anchor": "picture-087"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-88",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 88,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The actual current critical puck and separated flame trail.",
      "alt": "The actual current critical puck and separated flame trail.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "image_sha256": "01daf8426b9bacc78f4987effb3835f04733dc09780548c5d8882dd1c82a7081",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "crit-trail",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/critical-trail.png",
      "after_caption": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "actual_visible": "Blue critical puck with separated orange circular trail toward upper goal,2nd3:50, colored offscreen arrows.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "after_anchor": "picture-088"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-89",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 89,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-off.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Actual menu-selected Momentum Off: no bars or stat bonus in play.",
      "alt": "Actual menu-selected Momentum Off: no bars or stat bonus in play.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-off.png",
      "image_sha256": "4713f214e04a86678a24db09afdf62650bc7bc8054285b0b45c09cb500d2feb9",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "momentum-off",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/momentum-off.png",
      "after_caption": "Native play with Momentum Off: the lower-right scoreboard has no Momentum strips. Stat scaling is checked separately.",
      "actual_visible": "NYR0 EDM0 at1st4:47; lower-right scoreboard has no Momentum bars; ordinary rink scene.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Native play with Momentum Off: the lower-right scoreboard has no Momentum strips. Stat scaling is checked separately.",
      "after_anchor": "picture-089"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-90",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 90,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/drai-select.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Draisaitl is available among the native forwards for first-line selection.",
      "alt": "Draisaitl is available among the native forwards for first-line selection.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/drai-select.png",
      "image_sha256": "51df606098e82bdf188eb6d1a53dfb34a5058b9ae926c2cfc845f54d28f3567e",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "drai-select",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/drai-select.png",
      "after_caption": "Draisaitl is available among the native forwards for first-line selection.",
      "actual_visible": "SelectPlayer list includesLeonDraisaitl on bench at top; line-editor columns and A/B/Start controls visible.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Draisaitl is available among the native forwards for first-line selection.",
      "after_anchor": "picture-090"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-91",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 91,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/drai-line.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Draisaitl placed at Scoring Line1 RW, with McDavid retained at centre.",
      "alt": "Draisaitl placed at Scoring Line1 RW, with McDavid retained at centre.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/drai-line.png",
      "image_sha256": "97ff482f0045da6554ae0dc598c5ffd8fd74a78a11479b3a08d2968fb6521a2a",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "drai-line",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/drai-line.png",
      "after_caption": "Draisaitl placed at Scoring Line1 RW, with McDavid retained at centre.",
      "actual_visible": "Edmonton LINE EDITOR: Sc1Line centreMcDavid and RWDraisaitl; selected29LeonDraisaitl, normal controls visible.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Draisaitl placed at Scoring Line1 RW, with McDavid retained at centre.",
      "after_anchor": "picture-091"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-92",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 92,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current Player Cards: Tristan Jarry, matching the actual bought-back goalkeeper.",
      "alt": "Current Player Cards: Tristan Jarry, matching the actual bought-back goalkeeper.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "image_sha256": "761f339e89599354bab97ad4a71de7275a44cdf2fb3d561fc3043f380b7dde1d",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "card-goalie",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "after_caption": "Edmonton player card: Tristan Jarry35, Overall70,2 saves and50% save percentage. This independent card scene does not show a transfer history.",
      "actual_visible": "Edmonton TristanJarry35 goalie card, Overall70,2saves,50savepercent, native card footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Edmonton player card: Tristan Jarry35, Overall70,2 saves and50% save percentage. This independent card scene does not show a transfer history.",
      "after_anchor": "picture-092"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-93",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 93,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/card-forward.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current Player Cards: Ryan Nugent-Hopkins and his actual in-game rating.",
      "alt": "Current Player Cards: Ryan Nugent-Hopkins and his actual in-game rating.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/card-forward.png",
      "image_sha256": "adf9198ea5fe98b0a9d1f1fb3e412e15c525fde2f4dbabbb1b35607c9be77666",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "card-forward",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/card-forward.png",
      "after_caption": "Current Player Cards: Ryan Nugent-Hopkins and his actual in-game rating.",
      "actual_visible": "Edmonton RyanNugent-Hopkins93 centre player card, Overall57,0goals0assists, native footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Current Player Cards: Ryan Nugent-Hopkins and his actual in-game rating.",
      "after_anchor": "picture-093"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-94",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 94,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/shootout.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native shootout starts without further input. This screenshot uses a declared clock-only OT expiry fixture.",
      "alt": "Native shootout starts without further input. This screenshot uses a declared clock-only OT expiry fixture.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shootout.png",
      "image_sha256": "12138496eb50d8c7bc28ee253756374e92089dbc2a63933ccc257464bfa5e450",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "shootout",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/shootout.png",
      "after_caption": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "actual_visible": "Single shooter at centre ice, native attempt countdown0:20,NYR0 EDM0.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "after_anchor": "picture-094"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-95",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 95,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-mini.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Completed Mini review menu, from an explicitly declared completed-save fixture. Centred native-frame help.",
      "alt": "Completed Mini review menu, from an explicitly declared completed-save fixture. Centred native-frame help.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-mini.png",
      "image_sha256": "dddcc95f595f3c90f733e682de36c401a113e2e178cb508edc4647742447ecdd",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "completed-mini",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/completed-mini.png",
      "after_caption": "Completed Mini review menu, from an explicitly declared completed-save fixture. Centred native-frame help.",
      "actual_visible": "See Old Mini Season, HomeDallas, AwaySeasonfinished, five-minute setting and centred framed help.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Completed Mini review menu, from an explicitly declared completed-save fixture. Centred native-frame help.",
      "after_anchor": "picture-095"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-96",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 96,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-browser.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current completed-season player browser, from a declared saved-season fixture.",
      "alt": "Current completed-season player browser, from a declared saved-season fixture.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-browser.png",
      "image_sha256": "c0eb6473fb6780346e2c6d9d981c806f2a55f493d34adf976acf00974158d01e",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "completed-browser",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/completed-browser.png",
      "after_caption": "Season+Playoffs browser for Dallas, sorted by points, from the declared completed-season save fixture.",
      "actual_visible": "Season+Playoffs browser, Dallas, Sortpoints, player list with mostly zero test-fixture totals and native controls.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Season+Playoffs browser for Dallas, sorted by points, from the declared completed-season save fixture.",
      "after_anchor": "picture-096"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-97",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 97,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-sorted.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current completed-season browser sorted by goals, from a declared saved-season fixture.",
      "alt": "Current completed-season browser sorted by goals, from a declared saved-season fixture.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-sorted.png",
      "image_sha256": "e3dea1d4c46ecf6637c8e4ad1e14d9291f66e4b57489a5185426ed1b22bd447d",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "completed-sorted",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/completed-sorted.png",
      "after_caption": "Current completed-season browser sorted by goals, from a declared saved-season fixture.",
      "actual_visible": "Season+Playoffs browser, Detroit, Sortgoals, fixture totals and native controls.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Current completed-season browser sorted by goals, from a declared saved-season fixture.",
      "after_anchor": "picture-097"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-98",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 98,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-actions.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Completed-season actions and the native Back/Select controls, from a declared fixture.",
      "alt": "Completed-season actions and the native Back/Select controls, from a declared fixture.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-actions.png",
      "image_sha256": "72acb37d43dc932bfb37902bfbe7bffb50948bf7da76362de57c537d730e3cdd",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "completed-actions",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/completed-actions.png",
      "after_caption": "Season Complete: See Results, Scoring Leaders, Start New Mini Season and Back to Main Menu. Declared completed-save fixture.",
      "actual_visible": "SeasonComplete menu: SeeResults, ScoringLeaders, StartNewMiniSeason, BacktoMainMenu; normal controls.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Season Complete: See Results, Scoring Leaders, Start New Mini Season and Back to Main Menu. Declared completed-save fixture.",
      "after_anchor": "picture-098"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-99",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 99,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "alt": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "image_sha256": "55fbcdcc30953072dca7181d74392f7199755fb24f04a648f301603aa68446ec",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "playoffs-menu",
      "action": "Kept: visually matched current scene",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "after_caption": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "actual_visible": "Main menu PlayModeNewPlayoffs, PlayersOne, Edmonton vsAnaheim, framed footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "after_anchor": "picture-099"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-100",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 100,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-tree.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The actual native16-team playoff tree after real Start input.",
      "alt": "The actual native16-team playoff tree after real Start input.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-tree.png",
      "image_sha256": "886904c9f14c58e07fe5a9a0b38d70538c21b73078ce6ee80d6d256c182d9923",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "playoffs-tree",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/playoffs-tree.png",
      "after_caption": "Native16-team playoff bracket around the Stanley Cup; this representative standalone scene does not establish season-qualification history.",
      "actual_visible": "Native16-club bracket surrounding StanleyCup, including Edmonton/Anaheim lower left.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Native16-team playoff bracket around the Stanley Cup; this representative standalone scene does not establish season-qualification history.",
      "after_anchor": "picture-100"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-101",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 101,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-home-positive.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Natural match: Edmonton has positive Momentum and the Rangers negative.",
      "alt": "Natural match: Edmonton has positive Momentum and the Rangers negative.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-home-positive.png",
      "image_sha256": "62e3519c23c55202ca8905264de6a7464e0a7cb7c17903c341b10678121517b2",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "momentum-home-positive",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/momentum-home.png",
      "after_caption": "Momentum strips beneath both team names at3rd3:02, NYR1 EDM2. The visible bars are separate from the lower-left clock.",
      "actual_visible": "NYR1 EDM1,1st1:55; small contrasting Momentum indicators under both names;56KMH panel.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Momentum strips beneath both team names at3rd3:02, NYR1 EDM2. The visible bars are separate from the lower-left clock.",
      "after_anchor": "picture-101"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-102",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 102,
      "image_url": "https://games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-away-positive.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Natural match: the Rangers have positive Momentum and Edmonton negative.",
      "alt": "Natural match: the Rangers have positive Momentum and Edmonton negative.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-away-positive.png",
      "image_sha256": "6bd985ecb4d5ece8307000e6b2fbfa92d794ae70d1b4d30ed6313f596e20367e",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "momentum-away-positive",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/momentum-away.png",
      "after_caption": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "actual_visible": "NYR1 EDM1,2nd0:23; lower-right Momentum strips and113KMH panel.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "after_anchor": "picture-102"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-103",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 103,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-01.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-01",
      "alt": "main-row-01",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-01.png",
      "image_sha256": "d1b1abd8115491c25bd24e24311d8e17472d724d0e1dc8fb146fe5a13a3cf34d",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-01",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-01.png",
      "after_caption": "Main menu: Players One selected; controls centred inside the native footer frame.",
      "actual_visible": "Main menu PlayersOne selected;NewFullSeason/Edmonton/1of84NYR/5minutes.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: Players One selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-103"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-104",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 104,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-02.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-02",
      "alt": "main-row-02",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-02.png",
      "image_sha256": "dd2642c1b46dee98bc724c2c34b8efc4a8bb63edc96cda2ba056ffd4c66697d3",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-02",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-02.png",
      "after_caption": "Main menu: Home Edmonton selected; controls centred inside the native footer frame.",
      "actual_visible": "Main menu HomeEdmonton selected;NewFullSeason and1of84NYR.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: Home Edmonton selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-104"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-105",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 105,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-03.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-03",
      "alt": "main-row-03",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-03.png",
      "image_sha256": "5419fde4348784c8ca839564d6b352a8fbe07e47ad4286261babb069fcc8a19e",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-03",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-03.png",
      "after_caption": "Main menu: Away1/84 vs NYR selected; controls centred inside the native footer frame.",
      "actual_visible": "Main menu Away1/84vsNYR selected.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: Away1/84 vs NYR selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-105"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-106",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 106,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-04.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-04",
      "alt": "main-row-04",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-04.png",
      "image_sha256": "d4557d39074993d27dc1dabcd64f665a58f2a403b1ac5e90a1220803e0bfe759",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-04",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-04.png",
      "after_caption": "Main menu: Period Length5 Minutes selected; controls centred inside the native footer frame.",
      "actual_visible": "Main menu PerLength5Minutes selected.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: Period Length5 Minutes selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-106"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-107",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 107,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-05.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-05",
      "alt": "main-row-05",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-05.png",
      "image_sha256": "6a427bc564ee12744f7fd52336110d92164187b54c0d6a6e9eac93c45ec9496d",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-05",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-05.png",
      "after_caption": "Main menu: Goalie Ctrl Manual Control selected; controls centred inside the native footer frame.",
      "actual_visible": "Main menu GoalieCtrlManualControl selected.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: Goalie Ctrl Manual Control selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-107"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-108",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 108,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-06.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-06",
      "alt": "main-row-06",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-06.png",
      "image_sha256": "1bf0a366091fcd9b11d503e3c5151c59550e38239edd115b906d6fa1e00e6bc0",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-06",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-06.png",
      "after_caption": "Main menu: Rules On, Except Off-sides selected; controls centred inside the native footer frame.",
      "actual_visible": "Main menu RulesOnExceptOff-sides selected.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: Rules On, Except Off-sides selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-108"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-109",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 109,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-07.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-07",
      "alt": "main-row-07",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-07.png",
      "image_sha256": "034f8071db9ccf4fcb754bb133c2fe86531c0bb1407609f414d898c56d9cc985",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-07",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-07.png",
      "after_caption": "Main menu: Line Changes Auto selected; controls centred inside the native footer frame.",
      "actual_visible": "Main menu LineChangesAuto selected.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: Line Changes Auto selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-109"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-110",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 110,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-08.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-08",
      "alt": "main-row-08",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-08.png",
      "image_sha256": "88cc31065847258be68cbb963e3606911c5702e9faa5167097ed553e3d890e1b",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-08",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-08.png",
      "after_caption": "Main menu: Fighting Off selected; controls centred inside the native footer frame.",
      "actual_visible": "Main menu FightingOff selected.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: Fighting Off selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-110"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-111",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 111,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-11.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-11",
      "alt": "main-row-11",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-11.png",
      "image_sha256": "fe8c74921ded8023f73e4325d656986043e201472c9fb2e120ded0a626408a95",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-11",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-11.png",
      "after_caption": "Main menu: Crit Shots Off selected; controls centred inside the native footer frame.",
      "actual_visible": "CritShotsOff selected, AutoReplaysOff above, framed centred footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: Crit Shots Off selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-111"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-112",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 112,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-12.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-12",
      "alt": "main-row-12",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-12.png",
      "image_sha256": "90210d050f6d0b778ef50bc98577feaa6637b919ccfe0a9113f16e17677586cb",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-12",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-12.png",
      "after_caption": "Main menu: Icing On selected; controls centred inside the native footer frame.",
      "actual_visible": "IcingOn selected, CritShotsOff/AutoReplaysOff above, framed centred footer.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: Icing On selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-112"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-113",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 113,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-14.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-14",
      "alt": "main-row-14",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-14.png",
      "image_sha256": "eda0fa998c5f7a07111fb0f73609e4dc51f1c7d8a7173f740b83b43906ec012a",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-14",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-14.png",
      "after_caption": "Main menu: Pass Height Low selected; controls centred inside the native footer frame.",
      "actual_visible": "PassHeightLow selected, TransfersOff andIcingOn above.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: Pass Height Low selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-113"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-114",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 114,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-15.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-15",
      "alt": "main-row-15",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-15.png",
      "image_sha256": "66457ee841c200d5322f3c3802d80fd672a97394bc760e6d2e026d1c7ac6f394",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-15",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-15.png",
      "after_caption": "Main menu: Pass Speed Normal selected; controls centred inside the native footer frame.",
      "actual_visible": "PassSpeedNormal selected, PassHeightLow visible.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: Pass Speed Normal selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-114"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-115",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 115,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-17.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-17",
      "alt": "main-row-17",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-17.png",
      "image_sha256": "408348c73d13bae8e7292e9e63a4fad3f64376291709c3ac4150b1df2646a416",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-17",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-17.png",
      "after_caption": "Main menu: Target Cone Default selected; controls centred inside the native footer frame.",
      "actual_visible": "TargetConeDefault selected, Assisted/Normal/Low visible.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: Target Cone Default selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-115"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-116",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 116,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-19.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-19",
      "alt": "main-row-19",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-19.png",
      "image_sha256": "6b0914134a374a1f193f278a1056cab794836e46cab147ec8e96675ed21684e8",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-19",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-19.png",
      "after_caption": "Main menu: Pass Charge Off selected; controls centred inside the native footer frame.",
      "actual_visible": "PassChargeOff selected, Penaltys50% visible.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: Pass Charge Off selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-116"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-117",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 117,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-20.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-20",
      "alt": "main-row-20",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-20.png",
      "image_sha256": "63550bae2cdeb7b4e2e7ea4f1b4590c5dad8309a4411c657daed545d0d6144c0",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-20",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-20.png",
      "after_caption": "Main menu: Pickup Delay Off \u2014 Brief Catch Lock selected; controls centred inside the native footer frame.",
      "actual_visible": "PickupDelayOff BriefCatchLock selected, PassChargeOff/Penaltys50% above.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: Pickup Delay Off \u2014 Brief Catch Lock selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-117"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-118",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 118,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-22.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 main-row-22",
      "alt": "main-row-22",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-22.png",
      "image_sha256": "928c8556f17a3ee31e6befecb857478f962da12e5c0ac88cebe61c04e97dfe7d",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-menu-main-row-22",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-22.png",
      "after_caption": "Main menu: AI Shot Plan On \u2014 Smarter Hard AI selected; controls centred inside the native footer frame.",
      "actual_visible": "AIShotPlanOn SmarterHardAI selected, AltGoaliesOn above.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Main menu: AI Shot Plan On \u2014 Smarter Hard AI selected; controls centred inside the native footer frame.",
      "after_anchor": "picture-118"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-119",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 119,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-options-switches-Momentum-Off.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Actual final Nov3 menu selected with real buttons from authenticated current coldboot; no preference/menu/RNG RAM writes.",
      "alt": "Actual final Nov3 menu selected with real buttons from authenticated current coldboot; no preference/menu/RNG RAM writes.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-options-switches-Momentum-Off.png",
      "image_sha256": "d355b48eff41199605bc9e4906a9311d7f43342fe44128d121e7b0feef537e49",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-options-switches-Momentum-Off",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/audits/ui-20261103-r2/extra-options-switches-Momentum-Off.png",
      "after_caption": "Momentum Off selected; the independent shot-units and glass choices remain visible.",
      "actual_visible": "MomentumOff \u00b110%Stats selected, other visible options/units.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Momentum Off selected; the independent shot-units and glass choices remain visible.",
      "after_anchor": "picture-119"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-120",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 120,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-options-switches-AI-Shot-Plan-Off.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Actual final Nov3 menu selected with real buttons from authenticated current coldboot; no preference/menu/RNG RAM writes.",
      "alt": "Actual final Nov3 menu selected with real buttons from authenticated current coldboot; no preference/menu/RNG RAM writes.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-options-switches-AI-Shot-Plan-Off.png",
      "image_sha256": "064d16966db340bc7d03302b66027706bef74f05e6f1ddeb3c404a1c2605938f",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-options-switches-AI-Shot-Plan-Off",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/audits/ui-20261103-r2/extra-options-switches-AI-Shot-Plan-Off.png",
      "after_caption": "AI Shot Plan Off \u2014 Smarter Hard AI selected in the main menu.",
      "actual_visible": "AIShotPlanOff SmarterHardAI selected, MomentumOff below.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "AI Shot Plan Off \u2014 Smarter Hard AI selected in the main menu.",
      "after_anchor": "picture-120"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-121",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 121,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-options-switches-Alt-Goalies-Off.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Actual final Nov3 menu selected with real buttons from authenticated current coldboot; no preference/menu/RNG RAM writes.",
      "alt": "Actual final Nov3 menu selected with real buttons from authenticated current coldboot; no preference/menu/RNG RAM writes.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-options-switches-Alt-Goalies-Off.png",
      "image_sha256": "0167f0114b7a9a01bc391540e27eec0a435d5b6178a6d4841d68fbe5855928ac",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-options-switches-Alt-Goalies-Off",
      "action": "Caption/alt narrowed to the actual visible scene",
      "removed": false,
      "after_image": "/nhl94/pics/audits/ui-20261103-r2/extra-options-switches-Alt-Goalies-Off.png",
      "after_caption": "Alt Goalies Off \u2014 New Goalie Model selected in the main menu.",
      "actual_visible": "AltGoaliesOff NewGoalieModel selected; AIShotPlan/MomentumOff visible.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Alt Goalies Off \u2014 New Goalie Model selected in the main menu.",
      "after_anchor": "picture-121"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-122",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 122,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-ovr-early-final-v4-presentation-1400.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 presentation-1400",
      "alt": "presentation-1400",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-ovr-early-final-v4-presentation-1400.png",
      "image_sha256": "83e4c004a7dc94edf323430d2ebb68d2bbbaabc8bd83eed51792e5773ed12b5b",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-ovr-early-final-v4-presentation-1400",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/ovr-before.png",
      "after_caption": "Native Matchups Overall: New York Rangers55, Edmonton57.",
      "actual_visible": "Native MATCHUPS Overall screen: Rangers55, Edmonton57.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Native Matchups Overall: New York Rangers55, Edmonton57.",
      "after_anchor": "picture-122"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-123",
      "page": "audits/ui-20261103-r2/index.html",
      "index": 123,
      "image_url": "https://games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-acceptance-after-trades-presentation-250.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Original native presentation after actual star99/middle79 purchases and valid squads.",
      "alt": "Original native presentation after actual star99/middle79 purchases and valid squads.",
      "surrounding_text": "",
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "visual_review": "PENDING; no filename/manifest inference",
      "physical": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-acceptance-after-trades-presentation-250.png",
      "image_sha256": "bb19f178db657bc4508b4c6b151c6db3c3e82d3b45d0d7ba92c49b773053c823",
      "nearest_description": "Fresh native coldboots and actual controller-driven transactions/matches are distinguished from authenticated earlier state/SRAM continuations. Earlier states retain their declared fixture scope. No installed user progress is used. An image alone does not verify input ownership, audio continuity or season integrity.",
      "original_id": "extra-acceptance-after-trades-presentation-250",
      "action": "Fresh matched scene/option capture replaces ambiguous original",
      "removed": false,
      "after_image": "/nhl94/pics/img/current-20261103-r2-review/ovr-after.png",
      "after_caption": "Native Matchups Overall: New York Rangers55, Edmonton62.",
      "actual_visible": "Native MATCHUPS Overall screen: Rangers55, Edmonton62.",
      "visually_opened": true,
      "after_title": "Opened native graphical review",
      "after_section": "",
      "after_visible": "Native Matchups Overall: New York Rangers55, Edmonton62.",
      "after_anchor": "picture-123"
    }
  ],
  "current_image_title_visible_function": [
    {
      "occurrence": "index.html#image-2",
      "page": "index.html",
      "anchor": "picture-001",
      "image_url": "/nhl94/pics/img/current-20261103-r2/credits.png",
      "title": "Faster main-menu input, continuous music and consistent team OVR",
      "section": "main-menu-r2",
      "caption": "2026-11-03-r2 \u00b7 Actual startup credits: Website https://games.jdc.se.",
      "alt": "Actual startup credits: Website https://games.jdc.se.",
      "actually_visible": "Actual startup credits: Website https://games.jdc.se.",
      "nearest_description": "Explicit Y can select an available goalkeeper even while the controlled skater is down; the skater stays down and original ownership/pause/penalty guards remain. Ordinary team presentations use one actual-roster base-OVR mean before and after transfers. Player stats, prices, budgets and season records keep their original rules. The startup address is https://games.jdc.se.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-3",
      "page": "index.html",
      "anchor": "picture-002",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/ovr-before.png",
      "title": "Faster main-menu input, continuous music and consistent team OVR",
      "section": "main-menu-r2",
      "caption": "2026-11-03-r2 \u00b7 Native Matchups Overall: New York Rangers55, Edmonton57.",
      "alt": "Native Matchups Overall: New York Rangers55, Edmonton57.",
      "actually_visible": "Native Matchups Overall: New York Rangers55, Edmonton57.",
      "nearest_description": "Explicit Y can select an available goalkeeper even while the controlled skater is down; the skater stays down and original ownership/pause/penalty guards remain. Ordinary team presentations use one actual-roster base-OVR mean before and after transfers. Player stats, prices, budgets and season records keep their original rules. The startup address is https://games.jdc.se.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-4",
      "page": "index.html",
      "anchor": "picture-003",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/ovr-after.png",
      "title": "Faster main-menu input, continuous music and consistent team OVR",
      "section": "main-menu-r2",
      "caption": "2026-11-03-r2 \u00b7 Native Matchups Overall: New York Rangers55, Edmonton62.",
      "alt": "Native Matchups Overall: New York Rangers55, Edmonton62.",
      "actually_visible": "Native Matchups Overall: New York Rangers55, Edmonton62.",
      "nearest_description": "Explicit Y can select an available goalkeeper even while the controlled skater is down; the skater stays down and original ownership/pause/penalty guards remain. Ordinary team presentations use one actual-roster base-OVR mean before and after transfers. Player stats, prices, budgets and season records keep their original rules. The startup address is https://games.jdc.se.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-5",
      "page": "index.html",
      "anchor": "picture-004",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/menu.png",
      "title": "Transfer dollars and centred menu controls",
      "section": "cosmetic-ui-nov3",
      "caption": "2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "alt": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "actually_visible": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "nearest_description": "Prices and budgets use clear dollar amounts with dot-separated thousands. The original OVR-squared economy is unchanged: $16.042.000 buys one OVR99 star plus one OVR79 middle player. Main-menu controls are centred inside a matching native border.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-6",
      "page": "index.html",
      "anchor": "picture-005",
      "image_url": "/nhl94/pics/img/current-20261103-r2/sell-roster.png",
      "title": "Transfer dollars and centred menu controls",
      "section": "cosmetic-ui-nov3",
      "caption": "2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "alt": "Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "actually_visible": "Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "nearest_description": "Prices and budgets use clear dollar amounts with dot-separated thousands. The original OVR-squared economy is unchanged: $16.042.000 buys one OVR99 star plus one OVR79 middle player. Main-menu controls are centred inside a matching native border.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-7",
      "page": "index.html",
      "anchor": "picture-006",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/acquired-star.png",
      "title": "Transfer dollars and centred menu controls",
      "section": "cosmetic-ui-nov3",
      "caption": "2026-11-03-r2 \u00b7 Edmonton owned roster: Nathan MacKinnon C99 at$9.801.000; remaining budget$12.277.000.",
      "alt": "Edmonton owned roster: Nathan MacKinnon C99 at$9.801.000; remaining budget$12.277.000.",
      "actually_visible": "Edmonton owned roster: Nathan MacKinnon C99 at$9.801.000; remaining budget$12.277.000.",
      "nearest_description": "Prices and budgets use clear dollar amounts with dot-separated thousands. The original OVR-squared economy is unchanged: $16.042.000 buys one OVR99 star plus one OVR79 middle player. Main-menu controls are centred inside a matching native border.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-8",
      "page": "index.html",
      "anchor": "picture-007",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/acquired-middle.png",
      "title": "Transfer dollars and centred menu controls",
      "section": "cosmetic-ui-nov3",
      "caption": "2026-11-03-r2 \u00b7 Edmonton owned roster includes Morgan Geekie C79 at$6.241.000 and Nathan MacKinnon C99; budget$6.036.000.",
      "alt": "Edmonton owned roster includes Morgan Geekie C79 at$6.241.000 and Nathan MacKinnon C99; budget$6.036.000.",
      "actually_visible": "Edmonton owned roster includes Morgan Geekie C79 at$6.241.000 and Nathan MacKinnon C99; budget$6.036.000.",
      "nearest_description": "Prices and budgets use clear dollar amounts with dot-separated thousands. The original OVR-squared economy is unchanged: $16.042.000 buys one OVR99 star plus one OVR79 middle player. Main-menu controls are centred inside a matching native border.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-9",
      "page": "index.html",
      "anchor": "picture-008",
      "image_url": "/nhl94/pics/img/current-20261103-r2/transfers-on.png",
      "title": "How purchases and sales change the teams",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Transfers On selected immediately below Icing.",
      "alt": "Transfers On selected immediately below Icing.",
      "actually_visible": "Transfers On selected immediately below Icing.",
      "nearest_description": "Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-10",
      "page": "index.html",
      "anchor": "picture-009",
      "image_url": "/nhl94/pics/img/current-20261103-r2/transfer-home.png",
      "title": "How purchases and sales change the teams",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season.",
      "alt": "Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season.",
      "actually_visible": "Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season.",
      "nearest_description": "Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-11",
      "page": "index.html",
      "anchor": "picture-010",
      "image_url": "/nhl94/pics/img/current-20261103-r2/sell-roster.png",
      "title": "How purchases and sales change the teams",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "alt": "Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "actually_visible": "Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "nearest_description": "Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-12",
      "page": "index.html",
      "anchor": "picture-011",
      "image_url": "/nhl94/pics/img/current-20261103-r2/free-agents.png",
      "title": "How purchases and sales change the teams",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap.",
      "alt": "Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap.",
      "actually_visible": "Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap.",
      "nearest_description": "Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-13",
      "page": "index.html",
      "anchor": "picture-012",
      "image_url": "/nhl94/pics/img/current-20261103-r2/matchups.png",
      "title": "How purchases and sales change the teams",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Restored native team presentation: current Rangers55, transferred Edmonton56.",
      "alt": "Restored native team presentation: current Rangers55, transferred Edmonton56.",
      "actually_visible": "Restored native team presentation: current Rangers55, transferred Edmonton56.",
      "nearest_description": "Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-14",
      "page": "index.html",
      "anchor": "picture-013",
      "image_url": "/nhl94/pics/img/current-20261103-r2/hot-cold.png",
      "title": "How purchases and sales change the teams",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Current native presentation: Adam Fox COLD and Evan Bouchard HOT.",
      "alt": "Current native presentation: Adam Fox COLD and Evan Bouchard HOT.",
      "actually_visible": "Current native presentation: Adam Fox COLD and Evan Bouchard HOT.",
      "nearest_description": "Each club starts with $16.042.000. Price = base OVR\u00b2 \u00d7 $1.000: a star (OVR85\u201399) costs at most $9.801.000; a middle player (OVR60\u201379) at most $6.241.000. The initial budget covers both upper bounds. A full26-player roster needs free slots first. Trades preserve valid positions and nonnegative funds. Sold players enter Free Agents; buying from another club credits that club. Lists show highest OVR first. Internal accounting units and buying power are unchanged.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-15",
      "page": "index.html",
      "anchor": "picture-014",
      "image_url": "/nhl94/pics/img/current-20261103-r2/roster-after-star-middle.png",
      "title": "How purchases and sales change the teams",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Current Edmonton roster after buying the OVR99 star and OVR79 middle player.",
      "alt": "Current Edmonton roster after buying the OVR99 star and OVR79 middle player.",
      "actually_visible": "Current Edmonton roster after buying the OVR99 star and OVR79 middle player.",
      "nearest_description": "Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM hash .",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-16",
      "page": "index.html",
      "anchor": "picture-015",
      "image_url": "/nhl94/pics/img/current-20261103-r2/full-roster-blocked.png",
      "title": "How purchases and sales change the teams",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 A full roster refuses a purchase; budget remains $16.042.000.",
      "alt": "A full roster refuses a purchase; budget remains $16.042.000.",
      "actually_visible": "A full roster refuses a purchase; budget remains $16.042.000.",
      "nearest_description": "Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM hash .",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-17",
      "page": "index.html",
      "anchor": "picture-016",
      "image_url": "/nhl94/pics/img/current-20261103-r2/insufficient-budget-protected.png",
      "title": "How purchases and sales change the teams",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 A $9.801.000 purchase is refused with only $6.036.000 remaining.",
      "alt": "A $9.801.000 purchase is refused with only $6.036.000 remaining.",
      "actually_visible": "A $9.801.000 purchase is refused with only $6.036.000 remaining.",
      "nearest_description": "Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM hash .",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-18",
      "page": "index.html",
      "anchor": "picture-017",
      "image_url": "/nhl94/pics/img/current-20261103-r2/after-trades-presentation-550.png",
      "title": "How purchases and sales change the teams",
      "section": "current-features",
      "caption": "2026-11-03-r2 \u00b7 Native centre presentation after the documented trades: Zibanejad68 versus Edmonton\u2019s MacKinnon98.",
      "alt": "Native centre presentation after the documented trades: Zibanejad68 versus Edmonton\u2019s MacKinnon98.",
      "actually_visible": "Native centre presentation after the documented trades: Zibanejad68 versus Edmonton\u2019s MacKinnon98.",
      "nearest_description": "Behavior, pricing, controls, every source/hook and exact qualification \u00b7 Current test report \u00b7 Opened original images and their ROM hash .",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "index.html#image-19",
      "page": "index.html",
      "anchor": "picture-018",
      "image_url": "/nhl94/pics/img/current-20261103-r2/quick-0.png",
      "title": "Quickgame \u2014 four human matchups",
      "section": "quickgame-r6",
      "caption": "2026-11-03-r2 \u00b7 Quickgame: 1 vs1; centred controls inside the native footer frame.",
      "alt": "Quickgame: 1 vs1; centred controls inside the native footer frame.",
      "actually_visible": "Quickgame: 1 vs1; centred controls inside the native footer frame.",
      "nearest_description": "Choose 1 vs 1,1 vs 2,1 vs 3 or 2 vs 2 human controllers. P 1 plays home; a four-player adapter enables three/four controllers. Native AI teammates fill the remaining positions. Quickgame preserves the current Full/Light/Mini season while you switch modes. Pregame and result menus contain the relevant match actions.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-20",
      "page": "index.html",
      "anchor": "picture-019",
      "image_url": "/nhl94/pics/img/current-20261103-r2/quick-3.png",
      "title": "Quickgame \u2014 four human matchups",
      "section": "quickgame-r6",
      "caption": "2026-11-03-r2 \u00b7 Quickgame: 2 vs2; centred controls inside the native footer frame.",
      "alt": "Quickgame: 2 vs2; centred controls inside the native footer frame.",
      "actually_visible": "Quickgame: 2 vs2; centred controls inside the native footer frame.",
      "nearest_description": "Choose 1 vs 1,1 vs 2,1 vs 3 or 2 vs 2 human controllers. P 1 plays home; a four-player adapter enables three/four controllers. Native AI teammates fill the remaining positions. Quickgame preserves the current Full/Light/Mini season while you switch modes. Pregame and result menus contain the relevant match actions.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-21",
      "page": "index.html",
      "anchor": "picture-020",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/replay-native.png",
      "title": "Replay, menu background and player markers",
      "section": "replay-quick-menu-nov2",
      "caption": "2026-11-03-r2 \u00b7 The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "alt": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "actually_visible": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "nearest_description": "The automatic REPLAY heading stays clean and the lower-left clock/frame keeps its pre-replay appearance. The supplied menu78 image is the menu background; the original NHL94 Season Edition startup stays. Physical player markers are P1 blue, P2 red, P3 neon green and P4 yellow, with the original red goal.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-22",
      "page": "index.html",
      "anchor": "picture-021",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/faceoff.png",
      "title": "Replay, menu background and player markers",
      "section": "replay-quick-menu-nov2",
      "caption": "2026-11-03-r2 \u00b7 Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation.",
      "alt": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation.",
      "actually_visible": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation.",
      "nearest_description": "The automatic REPLAY heading stays clean and the lower-left clock/frame keeps its pre-replay appearance. The supplied menu78 image is the menu background; the original NHL94 Season Edition startup stays. Physical player markers are P1 blue, P2 red, P3 neon green and P4 yellow, with the original red goal.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-23",
      "page": "index.html",
      "anchor": "picture-022",
      "image_url": "/nhl94/pics/img/current-20261103-r2/allstar-cpu.png",
      "title": "Allstar \u2014 humans or CPU",
      "section": "allstar-r7",
      "caption": "2026-11-03-r2 \u00b7 Allstar: 1 vs CPU; centred controls inside the native footer frame.",
      "alt": "Allstar: 1 vs CPU; centred controls inside the native footer frame.",
      "actually_visible": "Allstar: 1 vs CPU; centred controls inside the native footer frame.",
      "nearest_description": "Allstar offers 1 vs CPU plus 1 vs 1, 1 vs 2, 1 vs 3 and 2 vs 2 humans. The 52 best eligible players are selected by native base overall and split by natural position into two valid 26-player teams. Each has 3 goalkeepers, 8 defenders and 5 players at each forward position. Allstar A wears all black; Allstar B wears all red. Ordinary club uniforms are preserved.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-24",
      "page": "index.html",
      "anchor": "picture-023",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/allstar-uniforms.png",
      "title": "Allstar \u2014 humans or CPU",
      "section": "allstar-r7",
      "caption": "2026-11-03-r2 \u00b7 Allstar A skaters wear solid black and Allstar B solid red; ASB0 ASA0 at1st4:57.",
      "alt": "Allstar A skaters wear solid black and Allstar B solid red; ASB0 ASA0 at1st4:57.",
      "actually_visible": "Allstar A skaters wear solid black and Allstar B solid red; ASB0 ASA0 at1st4:57.",
      "nearest_description": "Allstar offers 1 vs CPU plus 1 vs 1, 1 vs 2, 1 vs 3 and 2 vs 2 humans. The 52 best eligible players are selected by native base overall and split by natural position into two valid 26-player teams. Each has 3 goalkeepers, 8 defenders and 5 players at each forward position. Allstar A wears all black; Allstar B wears all red. Ordinary club uniforms are preserved.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-25",
      "page": "index.html",
      "anchor": "picture-024",
      "image_url": "/nhl94/pics/img/current-20261103-r2/allstar-overall.png",
      "title": "Allstar \u2014 humans or CPU",
      "section": "allstar-r7",
      "caption": "2026-11-03-r2 \u00b7 Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms.",
      "alt": "Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms.",
      "actually_visible": "Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms.",
      "nearest_description": "Allstar offers 1 vs CPU plus 1 vs 1, 1 vs 2, 1 vs 3 and 2 vs 2 humans. The 52 best eligible players are selected by native base overall and split by natural position into two valid 26-player teams. Each has 3 goalkeepers, 8 defenders and 5 players at each forward position. Allstar A wears all black; Allstar B wears all red. Ordinary club uniforms are preserved.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-26",
      "page": "index.html",
      "anchor": "picture-025",
      "image_url": "/nhl94/pics/img/current-20261103-r2/allstar-hot.png",
      "title": "Allstar \u2014 humans or CPU",
      "section": "allstar-r7",
      "caption": "2026-11-03-r2 \u00b7 Allstar left-forward presentation: #97 Kaprizov marked HOT versus #41 Stenberg, with their native rating display and commentary.",
      "alt": "Allstar left-forward presentation: #97 Kaprizov marked HOT versus #41 Stenberg, with their native rating display and commentary.",
      "actually_visible": "Allstar left-forward presentation: #97 Kaprizov marked HOT versus #41 Stenberg, with their native rating display and commentary.",
      "nearest_description": "Allstar offers 1 vs CPU plus 1 vs 1, 1 vs 2, 1 vs 3 and 2 vs 2 humans. The 52 best eligible players are selected by native base overall and split by natural position into two valid 26-player teams. Each has 3 goalkeepers, 8 defenders and 5 players at each forward position. Allstar A wears all black; Allstar B wears all red. Ordinary club uniforms are preserved.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "index.html#image-27",
      "page": "index.html",
      "anchor": "picture-026",
      "image_url": "/nhl94/pics/img/current-20261103-r2/credits.png",
      "title": "Credits and sources",
      "section": "credits",
      "caption": "2026-11-03-r2 \u00b7 Actual startup credits: Website https://games.jdc.se.",
      "alt": "Actual startup credits: Website https://games.jdc.se.",
      "actually_visible": "Actual startup credits: Website https://games.jdc.se.",
      "nearest_description": "Roster/headshot data: NHL; line references: DailyFaceoff. The critical-shot digital effect was adapted from Twin Cobra (Toaplan). Full provenance, scope and the original authors' remaining acknowledgements: Credits notes .",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-28",
      "page": "index.html",
      "anchor": "picture-027",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/momentum-away.png",
      "title": "Momentum, shot gauge and powerplay HUD",
      "section": "momentum-left-r5",
      "caption": "2026-11-03-r2 \u00b7 Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "alt": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "actually_visible": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "nearest_description": "Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-29",
      "page": "index.html",
      "anchor": "picture-028",
      "image_url": "/nhl94/pics/img/current-20261103-r2/momentum-off.png",
      "title": "Momentum, shot gauge and powerplay HUD",
      "section": "momentum-left-r5",
      "caption": "2026-11-03-r2 \u00b7 Native play with Momentum Off: the lower-right scoreboard has no Momentum strips. Stat scaling is checked separately.",
      "alt": "Native play with Momentum Off: the lower-right scoreboard has no Momentum strips. Stat scaling is checked separately.",
      "actually_visible": "Native play with Momentum Off: the lower-right scoreboard has no Momentum strips. Stat scaling is checked separately.",
      "nearest_description": "Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "index.html#image-30",
      "page": "index.html",
      "anchor": "picture-029",
      "image_url": "/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "title": "Momentum, shot gauge and powerplay HUD",
      "section": "momentum-left-r5",
      "caption": "2026-11-03-r2 \u00b7 Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "alt": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "actually_visible": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "nearest_description": "Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-31",
      "page": "index.html",
      "anchor": "picture-030",
      "image_url": "/nhl94/pics/img/current-20261103-r2/powerplay-home.png",
      "title": "Momentum, shot gauge and powerplay HUD",
      "section": "momentum-left-r5",
      "caption": "2026-11-03-r2 \u00b7 Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock.",
      "alt": "Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock.",
      "actually_visible": "Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock.",
      "nearest_description": "Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-32",
      "page": "index.html",
      "anchor": "picture-031",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/momentum-home.png",
      "title": "Momentum, shot gauge and powerplay HUD",
      "section": "momentum-left-r5",
      "caption": "2026-11-03-r2 \u00b7 Momentum strips beneath both team names at3rd3:02, NYR1 EDM2. The visible bars are separate from the lower-left clock.",
      "alt": "Momentum strips beneath both team names at3rd3:02, NYR1 EDM2. The visible bars are separate from the lower-left clock.",
      "actually_visible": "Momentum strips beneath both team names at3rd3:02, NYR1 EDM2. The visible bars are separate from the lower-left clock.",
      "nearest_description": "Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-33",
      "page": "index.html",
      "anchor": "picture-032",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/momentum-away.png",
      "title": "Momentum, shot gauge and powerplay HUD",
      "section": "momentum-left-r5",
      "caption": "2026-11-03-r2 \u00b7 Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "alt": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "actually_visible": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "nearest_description": "Momentum defaults On and gives earned changes of up to\u00b110% Stats. Its two bars sit beneath the team names in the lower-right score box. Off removes the bars and scaling. The shared shot/pass gauge replaces the lower-left NHL badge; choose KMH (default) or MPH. The powerplay caption/countdown has its own matching frame above the clock.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-34",
      "page": "index.html",
      "anchor": "picture-033",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/faceoff.png",
      "title": "Painted faceoff dots \u2014 always On",
      "section": "faceoff-dots-r4",
      "caption": "2026-11-03-r2 \u00b7 Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation.",
      "alt": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation.",
      "actually_visible": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation.",
      "nearest_description": "Native stoppage formations use the painted-dot policy. As requested, this is always On and the redundant start-menu choice is hidden. Native formation, puck placement, line selection and rendering remain responsible.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced ordinary skating with actual centre-ice faceoff formation"
    },
    {
      "occurrence": "index.html#image-35",
      "page": "index.html",
      "anchor": "picture-034",
      "image_url": "/nhl94/pics/img/current-20261103-r2/shootout.png",
      "title": "Overtime shootout rules \u2014 always On",
      "section": "strict-so-r2",
      "caption": "2026-11-03-r2 \u00b7 Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "alt": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "actually_visible": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "nearest_description": "The selected period length also sets overtime. Tied overtime leads to native shootouts with automatic starts, eligible-skater rotation, full-spin checks and native single-shot/retouch handling. This rule set is always On and its start-menu row is hidden.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "index.html#image-36",
      "page": "index.html",
      "anchor": "picture-035",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/penalty-default.png",
      "title": "Choose penalty frequency separately",
      "section": "penalty-rate-r8",
      "caption": "2026-11-03-r2 \u00b7 Penaltys50% by default; centred help stays inside its native border.",
      "alt": "Penaltys50% by default; centred help stays inside its native border.",
      "actually_visible": "Penaltys50% by default; centred help stays inside its native border.",
      "nearest_description": "50% admits approximately half the eligible ordinary fouls. Off suppresses new ordinary penalties and new fights. Injury stoppages remain through the native injury-only report, and fighting penalties stay paired. All five percentage/pass choices save per season and lock after its first match.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-37",
      "page": "index.html",
      "anchor": "picture-036",
      "image_url": "/nhl94/pics/img/current-20261103-r2/directional.png",
      "title": "Choose directional passing and receiver cone",
      "section": "pass-mode-r7",
      "caption": "2026-11-03-r2 \u00b7 Directional mode selected; Low pass height remains independent. Help is centred in its native frame.",
      "alt": "Directional mode selected; Low pass height remains independent. Help is centred in its native frame.",
      "actually_visible": "Directional mode selected; Low pass height remains independent. Help is centred in its native frame.",
      "nearest_description": "Height and Speed stay independent. Seasons save all four choices and lock them after the first match. P1\u2013P4, manual keepers and requested CPU-keeper outlets are tested. Hold/release Pass Charge is implemented as a separate optional setting, with the shared visible gauge.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-38",
      "page": "index.html",
      "anchor": "picture-037",
      "image_url": "/nhl94/pics/img/current-20261103-r2/slow.png",
      "title": "Choose pass speed separately",
      "section": "pass-speed-r5",
      "caption": "2026-11-03-r2 \u00b7 Pass Speed Slow selected, alongside Low height, Assisted mode and a45-degree target cone.",
      "alt": "Pass Speed Slow selected, alongside Low height, Assisted mode and a45-degree target cone.",
      "actually_visible": "Pass Speed Slow selected, alongside Low height, Assisted mode and a45-degree target cone.",
      "nearest_description": "Historical release evidence: Brodeur30\u2019s proposal, hooks, storage correction and tests \u00b7 Exact-build evidence . 85/86 shared checks pass; the inherited AI geometry failure remains and the strict gate stays failed.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-39",
      "page": "index.html",
      "anchor": "picture-038",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/pass-defaults.png",
      "title": "Choose lower pass height",
      "section": "pass-height-r4",
      "caption": "2026-11-03-r2 \u00b7 Low passes, Normal speed and Assisted targeting; centred framed help.",
      "alt": "Low passes, Normal speed and Assisted targeting; centred framed help.",
      "actually_visible": "Low passes, Normal speed and Assisted targeting; centred framed help.",
      "nearest_description": "Historical release evidence: Brodeur30\u2019s proposal, hooks, records and tests \u00b7 Exact-build evidence . 84/85 shared checks pass; the inherited AI geometry failure remains and the strict gate stays failed.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-40",
      "page": "index.html",
      "anchor": "picture-039",
      "image_url": "/nhl94/pics/img/current-20261103-r2/mini.png",
      "title": "Mini: seven rivals, seven games",
      "section": "mini-seven-r12",
      "caption": "2026-11-03-r2 \u00b7 Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "alt": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "actually_visible": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "nearest_description": "The season summary or qualification follows game7. Mini still uses one game per playoff pairing. Schedule, persistence, native tests and source \u00b7 Exact-build QA .",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-41",
      "page": "index.html",
      "anchor": "picture-040",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/icing-transfers.png",
      "title": "Icing starts On",
      "section": "icing-default-r7",
      "caption": "2026-11-03-r2 \u00b7 Icing On and Transfers directly below it; centred framed help.",
      "alt": "Icing On and Transfers directly below it; centred framed help.",
      "actually_visible": "Icing On and Transfers directly below it; centred framed help.",
      "nearest_description": "Edmonton, Auto line changes, Fighting Off, Hard, Auto Replays Off and Crit Shots Off keep their r6 defaults. The CPU keeper catch handoff and P1\u2013P4 current-skater pass requests are unchanged.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-42",
      "page": "index.html",
      "anchor": "picture-041",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/keeper-catch.png",
      "title": "The keeper returns to CPU control on a catch",
      "section": "goalie-catch-r6",
      "caption": "2026-11-03-r2 \u00b7 Edmonton goalkeeper35 holds the puck with a pale-blue marker at2nd2:35; the NYR powerplay frame remains above the clock.",
      "alt": "Edmonton goalkeeper35 holds the puck with a pale-blue marker at2nd2:35; the NYR powerplay frame remains above the clock.",
      "actually_visible": "Edmonton goalkeeper35 holds the puck with a pale-blue marker at2nd2:35; the NYR powerplay frame remains above the clock.",
      "nearest_description": "Current fresh defaults: Auto line changes, Fighting Off, Hard, Auto Replays Off, Crit Shots Off and Icing On. Edmonton is preselected; valid saved choices and season locks remain.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced unrelated main menu with actual own CPU keeper holding puck"
    },
    {
      "occurrence": "index.html#image-43",
      "page": "index.html",
      "anchor": "picture-042",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/icing-transfers.png",
      "title": "Icing On/Off and Edmonton by default",
      "section": "icing-menu-r5",
      "caption": "2026-11-03-r2 \u00b7 Icing On and Transfers directly below it; centred framed help.",
      "alt": "Icing On and Transfers directly below it; centred framed help.",
      "actually_visible": "Icing On and Transfers directly below it; centred framed help.",
      "nearest_description": "Edmonton is selected on fresh startup and in newly created or restarted seasons. You can choose another club before starting; ongoing saves keep their club.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-44",
      "page": "index.html",
      "anchor": "picture-043",
      "image_url": "/nhl94/pics/img/current-20261103-r2/keeper.png",
      "title": "Keepers recover from the lateral-carry fake",
      "section": "goalie-lateral-r3",
      "caption": "2026-11-03-r2 \u00b7 Goalkeeper and red crease during native play at3rd3:42. This is rink context; recovery timing and defensive policy require native QA.",
      "alt": "Goalkeeper and red crease during native play at3rd3:42. This is rink context; recovery timing and defensive policy require native QA.",
      "actually_visible": "Goalkeeper and red crease during native play at3rd3:42. This is rink context; recovery timing and defensive policy require native QA.",
      "nearest_description": "In 48 paired native approaches, goals fell from 10 to 4 and keeper catches rose from 15 to 22 . All 69 checks executed: 68 passed. The inherited receiver-hold positioning check still fails, so the strict release gate remains FAILED. This is the same documented AI limitation retained in the user-selected playtest. No new Hard-versus-Normal win-rate series is claimed. Code, tests and limits \u00b7 Exact-build QA .",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "index.html#image-45",
      "page": "index.html",
      "anchor": "picture-044",
      "image_url": "/nhl94/pics/img/current-20261103-r2/stars.png",
      "title": "Crit lock, immediate B switching and the complete Stars panel",
      "section": "maintenance38-r2",
      "caption": "2026-11-03-r2 \u00b7 Stars of the Game after the actual fresh final-ROM match: New York3, Edmonton2.",
      "alt": "Stars of the Game after the actual fresh final-ROM match: New York3, Edmonton2.",
      "actually_visible": "Stars of the Game after the actual fresh final-ROM match: New York3, Edmonton2.",
      "nearest_description": "The selected 38-win tactical base is retained. All 40 saved no-B AI situations match it frame-for-frame. All 67 checks ran: 66 passed; the inherited receiver-positioning limitation remains documented, so the strict gate is still failed. No new win-rate series is claimed. Changes, exact tests and rollback \u00b7 Current QA .",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-46",
      "page": "index.html",
      "anchor": "picture-045",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/crit-menu.png",
      "title": "Crit Shots now shows On / Off",
      "section": "crit-render-fix",
      "caption": "2026-11-03-r2 \u00b7 Crit Shots Off is selected and visibly rendered in the main menu; the help is centred inside its native border.",
      "alt": "Crit Shots Off is selected and visibly rendered in the main menu; the help is centred inside its native border.",
      "actually_visible": "Crit Shots Off is selected and visibly rendered in the main menu; the help is centred inside its native border.",
      "nearest_description": "All40 shared release checks pass, including a native rendering regression reproducing the missing initial value in r2. This update corrects the menu display; Hard AI work continues separately.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-47",
      "page": "index.html",
      "anchor": "picture-046",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/crit-menu.png",
      "title": "Crit Shots: On / Off",
      "section": "crit-option",
      "caption": "2026-11-03-r2 \u00b7 Crit Shots Off is selected and visibly rendered in the main menu; the help is centred inside its native border.",
      "alt": "Crit Shots Off is selected and visibly rendered in the main menu; the help is centred inside its native border.",
      "actually_visible": "Crit Shots Off is selected and visibly rendered in the main menu; the help is centred inside its native border.",
      "nearest_description": "Historical release evidence: Off also applies on Easy: no critical power bonus, red puck, flames or special shot sound. Auto Replays keeps its own independent setting. All 39 shared release checks pass; the Hard strength investigation was still running then and is now archived.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced Icing-focused image with visibly selected Crit Shots row"
    },
    {
      "occurrence": "index.html#image-56",
      "page": "index.html",
      "anchor": "picture-047",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/critical-flight.png",
      "title": "Critical-shot puck and trail",
      "section": "crit-option",
      "caption": "2026-11-03-r2 \u00b7 Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "alt": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "actually_visible": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "nearest_description": "Critical-shot puck and trail",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Moved critical-shot effect out of blue-line statistical measurement into dedicated critical-shot heading"
    },
    {
      "occurrence": "index.html#image-57",
      "page": "index.html",
      "anchor": "picture-048",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/critical-trail.png",
      "title": "Critical-shot puck and trail",
      "section": "crit-option",
      "caption": "2026-11-03-r2 \u00b7 Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "alt": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "actually_visible": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "nearest_description": "Critical-shot puck and trail",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Moved critical-shot effect out of blue-line statistical measurement into dedicated critical-shot heading"
    },
    {
      "occurrence": "index.html#image-48",
      "page": "index.html",
      "anchor": "picture-049",
      "image_url": "/nhl94/pics/img/current-20261103-r2/rink.png",
      "title": "Hard defenders meet the puck carrier earlier",
      "section": "ai-gap",
      "caption": "2026-11-03-r2 \u00b7 Current players, puck, original red goal and distinct controller stars. Representative native play; this still does not measure the AI policy.",
      "alt": "Current players, puck, original red goal and distinct controller stars. Representative native play; this still does not measure the AI policy.",
      "actually_visible": "Current players, puck, original red goal and distinct controller stars. Representative native play; this still does not measure the AI policy.",
      "nearest_description": "In 16 paired defensive situations, the goal-side pressure gap fell in 15, averaging 33 rink units closer. One case had a 4-unit larger gap with better slot coverage. Eight Normal/Easy controls retained native target decisions. In 24 scripted rush/shot situations, observed attacker releases fell from 11 to 7 and attacking-team goals from 7 to 6. These small controlled samples do not establish a win rate or guarantee fewer goals in every match.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "index.html#image-49",
      "page": "index.html",
      "anchor": "picture-050",
      "image_url": "/nhl94/pics/img/current-20261103-r2/attack.png",
      "title": "Hard defenders meet the puck carrier earlier",
      "section": "ai-gap",
      "caption": "2026-11-03-r2 \u00b7 Actual final-ROM Hard gameplay, puck and physical controller indicators. Representative native play; this still does not measure the AI policy.",
      "alt": "Actual final-ROM Hard gameplay, puck and physical controller indicators. Representative native play; this still does not measure the AI policy.",
      "actually_visible": "Actual final-ROM Hard gameplay, puck and physical controller indicators. Representative native play; this still does not measure the AI policy.",
      "nearest_description": "In 16 paired defensive situations, the goal-side pressure gap fell in 15, averaging 33 rink units closer. One case had a 4-unit larger gap with better slot coverage. Eight Normal/Easy controls retained native target decisions. In 24 scripted rush/shot situations, observed attacker releases fell from 11 to 7 and attacking-team goals from 7 to 6. These small controlled samples do not establish a win rate or guarantee fewer goals in every match.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "index.html#image-50",
      "page": "index.html",
      "anchor": "picture-051",
      "image_url": "/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "title": "Shot charge: white, orange, red",
      "section": "shot-charge",
      "caption": "2026-11-03-r2 \u00b7 Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "alt": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "actually_visible": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "nearest_description": "The charge meter starts white, turns orange as the slapshot builds, and stays solid red at full power. The fill remains visible at maximum charge. Release timing, shot power, critical chance and shot speed keep their established behavior.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-51",
      "page": "index.html",
      "anchor": "picture-052",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/auto-replays-menu.png",
      "title": "Keep your team, choose automatic replays",
      "section": "intermission-fixes",
      "caption": "2026-11-03-r2 \u00b7 Auto Replays Off selected in the main menu, independent of Crit Shots; centred controls inside the native footer frame.",
      "alt": "Auto Replays Off selected in the main menu, independent of Crit Shots; centred controls inside the native footer frame.",
      "actually_visible": "Auto Replays Off selected in the main menu, independent of Crit Shots; centred controls inside the native footer frame.",
      "nearest_description": "Leaving Scoring Leaders before the third period now returns to a visible menu with one Start press. Automatic replay no longer leaves a stale redraw flag. Crowd meters also stop erasing the right edge of the EA Hockey Night score ticker during penalty scenes.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced Icing-focused image with selected Auto Replays row"
    },
    {
      "occurrence": "index.html#image-52",
      "page": "index.html",
      "anchor": "picture-053",
      "image_url": "/nhl94/pics/img/current-20261103-r2/attack.png",
      "title": "Hard: attacking support and better pass choices",
      "section": "ai-attack",
      "caption": "2026-11-03-r2 \u00b7 Actual final-ROM Hard gameplay, puck and physical controller indicators. Representative native play; this still does not measure the AI policy.",
      "alt": "Actual final-ROM Hard gameplay, puck and physical controller indicators. Representative native play; this still does not measure the AI policy.",
      "actually_visible": "Actual final-ROM Hard gameplay, puck and physical controller indicators. Representative native play; this still does not measure the AI policy.",
      "nearest_description": "Historical release evidence: In eight paired staged native pass situations, passes toward the free receiver rose from 3/8 to 8/8 , and actual receptions from 2/8 to 4/8 . Eight additional support comparisons show the forward escaping a designated marker more often. These are controlled small samples, not match win-rate or guaranteed scoring claims. Native pass checks, reception and shot physics remain in use.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "index.html#image-53",
      "page": "index.html",
      "anchor": "picture-054",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/faceoff.png",
      "title": "Hard: attacking support and better pass choices",
      "section": "ai-attack",
      "caption": "2026-11-03-r2 \u00b7 Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation. Representative native play; this still does not measure the AI policy.",
      "alt": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation. Representative native play; this still does not measure the AI policy.",
      "actually_visible": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation. Representative native play; this still does not measure the AI policy.",
      "nearest_description": "Historical release evidence: In eight paired staged native pass situations, passes toward the free receiver rose from 3/8 to 8/8 , and actual receptions from 2/8 to 4/8 . Eight additional support comparisons show the forward escaping a designated marker more often. These are controlled small samples, not match win-rate or guaranteed scoring claims. Native pass checks, reception and shot physics remain in use.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-54",
      "page": "index.html",
      "anchor": "picture-055",
      "image_url": "/nhl94/pics/img/current-20261103-r2/keeper.png",
      "title": "Hard AI covers the far-side threat",
      "section": "ai-defence",
      "caption": "2026-11-03-r2 \u00b7 Goalkeeper and red crease during native play at3rd3:42. This is rink context; recovery timing and defensive policy require native QA. Representative native play; this still does not measure the AI policy.",
      "alt": "Goalkeeper and red crease during native play at3rd3:42. This is rink context; recovery timing and defensive policy require native QA. Representative native play; this still does not measure the AI policy.",
      "actually_visible": "Goalkeeper and red crease during native play at3rd3:42. This is rink context; recovery timing and defensive policy require native QA. Representative native play; this still does not measure the AI policy.",
      "nearest_description": "In 11 paired native Hard skating situations , the winger moved closer to the receiver in every comparison. Average coverage distance on Hard fell by 27 rink units over the measured frames. Eight Normal/Easy controls retain the baseline positioning. This measures positioning, not a guaranteed scoring or win-rate change. 44 target/guard cases and the full 20-check shared release gate also pass. Tests use scripted native input.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "index.html#image-55",
      "page": "index.html",
      "anchor": "picture-056",
      "image_url": "/nhl94/pics/img/current-20261103-r2/rink.png",
      "title": "Hard AI covers the far-side threat",
      "section": "ai-defence",
      "caption": "2026-11-03-r2 \u00b7 Current players, puck, original red goal and distinct controller stars. Representative native play; this still does not measure the AI policy.",
      "alt": "Current players, puck, original red goal and distinct controller stars. Representative native play; this still does not measure the AI policy.",
      "actually_visible": "Current players, puck, original red goal and distinct controller stars. Representative native play; this still does not measure the AI policy.",
      "nearest_description": "In 11 paired native Hard skating situations , the winger moved closer to the receiver in every comparison. Average coverage distance on Hard fell by 27 rink units over the measured frames. Eight Normal/Easy controls retain the baseline positioning. This measures positioning, not a guaranteed scoring or win-rate change. 44 target/guard cases and the full 20-check shared release gate also pass. Tests use scripted native input.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "index.html#image-58",
      "page": "index.html",
      "anchor": "picture-057",
      "image_url": "/nhl94/pics/img/current-20261103-r2/shootout.png",
      "title": "Shootouts",
      "section": "blueline",
      "caption": "2026-11-03-r2 \u00b7 Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "alt": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "actually_visible": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "nearest_description": "Historical standalone Shootout measurements used810 bot attempts per ROM (20 original goals,19 patched; no long-range goals). The current image below instead shows a tied-overtime shootout attempt from the declared clock fixture. It illustrates the native shootout scene, not that historical measurement or the blue-line bonus.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "index.html#image-59",
      "page": "index.html",
      "anchor": "picture-058",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/offscreen-goalie-arrow.png",
      "title": "4 Off-screen arrow points the right way",
      "section": "arrow",
      "caption": "2026-11-03-r2 \u00b7 Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "alt": "Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "actually_visible": "Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "nearest_description": "Offscreen controller arrows use the320-pixel screen centre. The originally reported manual-goalie shootout case was displaced32 pixels left by a256-pixel assumption. The corrected constant at$16590 is documented and tested separately. The current pictures below show the blue arrow for a real Y-selected offscreen goalkeeper at the lower rink edge; they are not the original top-edge comparison.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced generic attack/player-star photos with real Y-selected offscreen goalkeeper arrow"
    },
    {
      "occurrence": "index.html#image-60",
      "page": "index.html",
      "anchor": "picture-059",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/offscreen-goalie-arrow.png",
      "title": "4 Off-screen arrow points the right way",
      "section": "arrow",
      "caption": "2026-11-03-r2 \u00b7 Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "alt": "Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "actually_visible": "Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "nearest_description": "Offscreen controller arrows use the320-pixel screen centre. The originally reported manual-goalie shootout case was displaced32 pixels left by a256-pixel assumption. The corrected constant at$16590 is documented and tested separately. The current pictures below show the blue arrow for a real Y-selected offscreen goalkeeper at the lower rink edge; they are not the original top-edge comparison.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced generic attack/player-star photos with real Y-selected offscreen goalkeeper arrow"
    },
    {
      "occurrence": "index.html#image-61",
      "page": "index.html",
      "anchor": "picture-060",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/fighting-menu.png",
      "title": "The fix",
      "section": "fighting",
      "caption": "2026-11-03-r2 \u00b7 Fighting Off selected in the main menu; Auto line changes and centred framed controls remain visible.",
      "alt": "Fighting Off selected in the main menu; Auto line changes and centred framed controls remain visible.",
      "actually_visible": "Fighting Off selected in the main menu; Auto line changes and centred framed controls remain visible.",
      "nearest_description": "The setting moved to free RAM $FFF004 (6 code references and 3 menu references changed). The menu now has two choices, Off and On .\n          When Penalties is Off, Fighting shows N/A (fights need penalties on anyway). Tested: Off stays 0 and On stays 1 for whole CPU games. With everyone's fighting rating forced to max, a real fight happened (Beauvillier vs Toews).",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced Hard-selected image with selected Fighting Off row"
    },
    {
      "occurrence": "index.html#image-62",
      "page": "index.html",
      "anchor": "picture-061",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/fighting-menu.png",
      "title": "The fix",
      "section": "fighting",
      "caption": "2026-11-03-r2 \u00b7 Fighting Off selected in the main menu; Auto line changes and centred framed controls remain visible.",
      "alt": "Fighting Off selected in the main menu; Auto line changes and centred framed controls remain visible.",
      "actually_visible": "Fighting Off selected in the main menu; Auto line changes and centred framed controls remain visible.",
      "nearest_description": "The setting moved to free RAM $FFF004 (6 code references and 3 menu references changed). The menu now has two choices, Off and On .\n          When Penalties is Off, Fighting shows N/A (fights need penalties on anyway). Tested: Off stays 0 and On stays 1 for whole CPU games. With everyone's fighting rating forced to max, a real fight happened (Beauvillier vs Toews).",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced Hard-selected image with selected Fighting Off row"
    },
    {
      "occurrence": "index.html#image-63",
      "page": "index.html",
      "anchor": "picture-062",
      "image_url": "/nhl94/pics/img/current-20261103-r2/drai-line.png",
      "title": "6 All 32 rosters, October 21, 2026",
      "section": "roster",
      "caption": "2026-11-03-r2 \u00b7 Draisaitl placed at Scoring Line1 RW, with McDavid retained at centre.",
      "alt": "Draisaitl placed at Scoring Line1 RW, with McDavid retained at centre.",
      "actually_visible": "Draisaitl placed at Scoring Line1 RW, with McDavid retained at centre.",
      "nearest_description": "Goalie: Levi (Jarry, Andersen). PP1 Hyman\u2013McDavid\u2013Draisaitl, Ekholm\u2013Bouchard. PP2 Howard\u2013Hallander\u2013Kapanen, Walman\u2013Murphy.\n          PK1 Kapanen\u2013McDavid, Shea\u2013Bouchard. PK2 Formenton\u2013Michaels, Ekholm\u2013Murphy.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-64",
      "page": "index.html",
      "anchor": "picture-063",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/menu.png",
      "title": "The main menu",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "alt": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "actually_visible": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "nearest_description": "The main menu",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-65",
      "page": "index.html",
      "anchor": "picture-064",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/pregame.png",
      "title": "The season menu",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Ordinary season pregame: New York0, Edmonton0,1st5:00 and Start Game. This is not the Quickgame action menu.",
      "alt": "Ordinary season pregame: New York0, Edmonton0,1st5:00 and Start Game. This is not the Quickgame action menu.",
      "actually_visible": "Ordinary season pregame: New York0, Edmonton0,1st5:00 and Start Game. This is not the Quickgame action menu.",
      "nearest_description": "Press Start in the main menu to see the restored native Matchups presentation for the current teams and players, followed by the pre-game menu. There:",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced unrelated standings with actual ordinary-season pregame action menu"
    },
    {
      "occurrence": "index.html#image-66",
      "page": "index.html",
      "anchor": "picture-065",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/standings.png",
      "title": "Division standings, player statistics and leaders",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Native Atlantic Division standings with eight clubs and initial zero records; division/team/player controls are visible.",
      "alt": "Native Atlantic Division standings with eight clubs and initial zero records; division/team/player controls are visible.",
      "actually_visible": "Native Atlantic Division standings with eight clubs and initial zero records; division/team/player controls are visible.",
      "nearest_description": "Current standings and statistics views: the native in-season Standings page lists eight teams per division with W/OTW/OTL/L, goals and points. The Player Stats and Scoring Leaders pages show their own player tables and navigation. These screenshots show the initial tables, not the separate automatic postgame banner presentation or a played full-season history.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-67",
      "page": "index.html",
      "anchor": "picture-066",
      "image_url": "/nhl94/pics/img/current-20261103-r2/player-stats.png",
      "title": "Division standings, player statistics and leaders",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current player statistics and sorting controls.",
      "alt": "Current player statistics and sorting controls.",
      "actually_visible": "Current player statistics and sorting controls.",
      "nearest_description": "Current standings and statistics views: the native in-season Standings page lists eight teams per division with W/OTW/OTL/L, goals and points. The Player Stats and Scoring Leaders pages show their own player tables and navigation. These screenshots show the initial tables, not the separate automatic postgame banner presentation or a played full-season history.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-68",
      "page": "index.html",
      "anchor": "picture-067",
      "image_url": "/nhl94/pics/img/current-20261103-r2/leaders.png",
      "title": "Division standings, player statistics and leaders",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current scoring leaders with native sorting controls.",
      "alt": "Current scoring leaders with native sorting controls.",
      "actually_visible": "Current scoring leaders with native sorting controls.",
      "nearest_description": "Current standings and statistics views: the native in-season Standings page lists eight teams per division with W/OTW/OTL/L, goals and points. The Player Stats and Scoring Leaders pages show their own player tables and navigation. These screenshots show the initial tables, not the separate automatic postgame banner presentation or a played full-season history.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-70",
      "page": "index.html",
      "anchor": "picture-068",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/critical-flight.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "alt": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "actually_visible": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "nearest_description": "Crit flames follow the puck (26 October, r33): a crit could have its red puck and bomb sound but almost no visible flame trail. When the camera followed the shot, the six circles overlapped. They now follow the puck's path across the ice while the camera scrolls. Reproduced and checked in Mini, Easy, 5-minute periods, Fighting Off, Edmonton\u2013Chicago. Shot power and goal bonuses are unchanged. Source, tests and before/after pictures .",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-71",
      "page": "index.html",
      "anchor": "picture-069",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/critical-trail.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "alt": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "actually_visible": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "nearest_description": "Crit flames follow the puck (26 October, r33): a crit could have its red puck and bomb sound but almost no visible flame trail. When the camera followed the shot, the six circles overlapped. They now follow the puck's path across the ice while the camera scrolls. Reproduced and checked in Mini, Easy, 5-minute periods, Fighting Off, Edmonton\u2013Chicago. Shot power and goal bonuses are unchanged. Source, tests and before/after pictures .",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-72",
      "page": "index.html",
      "anchor": "picture-070",
      "image_url": "/nhl94/pics/img/current-20261103-r2/shot-speed.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Measured shot speed is displayed below the clock, using the selected unit.",
      "alt": "Measured shot speed is displayed below the clock, using the selected unit.",
      "actually_visible": "Measured shot speed is displayed below the clock, using the selected unit.",
      "nearest_description": "Strong crits fixed and measured (26 October, r32): the very hardest crits could become slower and swerve the wrong way because the original velocity calculation overflowed. That is fixed. Tested Edmonton, Colorado and Toronto on Easy, Normal and Hard with 5, 7, 10 and 20-minute periods: 14,400 matched shots before/after. Bouchard #2 scored 32/100 full crit shots from the long-shot zone on Easy against an active goalie. The goalie-miss bonus activated 15.03% beyond distance 160 and never below it; Easy produced 2,400/2,400 actual crits. These are isolated goalie tests with other skaters out of the lane, not normal match scoring odds. Method, source and results \u00b7 Full comparison CSV .",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-73",
      "page": "index.html",
      "anchor": "picture-071",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/critical-flight.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "alt": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "actually_visible": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "nearest_description": "Strong crits fixed and measured (26 October, r32): the very hardest crits could become slower and swerve the wrong way because the original velocity calculation overflowed. That is fixed. Tested Edmonton, Colorado and Toronto on Easy, Normal and Hard with 5, 7, 10 and 20-minute periods: 14,400 matched shots before/after. Bouchard #2 scored 32/100 full crit shots from the long-shot zone on Easy against an active goalie. The goalie-miss bonus activated 15.03% beyond distance 160 and never below it; Easy produced 2,400/2,400 actual crits. These are isolated goalie tests with other skaters out of the lane, not normal match scoring odds. Method, source and results \u00b7 Full comparison CSV .",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-74",
      "page": "index.html",
      "anchor": "picture-072",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/replay-before.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Declared native shot/goal fixture before replay:172KMH and the solid red shot bar below the1st4:36 clock, LAK0 WAS1.",
      "alt": "Declared native shot/goal fixture before replay:172KMH and the solid red shot bar below the1st4:36 clock, LAK0 WAS1.",
      "actually_visible": "Declared native shot/goal fixture before replay:172KMH and the solid red shot bar below the1st4:36 clock, LAK0 WAS1.",
      "nearest_description": "Shot panel through replay (introduced26 October,r31; current layout shown): the selected KMH or MPH value and shot bar stay in the lower-left clock panel during replay. The upper-left REPLAY heading is separate. Earlier dual-unit/right-side layouts are historical.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced unrelated shot-speed example with the exact before frame of the SAME measured native replay fixture"
    },
    {
      "occurrence": "index.html#image-75",
      "page": "index.html",
      "anchor": "picture-073",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/replay-native.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "alt": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "actually_visible": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "nearest_description": "Shot panel through replay (introduced26 October,r31; current layout shown): the selected KMH or MPH value and shot bar stay in the lower-left clock panel during replay. The upper-left REPLAY heading is separate. Earlier dual-unit/right-side layouts are historical.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-76",
      "page": "index.html",
      "anchor": "picture-074",
      "image_url": "/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "alt": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "actually_visible": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "nearest_description": "Shot meter and Easy difficulty (introduced26 October,r27; current layout shown): the shot gauge sits inside the lower-left clock panel. It starts with a small white fill, turns orange and reaches solid red. Easy separately retains100-equivalent human-team skills and full energy.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-77",
      "page": "index.html",
      "anchor": "picture-075",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/replay-native.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "alt": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "actually_visible": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "nearest_description": "REPLAY title (26 October, r23): the automatic goal replay shows a big chrome \"REPLAY\" in the corner, in the style of the NHL'94 logo, instead of the grey A/B/C VCR box. The Instant Replay from the pause menu keeps its controls.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-78",
      "page": "index.html",
      "anchor": "picture-076",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/menu.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "alt": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "actually_visible": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "nearest_description": "Season Edition main menu (introduced26 October,r14; current layout shown): the current menu uses the supplied image78 texture behind its panels. The original greyscale NHL94 Season Edition startup is preserved separately.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-79",
      "page": "index.html",
      "anchor": "picture-077",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/critical-trail.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "alt": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "actually_visible": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "nearest_description": "Longer crit flames, crits in shootouts (26 October, r2): the crit tail is now six flames that follow the puck through the whole shot and burn out slowly afterwards, and it no longer disappears when many players are on screen. In shootouts a crit now also turns the puck red with flames (before, it only got the extra power and the effect stopped after one frame).",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-80",
      "page": "index.html",
      "anchor": "picture-078",
      "image_url": "/nhl94/pics/img/current-20261103-r2/completed-mini.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Completed Mini review menu, from an explicitly declared completed-save fixture. Centred native-frame help.",
      "alt": "Completed Mini review menu, from an explicitly declared completed-save fixture. Centred native-frame help.",
      "actually_visible": "Completed Mini review menu, from an explicitly declared completed-save fixture. Centred native-frame help.",
      "nearest_description": "Finished seasons show their saved results (26 October): completed slots say See Old Full Season / See Old Light Season / See Old Mini Season . Start opens the saved statistics instead of an extra match. After Scoring Leaders, choose to view again, start a new season in that slot, or return. Xbox X + B confirms a new season; Start cancels. Other seasons are kept. Code and native tests .",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-81",
      "page": "index.html",
      "anchor": "picture-079",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/completed-actions.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Season Complete: See Results, Scoring Leaders, Start New Mini Season and Back to Main Menu. Declared completed-save fixture.",
      "alt": "Season Complete: See Results, Scoring Leaders, Start New Mini Season and Back to Main Menu. Declared completed-save fixture.",
      "actually_visible": "Season Complete: See Results, Scoring Leaders, Start New Mini Season and Back to Main Menu. Declared completed-save fixture.",
      "nearest_description": "Finished seasons show their saved results (26 October): completed slots say See Old Full Season / See Old Light Season / See Old Mini Season . Start opens the saved statistics instead of an extra match. After Scoring Leaders, choose to view again, start a new season in that slot, or return. Xbox X + B confirms a new season; Start cancels. Other seasons are kept. Code and native tests .",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced New Playoffs with actual completed-season actions"
    },
    {
      "occurrence": "index.html#image-82",
      "page": "index.html",
      "anchor": "picture-080",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/completed-browser.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Season+Playoffs browser for Dallas, sorted by points, from the declared completed-season save fixture.",
      "alt": "Season+Playoffs browser for Dallas, sorted by points, from the declared completed-season save fixture.",
      "actually_visible": "Season+Playoffs browser for Dallas, sorted by points, from the declared completed-season save fixture.",
      "nearest_description": "Browse every club after the season (introducedr26; current controls shown): Left/Right changes the team, X changes the Season+Playoffs/RegularSeason/Playoffs tab, B sorts, and Up/Down changes the page. A goes back and Start finishes the browser. The illustrated saved-season fixture and the original introduction are separate from a naturally played full season.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-83",
      "page": "index.html",
      "anchor": "picture-081",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/critical-trail.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "alt": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "actually_visible": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "nearest_description": "Flame trail on crits (25 October, r23, fixed in r24): a critical slapshot now leaves a red and orange flame tail behind the puck while it flashes. In r23 it was sometimes missing when many sprites were on screen; since r24 it always shows.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-84",
      "page": "index.html",
      "anchor": "picture-082",
      "image_url": "/nhl94/pics/img/current-20261103-r2/completed-sorted.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current completed-season browser sorted by goals, from a declared saved-season fixture.",
      "alt": "Current completed-season browser sorted by goals, from a declared saved-season fixture.",
      "actually_visible": "Current completed-season browser sorted by goals, from a declared saved-season fixture.",
      "nearest_description": "Season statistics and scoring leaders (introduced25 October,r21; current controls shown): the completed-season browser offers team/statistic pages with X for tabs and B for sorting. The live league Scoring Leaders page separately uses Left/Right for pages, B to sort and A/Start to go back. Current help is shown at the bottom of each illustrated page.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-85",
      "page": "index.html",
      "anchor": "picture-083",
      "image_url": "/nhl94/pics/img/current-20261103-r2/leaders.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current scoring leaders with native sorting controls.",
      "alt": "Current scoring leaders with native sorting controls.",
      "actually_visible": "Current scoring leaders with native sorting controls.",
      "nearest_description": "Season statistics and scoring leaders (introduced25 October,r21; current controls shown): the completed-season browser offers team/statistic pages with X for tabs and B for sorting. The live league Scoring Leaders page separately uses Left/Right for pages, B to sort and A/Start to go back. Current help is shown at the bottom of each illustrated page.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-86",
      "page": "index.html",
      "anchor": "picture-084",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/completed-actions.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Season Complete: See Results, Scoring Leaders, Start New Mini Season and Back to Main Menu. Declared completed-save fixture.",
      "alt": "Season Complete: See Results, Scoring Leaders, Start New Mini Season and Back to Main Menu. Declared completed-save fixture.",
      "actually_visible": "Season Complete: See Results, Scoring Leaders, Start New Mini Season and Back to Main Menu. Declared completed-save fixture.",
      "nearest_description": "End-of-season summary (25 October, r19): when your season ends, the game now wraps it up. If you win the Stanley Cup you first see the game's own Playoff Stats and Champions page with the cup; if you are knocked out, the playoff bracket; if you miss the playoffs, the league table after your last game. Press Start and a Season Summary follows (record, points, goals for and against, and how it ended), then Start again for every player's statistics for the whole run, regular season and playoffs together (goals, assists, points, shots; page 2 with the goalies: games, wins, goals against, shots against). Playoff games now count in the season's player and goalie statistics.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-87",
      "page": "index.html",
      "anchor": "picture-085",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/completed-browser.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Season+Playoffs browser for Dallas, sorted by points, from the declared completed-season save fixture.",
      "alt": "Season+Playoffs browser for Dallas, sorted by points, from the declared completed-season save fixture.",
      "actually_visible": "Season+Playoffs browser for Dallas, sorted by points, from the declared completed-season save fixture.",
      "nearest_description": "End-of-season summary (25 October, r19): when your season ends, the game now wraps it up. If you win the Stanley Cup you first see the game's own Playoff Stats and Champions page with the cup; if you are knocked out, the playoff bracket; if you miss the playoffs, the league table after your last game. Press Start and a Season Summary follows (record, points, goals for and against, and how it ended), then Start again for every player's statistics for the whole run, regular season and playoffs together (goals, assists, points, shots; page 2 with the goalies: games, wins, goals against, shots against). Playoff games now count in the season's player and goalie statistics.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced unrelated goalie card with completed-season statistics browser"
    },
    {
      "occurrence": "index.html#image-88",
      "page": "index.html",
      "anchor": "picture-086",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/roster-overall.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Team Roster: Overall selected for Scoring2; Draisaitl79 and the other current player ratings are visible.",
      "alt": "Team Roster: Overall selected for Scoring2; Draisaitl79 and the other current player ratings are visible.",
      "actually_visible": "Team Roster: Overall selected for Scoring2; Draisaitl79 and the other current player ratings are visible.",
      "nearest_description": "Meter effect in Team Roster (25 October, r16): during a game, Team Roster (pause menu) shows Overall and the 0\u201399 ratings with the team's current meter bonus or penalty included. After every game the meter starts over from the middle, and Roster outside a game shows the normal values.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced Status-only view with actual Overall rating column"
    },
    {
      "occurrence": "index.html#image-89",
      "page": "index.html",
      "anchor": "picture-087",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/difficulty.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Hard and native match settings, with framed centred help.",
      "alt": "Hard and native match settings, with framed centred help.",
      "actually_visible": "Hard and native match settings, with framed centred help.",
      "nearest_description": "Historical difficulty behavior (25 October, r15; superseded by r5): Current Hard uses Normal-style momentum and improved AI. In r15, a new last row in the main menu. Normal is the momentum meter described below. Hard locks it for the whole game: human-controlled teams are always at the bottom (\u221210% ratings) and computer teams always full (+10%). It can be changed even during a season (the other settings stay locked) and starts as Normal after power-on.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-90",
      "page": "index.html",
      "anchor": "picture-088",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/momentum-away.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "alt": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "actually_visible": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "nearest_description": "Momentum indicators (introduced25 October,r12; current layout shown): a small strip sits beneath each team name in the lower-right scoreboard. Native shots/checks and decay change the values. The screenshot shows their location; the stat effect and temporal change are tested separately.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-91",
      "page": "index.html",
      "anchor": "picture-089",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/critical-flight.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "alt": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "actually_visible": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "nearest_description": "Critical-shot visual effects (earlier releases described red flashes): the current screenshots show the actual captured animation phase and separated orange trail. The flight frame below has a blue puck; no red frame or altered scoring probability is claimed by that still.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-92",
      "page": "index.html",
      "anchor": "picture-090",
      "image_url": "/nhl94/pics/img/current-20261103-r2/startup.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 The preserved NHL94 Season Edition startup.",
      "alt": "The preserved NHL94 Season Edition startup.",
      "actually_visible": "The preserved NHL94 Season Edition startup.",
      "nearest_description": "New start-up (25 October, r10): the EA Sports logo is gone; the game opens directly with the new NHL'94 Season Edition picture, then the main menu (any button skips it).",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-93",
      "page": "index.html",
      "anchor": "picture-091",
      "image_url": "/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Edmonton player card: Tristan Jarry35, Overall70,2 saves and50% save percentage. This independent card scene does not show a transfer history.",
      "alt": "Edmonton player card: Tristan Jarry35, Overall70,2 saves and50% save percentage. This independent card scene does not show a transfer history.",
      "actually_visible": "Edmonton player card: Tristan Jarry35, Overall70,2 saves and50% save percentage. This independent card scene does not show a transfer history.",
      "nearest_description": "Correct player-card portraits (25 October): faces now follow the player identity after roster changes, in both the main-menu slideshow and Player Cards. All 832 card associations are checked: 702 reuse existing portraits, 123 use newly converted official NHL photos and seven show a neutral silhouette where NHL has no usable headshot. Names, ratings, statistics and saved seasons carry over.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "index.html#image-94",
      "page": "index.html",
      "anchor": "picture-092",
      "image_url": "/nhl94/pics/img/current-20261103-r2/card-forward.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current Player Cards: Ryan Nugent-Hopkins and his actual in-game rating.",
      "alt": "Current Player Cards: Ryan Nugent-Hopkins and his actual in-game rating.",
      "actually_visible": "Current Player Cards: Ryan Nugent-Hopkins and his actual in-game rating.",
      "nearest_description": "Correct player-card portraits (25 October): faces now follow the player identity after roster changes, in both the main-menu slideshow and Player Cards. All 832 card associations are checked: 702 reuse existing portraits, 123 use newly converted official NHL photos and seven show a neutral silhouette where NHL has no usable headshot. Names, ratings, statistics and saved seasons carry over.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-95",
      "page": "index.html",
      "anchor": "picture-093",
      "image_url": "/nhl94/pics/img/current-20261103-r2/cards-cover.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Current Player Cards team cover and starting line.",
      "alt": "Current Player Cards team cover and starting line.",
      "actually_visible": "Current Player Cards team cover and starting line.",
      "nearest_description": "Correct player-card portraits (25 October): faces now follow the player identity after roster changes, in both the main-menu slideshow and Player Cards. All 832 card associations are checked: 702 reuse existing portraits, 123 use newly converted official NHL photos and seven show a neutral silhouette where NHL has no usable headshot. Names, ratings, statistics and saved seasons carry over.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-96",
      "page": "index.html",
      "anchor": "picture-094",
      "image_url": "/nhl94/pics/img/current-20261103-r2/shootout.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "alt": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "actually_visible": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "nearest_description": "The winner receives one deciding goal in the final score. Shootout attempts do not add player goals, assists, shots or goalie goals against. League points and playoff progress are saved normally; Full keeps best-of-seven series and Light/Mini keep single-game pairings. Existing saves carry over.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "index.html#image-97",
      "page": "index.html",
      "anchor": "picture-095",
      "image_url": "/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "alt": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "actually_visible": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "nearest_description": "Sharp menu text when switching modes: original menu values now keep the correct small font when cycling between seasons, playoffs and Shootout.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-98",
      "page": "index.html",
      "anchor": "picture-096",
      "image_url": "/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "alt": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "actually_visible": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "nearest_description": "Sharp menu text when switching modes: original menu values now keep the correct small font when cycling between seasons, playoffs and Shootout.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-99",
      "page": "index.html",
      "anchor": "picture-097",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/abandon.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Abandon Season confirmation: B confirms; A/Start cancels. The notice distinguishes this season from the other saved seasons.",
      "alt": "Abandon Season confirmation: B confirms; A/Start cancels. The notice distinguishes this season from the other saved seasons.",
      "actually_visible": "Abandon Season confirmation: B confirms; A/Start cancels. The notice distinguishes this season from the other saved seasons.",
      "nearest_description": "Abandon Season (formerly Restart Season) resets only the selected series, with confirmation, including from its playoff pre-game menu. The other two seasons stay saved. Full keeps best-of-seven playoffs; Light and Mini keep single-game playoffs.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced generic main menu with actual abandon-season confirmation"
    },
    {
      "occurrence": "index.html#image-100",
      "page": "index.html",
      "anchor": "picture-098",
      "image_url": "/nhl94/pics/img/current-20261103-r2/light.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Light season:31 games and framed centred help. Help is centred in its native frame.",
      "alt": "Light season:31 games and framed centred help. Help is centred in its native frame.",
      "actually_visible": "Light season:31 games and framed centred help. Help is centred in its native frame.",
      "nearest_description": "Abandon Season (formerly Restart Season) resets only the selected series, with confirmation, including from its playoff pre-game menu. The other two seasons stay saved. Full keeps best-of-seven playoffs; Light and Mini keep single-game playoffs.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-101",
      "page": "index.html",
      "anchor": "picture-099",
      "image_url": "/nhl94/pics/img/current-20261103-r2/mini.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "alt": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "actually_visible": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "nearest_description": "Abandon Season (formerly Restart Season) resets only the selected series, with confirmation, including from its playoff pre-game menu. The other two seasons stay saved. Full keeps best-of-seven playoffs; Light and Mini keep single-game playoffs.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-102",
      "page": "index.html",
      "anchor": "picture-100",
      "image_url": "/nhl94/pics/img/current-20261103-r2/mini.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "alt": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "actually_visible": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "nearest_description": "Correct team-selection logos: Full, Light and Mini now immediately show your club and its scheduled opponent when you change Team. This fixes both logos sometimes showing Edmonton even though the actual fixture was Edmonton\u2013Detroit. Switching between One and Teammates also refreshes both sides correctly.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-103",
      "page": "index.html",
      "anchor": "picture-101",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/critical-trail.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "alt": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "actually_visible": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "nearest_description": "Critical-shot visual effects (earlier releases described red flashes): the current screenshots show the actual captured animation phase and separated orange trail. The flight frame below has a blue puck; no red frame or altered scoring probability is claimed by that still.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-104",
      "page": "index.html",
      "anchor": "picture-102",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/critical-flight.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "alt": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "actually_visible": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "nearest_description": "Critical-shot visual effects (earlier releases described red flashes): the current screenshots show the actual captured animation phase and separated orange trail. The flight frame below has a blue puck; no red frame or altered scoring probability is claimed by that still.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced unrelated roster menu with actual critical puck flight"
    },
    {
      "occurrence": "index.html#image-105",
      "page": "index.html",
      "anchor": "picture-103",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/menu.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "alt": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "actually_visible": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "nearest_description": "Fixed an empty old Mini save making New Full Season show 1/8: it now correctly shows 1/84 without resetting any saved season.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "index.html#image-106",
      "page": "index.html",
      "anchor": "picture-104",
      "image_url": "/nhl94/pics/img/current-20261103-r2/mini.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "alt": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "actually_visible": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "nearest_description": "On the main menu's Game row, Left/Right selects a different first opponent before game 1 of a new season, for some variety. After the first game the schedule is locked. The choice survives power-off, and the rest of the league plays the matching round.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "index.html#image-107",
      "page": "index.html",
      "anchor": "picture-105",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/warning040.png",
      "title": "Current views of earlier season changes",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 The native second-period clock at0:40. The five warning beeps are audio, verified separately; they cannot be heard in this still.",
      "alt": "The native second-period clock at0:40. The five warning beeps are audio, verified separately; they cannot be heard in this still.",
      "actually_visible": "The native second-period clock at0:40. The five warning beeps are audio, verified separately; they cannot be heard in this still.",
      "nearest_description": "Current keeper controls and period warning: native goalkeeper catches return to CPU handling, with explicit Y selection retained. The current alarm plays five beeps at0:40. The screenshot shows the clock moment; the exact-ROM audio tests separately verify the sound. It is not a Scoring Summary screen.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced unrelated scoring summary with actual0:40 clock scene; audio limitation explicit"
    },
    {
      "occurrence": "added-scoring-summary",
      "page": "index.html",
      "anchor": "picture-106",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/scoring.png",
      "title": "What is counted",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Scoring Summary: first-period New York goals by Dorofeyev at0:55 and Gavrikov at1:43, with their assists.",
      "alt": "Scoring Summary: first-period New York goals by Dorofeyev at0:55 and Gavrikov at1:43, with their assists.",
      "actually_visible": "Scoring Summary: first-period New York goals by Dorofeyev at0:55 and Gavrikov at1:43, with their assists.",
      "nearest_description": "What is counted",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Added fresh relevant scene"
    },
    {
      "occurrence": "index.html#image-109",
      "page": "index.html",
      "anchor": "picture-107",
      "image_url": "/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "title": "What is counted",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Edmonton player card: Tristan Jarry35, Overall70,2 saves and50% save percentage. This independent card scene does not show a transfer history.",
      "alt": "Edmonton player card: Tristan Jarry35, Overall70,2 saves and50% save percentage. This independent card scene does not show a transfer history.",
      "actually_visible": "Edmonton player card: Tristan Jarry35, Overall70,2 saves and50% save percentage. This independent card scene does not show a transfer history.",
      "nearest_description": "What is counted",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "index.html#image-110",
      "page": "index.html",
      "anchor": "picture-108",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/playoffs-tree.png",
      "title": "Playoff continuation and native bracket",
      "section": "season",
      "caption": "2026-11-03-r2 \u00b7 Native16-team playoff bracket around the Stanley Cup; this representative standalone scene does not establish season-qualification history.",
      "alt": "Native16-team playoff bracket around the Stanley Cup; this representative standalone scene does not establish season-qualification history.",
      "actually_visible": "Native16-team playoff bracket around the Stanley Cup; this representative standalone scene does not establish season-qualification history.",
      "nearest_description": "New Season Light: after game 31, select Continue to Playoffs and press Start to see the qualified teams in the playoff tree. Each pairing takes one game, including the final.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Replaced standalone setup menu with actual playoff bracket and scoped its separate fixture history"
    },
    {
      "occurrence": "added-Y-goalkeeper-arrow",
      "page": "index.html",
      "anchor": "picture-109",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/offscreen-goalie-arrow.png",
      "title": "8 Y takes your goalie",
      "section": "ygoalie",
      "caption": "2026-11-03-r2 \u00b7 Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "alt": "Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "actually_visible": "Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "nearest_description": "With a 6-button pad and Goalie Ctrl: Manual Control , press Y when your team doesn't have the puck (loose puck or the other team has it)\n      and you take control of your own goalie straight away. When your team has the puck, Y works like B, as before (pass). Works for the home and the away team,\n      for player 1 and player 2, in the season and in single games. With a 3-button pad nothing changes.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Added fresh relevant scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-1",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-001",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "alt": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "actually_visible": "Edmonton and a new Full season by default; help centred inside its matching native frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-2",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-002",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/difficulty.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Hard and native match settings, with framed centred help.",
      "alt": "Hard and native match settings, with framed centred help.",
      "actually_visible": "Hard and native match settings, with framed centred help.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-3",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-003",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/icing-transfers.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Icing On and Transfers directly below it; centred framed help.",
      "alt": "Icing On and Transfers directly below it; centred framed help.",
      "actually_visible": "Icing On and Transfers directly below it; centred framed help.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-4",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-004",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/pass-defaults.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Low passes, Normal speed and Assisted targeting; centred framed help.",
      "alt": "Low passes, Normal speed and Assisted targeting; centred framed help.",
      "actually_visible": "Low passes, Normal speed and Assisted targeting; centred framed help.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-5",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-005",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/penalty-default.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Penaltys50% by default; centred help stays inside its native border.",
      "alt": "Penaltys50% by default; centred help stays inside its native border.",
      "actually_visible": "Penaltys50% by default; centred help stays inside its native border.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-6",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-006",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/goalie-default.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Alt Goalies On by default, with independent Pickup Delay.",
      "alt": "Alt Goalies On by default, with independent Pickup Delay.",
      "actually_visible": "Alt Goalies On by default, with independent Pickup Delay.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-7",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-007",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/momentum-menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Momentum On, \u00b110% Stats, and centred help inside the native frame.",
      "alt": "Momentum On, \u00b110% Stats, and centred help inside the native frame.",
      "actually_visible": "Momentum On, \u00b110% Stats, and centred help inside the native frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-8",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-008",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/units-menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 KMH selected by default; framed help remains fully visible.",
      "alt": "KMH selected by default; framed help remains fully visible.",
      "actually_visible": "KMH selected by default; framed help remains fully visible.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-9",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-009",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/glass-menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Fragile Glass On by default; final scroll row and footer frame remain separate.",
      "alt": "Fragile Glass On by default; final scroll row and footer frame remain separate.",
      "actually_visible": "Fragile Glass On by default; final scroll row and footer frame remain separate.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-10",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-010",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/crit-menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Crit Shots Off is selected and visibly rendered in the main menu; the help is centred inside its native border.",
      "alt": "Crit Shots Off is selected and visibly rendered in the main menu; the help is centred inside its native border.",
      "actually_visible": "Crit Shots Off is selected and visibly rendered in the main menu; the help is centred inside its native border.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-11",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-011",
      "image_url": "/nhl94/pics/img/current-20261103-r2/quick-0.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Quickgame: 1 vs1; centred controls inside the native footer frame.",
      "alt": "Quickgame: 1 vs1; centred controls inside the native footer frame.",
      "actually_visible": "Quickgame: 1 vs1; centred controls inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-12",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-012",
      "image_url": "/nhl94/pics/img/current-20261103-r2/quick-1.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Quickgame: 1 vs2; centred controls inside the native footer frame.",
      "alt": "Quickgame: 1 vs2; centred controls inside the native footer frame.",
      "actually_visible": "Quickgame: 1 vs2; centred controls inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-13",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-013",
      "image_url": "/nhl94/pics/img/current-20261103-r2/quick-2.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Quickgame: 1 vs3; centred controls inside the native footer frame.",
      "alt": "Quickgame: 1 vs3; centred controls inside the native footer frame.",
      "actually_visible": "Quickgame: 1 vs3; centred controls inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-14",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-014",
      "image_url": "/nhl94/pics/img/current-20261103-r2/quick-3.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Quickgame: 2 vs2; centred controls inside the native footer frame.",
      "alt": "Quickgame: 2 vs2; centred controls inside the native footer frame.",
      "actually_visible": "Quickgame: 2 vs2; centred controls inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-15",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-015",
      "image_url": "/nhl94/pics/img/current-20261103-r2/allstar-0.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Allstar: 1 vs1; centred controls inside the native footer frame.",
      "alt": "Allstar: 1 vs1; centred controls inside the native footer frame.",
      "actually_visible": "Allstar: 1 vs1; centred controls inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-16",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-016",
      "image_url": "/nhl94/pics/img/current-20261103-r2/allstar-1.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Allstar: 1 vs2; centred controls inside the native footer frame.",
      "alt": "Allstar: 1 vs2; centred controls inside the native footer frame.",
      "actually_visible": "Allstar: 1 vs2; centred controls inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-17",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-017",
      "image_url": "/nhl94/pics/img/current-20261103-r2/allstar-2.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Allstar: 1 vs3; centred controls inside the native footer frame.",
      "alt": "Allstar: 1 vs3; centred controls inside the native footer frame.",
      "actually_visible": "Allstar: 1 vs3; centred controls inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-18",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-018",
      "image_url": "/nhl94/pics/img/current-20261103-r2/allstar-3.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Allstar: 2 vs2; centred controls inside the native footer frame.",
      "alt": "Allstar: 2 vs2; centred controls inside the native footer frame.",
      "actually_visible": "Allstar: 2 vs2; centred controls inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-19",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-019",
      "image_url": "/nhl94/pics/img/current-20261103-r2/allstar-cpu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Allstar: 1 vs CPU; centred controls inside the native footer frame.",
      "alt": "Allstar: 1 vs CPU; centred controls inside the native footer frame.",
      "actually_visible": "Allstar: 1 vs CPU; centred controls inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-20",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-020",
      "image_url": "/nhl94/pics/img/current-20261103-r2/light.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Light season:31 games and framed centred help. Help is centred in its native frame.",
      "alt": "Light season:31 games and framed centred help. Help is centred in its native frame.",
      "actually_visible": "Light season:31 games and framed centred help. Help is centred in its native frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-21",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-021",
      "image_url": "/nhl94/pics/img/current-20261103-r2/mini.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "alt": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "actually_visible": "Mini season: seven divisional games; framed centred help. Help is centred in its native frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-22",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-022",
      "image_url": "/nhl94/pics/img/current-20261103-r2/directional.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Directional mode selected; Low pass height remains independent. Help is centred in its native frame.",
      "alt": "Directional mode selected; Low pass height remains independent. Help is centred in its native frame.",
      "actually_visible": "Directional mode selected; Low pass height remains independent. Help is centred in its native frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-23",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-023",
      "image_url": "/nhl94/pics/img/current-20261103-r2/cone45.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Pass Mode Assisted and Target Cone45degrees selected; framed centred controls remain below.",
      "alt": "Pass Mode Assisted and Target Cone45degrees selected; framed centred controls remain below.",
      "actually_visible": "Pass Mode Assisted and Target Cone45degrees selected; framed centred controls remain below.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-24",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-024",
      "image_url": "/nhl94/pics/img/current-20261103-r2/slow.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Pass Speed Slow selected, alongside Low height, Assisted mode and a45-degree target cone.",
      "alt": "Pass Speed Slow selected, alongside Low height, Assisted mode and a45-degree target cone.",
      "actually_visible": "Pass Speed Slow selected, alongside Low height, Assisted mode and a45-degree target cone.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-25",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-025",
      "image_url": "/nhl94/pics/img/current-20261103-r2/mph.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 MPH selected instead of default KMH. Help is centred in its native frame.",
      "alt": "MPH selected instead of default KMH. Help is centred in its native frame.",
      "actually_visible": "MPH selected instead of default KMH. Help is centred in its native frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-26",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-026",
      "image_url": "/nhl94/pics/img/current-20261103-r2/glass-off.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Fragile Glass Off selected in the main menu; centred framed controls. The behavior is verified separately.",
      "alt": "Fragile Glass Off selected in the main menu; centred framed controls. The behavior is verified separately.",
      "actually_visible": "Fragile Glass Off selected in the main menu; centred framed controls. The behavior is verified separately.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-27",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-027",
      "image_url": "/nhl94/pics/img/current-20261103-r2/pickup-on.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Optional Pickup Delay On. Help is centred in its native frame.",
      "alt": "Optional Pickup Delay On. Help is centred in its native frame.",
      "actually_visible": "Optional Pickup Delay On. Help is centred in its native frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-28",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-028",
      "image_url": "/nhl94/pics/img/current-20261103-r2/charge-on.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Optional Pass Charge On. Help is centred in its native frame.",
      "alt": "Optional Pass Charge On. Help is centred in its native frame.",
      "actually_visible": "Optional Pass Charge On. Help is centred in its native frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-29",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-029",
      "image_url": "/nhl94/pics/img/current-20261103-r2/penalty-off.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Penaltys Off selected. Help is centred in its native frame.",
      "alt": "Penaltys Off selected. Help is centred in its native frame.",
      "actually_visible": "Penaltys Off selected. Help is centred in its native frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-30",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-030",
      "image_url": "/nhl94/pics/img/current-20261103-r2/penalty100.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Penaltys100% selected; default remains50%. Help is centred in its native frame.",
      "alt": "Penaltys100% selected; default remains50%. Help is centred in its native frame.",
      "actually_visible": "Penaltys100% selected; default remains50%. Help is centred in its native frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-31",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-031",
      "image_url": "/nhl94/pics/img/current-20261103-r2/transfers-on.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Transfers On selected immediately below Icing.",
      "alt": "Transfers On selected immediately below Icing.",
      "actually_visible": "Transfers On selected immediately below Icing.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-32",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-032",
      "image_url": "/nhl94/pics/img/current-20261103-r2/transfer-home.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season.",
      "alt": "Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season.",
      "actually_visible": "Preseason Transfers: initial budget $16.042.000; Buy, Sell and Ready for season.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-33",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-033",
      "image_url": "/nhl94/pics/img/current-20261103-r2/sell-roster.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "alt": "Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "actually_visible": "Edmonton selling list sorted by OVR; dollar prices use dot-separated thousands.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-34",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-034",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/sold-remaining.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Edmonton\u2019s remaining owned roster is led by Draisaitl85; the budget is$25.258.000 after the separate McDavid sale.",
      "alt": "Edmonton\u2019s remaining owned roster is led by Draisaitl85; the budget is$25.258.000 after the separate McDavid sale.",
      "actually_visible": "Edmonton\u2019s remaining owned roster is led by Draisaitl85; the budget is$25.258.000 after the separate McDavid sale.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-35",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-035",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/bought-back.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Connor McDavid C96 is back in Edmonton\u2019s owned roster; budget$16.042.000 and price$9.216.000 are visible.",
      "alt": "Connor McDavid C96 is back in Edmonton\u2019s owned roster; budget$16.042.000 and price$9.216.000 are visible.",
      "actually_visible": "Connor McDavid C96 is back in Edmonton\u2019s owned roster; budget$16.042.000 and price$9.216.000 are visible.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-36",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-036",
      "image_url": "/nhl94/pics/img/current-20261103-r2/buy-club.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Boston buying list: original player names, natural positions, overall and dollar prices.",
      "alt": "Boston buying list: original player names, natural positions, overall and dollar prices.",
      "actually_visible": "Boston buying list: original player names, natural positions, overall and dollar prices.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-37",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-037",
      "image_url": "/nhl94/pics/img/current-20261103-r2/free-agents.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap.",
      "alt": "Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap.",
      "actually_visible": "Sold Connor McDavid in Free Agents at $9.216.000; no automatic player swap.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-38",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-038",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/bought-back.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Connor McDavid C96 is back in Edmonton\u2019s owned roster; budget$16.042.000 and price$9.216.000 are visible.",
      "alt": "Connor McDavid C96 is back in Edmonton\u2019s owned roster; budget$16.042.000 and price$9.216.000 are visible.",
      "actually_visible": "Connor McDavid C96 is back in Edmonton\u2019s owned roster; budget$16.042.000 and price$9.216.000 are visible.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-39",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-039",
      "image_url": "/nhl94/pics/img/current-20261103-r2/full-roster-blocked.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 A full roster refuses a purchase; budget remains $16.042.000.",
      "alt": "A full roster refuses a purchase; budget remains $16.042.000.",
      "actually_visible": "A full roster refuses a purchase; budget remains $16.042.000.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-40",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-040",
      "image_url": "/nhl94/pics/img/current-20261103-r2/minimum-keepers-protected.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Jarry G70 is selected for sale; Club needs this position or player refuses it. The$22.078.000 budget is unchanged.",
      "alt": "Jarry G70 is selected for sale; Club needs this position or player refuses it. The$22.078.000 budget is unchanged.",
      "actually_visible": "Jarry G70 is selected for sale; Club needs this position or player refuses it. The$22.078.000 budget is unchanged.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-41",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-041",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/acquired-star.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Edmonton owned roster: Nathan MacKinnon C99 at$9.801.000; remaining budget$12.277.000.",
      "alt": "Edmonton owned roster: Nathan MacKinnon C99 at$9.801.000; remaining budget$12.277.000.",
      "actually_visible": "Edmonton owned roster: Nathan MacKinnon C99 at$9.801.000; remaining budget$12.277.000.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-42",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-042",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/acquired-middle.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Edmonton owned roster includes Morgan Geekie C79 at$6.241.000 and Nathan MacKinnon C99; budget$6.036.000.",
      "alt": "Edmonton owned roster includes Morgan Geekie C79 at$6.241.000 and Nathan MacKinnon C99; budget$6.036.000.",
      "actually_visible": "Edmonton owned roster includes Morgan Geekie C79 at$6.241.000 and Nathan MacKinnon C99; budget$6.036.000.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-43",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-043",
      "image_url": "/nhl94/pics/img/current-20261103-r2/insufficient-budget-protected.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 A $9.801.000 purchase is refused with only $6.036.000 remaining.",
      "alt": "A $9.801.000 purchase is refused with only $6.036.000 remaining.",
      "actually_visible": "A $9.801.000 purchase is refused with only $6.036.000 remaining.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-44",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-044",
      "image_url": "/nhl94/pics/img/current-20261103-r2/roster-after-star-middle.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current Edmonton roster after buying the OVR99 star and OVR79 middle player.",
      "alt": "Current Edmonton roster after buying the OVR99 star and OVR79 middle player.",
      "actually_visible": "Current Edmonton roster after buying the OVR99 star and OVR79 middle player.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-45",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-045",
      "image_url": "/nhl94/pics/img/current-20261103-r2/after-trades-presentation-550.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native centre presentation after the documented trades: Zibanejad68 versus Edmonton\u2019s MacKinnon98.",
      "alt": "Native centre presentation after the documented trades: Zibanejad68 versus Edmonton\u2019s MacKinnon98.",
      "actually_visible": "Native centre presentation after the documented trades: Zibanejad68 versus Edmonton\u2019s MacKinnon98.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-46",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-046",
      "image_url": "/nhl94/pics/img/current-20261103-r2/after-trades-presentation-1000.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native right-forward presentation: Dorofeyev71 COLD versus Kapanen66, with separate hot/cold commentary.",
      "alt": "Native right-forward presentation: Dorofeyev71 COLD versus Kapanen66, with separate hot/cold commentary.",
      "actually_visible": "Native right-forward presentation: Dorofeyev71 COLD versus Kapanen66, with separate hot/cold commentary.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-47",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-047",
      "image_url": "/nhl94/pics/img/current-20261103-r2/startup.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The preserved NHL94 Season Edition startup.",
      "alt": "The preserved NHL94 Season Edition startup.",
      "actually_visible": "The preserved NHL94 Season Edition startup.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-48",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-048",
      "image_url": "/nhl94/pics/img/current-20261103-r2/credits.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Actual startup credits: Website https://games.jdc.se.",
      "alt": "Actual startup credits: Website https://games.jdc.se.",
      "actually_visible": "Actual startup credits: Website https://games.jdc.se.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-49",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-049",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/allstar-uniforms.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Allstar A skaters wear solid black and Allstar B solid red; ASB0 ASA0 at1st4:57.",
      "alt": "Allstar A skaters wear solid black and Allstar B solid red; ASB0 ASA0 at1st4:57.",
      "actually_visible": "Allstar A skaters wear solid black and Allstar B solid red; ASB0 ASA0 at1st4:57.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-50",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-050",
      "image_url": "/nhl94/pics/img/current-20261103-r2/matchups.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Restored native team presentation: current Rangers55, transferred Edmonton56.",
      "alt": "Restored native team presentation: current Rangers55, transferred Edmonton56.",
      "actually_visible": "Restored native team presentation: current Rangers55, transferred Edmonton56.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-51",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-051",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/pregame.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Ordinary season pregame: New York0, Edmonton0,1st5:00 and Start Game. This is not the Quickgame action menu.",
      "alt": "Ordinary season pregame: New York0, Edmonton0,1st5:00 and Start Game. This is not the Quickgame action menu.",
      "actually_visible": "Ordinary season pregame: New York0, Edmonton0,1st5:00 and Start Game. This is not the Quickgame action menu.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-52",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-052",
      "image_url": "/nhl94/pics/img/current-20261103-r2/rink.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current players, puck, original red goal and distinct controller stars.",
      "alt": "Current players, puck, original red goal and distinct controller stars.",
      "actually_visible": "Current players, puck, original red goal and distinct controller stars.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-53",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-053",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/faceoff.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation.",
      "alt": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation.",
      "actually_visible": "Centre-ice faceoff at1st5:00: blue P1, red P2, neon-green P3 and yellow P4 stars are separated around the formation.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-54",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-054",
      "image_url": "/nhl94/pics/img/current-20261103-r2/powerplay-away.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Away NYR powerplay and countdown share the width and native frame of the clock below.",
      "alt": "Away NYR powerplay and countdown share the width and native frame of the clock below.",
      "actually_visible": "Away NYR powerplay and countdown share the width and native frame of the clock below.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-55",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-055",
      "image_url": "/nhl94/pics/img/current-20261103-r2/powerplay-home.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock.",
      "alt": "Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock.",
      "actually_visible": "Home Edmonton powerplay and countdown sit in the framed box above the unchanged clock.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-56",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-056",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/momentum-away.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "alt": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "actually_visible": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-57",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-057",
      "image_url": "/nhl94/pics/img/current-20261103-r2/attack.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Actual final-ROM Hard gameplay, puck and physical controller indicators.",
      "alt": "Actual final-ROM Hard gameplay, puck and physical controller indicators.",
      "actually_visible": "Actual final-ROM Hard gameplay, puck and physical controller indicators.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-58",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-058",
      "image_url": "/nhl94/pics/img/current-20261103-r2/keeper.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Goalkeeper and red crease during native play at3rd3:42. This is rink context; recovery timing and defensive policy require native QA.",
      "alt": "Goalkeeper and red crease during native play at3rd3:42. This is rink context; recovery timing and defensive policy require native QA.",
      "actually_visible": "Goalkeeper and red crease during native play at3rd3:42. This is rink context; recovery timing and defensive policy require native QA.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-59",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-059",
      "image_url": "/nhl94/pics/img/current-20261103-r2/period-menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The native second-period Resume Game screen, with its original muted palette.",
      "alt": "The native second-period Resume Game screen, with its original muted palette.",
      "actually_visible": "The native second-period Resume Game screen, with its original muted palette.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-60",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-060",
      "image_url": "/nhl94/pics/img/current-20261103-r2/stars.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Stars of the Game after the actual fresh final-ROM match: New York3, Edmonton2.",
      "alt": "Stars of the Game after the actual fresh final-ROM match: New York3, Edmonton2.",
      "actually_visible": "Stars of the Game after the actual fresh final-ROM match: New York3, Edmonton2.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-61",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-061",
      "image_url": "/nhl94/pics/img/current-20261103-r2/hot-cold.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current native presentation: Adam Fox COLD and Evan Bouchard HOT.",
      "alt": "Current native presentation: Adam Fox COLD and Evan Bouchard HOT.",
      "actually_visible": "Current native presentation: Adam Fox COLD and Evan Bouchard HOT.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-62",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-062",
      "image_url": "/nhl94/pics/img/current-20261103-r2/hot-commentary.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native right-forward presentation: Dorofeyev80 HOT versus Kapanen78; commentary mentions Bouchard and Jarry.",
      "alt": "Native right-forward presentation: Dorofeyev80 HOT versus Kapanen78; commentary mentions Bouchard and Jarry.",
      "actually_visible": "Native right-forward presentation: Dorofeyev80 HOT versus Kapanen78; commentary mentions Bouchard and Jarry.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-63",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-063",
      "image_url": "/nhl94/pics/img/current-20261103-r2/allstar-overall.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms.",
      "alt": "Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms.",
      "actually_visible": "Allstar team overalls82/82. The inherited ANA/BOS logo shells remain; these are not their original uniforms.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-64",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-064",
      "image_url": "/nhl94/pics/img/current-20261103-r2/allstar-hot.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Allstar left-forward presentation: #97 Kaprizov marked HOT versus #41 Stenberg, with their native rating display and commentary.",
      "alt": "Allstar left-forward presentation: #97 Kaprizov marked HOT versus #41 Stenberg, with their native rating display and commentary.",
      "actually_visible": "Allstar left-forward presentation: #97 Kaprizov marked HOT versus #41 Stenberg, with their native rating display and commentary.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-65",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-065",
      "image_url": "/nhl94/pics/img/current-20261103-r2/keeper-select.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native goalkeeper selection and current roster names.",
      "alt": "Native goalkeeper selection and current roster names.",
      "actually_visible": "Native goalkeeper selection and current roster names.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-66",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-066",
      "image_url": "/nhl94/pics/img/current-20261103-r2/lines.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The current native Line Editor and consistent controls.",
      "alt": "The current native Line Editor and consistent controls.",
      "actually_visible": "The current native Line Editor and consistent controls.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-67",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-067",
      "image_url": "/nhl94/pics/img/current-20261103-r2/game-stats.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current match statistics.",
      "alt": "Current match statistics.",
      "actually_visible": "Current match statistics.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-68",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-068",
      "image_url": "/nhl94/pics/img/current-20261103-r2/player-stats.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current player statistics and sorting controls.",
      "alt": "Current player statistics and sorting controls.",
      "actually_visible": "Current player statistics and sorting controls.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-69",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-069",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/scoring.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Scoring Summary: first-period New York goals by Dorofeyev at0:55 and Gavrikov at1:43, with their assists.",
      "alt": "Scoring Summary: first-period New York goals by Dorofeyev at0:55 and Gavrikov at1:43, with their assists.",
      "actually_visible": "Scoring Summary: first-period New York goals by Dorofeyev at0:55 and Gavrikov at1:43, with their assists.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-70",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-070",
      "image_url": "/nhl94/pics/img/current-20261103-r2/penalties.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native Penalty Summary with no entries in this match moment; scroll/back controls remain visible.",
      "alt": "Native Penalty Summary with no entries in this match moment; scroll/back controls remain visible.",
      "actually_visible": "Native Penalty Summary with no entries in this match moment; scroll/back controls remain visible.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-71",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-071",
      "image_url": "/nhl94/pics/img/current-20261103-r2/roster.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Team Roster Status for Scoring2: Walman, Shea, Howard, Draisaitl and Podkolzin are marked Ice.",
      "alt": "Team Roster Status for Scoring2: Walman, Shea, Howard, Draisaitl and Podkolzin are marked Ice.",
      "actually_visible": "Team Roster Status for Scoring2: Walman, Shea, Howard, Draisaitl and Podkolzin are marked Ice.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-72",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-072",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/standings.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native Atlantic Division standings with eight clubs and initial zero records; division/team/player controls are visible.",
      "alt": "Native Atlantic Division standings with eight clubs and initial zero records; division/team/player controls are visible.",
      "actually_visible": "Native Atlantic Division standings with eight clubs and initial zero records; division/team/player controls are visible.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-73",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-073",
      "image_url": "/nhl94/pics/img/current-20261103-r2/crowd.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The current native crowd-meter statistics page.",
      "alt": "The current native crowd-meter statistics page.",
      "actually_visible": "The current native crowd-meter statistics page.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-74",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-074",
      "image_url": "/nhl94/pics/img/current-20261103-r2/cards-cover.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current Player Cards team cover and starting line.",
      "alt": "Current Player Cards team cover and starting line.",
      "actually_visible": "Current Player Cards team cover and starting line.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-75",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-075",
      "image_url": "/nhl94/pics/img/current-20261103-r2/leaders.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current scoring leaders with native sorting controls.",
      "alt": "Current scoring leaders with native sorting controls.",
      "actually_visible": "Current scoring leaders with native sorting controls.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-76",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-076",
      "image_url": "/nhl94/pics/img/current-20261103-r2/period-stats.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current period-by-period team statistics.",
      "alt": "Current period-by-period team statistics.",
      "actually_visible": "Current period-by-period team statistics.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-77",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-077",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/abandon.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Abandon Season confirmation: B confirms; A/Start cancels. The notice distinguishes this season from the other saved seasons.",
      "alt": "Abandon Season confirmation: B confirms; A/Start cancels. The notice distinguishes this season from the other saved seasons.",
      "actually_visible": "Abandon Season confirmation: B confirms; A/Start cancels. The notice distinguishes this season from the other saved seasons.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-78",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-078",
      "image_url": "/nhl94/pics/img/current-20261103-r2/shot-low.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The actual shot gauge at low charge.",
      "alt": "The actual shot gauge at low charge.",
      "actually_visible": "The actual shot gauge at low charge.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-79",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-079",
      "image_url": "/nhl94/pics/img/current-20261103-r2/shot-middle.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The actual shot gauge while charging, with orange fill.",
      "alt": "The actual shot gauge while charging, with orange fill.",
      "actually_visible": "The actual shot gauge while charging, with orange fill.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-80",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-080",
      "image_url": "/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "alt": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "actually_visible": "Full shot-charge gauge: a solid red bar beneath the lower-left1st4:40 clock.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-81",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-081",
      "image_url": "/nhl94/pics/img/current-20261103-r2/pass-low.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The shared charge gauge has a small low fill beneath the1st4:57 clock.",
      "alt": "The shared charge gauge has a small low fill beneath the1st4:57 clock.",
      "actually_visible": "The shared charge gauge has a small low fill beneath the1st4:57 clock.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-82",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-082",
      "image_url": "/nhl94/pics/img/current-20261103-r2/pass-middle.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The shared charge gauge has orange fill beneath the1st4:57 clock.",
      "alt": "The shared charge gauge has orange fill beneath the1st4:57 clock.",
      "actually_visible": "The shared charge gauge has orange fill beneath the1st4:57 clock.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-83",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-083",
      "image_url": "/nhl94/pics/img/current-20261103-r2/pass-full.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The shared charge gauge is solid red beneath the1st4:54 clock.",
      "alt": "The shared charge gauge is solid red beneath the1st4:54 clock.",
      "actually_visible": "The shared charge gauge is solid red beneath the1st4:54 clock.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-84",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-084",
      "image_url": "/nhl94/pics/img/current-20261103-r2/pass-release.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The charge bar has disappeared in the following1st4:54 native pass frame.",
      "alt": "The charge bar has disappeared in the following1st4:54 native pass frame.",
      "actually_visible": "The charge bar has disappeared in the following1st4:54 native pass frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-85",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-085",
      "image_url": "/nhl94/pics/img/current-20261103-r2/shot-speed.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Measured shot speed is displayed below the clock, using the selected unit.",
      "alt": "Measured shot speed is displayed below the clock, using the selected unit.",
      "actually_visible": "Measured shot speed is displayed below the clock, using the selected unit.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-86",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-086",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/replay-native.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "alt": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "actually_visible": "The SAME native fixture during automatic REPLAY:172KMH, solid red bar and1st4:36 clock remain below; no speed text covers the REPLAY heading.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-87",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-087",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/critical-flight.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "alt": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "actually_visible": "Critical-shot flight: the puck is blue in this captured animation frame, with orange trailing effect discs at2nd3:51.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-88",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-088",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/critical-trail.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "alt": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "actually_visible": "Critical-shot animation at2nd3:50: separated orange trail discs follow the puck toward the net.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-89",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-089",
      "image_url": "/nhl94/pics/img/current-20261103-r2/momentum-off.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native play with Momentum Off: the lower-right scoreboard has no Momentum strips. Stat scaling is checked separately.",
      "alt": "Native play with Momentum Off: the lower-right scoreboard has no Momentum strips. Stat scaling is checked separately.",
      "actually_visible": "Native play with Momentum Off: the lower-right scoreboard has no Momentum strips. Stat scaling is checked separately.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-90",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-090",
      "image_url": "/nhl94/pics/img/current-20261103-r2/drai-select.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Draisaitl is available among the native forwards for first-line selection.",
      "alt": "Draisaitl is available among the native forwards for first-line selection.",
      "actually_visible": "Draisaitl is available among the native forwards for first-line selection.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-91",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-091",
      "image_url": "/nhl94/pics/img/current-20261103-r2/drai-line.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Draisaitl placed at Scoring Line1 RW, with McDavid retained at centre.",
      "alt": "Draisaitl placed at Scoring Line1 RW, with McDavid retained at centre.",
      "actually_visible": "Draisaitl placed at Scoring Line1 RW, with McDavid retained at centre.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-92",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-092",
      "image_url": "/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Edmonton player card: Tristan Jarry35, Overall70,2 saves and50% save percentage. This independent card scene does not show a transfer history.",
      "alt": "Edmonton player card: Tristan Jarry35, Overall70,2 saves and50% save percentage. This independent card scene does not show a transfer history.",
      "actually_visible": "Edmonton player card: Tristan Jarry35, Overall70,2 saves and50% save percentage. This independent card scene does not show a transfer history.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-93",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-093",
      "image_url": "/nhl94/pics/img/current-20261103-r2/card-forward.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current Player Cards: Ryan Nugent-Hopkins and his actual in-game rating.",
      "alt": "Current Player Cards: Ryan Nugent-Hopkins and his actual in-game rating.",
      "actually_visible": "Current Player Cards: Ryan Nugent-Hopkins and his actual in-game rating.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-94",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-094",
      "image_url": "/nhl94/pics/img/current-20261103-r2/shootout.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "alt": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "actually_visible": "Native shootout scene: one shooter at centre ice and a0:20 attempt timer. Declared clock-only overtime fixture; automatic start is verified separately.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-95",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-095",
      "image_url": "/nhl94/pics/img/current-20261103-r2/completed-mini.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Completed Mini review menu, from an explicitly declared completed-save fixture. Centred native-frame help.",
      "alt": "Completed Mini review menu, from an explicitly declared completed-save fixture. Centred native-frame help.",
      "actually_visible": "Completed Mini review menu, from an explicitly declared completed-save fixture. Centred native-frame help.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-96",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-096",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/completed-browser.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Season+Playoffs browser for Dallas, sorted by points, from the declared completed-season save fixture.",
      "alt": "Season+Playoffs browser for Dallas, sorted by points, from the declared completed-season save fixture.",
      "actually_visible": "Season+Playoffs browser for Dallas, sorted by points, from the declared completed-season save fixture.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-97",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-097",
      "image_url": "/nhl94/pics/img/current-20261103-r2/completed-sorted.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Current completed-season browser sorted by goals, from a declared saved-season fixture.",
      "alt": "Current completed-season browser sorted by goals, from a declared saved-season fixture.",
      "actually_visible": "Current completed-season browser sorted by goals, from a declared saved-season fixture.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-98",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-098",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/completed-actions.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Season Complete: See Results, Scoring Leaders, Start New Mini Season and Back to Main Menu. Declared completed-save fixture.",
      "alt": "Season Complete: See Results, Scoring Leaders, Start New Mini Season and Back to Main Menu. Declared completed-save fixture.",
      "actually_visible": "Season Complete: See Results, Scoring Leaders, Start New Mini Season and Back to Main Menu. Declared completed-save fixture.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-99",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-099",
      "image_url": "/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "alt": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "actually_visible": "Native New Playoffs selected from the current fresh menu. Centred native-frame help.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Kept: visually matched current scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-100",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-100",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/playoffs-tree.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native16-team playoff bracket around the Stanley Cup; this representative standalone scene does not establish season-qualification history.",
      "alt": "Native16-team playoff bracket around the Stanley Cup; this representative standalone scene does not establish season-qualification history.",
      "actually_visible": "Native16-team playoff bracket around the Stanley Cup; this representative standalone scene does not establish season-qualification history.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-101",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-101",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/momentum-home.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Momentum strips beneath both team names at3rd3:02, NYR1 EDM2. The visible bars are separate from the lower-left clock.",
      "alt": "Momentum strips beneath both team names at3rd3:02, NYR1 EDM2. The visible bars are separate from the lower-left clock.",
      "actually_visible": "Momentum strips beneath both team names at3rd3:02, NYR1 EDM2. The visible bars are separate from the lower-left clock.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-102",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-102",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/momentum-away.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "alt": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "actually_visible": "Momentum strips beneath NYR and EDM at2nd0:17, NYR1 EDM0; a separate native match moment.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-103",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-103",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-01.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: Players One selected; controls centred inside the native footer frame.",
      "alt": "Main menu: Players One selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: Players One selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-104",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-104",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-02.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: Home Edmonton selected; controls centred inside the native footer frame.",
      "alt": "Main menu: Home Edmonton selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: Home Edmonton selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-105",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-105",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-03.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: Away1/84 vs NYR selected; controls centred inside the native footer frame.",
      "alt": "Main menu: Away1/84 vs NYR selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: Away1/84 vs NYR selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-106",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-106",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-04.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: Period Length5 Minutes selected; controls centred inside the native footer frame.",
      "alt": "Main menu: Period Length5 Minutes selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: Period Length5 Minutes selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-107",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-107",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-05.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: Goalie Ctrl Manual Control selected; controls centred inside the native footer frame.",
      "alt": "Main menu: Goalie Ctrl Manual Control selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: Goalie Ctrl Manual Control selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-108",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-108",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-06.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: Rules On, Except Off-sides selected; controls centred inside the native footer frame.",
      "alt": "Main menu: Rules On, Except Off-sides selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: Rules On, Except Off-sides selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-109",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-109",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-07.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: Line Changes Auto selected; controls centred inside the native footer frame.",
      "alt": "Main menu: Line Changes Auto selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: Line Changes Auto selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-110",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-110",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-08.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: Fighting Off selected; controls centred inside the native footer frame.",
      "alt": "Main menu: Fighting Off selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: Fighting Off selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-111",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-111",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-11.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: Crit Shots Off selected; controls centred inside the native footer frame.",
      "alt": "Main menu: Crit Shots Off selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: Crit Shots Off selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-112",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-112",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-12.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: Icing On selected; controls centred inside the native footer frame.",
      "alt": "Main menu: Icing On selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: Icing On selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-113",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-113",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-14.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: Pass Height Low selected; controls centred inside the native footer frame.",
      "alt": "Main menu: Pass Height Low selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: Pass Height Low selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-114",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-114",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-15.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: Pass Speed Normal selected; controls centred inside the native footer frame.",
      "alt": "Main menu: Pass Speed Normal selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: Pass Speed Normal selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-115",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-115",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-17.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: Target Cone Default selected; controls centred inside the native footer frame.",
      "alt": "Main menu: Target Cone Default selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: Target Cone Default selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-116",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-116",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-19.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: Pass Charge Off selected; controls centred inside the native footer frame.",
      "alt": "Main menu: Pass Charge Off selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: Pass Charge Off selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-117",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-117",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-20.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: Pickup Delay Off \u2014 Brief Catch Lock selected; controls centred inside the native footer frame.",
      "alt": "Main menu: Pickup Delay Off \u2014 Brief Catch Lock selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: Pickup Delay Off \u2014 Brief Catch Lock selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-118",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-118",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/extra-menu-main-row-22.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Main menu: AI Shot Plan On \u2014 Smarter Hard AI selected; controls centred inside the native footer frame.",
      "alt": "Main menu: AI Shot Plan On \u2014 Smarter Hard AI selected; controls centred inside the native footer frame.",
      "actually_visible": "Main menu: AI Shot Plan On \u2014 Smarter Hard AI selected; controls centred inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-119",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-119",
      "image_url": "/nhl94/pics/audits/ui-20261103-r2/extra-options-switches-Momentum-Off.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Momentum Off selected; the independent shot-units and glass choices remain visible.",
      "alt": "Momentum Off selected; the independent shot-units and glass choices remain visible.",
      "actually_visible": "Momentum Off selected; the independent shot-units and glass choices remain visible.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-120",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-120",
      "image_url": "/nhl94/pics/audits/ui-20261103-r2/extra-options-switches-AI-Shot-Plan-Off.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 AI Shot Plan Off \u2014 Smarter Hard AI selected in the main menu.",
      "alt": "AI Shot Plan Off \u2014 Smarter Hard AI selected in the main menu.",
      "actually_visible": "AI Shot Plan Off \u2014 Smarter Hard AI selected in the main menu.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-121",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-121",
      "image_url": "/nhl94/pics/audits/ui-20261103-r2/extra-options-switches-Alt-Goalies-Off.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Alt Goalies Off \u2014 New Goalie Model selected in the main menu.",
      "alt": "Alt Goalies Off \u2014 New Goalie Model selected in the main menu.",
      "actually_visible": "Alt Goalies Off \u2014 New Goalie Model selected in the main menu.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Caption/alt narrowed to the actual visible scene"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-122",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-122",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/ovr-before.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native Matchups Overall: New York Rangers55, Edmonton57.",
      "alt": "Native Matchups Overall: New York Rangers55, Edmonton57.",
      "actually_visible": "Native Matchups Overall: New York Rangers55, Edmonton57.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "audits/ui-20261103-r2/index.html#image-123",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-123",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/ovr-after.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Native Matchups Overall: New York Rangers55, Edmonton62.",
      "alt": "Native Matchups Overall: New York Rangers55, Edmonton62.",
      "actually_visible": "Native Matchups Overall: New York Rangers55, Edmonton62.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Fresh matched scene/option capture replaces ambiguous original"
    },
    {
      "occurrence": "added-gallery-keeper-catch",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-124",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/keeper-catch.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Edmonton goalkeeper35 holds the puck with a pale-blue marker at2nd2:35; the NYR powerplay frame remains above the clock.",
      "alt": "Edmonton goalkeeper35 holds the puck with a pale-blue marker at2nd2:35; the NYR powerplay frame remains above the clock.",
      "actually_visible": "Edmonton goalkeeper35 holds the puck with a pale-blue marker at2nd2:35; the NYR powerplay frame remains above the clock.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Added fresh relevant scene"
    },
    {
      "occurrence": "added-gallery-offscreen-goalie-arrow",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-125",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/offscreen-goalie-arrow.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "alt": "Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "actually_visible": "Blue goalkeeper arrow near the lower rink edge, alongside red arrows for other offscreen players.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Added fresh relevant scene"
    },
    {
      "occurrence": "added-gallery-roster-overall",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-126",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/roster-overall.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Team Roster: Overall selected for Scoring2; Draisaitl79 and the other current player ratings are visible.",
      "alt": "Team Roster: Overall selected for Scoring2; Draisaitl79 and the other current player ratings are visible.",
      "actually_visible": "Team Roster: Overall selected for Scoring2; Draisaitl79 and the other current player ratings are visible.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Added fresh relevant scene"
    },
    {
      "occurrence": "added-gallery-warning040",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-127",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/warning040.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 The native second-period clock at0:40. The five warning beeps are audio, verified separately; they cannot be heard in this still.",
      "alt": "The native second-period clock at0:40. The five warning beeps are audio, verified separately; they cannot be heard in this still.",
      "actually_visible": "The native second-period clock at0:40. The five warning beeps are audio, verified separately; they cannot be heard in this still.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Added fresh relevant scene"
    },
    {
      "occurrence": "added-gallery-auto-replays-menu",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-128",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/auto-replays-menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Auto Replays Off selected in the main menu, independent of Crit Shots; centred controls inside the native footer frame.",
      "alt": "Auto Replays Off selected in the main menu, independent of Crit Shots; centred controls inside the native footer frame.",
      "actually_visible": "Auto Replays Off selected in the main menu, independent of Crit Shots; centred controls inside the native footer frame.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Added fresh relevant scene"
    },
    {
      "occurrence": "added-gallery-fighting-menu",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-129",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/fighting-menu.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Fighting Off selected in the main menu; Auto line changes and centred framed controls remain visible.",
      "alt": "Fighting Off selected in the main menu; Auto line changes and centred framed controls remain visible.",
      "actually_visible": "Fighting Off selected in the main menu; Auto line changes and centred framed controls remain visible.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Added fresh relevant scene"
    },
    {
      "occurrence": "added-gallery-replay-before",
      "page": "audits/ui-20261103-r2/index.html",
      "anchor": "picture-130",
      "image_url": "/nhl94/pics/img/current-20261103-r2-review/replay-before.png",
      "title": "Opened native graphical review",
      "section": "",
      "caption": "2026-11-03-r2 \u00b7 Declared native shot/goal fixture before replay:172KMH and the solid red shot bar below the1st4:36 clock, LAK0 WAS1.",
      "alt": "Declared native shot/goal fixture before replay:172KMH and the solid red shot bar below the1st4:36 clock, LAK0 WAS1.",
      "actually_visible": "Declared native shot/goal fixture before replay:172KMH and the solid red shot bar below the1st4:36 clock, LAK0 WAS1.",
      "nearest_description": "The paired172KMH before/replay images use the standard declared native shot-geometry fixture from release QA, with an actual controller release, goal and replay. This is a separate LAK/WAS fixture with legacy actor state, not the fresh Edmonton season or a scoring-odds demonstration.",
      "visually_opened": true,
      "ROM_sha256": "20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f",
      "result": "MATCH after explicit visual review/correction",
      "previous_action": "Added fresh relevant scene"
    }
  ],
  "all_original_images_preserved": [
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/credits.png",
      "sha256": "bbe450fc2aaf7796987764a748f7d0987b1ba6a925b23004052218a180464286"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-ovr-early-final-v4-presentation-1400.png",
      "sha256": "83e4c004a7dc94edf323430d2ebb68d2bbbaabc8bd83eed51792e5773ed12b5b"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-acceptance-after-trades-presentation-250.png",
      "sha256": "bb19f178db657bc4508b4c6b151c6db3c3e82d3b45d0d7ba92c49b773053c823"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/sell-roster.png",
      "sha256": "3ddef5c2a251d7206b4b458fa0fdb51d9b36f7874a5d3e2ceb09186a0220a909"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/bought-star-99.png",
      "sha256": "73657e134a70a0ba7f9236f4a78a6d9c27e3823b42ba467a384713e2bb6fe6bd"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/bought-middle-79.png",
      "sha256": "8057ca4a654867662bb45e96d808d967cd8b4a10549ebc579bcb5411af15f266"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/transfers-on.png",
      "sha256": "b7dad958ef5ca258f7f708f758ad0da829e231c8279dd92169c2eefe673a567e"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/transfer-home.png",
      "sha256": "2446c76b0e1ae098b5ffca66310d802736e36555c4d73a9fbb63982184fac86f"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/sell-roster.png",
      "sha256": "3ddef5c2a251d7206b4b458fa0fdb51d9b36f7874a5d3e2ceb09186a0220a909"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/free-agents.png",
      "sha256": "f5bd508cc8856496e3d50443b1680bf0a19102ee5e30c462bf7c9297d66a9640"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/matchups.png",
      "sha256": "88e73d0513b0a969d1837672f2d46dac7166533209ca64871b1f9fe3f93d0a01"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/hot-cold.png",
      "sha256": "d918949cd10f203b0630652387047cbcdf67da1e962c43e7d3b6befc95fe31e8"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/roster-after-star-middle.png",
      "sha256": "60ebdce91afb584cb0764152dad0460b03dd47c0a8b53cea1feb193519e9855d"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/full-roster-blocked.png",
      "sha256": "7b72c850e3cc547aaa740aa389b9f422da1c2ff9b3aa208cbf12171877f9dcd4"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/insufficient-budget-protected.png",
      "sha256": "b4cd9189a10ca3da6c93d856b20aca542791c15673961c0268fc9f9610509beb"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/after-trades-presentation-550.png",
      "sha256": "d31dfe27af351152d0b89b215910d8a21854427adf4936313a342d36721794af"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-0.png",
      "sha256": "aa7d7fd199ed43839f671620c084aebf928db797259737a1a7a43d79bef29172"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-3.png",
      "sha256": "960d18c85b135ca8acb7f6105533b0866afc7fbff9e5097ab8a7bf2c590c2b54"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/replay.png",
      "sha256": "9f085ad0565793515c85691f3e91ee228f7da3904f99611f4773b9f2285aecfa"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/four-stars.png",
      "sha256": "52c376048c8cb61306554e2b97e25cb13cfe042dbef3e68cbdb55f55ffd0ac5a"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-cpu.png",
      "sha256": "7e31ec1416b73d83a7fc709a14c7af7dd99de4af556eed955e72bfe6b01e91fb"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-uniforms.png",
      "sha256": "1e4d27997a9a28e55f1c186e0f284b0927c7568a0baccf8af4aa2a1b9e75fa12"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-overall.png",
      "sha256": "acbbf46ac4b350c52dfd31ab8f57b4350ca594a42c5dfd970ae3254fb0d6a1e3"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-hot.png",
      "sha256": "59ccbde46886092e118b29dd8ea7e53ef51010256f19e8ad91a7f04a1e7f6a42"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/credits.png",
      "sha256": "bbe450fc2aaf7796987764a748f7d0987b1ba6a925b23004052218a180464286"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-rink.png",
      "sha256": "09ea715ebbebc96113c734e4bfac07b0a121c124aaad41648cbaaf971ce35e3d"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-off.png",
      "sha256": "4713f214e04a86678a24db09afdf62650bc7bc8054285b0b45c09cb500d2feb9"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "sha256": "4772b3f7ac9f4de821b28cd0a861109b40ffc6e83118eb228136e1e40e785e65"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/powerplay-home.png",
      "sha256": "a608bd04ee873589185eb945163754d4cecbd33be38dc0a5b2c3c2464ff73d9c"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-home-positive.png",
      "sha256": "62e3519c23c55202ca8905264de6a7464e0a7cb7c17903c341b10678121517b2"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-away-positive.png",
      "sha256": "6bd985ecb4d5ece8307000e6b2fbfa92d794ae70d1b4d30ed6313f596e20367e"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/rink.png",
      "sha256": "bf56f3e30865ba5dbf231e73e68f86278993e887ba0bd5a6f40e654e88c8e869"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shootout.png",
      "sha256": "12138496eb50d8c7bc28ee253756374e92089dbc2a63933ccc257464bfa5e450"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/penalty-default.png",
      "sha256": "f88ec3c7e8b75bfbf91b5b70e0724bec9edb75f7a5899b06839dfb4d3a037988"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/directional.png",
      "sha256": "b0b5b9426559d135212d61c0f652d5065a91e0ec17d33d258839e77a406eb3ba"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/slow.png",
      "sha256": "30a905a015847d2666e1c0196301338dfbffb5f2e32df580a2d1867c0d1164dd"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-defaults.png",
      "sha256": "04e01d870ae884ff309d167e57340228d8f284f9e9871985b611f459ed633567"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/mini.png",
      "sha256": "dbcf2297356d7edeb651bed17e2abd7882cd2e23eeeaac4129aea5f0013cd73b"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/icing-transfers.png",
      "sha256": "2564e8e278eb0ce6ddebc2a61a7b66f996b0ecd48084bf0e6ee90e0f16c82d7c"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/icing-transfers.png",
      "sha256": "2564e8e278eb0ce6ddebc2a61a7b66f996b0ecd48084bf0e6ee90e0f16c82d7c"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/keeper.png",
      "sha256": "f37b0ca9cb53477be8a2b2a477283061b5277690364a4645c84f805d31172033"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/stars.png",
      "sha256": "27e389209e7fdb292fd92890611c2d2d1fdc0f385a3550b0ae4e6e7a47979bd6"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-menu.png",
      "sha256": "b8a3ee1008a5a6415833676ab00365bea94b817fcf428d6170aa0b5c0de3c291"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/icing-transfers.png",
      "sha256": "2564e8e278eb0ce6ddebc2a61a7b66f996b0ecd48084bf0e6ee90e0f16c82d7c"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/rink.png",
      "sha256": "bf56f3e30865ba5dbf231e73e68f86278993e887ba0bd5a6f40e654e88c8e869"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/attack.png",
      "sha256": "97d3e3883330265184aa603ca130ba79f6079edcd6ad58f65b9f886e52f396fa"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "sha256": "4772b3f7ac9f4de821b28cd0a861109b40ffc6e83118eb228136e1e40e785e65"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/icing-transfers.png",
      "sha256": "2564e8e278eb0ce6ddebc2a61a7b66f996b0ecd48084bf0e6ee90e0f16c82d7c"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/attack.png",
      "sha256": "97d3e3883330265184aa603ca130ba79f6079edcd6ad58f65b9f886e52f396fa"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/four-stars.png",
      "sha256": "52c376048c8cb61306554e2b97e25cb13cfe042dbef3e68cbdb55f55ffd0ac5a"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/keeper.png",
      "sha256": "f37b0ca9cb53477be8a2b2a477283061b5277690364a4645c84f805d31172033"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/rink.png",
      "sha256": "bf56f3e30865ba5dbf231e73e68f86278993e887ba0bd5a6f40e654e88c8e869"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-flight.png",
      "sha256": "9ae9e10d886ebc7a714c96363ffe0e4eaa1009bc2b64caaa77e263dcb60a2cf4"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "sha256": "01daf8426b9bacc78f4987effb3835f04733dc09780548c5d8882dd1c82a7081"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shootout.png",
      "sha256": "12138496eb50d8c7bc28ee253756374e92089dbc2a63933ccc257464bfa5e450"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/attack.png",
      "sha256": "97d3e3883330265184aa603ca130ba79f6079edcd6ad58f65b9f886e52f396fa"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/four-stars.png",
      "sha256": "52c376048c8cb61306554e2b97e25cb13cfe042dbef3e68cbdb55f55ffd0ac5a"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/difficulty.png",
      "sha256": "7349d760e24aef376ac146a081aff6ca6c50bc685ec466b31247993fbbace43e"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/difficulty.png",
      "sha256": "7349d760e24aef376ac146a081aff6ca6c50bc685ec466b31247993fbbace43e"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/drai-line.png",
      "sha256": "97ff482f0045da6554ae0dc598c5ffd8fd74a78a11479b3a08d2968fb6521a2a"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/standings.png",
      "sha256": "c5515c86b6bbbf9aabd530468e7fc59b0ec690d9d797d83b8ff2a7d0458ac429"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/standings.png",
      "sha256": "c5515c86b6bbbf9aabd530468e7fc59b0ec690d9d797d83b8ff2a7d0458ac429"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/player-stats.png",
      "sha256": "56d7e5d29aba64cc06ea30ebe3328b1f3260073c6c72716881bacf73c6099aae"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/leaders.png",
      "sha256": "bf7160eefd218ae48543041ec47ff1fcbfa5828477d35d6514ba6cda9efbb342"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-flight.png",
      "sha256": "9ae9e10d886ebc7a714c96363ffe0e4eaa1009bc2b64caaa77e263dcb60a2cf4"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "sha256": "01daf8426b9bacc78f4987effb3835f04733dc09780548c5d8882dd1c82a7081"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-speed.png",
      "sha256": "874c4f9fb4f37d903aa79796d3a1e8e7887ce3bb002913a43dfd6525859f2854"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-flight.png",
      "sha256": "9ae9e10d886ebc7a714c96363ffe0e4eaa1009bc2b64caaa77e263dcb60a2cf4"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-speed.png",
      "sha256": "874c4f9fb4f37d903aa79796d3a1e8e7887ce3bb002913a43dfd6525859f2854"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/replay.png",
      "sha256": "9f085ad0565793515c85691f3e91ee228f7da3904f99611f4773b9f2285aecfa"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "sha256": "4772b3f7ac9f4de821b28cd0a861109b40ffc6e83118eb228136e1e40e785e65"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/replay.png",
      "sha256": "9f085ad0565793515c85691f3e91ee228f7da3904f99611f4773b9f2285aecfa"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "sha256": "01daf8426b9bacc78f4987effb3835f04733dc09780548c5d8882dd1c82a7081"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-mini.png",
      "sha256": "dddcc95f595f3c90f733e682de36c401a113e2e178cb508edc4647742447ecdd"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "sha256": "55fbcdcc30953072dca7181d74392f7199755fb24f04a648f301603aa68446ec"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-browser.png",
      "sha256": "c0eb6473fb6780346e2c6d9d981c806f2a55f493d34adf976acf00974158d01e"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "sha256": "01daf8426b9bacc78f4987effb3835f04733dc09780548c5d8882dd1c82a7081"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-sorted.png",
      "sha256": "e3dea1d4c46ecf6637c8e4ad1e14d9291f66e4b57489a5185426ed1b22bd447d"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/leaders.png",
      "sha256": "bf7160eefd218ae48543041ec47ff1fcbfa5828477d35d6514ba6cda9efbb342"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-actions.png",
      "sha256": "72acb37d43dc932bfb37902bfbe7bffb50948bf7da76362de57c537d730e3cdd"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "sha256": "761f339e89599354bab97ad4a71de7275a44cdf2fb3d561fc3043f380b7dde1d"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/roster.png",
      "sha256": "1ba3ad0a016f5509b55dc9aaaca9570f3de3f386257eeeb6fa953f7c36d50a33"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/difficulty.png",
      "sha256": "7349d760e24aef376ac146a081aff6ca6c50bc685ec466b31247993fbbace43e"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-rink.png",
      "sha256": "09ea715ebbebc96113c734e4bfac07b0a121c124aaad41648cbaaf971ce35e3d"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-flight.png",
      "sha256": "9ae9e10d886ebc7a714c96363ffe0e4eaa1009bc2b64caaa77e263dcb60a2cf4"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/startup.png",
      "sha256": "b727dc9a72889380934d1586acad56cde9e1435b4844342825445c6d6f2fa545"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "sha256": "761f339e89599354bab97ad4a71de7275a44cdf2fb3d561fc3043f380b7dde1d"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/card-forward.png",
      "sha256": "adf9198ea5fe98b0a9d1f1fb3e412e15c525fde2f4dbabbb1b35607c9be77666"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/cards-cover.png",
      "sha256": "da4effde11db5c67a5619315d1a9178c7017fc578813ba040c384c23dae67f7b"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shootout.png",
      "sha256": "12138496eb50d8c7bc28ee253756374e92089dbc2a63933ccc257464bfa5e450"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "sha256": "55fbcdcc30953072dca7181d74392f7199755fb24f04a648f301603aa68446ec"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "sha256": "55fbcdcc30953072dca7181d74392f7199755fb24f04a648f301603aa68446ec"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/light.png",
      "sha256": "b5f749f9f05daccaba6585922d58a4464915d6297beba2460eb91c2866c38a6f"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/mini.png",
      "sha256": "dbcf2297356d7edeb651bed17e2abd7882cd2e23eeeaac4129aea5f0013cd73b"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/mini.png",
      "sha256": "dbcf2297356d7edeb651bed17e2abd7882cd2e23eeeaac4129aea5f0013cd73b"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "sha256": "01daf8426b9bacc78f4987effb3835f04733dc09780548c5d8882dd1c82a7081"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/roster.png",
      "sha256": "1ba3ad0a016f5509b55dc9aaaca9570f3de3f386257eeeb6fa953f7c36d50a33"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/mini.png",
      "sha256": "dbcf2297356d7edeb651bed17e2abd7882cd2e23eeeaac4129aea5f0013cd73b"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/scoring.png",
      "sha256": "744ff5c804b581421a333974ce5bac7ac03fd57a6d8774060659ee34ad83dbee"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-tree.png",
      "sha256": "886904c9f14c58e07fe5a9a0b38d70538c21b73078ce6ee80d6d256c182d9923"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "sha256": "761f339e89599354bab97ad4a71de7275a44cdf2fb3d561fc3043f380b7dde1d"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "sha256": "55fbcdcc30953072dca7181d74392f7199755fb24f04a648f301603aa68446ec"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/menu.png",
      "sha256": "092ae5d9f3d5d81b49fe063ebd51c747dc888c09be069d5c347e1b444b1e46ab"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/difficulty.png",
      "sha256": "7349d760e24aef376ac146a081aff6ca6c50bc685ec466b31247993fbbace43e"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/icing-transfers.png",
      "sha256": "2564e8e278eb0ce6ddebc2a61a7b66f996b0ecd48084bf0e6ee90e0f16c82d7c"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-defaults.png",
      "sha256": "04e01d870ae884ff309d167e57340228d8f284f9e9871985b611f459ed633567"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/penalty-default.png",
      "sha256": "f88ec3c7e8b75bfbf91b5b70e0724bec9edb75f7a5899b06839dfb4d3a037988"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/goalie-default.png",
      "sha256": "3a09a383af54a8aa5fe8b94b9e636a8e27df83a4a576740163886a21f6d364dc"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-menu.png",
      "sha256": "28dbf2758e0e951a609fcb07b9ba5ec836f5006540324a6acaa2292379d2c599"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/units-menu.png",
      "sha256": "c61d638ffda492e966b4d845cc19e82b6912f7ae79d80fffc842cac0bc7e6fca"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/glass-menu.png",
      "sha256": "4ee0e8d800eb9abf990079763a951343089de218ec741db6d208fd141c1b2154"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-menu.png",
      "sha256": "b8a3ee1008a5a6415833676ab00365bea94b817fcf428d6170aa0b5c0de3c291"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-0.png",
      "sha256": "aa7d7fd199ed43839f671620c084aebf928db797259737a1a7a43d79bef29172"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-1.png",
      "sha256": "66061db17275c6e5dd6e5b912b99f943ed7e34504f491f5a2f40f4a7a61755f7"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-2.png",
      "sha256": "3bd8f5a5f13d6c5c39ccfec3a60b3de8d8164bf337af18d05a4fcd5ed9de29f3"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/quick-3.png",
      "sha256": "960d18c85b135ca8acb7f6105533b0866afc7fbff9e5097ab8a7bf2c590c2b54"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-0.png",
      "sha256": "196c3d8f1d9f0e5d5dd01b11b832b1bddef44330f6cca8d81f54e0662c6548b4"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-1.png",
      "sha256": "2ad61142311ab6830ff7c11a700e9e2bb4ac98f2eb73a34526b1c7b65c4eda4f"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-2.png",
      "sha256": "3e6790ca395546a6fd1759704b5068eaea4cbf1e140e47fd93f051877f544a0e"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-3.png",
      "sha256": "6a3c2d3ff5e42f360a6275bbb5316cccbe2f70edd5a796c4ac6e3a2570ec4699"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-cpu.png",
      "sha256": "7e31ec1416b73d83a7fc709a14c7af7dd99de4af556eed955e72bfe6b01e91fb"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/light.png",
      "sha256": "b5f749f9f05daccaba6585922d58a4464915d6297beba2460eb91c2866c38a6f"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/mini.png",
      "sha256": "dbcf2297356d7edeb651bed17e2abd7882cd2e23eeeaac4129aea5f0013cd73b"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/directional.png",
      "sha256": "b0b5b9426559d135212d61c0f652d5065a91e0ec17d33d258839e77a406eb3ba"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/cone45.png",
      "sha256": "f6409782bf78e4509e10828fff2670fbc35f174ea82642ab4dd3370d61755d4d"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/slow.png",
      "sha256": "30a905a015847d2666e1c0196301338dfbffb5f2e32df580a2d1867c0d1164dd"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/mph.png",
      "sha256": "d55954e376397a230947d9c6a536a580a1cde0c35694720805be5e964f91aa26"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/glass-off.png",
      "sha256": "e31b54758ca564bfc3c6cc1269e1552732e124e66354a1487ee74509fbda19a9"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pickup-on.png",
      "sha256": "b14776aa7d1bf797494ede65a3714545ba216f0f0d86c66a9c5f6e0a388528dd"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/charge-on.png",
      "sha256": "ac3ba74b31944c7283a654798ba96bd0f795ddabc1ae659ec916ec0ef2f65bc8"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/penalty-off.png",
      "sha256": "eb401fd6c806acaae3a6fc08cff3ac407877411291284bf20c364fdb54241f21"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/penalty100.png",
      "sha256": "c989a81b7c100339469fdba0fea94783d2ad641d29f461593d869623b79158cd"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/transfers-on.png",
      "sha256": "b7dad958ef5ca258f7f708f758ad0da829e231c8279dd92169c2eefe673a567e"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/transfer-home.png",
      "sha256": "2446c76b0e1ae098b5ffca66310d802736e36555c4d73a9fbb63982184fac86f"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/sell-roster.png",
      "sha256": "3ddef5c2a251d7206b4b458fa0fdb51d9b36f7874a5d3e2ceb09186a0220a909"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/sold-jarry.png",
      "sha256": "33bcf197226dd292d12aaddd55b5fe4c383879c4ae2c0a6aef82f1670d2fdf8c"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/sold-hyman.png",
      "sha256": "8b0e6dfa5d3963a6a619e2c21de9c48d1a76796b30b129b1d4d58ae7fd300bb6"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/buy-club.png",
      "sha256": "2a882eb0567ec199fed7b837fcde087d1ef7b407f61e6d8f875264da6973415e"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/free-agents.png",
      "sha256": "f5bd508cc8856496e3d50443b1680bf0a19102ee5e30c462bf7c9297d66a9640"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/bought-jarry.png",
      "sha256": "8b0e6dfa5d3963a6a619e2c21de9c48d1a76796b30b129b1d4d58ae7fd300bb6"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/full-roster-blocked.png",
      "sha256": "7b72c850e3cc547aaa740aa389b9f422da1c2ff9b3aa208cbf12171877f9dcd4"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/minimum-keepers-protected.png",
      "sha256": "ecdb62bf4f26772a582e4f4d494849ea5c337b2d22501c1592cf869b1f4d2979"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/bought-star-99.png",
      "sha256": "73657e134a70a0ba7f9236f4a78a6d9c27e3823b42ba467a384713e2bb6fe6bd"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/bought-middle-79.png",
      "sha256": "8057ca4a654867662bb45e96d808d967cd8b4a10549ebc579bcb5411af15f266"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/insufficient-budget-protected.png",
      "sha256": "b4cd9189a10ca3da6c93d856b20aca542791c15673961c0268fc9f9610509beb"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/roster-after-star-middle.png",
      "sha256": "60ebdce91afb584cb0764152dad0460b03dd47c0a8b53cea1feb193519e9855d"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/after-trades-presentation-550.png",
      "sha256": "d31dfe27af351152d0b89b215910d8a21854427adf4936313a342d36721794af"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/after-trades-presentation-1000.png",
      "sha256": "b3e06c80fc2be5a5f33d3bcadfea7a7e928fe6aa35cf910d9a49d3ed4b8b186b"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/startup.png",
      "sha256": "b727dc9a72889380934d1586acad56cde9e1435b4844342825445c6d6f2fa545"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/credits.png",
      "sha256": "bbe450fc2aaf7796987764a748f7d0987b1ba6a925b23004052218a180464286"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-uniforms.png",
      "sha256": "1e4d27997a9a28e55f1c186e0f284b0927c7568a0baccf8af4aa2a1b9e75fa12"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/matchups.png",
      "sha256": "88e73d0513b0a969d1837672f2d46dac7166533209ca64871b1f9fe3f93d0a01"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pregame.png",
      "sha256": "da1023fb599a733cdb3d3cef90953730097fea4c648fc51439444188be5c6021"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/rink.png",
      "sha256": "bf56f3e30865ba5dbf231e73e68f86278993e887ba0bd5a6f40e654e88c8e869"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/four-stars.png",
      "sha256": "52c376048c8cb61306554e2b97e25cb13cfe042dbef3e68cbdb55f55ffd0ac5a"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/powerplay-away.png",
      "sha256": "d52da8cf5efdad1fee9f54351e30528767ac4b26e09ca9ff14ee085779cfc02b"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/powerplay-home.png",
      "sha256": "a608bd04ee873589185eb945163754d4cecbd33be38dc0a5b2c3c2464ff73d9c"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-rink.png",
      "sha256": "09ea715ebbebc96113c734e4bfac07b0a121c124aaad41648cbaaf971ce35e3d"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/attack.png",
      "sha256": "97d3e3883330265184aa603ca130ba79f6079edcd6ad58f65b9f886e52f396fa"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/keeper.png",
      "sha256": "f37b0ca9cb53477be8a2b2a477283061b5277690364a4645c84f805d31172033"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/period-menu.png",
      "sha256": "01f550fc7dd2fd80d152ba0bfb687b20feed8f06e81a9da058b87c8acea73e6a"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/stars.png",
      "sha256": "27e389209e7fdb292fd92890611c2d2d1fdc0f385a3550b0ae4e6e7a47979bd6"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/hot-cold.png",
      "sha256": "d918949cd10f203b0630652387047cbcdf67da1e962c43e7d3b6befc95fe31e8"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/hot-commentary.png",
      "sha256": "cbc48eba00f17ad196941d18d2cca814d94803dac7e3d6d4ba2542f445fb0de1"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-overall.png",
      "sha256": "acbbf46ac4b350c52dfd31ab8f57b4350ca594a42c5dfd970ae3254fb0d6a1e3"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/allstar-hot.png",
      "sha256": "59ccbde46886092e118b29dd8ea7e53ef51010256f19e8ad91a7f04a1e7f6a42"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/keeper-select.png",
      "sha256": "c9ef8d0181c7fafbb382881faa881d52f072b611576740ebe5ec5e05920f75b2"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/lines.png",
      "sha256": "1343baaaddcdd3b0b46ba2c1522359dc7bcb255a4b1694cd7745470795765282"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/game-stats.png",
      "sha256": "8ddff4a249a681be7aeea4f1f16d67c4dddbf1a6b41926a5bd0170727d927699"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/player-stats.png",
      "sha256": "56d7e5d29aba64cc06ea30ebe3328b1f3260073c6c72716881bacf73c6099aae"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/scoring.png",
      "sha256": "744ff5c804b581421a333974ce5bac7ac03fd57a6d8774060659ee34ad83dbee"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/penalties.png",
      "sha256": "4ef0b43a2159a45a508f5d35bffe2ffc19084c3d1089768a8b7968bcd552ac03"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/roster.png",
      "sha256": "1ba3ad0a016f5509b55dc9aaaca9570f3de3f386257eeeb6fa953f7c36d50a33"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/standings.png",
      "sha256": "c5515c86b6bbbf9aabd530468e7fc59b0ec690d9d797d83b8ff2a7d0458ac429"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crowd.png",
      "sha256": "b929e80ebe995ce9cafe0435ff19281d6858f6f7052620d57c75caaac69ca118"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/cards-cover.png",
      "sha256": "da4effde11db5c67a5619315d1a9178c7017fc578813ba040c384c23dae67f7b"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/leaders.png",
      "sha256": "bf7160eefd218ae48543041ec47ff1fcbfa5828477d35d6514ba6cda9efbb342"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/period-stats.png",
      "sha256": "03ce669eaeaa64d33924e7e9271e86776879bc2dd5297c21d77e77b75b810f60"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/abandon.png",
      "sha256": "7da77d2f8105bc4e99a65ac73fc49db2ff62b44b8f621e0a0ddbe3388712901b"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-low.png",
      "sha256": "147787620782d2cea794c204f12cc5cbc4d4a580a49e6a1a5705ece72bb7ac98"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-middle.png",
      "sha256": "9be026ade9f16d6c320c26068bb5bd272fdab680faac43561379061d82bc0767"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-full.png",
      "sha256": "4772b3f7ac9f4de821b28cd0a861109b40ffc6e83118eb228136e1e40e785e65"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-low.png",
      "sha256": "8a129f2516a05dadee6af0afb7ff49fc97150040fe29bd5c8a3b5be06fd46397"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-middle.png",
      "sha256": "e20a65e1961ac328842a592dfc1d287d469f074aec679d4965e5d9f40f2bbcb9"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-full.png",
      "sha256": "26524e14b4c03d9ea95815aca4cadfbce1fd0329327842fb399d54b21b4d1487"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/pass-release.png",
      "sha256": "71134a2a9182e790aeda65c2664d4983fcfb56562f2c072cb9821162916406fc"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shot-speed.png",
      "sha256": "874c4f9fb4f37d903aa79796d3a1e8e7887ce3bb002913a43dfd6525859f2854"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/replay.png",
      "sha256": "9f085ad0565793515c85691f3e91ee228f7da3904f99611f4773b9f2285aecfa"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-flight.png",
      "sha256": "9ae9e10d886ebc7a714c96363ffe0e4eaa1009bc2b64caaa77e263dcb60a2cf4"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/crit-trail.png",
      "sha256": "01daf8426b9bacc78f4987effb3835f04733dc09780548c5d8882dd1c82a7081"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-off.png",
      "sha256": "4713f214e04a86678a24db09afdf62650bc7bc8054285b0b45c09cb500d2feb9"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/drai-select.png",
      "sha256": "51df606098e82bdf188eb6d1a53dfb34a5058b9ae926c2cfc845f54d28f3567e"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/drai-line.png",
      "sha256": "97ff482f0045da6554ae0dc598c5ffd8fd74a78a11479b3a08d2968fb6521a2a"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/card-goalie.png",
      "sha256": "761f339e89599354bab97ad4a71de7275a44cdf2fb3d561fc3043f380b7dde1d"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/card-forward.png",
      "sha256": "adf9198ea5fe98b0a9d1f1fb3e412e15c525fde2f4dbabbb1b35607c9be77666"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/shootout.png",
      "sha256": "12138496eb50d8c7bc28ee253756374e92089dbc2a63933ccc257464bfa5e450"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-mini.png",
      "sha256": "dddcc95f595f3c90f733e682de36c401a113e2e178cb508edc4647742447ecdd"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-browser.png",
      "sha256": "c0eb6473fb6780346e2c6d9d981c806f2a55f493d34adf976acf00974158d01e"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-sorted.png",
      "sha256": "e3dea1d4c46ecf6637c8e4ad1e14d9291f66e4b57489a5185426ed1b22bd447d"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/completed-actions.png",
      "sha256": "72acb37d43dc932bfb37902bfbe7bffb50948bf7da76362de57c537d730e3cdd"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-menu.png",
      "sha256": "55fbcdcc30953072dca7181d74392f7199755fb24f04a648f301603aa68446ec"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/playoffs-tree.png",
      "sha256": "886904c9f14c58e07fe5a9a0b38d70538c21b73078ce6ee80d6d256c182d9923"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-home-positive.png",
      "sha256": "62e3519c23c55202ca8905264de6a7464e0a7cb7c17903c341b10678121517b2"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/img/current-20261103-r2/momentum-away-positive.png",
      "sha256": "6bd985ecb4d5ece8307000e6b2fbfa92d794ae70d1b4d30ed6313f596e20367e"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-01.png",
      "sha256": "d1b1abd8115491c25bd24e24311d8e17472d724d0e1dc8fb146fe5a13a3cf34d"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-02.png",
      "sha256": "dd2642c1b46dee98bc724c2c34b8efc4a8bb63edc96cda2ba056ffd4c66697d3"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-03.png",
      "sha256": "5419fde4348784c8ca839564d6b352a8fbe07e47ad4286261babb069fcc8a19e"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-04.png",
      "sha256": "d4557d39074993d27dc1dabcd64f665a58f2a403b1ac5e90a1220803e0bfe759"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-05.png",
      "sha256": "6a427bc564ee12744f7fd52336110d92164187b54c0d6a6e9eac93c45ec9496d"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-06.png",
      "sha256": "1bf0a366091fcd9b11d503e3c5151c59550e38239edd115b906d6fa1e00e6bc0"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-07.png",
      "sha256": "034f8071db9ccf4fcb754bb133c2fe86531c0bb1407609f414d898c56d9cc985"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-08.png",
      "sha256": "88cc31065847258be68cbb963e3606911c5702e9faa5167097ed553e3d890e1b"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-11.png",
      "sha256": "fe8c74921ded8023f73e4325d656986043e201472c9fb2e120ded0a626408a95"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-12.png",
      "sha256": "90210d050f6d0b778ef50bc98577feaa6637b919ccfe0a9113f16e17677586cb"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-14.png",
      "sha256": "eda0fa998c5f7a07111fb0f73609e4dc51f1c7d8a7173f740b83b43906ec012a"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-15.png",
      "sha256": "66457ee841c200d5322f3c3802d80fd672a97394bc760e6d2e026d1c7ac6f394"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-17.png",
      "sha256": "408348c73d13bae8e7292e9e63a4fad3f64376291709c3ac4150b1df2646a416"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-19.png",
      "sha256": "6b0914134a374a1f193f278a1056cab794836e46cab147ec8e96675ed21684e8"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-20.png",
      "sha256": "63550bae2cdeb7b4e2e7ea4f1b4590c5dad8309a4411c657daed545d0d6144c0"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-menu-main-row-22.png",
      "sha256": "928c8556f17a3ee31e6befecb857478f962da12e5c0ac88cebe61c04e97dfe7d"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-options-switches-Momentum-Off.png",
      "sha256": "d355b48eff41199605bc9e4906a9311d7f43342fe44128d121e7b0feef537e49"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-options-switches-AI-Shot-Plan-Off.png",
      "sha256": "064d16966db340bc7d03302b66027706bef74f05e6f1ddeb3c404a1c2605938f"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-options-switches-Alt-Goalies-Off.png",
      "sha256": "0167f0114b7a9a01bc391540e27eec0a435d5b6178a6d4841d68fbe5855928ac"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-ovr-early-final-v4-presentation-1400.png",
      "sha256": "83e4c004a7dc94edf323430d2ebb68d2bbbaabc8bd83eed51792e5773ed12b5b"
    },
    {
      "path": "/home/jdc/mount/truenas/www/games.jdc.se/nhl94/pics/audits/ui-20261103-r2/extra-acceptance-after-trades-presentation-250.png",
      "sha256": "bb19f178db657bc4508b4c6b151c6db3c3e82d3b45d0d7ba92c49b773053c823"
    }
  ],
  "manual_limits": [
    "A still cannot establish timing, sound, AI strength, hidden stat boosts, ownership transitions or storage integrity. Native128-group qualification supplies separate exact-ROM evidence.",
    "Physical controllers, extended human button sessions and live jdc/Bodin multiplayer still require beta playtesting.",
    "The existing9:33 native-sound film remains explicitly2026-11-02-r2, not a new recording of these later changes."
  ],
  "historical_scope": "Dated audit trees and originals retain their historic bytes; new before-home/gallery raw-source files preserve the just-superseded current bindings.",
  "explicit_binding_replacements_or_relocations": [
    "index.html#image-34",
    "index.html#image-42",
    "index.html#image-47",
    "index.html#image-51",
    "index.html#image-56",
    "index.html#image-57",
    "index.html#image-59",
    "index.html#image-60",
    "index.html#image-61",
    "index.html#image-62",
    "index.html#image-65",
    "index.html#image-69",
    "index.html#image-74",
    "index.html#image-81",
    "index.html#image-87",
    "index.html#image-88",
    "index.html#image-99",
    "index.html#image-104",
    "index.html#image-107",
    "index.html#image-108",
    "index.html#image-110"
  ],
  "historical_note_images": [
    {
      "image": "/nhl94/pics/img/r5-shot-left.png",
      "scope": "Retained dated historical image; viewer URL updated, original bytes/Markdown preserved"
    },
    {
      "image": "/nhl94/pics/img/r5-momentum-menu.png",
      "scope": "Retained dated historical image; viewer URL updated, original bytes/Markdown preserved"
    },
    {
      "image": "/nhl94/pics/img/r5-shot-pp.png",
      "scope": "Retained dated historical image; viewer URL updated, original bytes/Markdown preserved"
    },
    {
      "image": "/nhl94/pics/img/crit-flames-before-r32.png",
      "scope": "Retained dated historical image; viewer URL updated, original bytes/Markdown preserved"
    },
    {
      "image": "/nhl94/pics/img/crit-flames-after-r33.png",
      "scope": "Retained dated historical image; viewer URL updated, original bytes/Markdown preserved"
    }
  ],
  "club_logos": {
    "count": 32,
    "opened": true,
    "all_match_team_names": true,
    "scope": "Branding images, not game screenshots"
  },
  "final_browser_evidence": "browser/",
  "final_browser_receipt": "FINAL_BROWSER_ACCEPTED.json",
  "completed_at": "2026-11-03T19:00:41.505297+00:00"
}
