refactor(container)!: upload only through a presigned PUT master
The fallback that PUT an artifact to headquarters' own API and let it re-send the bytes is gone. It read whole artifacts into memory on a t4g.nano that also carries the API and Caddy, and a match's screenshots, summary GIF, profiles and logs all land within seconds of each other. Signed uploads are verified working, every consumer is ours, and as a fallback the slow route could come back without anyone noticing. A minting failure now fails the upload: the file stays in the container and the warning names the key. That can lose an artifact, including result.json, which is the deliberate trade for not having a silent slow path. upload_target becomes signing_endpoint, since url/urlTemplate have no reader left here. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>