{
  "canonical_zip_required": true,
  "classification": "functional_change",
  "database_schema_changed": false,
  "exact_worker_fixture": "tests/exact-worker.sh",
  "expected_installer_sha256": "ce92f47aa8912778d6616b3c5fade77ee3753501e99ea8f6061d11e20260d289",
  "functional_stage": "vm121_agent_vm100_lifecycle_cutover",
  "legacy_direct_wg_writes_removed": true,
  "long_recovery_test_repeated": false,
  "mandatory_fixture_count": 5,
  "next_action": "P1.4 restart/reconcile proof",
  "path_ownership_manifest": "reference/path-ownership.tsv",
  "reboot_required": false,
  "revision": "R01",
  "runtime_impact": true,
  "schema": "router-step-release-v1",
  "selector_owner": "VM100",
  "snapshot_required": false,
  "source_of_truth": "machine_git",
  "step_id": "STEP_050M07R20QZ_R01_VM121_AGENT_VM100_LIFECYCLE_CUTOVER",
  "target_environment_matrix": "reference/target-environment.tsv",
  "target_package_path": "payload/p1_3-target-package.tar.gz",
  "target_package_sha256": "5e34fecbd2adfbc7634ec9700f265163a6b988f20e34e3bb738ed6baf68944c5",
  "vm100_base_commit": "bc1ca33b10ae2a2977f984fddf9f6dc75ca2b559",
  "vm100_base_tree": "aea04fbe9c40af01a638c7a2b12a841ce6fd5d0b",
  "vm100_expected_file_count_before": 33,
  "vm101_changed": false,
  "vm121_base_commit": "93e0e5a31f0900a498b77d22e6a7f2ca5fd7fee0",
  "vm121_base_tree": "b6fb72951eedc96decf445b71e7d9d6e77ec5ee3",
  "vm121_expected_file_count_before": 41,
  "vm121_selector_fields_sent": false,
  "vm121_target_note": "VM121 is contacted directly by VM130; legacy workflow_contract_v2 target-environment/path-ownership schemas cannot encode VM121 owner rows.",
  "worker_entry": "scripts/run-step.sh",
  "workflow_contract_version": 2
}
