{
  "schema": "router-step-release-v1",
  "step_id": "STEP_050M07R20QV_R02_VM100_WG_REMOTE_DEFAULT_CS4",
  "revision": "R02",
  "workflow_contract_version": 2,
  "canonical_zip_required": true,
  "classification": "implementation",
  "functional_stage": "vm100_wg_remote_default_selector",
  "runtime_impact": true,
  "worker_entry": "scripts/run-step.sh",
  "exact_worker_fixture": "tests/exact-worker.sh",
  "target_package_path": "payload/vm100-wg-remote-default-cs4-r02-target-package.tar.gz",
  "target_package_sha256": "2ee8d5e4bf8a6c0f72d54af4c14c0e20bb85f030cad44a4d31ec5155a4e0ff12",
  "expected_installer_sha256": "2ef705f3b2acf12bf43a2e87dc0a1ff6e15a87dc22f5e19d3910e1eba38768ed",
  "mandatory_fixture_count": 5,
  "target_environment_matrix": "reference/target-environment.tsv",
  "path_ownership_manifest": "reference/path-ownership.tsv",
  "source_of_truth": "machine_git",
  "vm100_baseline_commit": "2973959bbb942b23cf7fe3d68474111aa063d4f2",
  "vm100_baseline_file_count": 29,
  "core_change_point": "target file installed, fw4 check passed, firewall reloaded, exact runtime chain verified",
  "snapshot_required": false,
  "snapshot_reason": "single-file transactional change with pre-core file rollback",
  "vm101_mutation": false,
  "vm121_mutation": false,
  "per_peer_selector": false,
  "default_selector": "cs4",
  "target_interface": "wg_remote",
  "vm100_baseline_policy": "require clean live Machine Git and exact canonical selector; do not pin simulated tree across topology transitions",
  "vm100_selector_sha256": "46d41783effb8d80ea1b09895f829b98a0946e0edbff1e29e7651eb3ef9b036a",
  "source_precheck_policy": "only etc/nftables.d/91-wg-remote-default-selector.nft may be staged after core",
  "previous_revision": "R01",
  "previous_revision_result": "STOP_PRE_CORE_TRANSIENT_MACHINE_GIT_SELECTOR_BASELINE"
}
