Skip to content

Zentral Systems

Shared infrastructure consumed by multiple systems within the plant_design module. A system qualifies as "zentral" when two or more sibling systems depend on it.

Systems

library_system

Core data layer and browser UI for the template library. Provides LibraryController for CRUD operations, ContainerSerializer for msgpack persistence, and R2MasterLibraryManager for cloud sync. The LibraryBrowserWidget (under widgets/) is the canonical browser UI used by both startup and runtime.

planning_system

Core data layer and browser UI for project planning. Uses a flat dict with O(1) item access and QAbstractItemModel for tree display. The PlanningBrowserWidget provides the canonical project tree browser.

schema_system

Single source of truth for schema version constants and migration logic. Centralizes version numbers to prevent drift between library and planning serializers. Provides LibrarySchemaValidator and ProjectSchemaValidator for forward-compatible upgrades.

version_control_system

Two-layer version control: - Session layer: In-memory undo/redo journal with auto-persist (~25s) - Commit layer: Git-like versioning with backward deltas, checkpoints, and milestones

view_mode_utility

Shared enums (LibraryViewMode, PlanningViewMode) that control widget behavior per context (e.g. STANDARD, READONLY, DRAG_ONLY).

Dependency Rules

  • schema_system has zero dependencies on siblings (foundation layer)
  • Other zentral systems may import from schema_system
  • Zentral systems must never import from startup_system or runtime stages
  • See system_grouping_guide.md for the full dependency matrix