Skip to content

feat(codegen): generate minecraft datapack output - #19

Merged
ofabiodev merged 2 commits into
mainfrom
add-minecraft-datapack-codegen
Aug 10, 2026
Merged

feat(codegen): generate minecraft datapack output#19
ofabiodev merged 2 commits into
mainfrom
add-minecraft-datapack-codegen

Conversation

@ofabiodev

Copy link
Copy Markdown
Contributor

Summary

Adds deterministic Minecraft datapack generation from Puff IR.

Changes

  • Generate pack metadata, functions, load/tick tags, commands, and runtime storage.
  • Validate Minecraft versions, namespaces, resource paths, pack formats, and unsupported mappings.
  • Add transactional output writing, golden tests, determinism coverage, and diagnostic tests.

Testing

cd src
go test ./...
go vet ./...

Notes

Supports Minecraft Java 1.21 through 1.21.6. Console output remains unsupported until its runtime mapping is defined.

@ofabiodev ofabiodev added kind/feature New behavior or capability. kind/test Tests, fixtures, golden files, or test infrastructure. area/ir Intermediate representation and lowering. area/codegen Minecraft datapack generation and backend output. puff/diagnostics Error messages, hints, notes, and source spans. puff/minecraft Minecraft-specific rules, names, tags, and datapack behavior. labels Aug 10, 2026
@ofabiodev
ofabiodev merged commit 552f79d into main Aug 10, 2026
2 checks passed
@ofabiodev
ofabiodev deleted the add-minecraft-datapack-codegen branch August 10, 2026 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/codegen Minecraft datapack generation and backend output. area/ir Intermediate representation and lowering. kind/feature New behavior or capability. kind/test Tests, fixtures, golden files, or test infrastructure. puff/diagnostics Error messages, hints, notes, and source spans. puff/minecraft Minecraft-specific rules, names, tags, and datapack behavior.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant