Responses, errors, and idempotency
Success:
Error:
Clients branch on stable error.code or message_key, never on message.
Send Accept-Language: zh-CN or en-US; read Content-Language. Codes and raw values do not change with language.
Admin lists commonly use page and page_size. Mobile notifications and articles use opaque cursors; clients must not parse a cursor.
GET and HEAD may use limited backoff. POST, PATCH, and DELETE are not retried by default. Replay a write only when its contract explicitly supports Idempotency-Key.