writeAttachable
Phase G — Step 2 of 2 for the generic pipeline. Writes ONE attachable JSON file referencing the (already-emitted) animation set and geometry. Called N times per model (once per candidate base item) with a unique bedrockIdentifier each.
Return
the bedrockIdentifier on success, null on failure
Parameters
Bedrock-side attachable identifier, e.g. "elitemobs:gear_bronze_sword__minecraft_diamond_sword". Per Geyser docs, this MUST be globally unique across all custom item definitions.
filesystem stem under attachables/ (no extension), e.g. "elitemobs/gear_bronze_sword__minecraft_diamond_sword" writes to attachables/elitemobs/gear_bronze_sword__minecraft_diamond_sword.json
geometry identifier emitted by FmmGeometryConverter (shared per model)
Bedrock texture path emitted by TextureStitcher (shared per model)
animation identifier triple returned by prepareAnimations (shared per model)
output pack root
As writeAttachable, also wiring held-item particles when particles is not null.