GeyserDeployer
Detects a Geyser installation and deploys the Geyser custom mappings file to the appropriate Geyser directory.
The Bedrock resource pack itself is NOT copied into Geyser's packs/ folder. Geyser scans that folder at boot only, so a copy-based deploy could only ever publish a stale pack (the one from the previous server run). The pack is served per-session via GeyserPackProvider, which lets the pack on disk stay live as RSPM re-mixes it.
Mappings, however, ARE boot-frozen by Geyser (GeyserDefineCustomItemsEvent is a lifecycle event that fires once at startup), so this class still copies rspm_geyser_mappings.json into custom_mappings/ so that next boot picks up the latest set. Changes to the custom-item SET (new items added/removed) therefore require a server restart, but texture/model tweaks to existing items take effect for the next joining Bedrock player without a restart.