HTTP service for saving bookmarks with strict input validation.
Required Header: x-user-id: your_user_id
A repeat is recognised by SHA256 hash of user_id + ":" + url.
Reason: The “same create request” is defined by who is saving and what URL.
Title is excluded so user can update title without creating duplicate.
This guarantees at most one row per user per URL.
All malformed input returns 400 with message naming the field. Examples: missing url, number instead of string, empty string, url > 2048 chars. No request will produce a 500.