ROLL v1.2.1 VALIDATION

PASS - package.json and package-lock.json parse successfully.
PASS - package version and display metadata are 1.2.1 / ROLL / Sligh Ltd.
PASS - permanent UUID remains 03b3c981-d3e0-49c5-9ccb-12327b1e4fa5.
PASS - app kind remains watch app, not watch face.
PASS - Emery and Gabbro remain the only target platforms.
PASS - @rebble/clay is consistently pinned to 1.0.10.
PASS - npm resolves and installs @rebble/clay 1.0.10 successfully.
PASS - Clay configuration and PebbleKit JS pass Node syntax validation.
PASS - all 14 generated message-key values are explicit and non-overlapping.
PASS - preset configuration is sent as six separate name/dice payloads.
PASS - normalized settings are cached phone-side and resent on PebbleKit JS ready.
PASS - watch AppMessage capacity was increased to 256-byte inbox / 128-byte outbox.
PASS - six preset slots are persisted in a versioned watch-side data structure.
PASS - each preset stores name, seven die counts, modifier, enabled state, and lock state.
PASS - preset modifiers default to 0 when a slot is first configured.
PASS - locked modifiers persist across app exits and watch restarts.
PASS - valid preset renames and dice changes preserve an existing locked modifier.
PASS - disabling and recreating a preset resets modifier and lock state.
PASS - Back cancels uncommitted preset modifier edits.
PASS - Select locks and rolls an unlocked preset.
PASS - Select immediately rolls a locked preset.
PASS - Long Select opens modifier editing for configured presets.
PASS - preset modifier controls use +/-1 and long-press +/-5.
PASS - preset parser accepts D4, D6, D8, D10, D12, D20, and D100 only.
PASS - preset parser accepts omitted count prefixes and mixed additive groups.
PASS - preset parser rejects modifiers, unsupported dice, zero counts, trailing operators, and more than 100 dice.
PASS - deterministic C unit tests cover preset parsing plus all prior roll logic.
PASS - watch C and shared logic pass warnings-as-errors syntax validation for Emery-style and Gabbro-style branches.
PASS - watch sources contain no stdio formatting, standard-library PRNG, time(NULL), bounded-copy, memset, or memcpy calls that could force full newlib linkage.
PASS - existing die-color isolation, 1.25-second standard animation, critical animations, history, and roll behavior remain intact.
PASS - no exploding dice, advantage/disadvantage automation, success counting, keep-highest, audio, or network access are present.

NOT PERFORMED - final PBW compilation because the Pebble SDK toolchain is not installed in this environment.
NOT PERFORMED - physical installation and button testing on Emery or Gabbro.
