# Actual verification record

Verified locally on 9 September 2026 using Xcode 26.6 (17F113), the iOS 26.5 SDK/simulator and Swift. Minimum target: iOS 17. No physical device was available.

## Gameplay and persistence

Fifteen Swift package core tests pass. They cover the first 35-second trip, first friendship and Scanner access; connected graph/preparation gates; safe retracing after changing pack; redirects completing the current path; rest without lost progress; chronological offline versus 0.5-second stepwise simulation; the absence cap; duplicate settlement and backwards/invalid clocks; guaranteed focused rare research; saved partial interactions and encounter persistence; two distinct tools and one companion; mastery and repeatable seasons; preservation of collection/purchases/tools; cosmetic non-advantage and transaction deduplication; corrupt-primary/backup recovery, preserved files and invalid save rejection; permanent first visits after thousands of routine loops and a new season.

Tools/Balance uses the real engine. No-purchase policies with decisions every five seconds, five minutes and eight hours all complete the eighteen-creature/twelve-landmark main survey. See BALANCE.md and BALANCE_RESULTS.txt. These are modeled outcomes, not human retention results.

## Native app and StoreKit

Seventeen app-host XCTest tests pass on both large and compact iPhone simulators: eight model/media/lifecycle tests and nine StoreKit tests. They load every artwork cell and all 29 actual WAV assets, verify loop alignment within 40 ms, background pause/resume, mute and synthesized interruption notifications, failed-write rollback, blocked save recovery and settings/offline persistence. The worst 32-hour chronological settlement takes well below the two-second test bound (approximately 0.04 seconds in this simulator).

StoreKit SKTestSession tests use Configuration/SmallWorlds.storekit. All five non-consumables purchase successfully, remain through study publication/season reset and restore to a fresh save. Tests also cover deduplicated delivery, pending approval, unfinished delivery on relaunch, blocked storage and retry, verified refund revocation, offline catalogue, cancelled purchase and unavailable purchase. No real money or live App Store configuration is involved.

Testing found and corrected a cached-ownership issue: an empty entitlement sequence after product metadata loads is not enough to discard a saved purchase. Verified refund history/updates or explicit successful AppStore.sync reconciliation handle removals. Purchases are saved before a transaction is finished.

## Screens and accessibility

The ten original Debug UI checks pass on iPhone SE (3rd generation, 375 × 667 points) and iPhone 17 Pro Max (440 × 956 points), across the recorded full and targeted regression runs. An eleventh Debug check verifies the permanent first-visit history UI. A separate Release smoke check passes on iPhone 17 (402 × 874 points).

UI coverage: title → first path → recorded encounter → three actions → friend → upgrade → newly reachable destination; saved interaction after termination/relaunch; route redirect/rest and changed loadout; collection retained through a confirmed season; persistent settings; Accessibility XXXL navigation, directions and haptics; offline summary and retained signals; actual StoreKit product presentation; collection, landmark and camp screens; permanent first-visit disclosure; optimized Release launch/navigation/settings.

Apple's visible-screen accessibility audits pass on both compact and large layouts for Explore, Journal, Camp and Settings, including scrolled states. The audit helper excludes only contrast reports for text outside its owning clipped ScrollView; visible failures are not suppressed. Labels, scalable text, independent controls and at least 44-point map/row touch areas are implemented. The first opening UI run found a blank-space hit target in a signal row; its whole row is now explicitly tappable and the opening regression passes. A physical VoiceOver user pass remains outstanding.

Device-following appearance was tested while the app stayed foregrounded: header pixels changed from Dusk RGB (23,45,46) to Night (8,22,23) after changing simulator appearance. Screenshots were inspected visually. Creature sheets were also corrected to maintain padding between atlas cells, removing clipped neighbouring sprite fragments. The final sprite assets were rechecked in native tests and captures.

## Performance, audio and release

The map targets 30 fps, or 15 with reduced motion, and pauses outside the active scene. The optimized Release performance test measures three five-second foreground intervals with the world visible and music enabled. The three five-second Release samples averaged 0.565 seconds of CPU time, 78.4 MB resident physical memory and a 90.1 MB peak. Exact samples are in QA/test-results.json. Simulator measurements do not establish device battery life, thermals or sustained physical frame rate.

The music masters and complete regional mixes are finite, unclipped and length aligned. Their sample-boundary measurements are recorded in AUDIO_MANIFEST.json and Audio/mix-checks.json. Real AVAudioPlayer loading and synchronization were tested. The browser also plays the actual 120-second camp AAC without media errors. Subjective speaker/headphone mastering, hardware silent-switch behaviour and physical interruptions still need a device pass.

An ARM64 Release archive compiled successfully with signing disabled. Its binary has no debug fixture/reset/test-host flags, local StoreKit catalogue or location permission strings. Release validation checks artwork/audio inventories, icon dimensions, metadata and product IDs. The archive is unsigned and cannot be called a distributable App Store build. Provisioning-enabled export returned No Accounts / no profile for com.gallaxgames.smallworlds. No TestFlight upload, live payment or App Review submission is claimed.

## Website and remaining limits

The existing Gallax Games site builds and type-checks. Lint has no errors and six pre-existing shared-component Fast Refresh warnings. Local browser checks verify desktop/mobile layout, navigation, help search/accordion, playable audio and no missing images or browser errors. Source upload and the public-host status are recorded in WEBSITE_DELIVERY.md.

No human retention study, physical iPhone test, iOS 17 runtime test, sandbox/TestFlight purchase or live hosting approval is represented as complete. A second planet, cloud syncing, social features, save import, advertisements and premium currency are deliberately outside V1. RELEASE_CHECKLIST.md lists the owner and external release gates.
