---@param pre_select_mat_location integer|FUSION_SPELL_PRE_SELECT_MAT_LOCATION_FUNCTION? location where to find the materials before known the materials (default LOCATION_HAND|LOCATION_MZONE)
end
---@param mat_operation_code_map {[integer]:FUSION_OPERATION_CODE}[]? operation code to do for the materials, it will be check in order (default [{ LOCATION_GRAVE: FUSION_OPERATION_BANISH}, { 0xff: FUSION_OPERATION_GRAVE}])
---@param post_select_mat_location integer? location where to find the materials after known the materials (default nil)
--- Registers a Fusion Summon effect to a card.
---@param additional_fcheck function? function to check the final material group fits the requirement
--- @param c Card -- The card to register the effect to.
---@param additional_gcheck function? function to check the part of potiential material group fits the requirement to improve performance
--- @param opts FusionEffectParams
---@param fuslocation integer? location where to summon fusion monsters from (default LOCATION_EXTRA), use it on Clock Lizard
--- @return Effect -- The registered effect object.
---@param sumtype integer? summon type (default SUMMON_TYPE_FUSION)
functionFusionSpell.RegisterSummonEffect(c,opts)
---@param sumpos integer? summon position (default POS_FACEUP)
locale1=FusionSpell.CreateSummonEffect(c,opts)
---@param stage_x_operation function? callback function when special summon is in progress. will be called with different stage name
--- Creates and returns a Fusion Summon effect, attached to the specified card.
---@param fusfilter (fun(c:Card):boolean)? filter for the monster to be Fusion Summoned
--- Accepts a table of named parameters to configure the effect behavior.
---@param matfilter (fun(c:Card):boolean)? filter for the materials, use it only under very strong limitation like D-Fusion.
---
---@param pre_select_mat_location integer|FUSION_SPELL_PRE_SELECT_MAT_LOCATION_FUNCTION? location where to find the materials before known the materials (default LOCATION_HAND|LOCATION_ONFIELD)
--- @param opts? FusionEffectParams Named options table.
---@param mat_operation_code_map {[integer]:FUSION_OPERATION_CODE}[]? operation code to do for the materials, it will be check in order (default [{ LOCATION_GRAVE: FUSION_OPERATION_BANISH}, { 0xff: FUSION_OPERATION_GRAVE}])
--- @return Effect The created and configured `Effect` object.
---@param post_select_mat_location integer? location where to find the materials after known the materials (default nil)
functionFusionSpell.CreateSummonEffect(c,opts)
---@param additional_fcheck function? function to check the final material group fits the requirement
opts=optsor{}
---@param additional_gcheck function? function to check the part of potiential material group fits the requirement to improve performance
localfusfilter=opts.fusfilter
---@param fuslocation integer? location where to summon fusion monsters from (default LOCATION_EXTRA), use it on Clock Lizard
localmatfilter=opts.matfilteroraux.TRUE
---@param sumtype integer? summon type (default SUMMON_TYPE_FUSION)
---@param pre_select_mat_opponent_location integer|FUSION_SPELL_PRE_SELECT_MAT_LOCATION_FUNCTION? location where to find the materials before known the materials on opponent location
---@param pre_select_mat_opponent_location integer|FUSION_SPELL_PRE_SELECT_MAT_LOCATION_FUNCTION? location where to find the materials before known the materials on opponent location
---@param pre_select_mat_opponent_location integer|FUSION_SPELL_PRE_SELECT_MAT_LOCATION_FUNCTION? location where to find the materials before known the materials on opponent location
---@param pre_select_mat_location integer|function location where to find the materials before known the materials (default LOCATION_HAND|LOCATION_MZONE)
---@param pre_select_mat_location integer|function location where to find the materials before known the materials (default LOCATION_HAND|LOCATION_MZONE)
---@param pre_select_mat_opponent_location integer|FUSION_SPELL_PRE_SELECT_MAT_LOCATION_FUNCTION? location where to find the materials before known the materials on opponent location