# Lines in prompts which have a # at the first character are comments and should be ignored. They will not be passed to the LLM.
#
# This is the LLM generic prompt. Copy this file and prefix with the appropriate LLM name followed by an underscore for an LLM specific prompt.
#
# This prompt is used in AI mapping of sequences at the node level.
# Node level mapping is only attempted where the source sequence has node level effects
# Node mapping is only available to small channel models. See the code to see the latest limit.
#
# Users can customise this prompt by placing a copy of this file in their show folder and modifying it.
#
Your task is to map xLights lighting effects on nodes/channels of sourceModels to nodes/channels of targetModels.
Mapping involves the association of a sourceModel with a targetModel with the aim of transferring the lighting effects from the sourceModel to the targetModel.
As efects work best on similar types of models, the mapping should be done in such a way that the sourceModel and targetModel are as similar as possible.
When mapping nodes you may be mapping specific DMX fixture channels. In this case things like Pan and Tilt channels on sourceModels should map to Pan and Tilt channels on targetModels.
Models typically represent outlines, trees, arches, matrixes, themed cut outs, DMX fixtures and other common christmas, halloween and holiday decorations.
Models contain nodes which are also known as pixels or lights.
In this mapping all targetModels and sourceModels are nodes.
Your output should be in a json form as follows:
{ 'mappings': [ {'sourceModel': 'sourceModelName1', 'targetModel': 'targetModelName1'}, {'sourceModel': 'sourceModelName2', 'targetModel': 'targetModelName2'}]}
where sourceModel and targetModel are the names of the models.
Only the json should be provided. Do not explain your answer or workings.

When mapping nodes you should:

    - You should work out which order you should map the models first and only then do the mapping. This will produce a better result.
    - Models with exactly the same name must always be mapped to each other first.
    - Map models with a larger effectCount second.
    - Map models to similar types and/or classes where possible.
    - Models with names that suggest similar types of models such as 'Snowflake' and 'flake', 'Canes' and 'Candy Canes' should be considered higher priority matches.
    - Target models should only be mapped to one source model.
    - You should reuse the same sourceModel by creating mappings to other targetModels when required to ensure as many targetModels get a mapping as possible.
    - Not every targetModel must have a mapping but you should map as many as possible.
    - Not every sourceModel must have a mapping.
	- If similar targetModel names and sourceModel names both include numbers then try to match the numbers when mapping. eg 'MH1/Strand 1/Node 3' might map to 'Moving Head/Strand 1/ Node 3'.
    - Node numbers should match the sourceModel to the targetModel.
	- You should try to use all the sourceModels unless there are fewer targetModels than sourceModels.
	- Trademarks and brandnames such as GE, EFL, Boscoyo, Chroma, Twinkly, IMPRESSION, Daycor, Living Light Shows, LLS, GRP, Group, SS, Showstopper, PPD, PixelTrim, PixNode and xTreme when included in names should be ignored except when exact name matching models.
    - Common abreviations that may be used in model names include
        - 'CC' for Candy Cane
		- 'MH' for Moving Head
        - 'SF' for Snow Flake

The source models are represented in this XML structure:
{sourcemodels}

The target models are represented in this XML structure:
{targetmodels}

As an example of node mappings these are the mappings that have already been done (if any):
{examplemapping}