OptionalcachedOptionalurlsOptionalfailedOptionalfailedOptionaltotalOptionaldurationOptionalerrorOptionalprofileOptionalpulledOne entry per layer whose entities were pulled.
⚠️ Absent, not empty, when nothing declared a source. A caller can then tell "this profile pulls no entities" from "the pull was attempted and wrote nothing", which is the same distinction the sync report exists for one level down.
OptionalpreparationWhat the preparation asked for, and what it left out — kept in the manifest.
OptionalcancelledTrue when « Stop » was pressed during this download. What was stored before the stop stays; a pull under way ended at its page and removed nothing.
What
GeoLeaf.Storage.CacheManager.cacheProfile()resolves with.⚠️ It does not reject on a failed download:
errorcarries the motive, andfailedUrlswhat could not be fetched. Every member is optional — a refusal before any request (error) carries nothing else.The offline engine and the
GeoLeaf.Storagefaçade both read THIS declaration: there is no second copy of it to keep in step.