🔖 Metadata#
To support automation by tools like the Bookshelf Manager, modules must declare specific metadata. All metadata are verified during the CI/CD process (see the contribution validation page).
⭐ Feature Metadata#
Feature metadata are defined directly within each .json file, as shown below:
{
"__bookshelf__": {
"feature": true,
"deprecated": false,
"documentation": "<DOCUMENTATION>",
"authors": [
"<AUTHOR1>"
],
"contributors": [
"<CONTRIBUTOR1>"
],
"created": {
"date": "<YYYY/MM/DD>",
"minecraft_version": "<VERSION>"
},
"updated": {
"date": "<YYYY/MM/DD>",
"minecraft_version": "<VERSION>"
}
},
...
}
Field |
Description |
Mandatory |
|---|---|---|
feature |
Indicates whether the file is the endpoint of a feature |
yes |
deprecated |
Indicates whether the feature has been deprecated |
no |
documentation |
A link to the feature’s documentation |
yes |
authors |
A list of feature authors. Cannot be empty |
yes |
contributors |
A list of contributors (e.g., those who provided insights, fixes, or indirect help) |
no |
created |
The creation date and Minecraft version for historical purposes |
yes |
updated |
The date and Minecraft version of the most recent update |
yes |
🧩 Module Metadata#
Module metadata are defined in modules/<module>/module.json. Below is an example:
{
...
"meta": {
"name": "<NAME>",
"slug": "<SLUG>",
"description": "<DESCRIPTION>",
"documentation": "<DOCUMENTATION>",
"tags": [
"<TAG1>"
],
"authors": [
"<AUTHOR1>"
],
"contributors": [
"<CONTRIBUTOR1>"
],
"dependencies": [
"<MODULE1>"
],
"weak_dependencies": [
"<MODULE1>"
]
}
}
Field |
Description |
Mandatory |
|---|---|---|
name |
The module’s display name (e.g., |
yes |
slug |
The module’s slug used to publish to platforms (e.g., |
yes |
description |
A description of the module’s purpose |
yes |
documentation |
A link to the module’s documentation |
yes |
tags |
A list of tags for categorizing or identifying modules. Tags are also used to generate bundles (e.g., |
no (but trigger warnings) |
authors |
A list of module authors (supplements authors from features). Cannot be empty |
no |
contributors |
A list of contributors (supplements contributors from features) |
no |
dependencies |
Essential modules required for this module to function (e.g., |
no |
weak dependencies |
Optional modules that enhance functionality but are not essential (e.g., |
no |
📜 Manifest#
The manifest consolidates metadata for all modules and features in Bookshelf. It is automatically generated and can be updated using the following command:
uv run update
The generated file is located at meta/manifest.json.