// Package backup is the guest-level backup + self-restore-test layer (doc 03 §8, slice 6
// Phase A). It orchestrates a crash-consistent vzdump to a LOCAL target, resolves the
// produced archive, and drives the self-restore-test (restore → boot → verify → teardown)
// through the reconcile engine so it inherits the journal / per-guest serialization /
// crash-safe recovery.
//
// Everything here is BENIGN (backup, restore-to-NEW, scratch teardown): it reuses the
// slice-4 classifier/gate/journal via reconcile — no new destructive class, no new crypto.
// Restore is to a NEW guest only (no overwrite this slice). PBS / offsite / zero-knowledge
// is Phase B.
//
// Layout:
//   - runner.go   — BackupRunner: vzdump + archive-volid/size resolve + the bulk-volume gap;
//     restore-candidate picker.
//   - store.go    — in-memory latest-backup-per-target + latest-restore-test, implementing
//     the hub BackupReporter / RestoreTestReporter seams (point-in-time state
//     the collector reads; re-populated each cadence/selftest run).
//   - schedule.go — the restore-test cadence goroutine (default 24h; disabled when 0).
//
// hub does NOT import this package (the report types live in hub; this package imports hub
// for them, mirroring the slice-5 storage seam). This package may import reconcile + hub +
// proxmox (acyclic).
package backup
