-
Notifications
You must be signed in to change notification settings - Fork 0
Developer Guide
Liparakis edited this page Jul 12, 2026
·
5 revisions
-
common/: shared model, codecs, compression, debug model, and adapter SPI -
storage/: storage engine, region files, mapping persistence, and inspection helpers -
migration/: CIS version graph and storage-backed rewrite logic -
fabric/: entrypoint, mixins, runtime tracking, restore, commands, vanilla client delivery, and offline migration
./gradlew build
./gradlew test
./gradlew runGameTestfabric/src/main/java/io/liparakis/chunkis/mixin/storage/ThreadedAnvilChunkStorageMixin.javafabric/src/main/java/io/liparakis/chunkis/mixin/storage/ChunkSerializerMixin.javafabric/src/main/java/io/liparakis/chunkis/world/restoration/core/ChunkRestorer.javafabric/src/main/java/io/liparakis/chunkis/world/tracking/state/GlobalChunkTracker.javastorage/src/main/java/io/liparakis/chunkis/storage/io/CisStorage.javastorage/src/main/java/io/liparakis/chunkis/storage/io/region/RegionFile.javamigration/src/main/java/io/liparakis/chunkis/migrator/CisStorageMigrator.java
- Persistence format and codec changes belong in
commonandstorage, not Fabric mixins. - Fabric mixins and world lifecycle behavior belong in
fabric. - CIS version changes should update migration support when old data must still load.
- Do not re-enable vanilla writes as an undocumented fallback.
- When persistence semantics change, update the matching Wiki pages.
- The save path is snapshot-based, not merely sparse-delta persistence.
- Ownership and restore suppression are correctness requirements.
- Normal runtime load expects current CIS semantics; old formats require migration support.
- Unit tests exist across all four modules.
- Fabric game tests cover reload, migration, metadata extraction, and asynchronous-save loss cases.