use crate::inspect::smp::services::*;

pub(super) fn build_serializer_load_companion_hypothesis(
    side_buffer_present: bool,
) -> SmpServiceConsumerHypothesis {
    SmpServiceConsumerHypothesis {
        label: "infrastructure serializer/load companion path".to_string(),
        status: if side_buffer_present {
            "strong_static_mapping_candidate".to_string()
        } else {
            "possible_consumer_family".to_string()
        },
        candidate_consumers: vec![
            "0x004559d0 infrastructure tagged string-triplet serializer".to_string(),
            "0x00455870 infrastructure tagged string-triplet load companion".to_string(),
            "0x00455930 infrastructure scalar-triplet serializer sibling".to_string(),
        ],
        evidence: vec![
            "atlas already bounds the serializer/load strip around the Infrastructure owner and the same 0x55f1/0x55f2/0x55f3 tag family".to_string(),
            "local .rdata at 0x005cfd00 now proves the infrastructure child vtable points straight at 0x455fc0/0x4559d0/0x455870/0x455930 for the load, tagged serializer, triplet-restore, and scalar serializer slots".to_string(),
            "the save-side side-buffer carries embedded dual-name rows plus compact prefixes, which is compatible with a serializer-side bridge".to_string(),
        ],
        blockers: vec![
            "which exact 0x38a5 rows belong to shared 0x55f1/0x55f2/0x55f3 child records versus outer collection metadata, now that the concrete write-side slot +0x44 serializer is grounded as 0x004559d0".to_string(),
        ],
    }
}
