Design Principles
- Poll first. Every capability is reachable via plain GET polling. The SSE stream is a live enhancement, never the source of truth.
- Everything is resumable. Submission is idempotent, and job state and outputs are retrievable by ID until
expires_at. - Content-addressed assets. Assets are UUID-identified records over blobs keyed by a server-computed blake3 hash, so identical inputs are not uploaded twice.
- Follow links, do not build URLs. Responses embed their follow-up URLs.