The header extension is the extension the header segment of this PackagePath has on disk. It is illegal to have multiple files on disk with the same BaseNameWithPath but different header extensions, so the header extension is optional. If unspecified, all header extensions will be searched. If specified, it is assumed correct and searches will return false if they have a different header extension. The header extension is a performance hint and matching header extensions is not required for equality. The header extension will be mutated even on const FPackagePaths when it is not already set and functions are called that need to calculate it