# Build Validation 002 — Canonical Handshake API

## User-observed result

After the v2 fixes, MinGW successfully compiled:

- `src/common/scsi/utils.c`
- `src/common/xbox/unlock.c`

The build then failed while linking the Branch A authentication utility because
`src/tools/auth/xbox_auth_disc/main.c` still called:

```c
AuthenticateXboxMedia(hDevice)
```

## Semantic significance

This was not just an undeclared-function mistake.

`AuthenticateXboxMedia()` was the experimental custom command for patched
firmware. It unlocked the Xbox partition without the normal handshake and had
already been intentionally removed from the canonical merge.

The stale caller therefore represented an incomplete semantic merge.

## Correction in semantic merge v3

- `xbox_auth_disc` now calls `UnlockDrive()`.
- `UnlockDrive()` remains the canonical normal SHA-1/RC4 handshake.
- `UnlockDrive()` now returns `BOOL`.
- Transport-critical handshake failures propagate to the caller.
- The experimental patched-firmware bypass remains excluded.

## Current validation state

- v1: failed at `LogHexDump()` declaration order
- v2: passed that point; failed on stale bypass caller
- v3 static regression validation: passed
- complete v3 MinGW build: pending
- MSVC build: pending
- hardware regression: pending
