{
  "abandoned_r20p_payload_reused": false,
  "added_files": [
    "/etc/router-wgpay-slot-topology.conf",
    "/usr/local/lib/router-wgpay-slot-topology-lib.sh",
    "/usr/local/sbin/router-wgpay-slot-topology-apply.sh",
    "/usr/local/sbin/router-wgpay-slot-topology-forced-command.sh"
  ],
  "authorized_keys_mutated": false,
  "bundle_revision": "R01_FRESH_AFTER_PREP",
  "classification": "implementation",
  "expected_installer_sha256": "0184a4449fa4162bc4ffbb8f69f51b12dd61676739dbf3f98785285eb087b418",
  "functional_stage": "cross_machine_topology_receiver_foundation",
  "live_user_move": false,
  "modified_files": [
    "/etc/router-machine-git-source.conf"
  ],
  "mutated_machines": [
    "vm100"
  ],
  "next_step": "R20Q-B VM100 atomic emergency selector apply and allocator integration",
  "nft_apply": false,
  "runtime_impact": false,
  "selector_write": false,
  "snapshot_name": "r20qa100-pre-topology",
  "snapshot_name_preferred_max_length": 32,
  "source_change_expected": true,
  "source_of_truth": "machine_git",
  "step_id": "STEP_050M07R20QA_VM100_TOPOLOGY_RECEIVER_FOUNDATION",
  "target_files": [
    "/etc/router-machine-git-source.conf",
    "/etc/router-wgpay-slot-topology.conf",
    "/usr/local/lib/router-wgpay-slot-topology-lib.sh",
    "/usr/local/sbin/router-wgpay-slot-topology-apply.sh",
    "/usr/local/sbin/router-wgpay-slot-topology-forced-command.sh"
  ],
  "target_package_sha256": "2ad591e4f631248b8cfff13b3269f186f671f5fa546edffc36bb910606ff54ae",
  "title": "VM100 topology receiver foundation: strict parser, monotonic generation state and dry-run planner",
  "vm100_baseline_commit": "1958200ccc1bdb11f588d7c36ae6b5c12e84040d",
  "vm100_baseline_file_count": 22,
  "vm100_baseline_tree": "2083d05bce645135c4735346a78922771de7f433",
  "vm100_expected_file_count": 26,
  "vm101_sender_installed": false
}
