It leaves out what JSON cannot carry, which a replay adds back in code:
label.title as a function — a MapLibre expression serializes.connections.label, evAvailability.formatText and icon.mapping, all functions.extraFeatureProps entries that are functions — fixed values serialize.icon.default.image and icon.categoryIcons[].image as an HTMLImageElement — see SerializableCustomImage.
The part of a PlacesModuleConfig that survives JSON, for saving
getConfig()and replaying it withapplyConfig().