profile set reaches the app: description, website, about text and links,
from an edit sheet on your own profile.
The flag semantics are unlike anything else this app sends, so the form
matches them exactly. --link replaces the whole set rather than
appending, so every link you keep is sent on every save and dropping one
from the form is how you delete it; an empty list sends --link "",
which is how the set is cleared. An emptied field sends an empty value
rather than omitting the flag, because omitting means "leave it alone"
and empty means "remove it". A label with no URL, more than five links,
or a label containing | — which the server would read as the separator
and split into a broken link — are all refused before anything is sent.
The about text travels in stdin, not argv: it is long-form, and the profile this was built against is org-mode with tables. The format picker defaults to the format the text was stored with, since changing it reinterprets prose that already exists.
Closes the profile set parity row. The web still has no form for this.