Declared-but-empty projects persist locally (UserDefaults) until a
note carries the name, at which point the project syncs via notes as
usual. Empty declared projects can be swipe-deleted.
Claude-Session: https://claude.ai/code/session_014esDWi42URLEC6Cj17hGQ3
Notes gain an optional project (schema v4, additive). Projects derive
from note values like tags — no separate entity. Tab naming
(Projects/Categories) is a Settings choice applied across the UI.
Claude-Session: https://claude.ai/code/session_014esDWi42URLEC6Cj17hGQ3