use crate::inspect::smp::services::SmpServiceConsumerHypothesis;

pub(super) fn build_later_global_restore_hypothesis() -> SmpServiceConsumerHypothesis {
    SmpServiceConsumerHypothesis {
        label: "later global restore continuation".to_string(),
        status: "next_global_restore_handoff_target".to_string(),
        candidate_consumers: vec![
            "0x00444887 broader restore continuation after region refresh".to_string(),
            "0x00487c20 territory_collection_refresh_records_from_tagged_bundle".to_string(),
            "0x0040b5d0 support_collection_refresh_records_from_tagged_bundle".to_string(),
            "0x00444b90 later per-region restore follow-on loop".to_string(),
            "0x00420560 region profile-derived scalar refresh helper".to_string(),
        ],
        evidence: vec![
            "the checked-in region trace already grounds 0x00444887 as the first caller-side checkpoint above 0x00421510: it refreshes the region collection and then immediately advances into the territory and support collection refresh owners".to_string(),
            "the neighboring atlas-backed restore symmetry already rules the territory side down somewhat too: 0x00487c20 only restores the live territory collection metadata/id family and its current per-entry slots 0x00487670/0x00487680 are still no-op load/save callbacks, so the territory leg now looks less likely than support or a later region-local rebuild to hide [region+0x2a4] or [region+0x310/+0x338/+0x360]".to_string(),
            "the atlas-backed support seam is broader than a direct region payload owner too: 0x0040b5d0 sits over collection 0x0062b244, whose grounded live owners maintain goose-entry counters and neighboring world support lanes [world+0x4c9a/+0x4c9e/+0x4ca6/+0x4caa] plus selected support-entry state rather than an obvious per-region acquisition latch family".to_string(),
            "the same grounded evidence already narrows the later per-region follow-on too: 0x00444b90 dispatches 0x00420560 over each live region after the broader restore continuation has already advanced".to_string(),
            "direct disassembly already rules that per-region follow-on down as a latch owner: 0x00420560 only zeroes and recomputes [region+0x312] from the embedded profile collection [region+0x37f]/[region+0x383], revisits the linked placed-structure chain for class-mix terms, and lazily seeds the year-driven [region+0x317/+0x31b] band through 0x00420350, not [region+0x276/+0x302/+0x316]".to_string(),
            "that leaves the broader 0x00444887 continuation as the next structured restore seam above the ruled-down 0x00421510 -> 0x0041f5c0 -> 0x00455fc0 path when chasing acquisition-side lanes [region+0x2a4] and [region+0x310/+0x338/+0x360]".to_string(),
        ],
        blockers: vec![
            "the concrete later-global restore owner that rehydrates [region+0x2a4] and [region+0x310/+0x338/+0x360] is still not grounded below the 0x00444887 continuation".to_string(),
            "the later region-local rebuild now looks stronger than territory refresh 0x00487c20 or the broader support seam 0x0040b5d0, but the exact restore owner below the 0x00444887 continuation is still not grounded".to_string(),
        ],
    }
}
