f093a476

By: Michael Lynch <git@mtlynch.io>

Replace littlemoments.UserID int type with a uint32-backed struct

UserID was a plain `int` type alias. This replaces it with a struct
wrapping a uint32, with a constructor (NewUserID) and a UInt32() accessor
for callers that need the raw value.

- tinybeans/parse.UserID changes from int64 to uint32, gaining a UInt32()
  method to avoid casts at call sites in convert.go
- jsonfile ID fields change from int to uint32 to match
- WriteMetadata uses UInt32() instead of int() casts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Suite timing

Time to Start Worker time Duration Time to finish
Config 17s 1s 1s 18s
Eval 18s 36s 36s 55s
Build 4m58s 2m26s 3m43s 8m41s
Test - - - -
Deploy - - - -
Suite 17s 3m03s 8m24s 8m41s

Timeline

0s20s40s5m5m20s5m40s7m40s8m8m20s8m40s