49ad3a08

Author: Michael Lynch <git@mtlynch.io>

Committer: Michael Lynch <mtlynch@noreply.codeberg.org>

Enforce typed Email on littlemoments.User and reject display-name format (#63)

Replace the string Email field on User with a typed Email struct.
NewEmail validates the input is a bare address (no display name or
angle brackets) and normalises it via net/mail. All callers in
convert.go and jsonfile.go now propagate parse errors. Adds unit
tests for NewEmail and Email.IsEmpty.

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

Reviewed-on: https://codeberg.org/mtlynch/little-moments/pulls/63
Co-authored-by: Michael Lynch <git@mtlynch.io>
Co-committed-by: Michael Lynch <git@mtlynch.io>