Fish cleaning also implies some kind of preservative process, such as drying, smoking or salting. It would be cool if that was a separate process that required resources like heat or salt... that could be handled by a reaction, I think, if each fish had extra materials for the various preserved states.
Like this:
[MATERIAL_TEMPLATE:FISH_CLEANED_TEMPLATE]
...
[REACTION_CLASS:FISH_SALTABLE]
[REACTION_CLASS:FISH_SMOKABLE]
[REACTION_CLASS:FISH_DRYABLE]
[MATERIAL_REACTION_PRODUCT:SALTING_MAT:LOCAL_CREATURE_MAT:SALTED]
[MATERIAL_REACTION_PRODUCT:SMOKING_MAT:LOCAL_CREATURE_MAT:SMOKED]
[MATERIAL_REACTION_PRODUCT:DRYING_MAT:LOCAL_CREATURE_MAT:DRIED]
[ROT_TIME:10] <-- I'm assuming the next version has something like this
[MATERIAL_TEMPLATE:FISH_PRESERVED_TEMPLATE]
...
[ROT_TIME:200]
[BODY_DETAIL_PLAN:FISH_PRESERVED_MATERIALS]
[ADD_MATERIAL:SALTED:FISH_PRESERVED_TEMPLATE]
[ADD_MATERIAL:SMOKED:FISH_PRESERVED_TEMPLATE]
[ADD_MATERIAL:DRIED:FISH_PRESERVED_TEMPLATE]
[REACTION:FISH_SALTING]
...
[BUILDING:FISHERY_IMPROVED]
[SKILL:FISH_CLEANING]
[REAGENT:A:1:FISH:NONE:NONE:NONE][REACTION_CLASS:FISH_SALTABLE]
[REAGENT:B:1:STONE:NONE:INORGANIC:ROCK_SALT]
[PRODUCT:100:1:FISH:NONE:GET_MATERIAL_FROM_REAGENT:A:SALTING_MAT]
[REACTION:FISH_SMOKING]
...
[BUILDING:FISHERY_IMPROVED]
[SKILL:FISH_CLEANING]
[REAGENT:A:1:FISH:NONE:NONE:NONE][REACTION_CLASS:FISH_SMOKABLE]
[REAGENT:B:1:WOOD:NONE:PLANT:NONE] <-- plants and trees got merged, I'm assuming they're just called PLANT now
[PRODUCT:100:1:FISH:NONE:GET_MATERIAL_FROM_REAGENT:A:SMOKING_MAT]
[REACTION:FISH_DRYING]
...
[BUILDING:FISHERY_IMPROVED]
[SKILL:FISH_CLEANING]
[REAGENT:A:1:FISH:NONE:NONE:NONE][REACTION_CLASS:FISH_DRYABLE]
[FUEL]
[PRODUCT:100:1:FISH:NONE:GET_MATERIAL_FROM_REAGENT:A:DRYING_MAT]
[CREATURE:COD]
...
[BODY_DETAIL_PLAN:FISH_PRESERVED_MATERIALS]
So after adding the above stuff (including adding the new body detail plan to all preservable fish), you just need to add the custom workshop. I think. Oh, and I guess that custom fishery would need a FISH_CLEANING reaction too, so it could replace the useful functions of the current fishery.
Also, if you wanted finer control over which fish can be preserved in various ways, you could move the reaction class specifications from the FISH_CLEANED template to a SELECT_MATERIAL block inside the individual fishies. Assuming that a SELECT_MATERIAL tag exists, which it really should.
Just realized that it would still just say "cod" instead of "salted cod." If that goes by the material name, it would be easy to give the preserved fish materials custom names in the individual fishies, but if it goes by the creature name, that'd be hard to work around. Hmm.