"""mgf.vm.core.creator — pure creation-time VM spec, validation, loading.

This subpackage holds the engine-neutral creation layer:

* :mod:`mgf.vm.core.creator.spec` — the canonical :class:`VMSpec`
  creation-time dataclass plus its sub-types and YAML/JSON
  (de)serialisation.
* :mod:`mgf.vm.core.creator.validator` — the single validation gate
  (:func:`validate`) every creation path routes through.
* :mod:`mgf.vm.core.creator.unattended` — the file-based spec loader
  (:func:`load_and_validate`, :func:`load`, :func:`lint`).

The ``builder`` (engine argv assembly, ``run_command`` provisioning) is
adapter-bound and intentionally NOT part of pure core; it stays in the
engine adapter.
"""

from __future__ import annotations

from mgf.vm.core.creator.spec import (
    CURRENT_SPEC_VERSION,
    ExtraDiskSpec,
    NICSpec,
    ProvisioningSpec,
    SourceSpec,
    VMSpec,
)
from mgf.vm.core.creator.unattended import lint, load, load_and_validate
from mgf.vm.core.creator.validator import validate

__all__ = [
    "CURRENT_SPEC_VERSION",
    "ExtraDiskSpec",
    "NICSpec",
    "ProvisioningSpec",
    "SourceSpec",
    "VMSpec",
    "lint",
    "load",
    "load_and_validate",
    "validate",
]
