Context
CraftDAG's current export path is Java-first and schematic-oriented:
ComponentPlan
→ CraftDAG IR
→ VoxelPlan
→ .schem exporter
→ WorldEdit / Litematica / Java server workflows
This is the right near-term path for builder/server-owner validation, but CraftDAG should not be conceptually locked to Java Edition forever. The core compiler pipeline is already structured around an intermediate VoxelPlan, which could potentially target multiple export formats.
This issue records a future technical feasibility study for Bedrock-compatible export targets.
Core question
Can CraftDAG export VoxelPlan outputs to Bedrock-compatible structure/world formats without compromising the Java-first schematic workflow?
Candidate targets
1. .mcstructure
Likely first target to investigate.
Questions:
- What is the exact format requirement?
- How should block palettes and states be encoded?
- How should unsupported Java block IDs/states be mapped or rejected?
- How should block entities be handled?
- Can this be implemented as a separate exporter package?
Possible package shape:
packages/exporter-mcstructure
2. .mcworld / .mctemplate
A heavier target that packages structures into a world/template import flow.
Questions:
- Is this a MinePilot product concern more than a CraftDAG exporter concern?
- What world metadata is required?
- How should spawn point, preview world, and placement location be defined?
- Can a build pack be generated from multiple VoxelPlans/sections?
3. Official Marketplace-ready content packages
This is likely out of scope for CraftDAG core.
Marketplace-oriented content requires packaging, QA, metadata, store assets, legal/provenance review, and platform rules. CraftDAG may provide build artifacts, but should not own the whole Marketplace pipeline.
Recommended stance
Java-first implementation, platform-neutral IR, Bedrock-aware exporter roadmap.
CraftDAG should:
- keep
VoxelPlan exporter-neutral where practical;
- avoid baking Java-only assumptions into ComponentPlan semantics where not required;
- support Java
.schem as the primary production exporter for now;
- evaluate Bedrock export as a separate future package;
- avoid promising Bedrock parity before format/block-state compatibility is understood.
Technical risks
- Java and Bedrock block IDs/state models may differ.
- Some blocks may not map cleanly.
- Block entities/NBT/inventory data may differ significantly.
- Redstone behavior and orientation may not be equivalent.
- Version compatibility may require explicit target metadata.
- Existing material palettes may need edition-specific mappings.
- Test fixtures may require Bedrock-specific round-trip validation.
Proposed feasibility milestones
Stage 0: Research note
Create a short technical note covering:
.mcstructure format basics;
- palette/state mapping approach;
- known unsupported block/state categories;
- block entity limitations;
- test strategy;
- relationship to current
.schem exporter.
Stage 1: Minimal prototype
Export a small VoxelPlan containing only simple solid blocks to .mcstructure.
Candidate fixture:
small platform + room shell, no block entities, no redstone
Stage 2: Compatibility metadata
Add exporter warnings or metadata for:
- unsupported blocks;
- lossy block-state mapping;
- Java-only assumptions;
- Bedrock target version if needed.
Stage 3: Product handoff
Coordinate with MinePilot if a Bedrock export button, import guide, or world-template packaging becomes product-relevant.
Non-goals
- Do not replace the Java
.schem exporter.
- Do not promise Bedrock parity.
- Do not implement Marketplace-ready packaging in CraftDAG core.
- Do not support arbitrary Bedrock add-on behavior here.
- Do not block current ComponentPlan/Java exporter work on this issue.
- Do not make ComponentPlan Bedrock-specific.
Acceptance criteria for future evaluation
When this becomes active:
- A technical note describes
.mcstructure feasibility and risks.
- A decision is made whether to prototype
packages/exporter-mcstructure.
- Block mapping strategy is defined explicitly.
- Unsupported/lossy behavior is surfaced as diagnostics or exporter warnings.
- A minimal fixture proves whether simple VoxelPlan export is practical.
- MinePilot has a corresponding product issue for Bedrock import/Marketplace route.
Related
- MinePilot Bedrock / official Marketplace product route issue.
- Current Java
.schem exporter work.
- Future redstone/block-entity support issues.
Context
CraftDAG's current export path is Java-first and schematic-oriented:
This is the right near-term path for builder/server-owner validation, but CraftDAG should not be conceptually locked to Java Edition forever. The core compiler pipeline is already structured around an intermediate
VoxelPlan, which could potentially target multiple export formats.This issue records a future technical feasibility study for Bedrock-compatible export targets.
Core question
Candidate targets
1.
.mcstructureLikely first target to investigate.
Questions:
Possible package shape:
2.
.mcworld/.mctemplateA heavier target that packages structures into a world/template import flow.
Questions:
3. Official Marketplace-ready content packages
This is likely out of scope for CraftDAG core.
Marketplace-oriented content requires packaging, QA, metadata, store assets, legal/provenance review, and platform rules. CraftDAG may provide build artifacts, but should not own the whole Marketplace pipeline.
Recommended stance
CraftDAG should:
VoxelPlanexporter-neutral where practical;.schemas the primary production exporter for now;Technical risks
Proposed feasibility milestones
Stage 0: Research note
Create a short technical note covering:
.mcstructureformat basics;.schemexporter.Stage 1: Minimal prototype
Export a small VoxelPlan containing only simple solid blocks to
.mcstructure.Candidate fixture:
Stage 2: Compatibility metadata
Add exporter warnings or metadata for:
Stage 3: Product handoff
Coordinate with MinePilot if a Bedrock export button, import guide, or world-template packaging becomes product-relevant.
Non-goals
.schemexporter.Acceptance criteria for future evaluation
When this becomes active:
.mcstructurefeasibility and risks.packages/exporter-mcstructure.Related
.schemexporter work.