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

pub(super) fn build_periodic_producer_hypothesis() -> SmpServiceConsumerHypothesis {
    SmpServiceConsumerHypothesis {
        label: "periodic producer and queued-notice path".to_string(),
        status: "secondary_candidate_after_pending_service".to_string(),
        candidate_consumers: vec![
            "0x00422100 periodic class-0 region picker and queue seed owner".to_string(),
            "0x004337c0 queued 0x20-byte notice-node append helper".to_string(),
            "0x00438710 recurring queued-notice service owner".to_string(),
        ],
        evidence: vec![
            "atlas ties these owners to the transient kind-7 queue family rooted at [world+0x66a6]".to_string(),
            "grounded save probes now show that the ordinary-save queue family is not obviously persisted, so this looks more like runtime rebuild state than a direct save seam".to_string(),
            "direct disassembly now shows 0x00422100 itself owning the pending-amount seed: it counts eligible class-0 regions with [region+0x276]==0 and [region+0x302]==0, samples one candidate, buckets [region+0x25e] against three thresholds, writes the resulting amount to [region+0x276], and then appends the kind-7 queued notice through 0x004337c0".to_string(),
        ],
        blockers: vec![
            "transient queue is not obviously persisted in ordinary saves".to_string(),
            "needs the upstream restore seam for [region+0x25e/+0x302/+0x316] rather than more queue-side probing".to_string(),
        ],
    }
}
