In the Gecko Profile JSON format, markers optionally contain a "data" property (tech detail: Through a schema+array model, i.e., a schema defines the index of the "data" property, and it's actually stored in an array).
And if present, the data contains a "type" property, which then determines if&what other data is present.
Since this type is present in a majority of markers, and new markers are encouraged to use their own type (for a customized display), it would be valuable to move the type out of the optional payload, and into the markers' top-level array.
As an added optimization, instead of a string (repeated in each marker), the type should be stored as an integer id, with the mapping id->string stored somewhere central (but outside the main unique-string-table, so that ids stay short).
This would require front-end changes, including a converter from previous versions.