Schema v2
Things to discuss:
- Localizable mod descriptions
- Links to mod dependencies. (Ideally I'd love a full metadata for them but that's too crazy to ask lol. A link to their page for the Suggestions and Recommendations seems good though)
Dependencies could use a "get dependency X from website Y" entry so people know where to get what's missing. This may be a security issue though with people posting a "harmless" mod to curseforge and including a "dangerous" link, thus getting users to download stuff they shouldn't.
Also, a "If optional dependency U is installed, the mod will do V" description might be helpful.
From me: No to links, yes to descriptive dependencies.
For translatable mod description - it may out of fabric-loader's scope - nonetheless we can just define a key reserved for mod description. Something like mod.[modid].description. And everyone will use it.
The problem of this approach is that it is a bit hard to enforce.
From https://github.com/FabricMC/fabric-loader/pull/122 and https://github.com/FabricMC/fabric/pull/235 the following properties seem useful:
- "parent", if present, refers to the mod id acting as the main mod for the current mod (modules, addons) for nested displaying
- "hidden", if present and true, hides the mod from mod counts or mod lists as desired by the specific displaying implementation
- "remoteRequired", boolean or version predicate string declaring whether the same mod id needs to be present on the other side of a client<->server connection and for strings also the required mod version. The validation needs to be implemented elsewhere, such as fabric-api, and is not necessarily exhaustive
While the features are inspired by Mod Menu's use cases, they are valuable for producing readable enhanced crash reports, automatically stripping client/server side mod pack archives, organizing UIs, bisecting and more
On further thought remoteRequired should probably have true mean exact version match (common case, use wildcard string for any) or no boolean at all (requires specifying the version twice though)
it would be nice to have a role string for authors. something like
{
"name": "JoeZwet",
"role": "Developer",
"contact": { ... }
}
Dependencies should specify a display name so users know what mod they need to download.