@startuml

map "src/sbom/compiler-gcc.json" as gcc {
    software-name => GCC
    version => x.y.z
    ... => ...
}
map "src/sbom/intel-me.json" as me {
    software-name => Intel Mangement Engine
    ... => ...
}
map "src/sbom/intel-microcode.json" as ucode {
    software-name => Intel Microcode
    ... => ...
}
map "src/sbom/generic-ec.json" as ec {
    software-name => ecxyz
    ... => ...
}
map "src/sbom/generic-fsp.json" as fsp {
    software-name => Firmware Support Package
    version => x.y.z
    ... => ...
}
map "src/sbom/payload-[...].json" as payload {
    software-name => ...
    version => x.y.z
    ... => ...
}
map "src/sbom/coreboot.json" as coreboot {
    software-name => coreboot
    version => x.y.z
    url => coreboot.rocks
    ... => ...
}
object "sbom.uswid" as uswid {
    merged SBOM data in binary format
}
object goswid {
    # ./goswid
        --compiler gcc.json
        --parent coreboot.json
        --requires fsp.json,payload.json
        intel-me.json
        intel-ec.json
        intel-ucode.json
        --output sbom.uswid
}

left to right direction
gcc --> goswid
me --> goswid
ucode --> goswid
goswid <-- ec
goswid <-- fsp
goswid <-- payload

coreboot -up> goswid
goswid -up> uswid

@enduml