prefetchBuilding
Fill the prefetch cache for buildingId by running the standard getPropertyDataResult read on the calling thread. Callers should invoke this from a worker pool so multiple buildings' reads can happen concurrently. SQLite WAL mode permits concurrent reads via the framework's connection pool.
If the building's data isn't on disk (version <0 / missing files), the cached entry will reflect that — the engine consume will then fall through to the live DB read which will produce the same result. No-op if buildingId <= 0.