{
  "abandoned_r20p_payload_reused": false,
  "added_files": [],
  "allocator_shared_lock_fixture_proven": true,
  "atomic_apply_fixture_proven": true,
  "authorized_keys_mutated": false,
  "bundle_revision": "R01_AFTER_R20QA",
  "classification": "implementation",
  "expected_installer_sha256": "3ae81752b28aac06b5ff075a356e0961468c846651a07bd8cf868b8aa42058eb",
  "functional_stage": "cross_machine_topology_atomic_emergency_apply",
  "live_user_move": false,
  "modified_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-egress-local.sh"
  ],
  "mutated_machines": [
    "vm100"
  ],
  "next_step": "R20Q-C_VM100_ALLOWED_SELECTOR_INTEGRATION",
  "nft_apply_during_step": false,
  "production_topology_message_delivered": false,
  "rollback_fixture_proven": true,
  "runtime_impact": false,
  "runtime_impact_detail": "control_plane_capability_and_allocator_shared_lock_guard_only",
  "selector_write_during_step": false,
  "snapshot_name": "r20qb100-pre-atomic",
  "snapshot_name_preferred_max_length": 32,
  "source_change_expected": true,
  "source_of_truth": "machine_git",
  "step_id": "STEP_050M07R20QB_VM100_ATOMIC_EMERGENCY_APPLY",
  "target_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-egress-local.sh"
  ],
  "target_package_sha256": "dc26cd977905d3a9b92384868047ca869bcb0034bc4ffef4e52185cb3b655fc9",
  "title": "VM100 atomic emergency selector apply, nft verification, ACK and rollback",
  "vm100_baseline_commit": "e2d39912564b502d74822839962bb563832cf32a",
  "vm100_baseline_file_count": 26,
  "vm100_baseline_tree": "6a7a0729799e7a5db10b003a054a2b37e1b81faf",
  "vm100_expected_file_count": 26
}
