{
  "abandoned_r20p_payload_reused": false,
  "added_files": [],
  "allowed_selector_integration_fixture_proven": true,
  "authorized_keys_mutated": false,
  "bundle_revision": "R01_AFTER_R20QB",
  "classification": "implementation",
  "exhausted_selector_reconciliation_fixture_proven": true,
  "expected_installer_sha256": "1e590aec308e724f1167839d844ab1e8b9d45f2eeaaa5b9c369b69d0632bc087",
  "functional_stage": "vm100_allowed_exhausted_selector_integration",
  "live_user_move": false,
  "modified_files": [
    "/usr/local/sbin/router-wgpay-egress-local.sh",
    "/usr/local/sbin/router-wgpay-egress-local-loop.sh",
    "/etc/router-wgpay-egress-local.conf"
  ],
  "mutated_machines": [
    "vm100"
  ],
  "next_step": "R20Q-D_VM101_ALWAYS_ON_FALLBACK_MAPPER",
  "nft_apply_during_step": "conditional_normalization",
  "nft_runtime_mismatch_observed_before_step": true,
  "production_topology_message_delivered": false,
  "recovery_gradual_rebalance_fixture_proven": true,
  "rollback_fixture_proven": true,
  "runtime_impact": "conditional",
  "runtime_impact_detail": "allocator_policy_hardening_and_conditional_authoritative_selector_nft_normalization",
  "selector_write_during_step": false,
  "snapshot_name": "r20qc100-pre-allowed",
  "snapshot_name_preferred_max_length": 32,
  "source_change_expected": true,
  "source_of_truth": "machine_git",
  "step_id": "STEP_050M07R20QC_VM100_ALLOWED_SELECTOR_INTEGRATION",
  "target_files": [
    "/usr/local/sbin/router-wgpay-egress-local.sh",
    "/usr/local/sbin/router-wgpay-egress-local-loop.sh",
    "/etc/router-wgpay-egress-local.conf"
  ],
  "target_package_sha256": "04e93f483db6c99453056e650d600cc243f278b32543401419d7c6438b03f70f",
  "title": "VM100 durable allowed/exhausted selector integration and runtime nft reconciliation",
  "vm100_baseline_commit": "47adc1bfd562d68cf5cec6ee8e042712afb10bf6",
  "vm100_baseline_file_count": 26,
  "vm100_baseline_tree": "2b0377d3aa9be7a1cf290027565ccf5dba8a89b0",
  "vm100_expected_file_count": 26
}
