What a host gets by moving up from 0.7:
- `WarpEngine::Platform` — the platform registry. `PlatformLink::SUPPORTED_PLATFORMS`
keeps working as an alias.
- `WarpEngine::ApiErrorRendering` — the engine's JSON error bodies, includable
by the host's own API controllers.
- `WarpEngine::Storage.mime_for` and `ReleaseAsset.for_relative_path`.
- `c.site_url` — where the catalog's public site lives, for the admin's link to
a title's page. nil by default, and the link is simply left out.
- `Software` now validates `platform` and `status` against their value sets. A
host writing a status outside development/demo/released/archived with
`update!` will start hearing about it — which is the point — and one writing
it with `update_columns` still will not.
- Ordering left `PlatformLink`'s and `SoftwareImage`'s `default_scope` for an
`ordered` scope. The API's output order is unchanged; code that relied on the
implicit order of a bare `PlatformLink.all` has to ask for it.
- The generated `Image` model writes its file `after_commit` instead of
`before_save`, and gained `#url`.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>