This file describes how Pibrary should stay organized during the split from the old monolith to the new repo family.
These responsibilities stay in Pibrary:
- shared core contracts;
- service location and public base abstractions;
- common config, diagnostics, registry, state, and targeting boundaries;
- entity lifecycle, projectile tracing, and JEI-neutral recipe-viewer contracts for the optional compat layer;
- migration-safe root mod bootstrap.
These stay outside Pibrary even if Pibrary depends on their concepts:
PiNetPiSerializeKitPiKubeJSCompatPiJEICompatPiDataGraph
They are independent because they are broadly reusable and should not require the whole Pibrary stack.
These belong to engine families, not the root core repo:
- camera systems;
- UI / HUD / animated screen systems;
- story / dialogue / mission systems;
- animation and render bridge systems;
- entity FX and data-graph gameplay engines.
The legacy monolith is preserved under:
restore/legacy-monolith-20260331
The active rule is:
- keep it available for migration;
- do not treat it as the target architecture;
- extract reusable parts into stable APIs before moving implementations into independent repos.
- move object-counter and graph gameplay logic into
PiDataGraph, not back intoPibrary.