# `mgf-vm-interchange` — scope policy

## §1 In scope (SP-01)
- OVA (tar) + OVF (XML) **import/export**: parse/serialize OVF descriptors, extract/package OVA,
  marshal to/from mgf-vm-core's VM domain via an injected `convert_fn` + provider Protocols.

The boundary: **safe interchange of VM images with other hypervisors, behind injected I/O seams.**

## §2 Out of scope (SP-02)
| Not here | Why | Where instead |
|---|---|---|
| Disk-format conversion (qemu-img) | caller-injected since 0.2.0 | the injected `convert_fn` |
| Live VM control / the engine | interchange, not control | `mgf-vm-core` / adapters |
| A GUI/CLI | library | the apps |
| Other formats (Vagrant, AMI) | out of charter | future adapters on demand |

## §3 Scope-creep gate (SP-03)
A PR MUST answer: (1) is it OVA/OVF marshalling (else out)? (2) does it keep all XML through defusedxml
+ all extraction through the safe-tar guard (untrusted input)? (3) consumer demand? Any "no" blocks it.

## §4 Adjacent scope (SP-04)
Adjacent: additional OVF hardware sections, a streaming/large-image extract path. Promote on demand only.

## §5 Alternatives for out-of-scope needs (SP-05)
Conversion → injected `convert_fn`; engine → `mgf-vm-core`; GUI/CLI → the apps; other formats → future adapters.

## §6 Revisiting scope (SP-06)
Revisited at every **MAJOR** boundary; re-affirms the marshalling-only / untrusted-input-safe / injected-seam invariants.


## Boundary — verified ownership (generated)

> Generated from the fleet-wide import matrix — the **verified** ownership boundary (who is the SOLE importer of each third-party dep across the whole federation). Regenerate with `fleet_ownership_audit.py --inject`; CI-gated against code drift by `--check`. **Do not hand-edit the block below.**

<!-- BEGIN BOUNDARY (generated by mgf-standard/scripts/fleet_ownership_audit.py --inject; do not hand-edit) -->
- **Owns (sole third-party importer, fleet-verified):** — (no exclusive third-party dep; domain/seam owner)
- **Shared third-party (intentional, boundary-checked):** `defusedxml` (+mgf-vm-libvirt)
- **Federation deps (imports):** `mgf.common`, `mgf.vm`
<!-- END BOUNDARY -->
