A Minecraft datapack generator written in go.
1# Weave – where datapacks come together.
2
3> [!NOTE]
4> Weave is under active development.
5>
6> The API is evolving, but the core architecture is stable.
7
8## What is weave?
9
10**Weave** is a Go library that lets you build Minecraft datapacks in code, instead of writing JSON and .mcfunction files by hand.
11
12You describe *what* you want (functions, advancements, loot tables, etc.), and **weave takes care of generating the correct file structure and JSON output for Minecraft**.
13
14Weave is designed to be:
15- Modular: each feature lives in its own package
16- Composable: datapacks can be built across multiple files
17- Immutable: all operations return new values, no hidden mutation
18- Simple: no registries, no global state, no magic
19- Extensible: adding a feature does not require modifying core code
20
21## Core idea
22
23At its core, weave is a transformation pipeline:
24
25```
26User code
27 ↓
28Weaver (collects features)
29 ↓
30Emitters (one per feature type)
31 ↓
32File Data (paths + content)
33 ↓
34Disk (Minecraft datapack)
35```
36
37The user only interacts with **DataPack** and **feature constructors**.
38
39## Using Weave
40
41`todo`
42
43## Licensing
44
45Weave is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
46
47Each files is using this license if not said otherwise at the top of the file.