nip96 at start of PR dicussions had fixed routes with no nip96 config, just like blossom, but stakeholders wanted to specify custom api url to serve files from a different infra. download_url is optionally for using CDNs. Other keys are all optional. Also nip96 servers, specially free ones, may want to compress images/videos. That's why the file identifier is the file hash before compression. When using blossom, the client is supposed to compress before uploading.