ParticleSpriteWriter
Writes one particle effect's sprites into the resource pack: its texture under textures/entity/fmm_particles (FMM's atlas generator registers it), one flat quad model per sprite and a tintable item definition for each. Maps are ordered so the bytes are stable across restarts and the pack hash does not change needlessly.
Only Java item displays show the sprites; Bedrock players get the effect as a native particle. The effect's rspm_item_java_only declaration tells ResourcePackManager not to convert its sprite items into Geyser custom items.