A few more optional field suggestions for the [dot-nimble format](https://github.com/nim-lang/nimble#nimble-reference):
**Author Info:** * `author_url` \- one or more URLs about the author (since not everybody uses github). * `author_forum` \- the author's verified handle on this forum. This can be the first step to adding features where authors can manage their nimble packages via this site. * `author_donate` \- info on sending the module author a cryptocurrency tip. 😃 **Fetching The Source:** * `dl_urls` \- Where the source code for this version can be downloaded in [txz](https://en.wikipedia.org/wiki/Tar_%28computing%29#Suffixes_for_compressed_files) format (faster and lighter than git). Can be a list of mirrors. * `dl_ipfs` \- the [IPFS](https://en.wikipedia.org/wiki/InterPlanetary_File_System) address / [multihash](https://github.com/multiformats/multihash) checksum of the txz archive. If `dl_urls` is omitted then it can be deducted from this via the IPFS gateways. If ipfs binary is installed, then it can be used to fetch the package (possibly from local cache). * `dl_bytes` \- expected txz archive size in bytes. **Pre-Installation Requirements:** * `req_os` [(recently mentioned here)](https://www.reddit.com/r/nim/comments/czx51g/xors3d_game_engine_for_nim_wrapper/ezaek28/) \- case-insensitive comma separated list of supported [Distribution](https://nim-lang.org/docs/distros.html#Distribution) strings. It would also be useful to write like "!windows, !haiku" when you just know where it _doesn 't_ work. Bonus points if you can specify >= version number for [Windows](https://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions), [MacOS](https://en.wikipedia.org/wiki/MacOS_version_history) [Android](https://en.wikipedia.org/wiki/Android_version_history), Linux kernel, etc. * `req_cpu` \- comma-sep list of supported [hostCPU](https://github.com/nim-lang/Nim/blob/master/lib/system.nim#L1440) architectures. * `req_pkg` \- comma-sep list of packages that need to be installed. This can be normalized between distros via something like [pkgs.org](https://pkgs.org/download/libpq). * `req_bin` \- external tools that must be available and executable on the system for the package installation to succeed. * `req_compiler` \- to show this only works (or is known not to work) with specific backends (`gcc`, `clang`, `icc`, `pcc`, `emcc`, `node`, etc). Again, bonus points for >= version number. **Other:** * `license` \- as [previously suggested](https://forum.nim-lang.org/t/4703#29372), I think the license string should be checked to be a valid [SPDX](https://spdx.org/licenses/) identifier, or a string of several identifiers joined with either `||` or `&&`. See also: [Rust's cargo manifest format](https://doc.rust-lang.org/cargo/reference/manifest.html).
