Plugin architecture map
The long-term direction is a small domain-neutral core with official plugins for domain-specific readers, processing conventions, simulations, and optional numeric backends.
Completed decoupling
NMR unit contexts live in the NMR plugin.
Hypercomplex/quaternion support lives in
spectrochempy-hypercomplex.2D NMR FFT encodings are delegated through
fft.encoding.Directory-to-file resolution for plugin formats is delegated through
importer.resolve_directory_target.Extensionless filetype inference is delegated through
importer.infer_filetype_key.Remote parent-directory download rules are delegated through
importer.remote_download_target.
Remaining boundaries
processing/fft/phasing.py still contains NMR metadata conventions around
phc0, phc1, pivot and exptc. The numerical phase kernel is
generic, but the public metadata update behavior should move only when the NMR
plugin provides replacement pk and pk_exp accessors.
processing/fft/shift.py is retained in core because its implementation is
generic signal processing. NMR-specific aliases or defaults can be added in the
NMR plugin if needed.
Documentation direction
User documentation should describe installation, workflows, examples, and official plugin behavior. Developer documentation should describe hooks, registries, handlers, accessors, tests, packaging, and migration plans.