There's some stuff in
https://www.townlong-yak.com/framexm...umentation.lua file regarding the optional reagents if you haven't looked at that file yet.
The following are the ones I could see that you didn't mention:
optReagentText = GetOptionalReagentBonusText(recipeSpellID, optReagentIndex, optReagentInfo)
OptionalReagentSlot = {
requiredSkillRank (number)
slotText (string)
options (table of numbers)
}