Register Reporter
The single front door for reporter identities, in both hosting modes.
Idempotent upsert keyed on (owner, name): a new name creates the permanent identity, records the declared outputs contract, and issues the reporter key (shown once — only its hash is stored; recover a lost key with POST /reporters//key/rotate, there is no re-fetch). An existing name updates the title/description/outputs contract in place and returns the identity with no new key — this is also how you edit a reporter’s metadata (rename it, rewrite its description) without touching its code, and how re-uploading a coworld propagates manifest metadata edits without churning the key.
Guardrail against contract drift: for a hosted reporter (one that already
has an uploaded version), the outputs contract is pinned to what the latest
version actually declares — the incoming outputs are ignored if they
disagree. The external-submission door validates against this contract, so
letting it drift from the deployed wasm would silently break submissions.
Authorizations
Bearer token issued by Softmax

