How to add additional processing to the cooker?

How would I be able to achieve the following example? To be clear, the example itself isn’t important. What I’m looking for is the correct way to add data specific processing to the cooker.

Let’s say I have a data asset that contains a list of weapon actors. I don’t actually need the actors themselves but instead just need them as keys in a map. With this in mind, I want to convert them to be hashes instead, so I take their name and path in the project and hash that string. I then store this in a separate variable in the data asset so it can be used at runtime.

Again, ignore the specifics. The question is how do I take data and perform potentially expensive processing on it at build time so that it doesn’t need to be done at runtime.

Answer for anyone dealing with the same problem: check UObject::BeginCacheForCookedPlatformData and bunch of related methods nearby in the file.