# Refactor 001 — Option 1 Covers Option 2

## Finding

For the XGD1 layout used by the current dumper, the standalone option-2 XISO is
a contiguous prefix of the game-view region embedded in the option-1 raw ISO.

- raw XISO-region start: output LBA 198144
- standalone XISO size: 1913920 sectors
- lead-in: 32 synthetic sectors
- data: 1913888 sectors from unlocked source LBA 32

## Problem

Before semantic merge v5, option 1 and option 2 used separate construction
paths. Therefore, a successful option-1 dump did not automatically validate
option-2 content, even though the data overlapped.

## Refactor

Semantic merge v5 introduces:

- shared XISO geometry constants;
- `XboxGameRegionPlan`;
- one `WriteXboxGameRegion()` implementation used by both options;
- an embedded standalone-XISO SHA-1 printed after option 1.

## Validation rule

After one successful option-1 dump:

1. preserve the embedded standalone-XISO SHA-1;
2. run option 2 once;
3. confirm option-2 whole-file SHA-1 equals the option-1 embedded-slice SHA-1.

After that comparison, future option-1 content regressions cover option 2
unless the shared writer or geometry changes.

Option 2 retains only a lightweight wrapper acceptance surface:

- `.xiso` naming;
- free-space preflight;
- commit and close;
- final-size verification.

## Status

- refactor source: complete
- static regression validation: passed
- MinGW compilation: pending
- hardware option-1 validation: pending
- option-2 wrapper/hash comparison: pending
