Get a ticket to upload ONE image into this world, for an element's
`image_url` (Keel #59). The image never passes through this tool: you send
its bytes yourself, straight to the image host, with the ticket.
Steps:
1. Call this tool. You get `ticket`, `upload_url`, `max_bytes` and `exp`.
2. Upload the image yourself:
`curl -X POST <upload_url> -H "Authorization: Bearer <ticket>"
--data-binary @picture.webp`
(raw bytes as the body; webp, png, jpeg or avif, no SVG; at most
`max_bytes`; before `exp`). The host answers 201 with `{url, key, bytes,
type, etag}`.
3. Set the element's picture: `update_element(type, id, {"image_url": <url>})`.
One ticket, one upload: a second upload with the same ticket is refused
(401 ticket_used); call this tool again for the next image. Each ticket
counts toward the world's daily limit, and each upload toward its account's
image storage (1 GB by default; `max_bytes` shrinks to what is left, and a
full account is refused). Requires a WRITE API-Key and its PIN.