[
    {
		ingredientPattern: "HHC,HHK",
		recipeGroup: 1,
		ingredients: {
			"H": { type: "item", code: "hide-pelt-*", quantity: 2, tags: ["size-small"] },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  },
			"C": { type: "item", code: "cloth-red", quantity: 1 },
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-arctichunter" }
	},
    {
		ingredientPattern: "HHC,HHK",
		recipeGroup: 2,
		ingredients: {
			"H": { type: "item", code: "hide-pelt-*", quantity: 1, tags: ["size-medium"] },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  },
            "C": { type: "item", code: "cloth-red", quantity: 1 },
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-arctichunter" }
	},
	{
		ingredientPattern: "HHC,HHK",
		recipeGroup: 3,
		ingredients: {
			"H": { type: "item", code: "hide-pelt-*", quantity: 1, tags: ["size-large"], returnedStack: { type: "item", code: "hide-pelt-small" }  },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  },
            "C": { type: "item", code: "cloth-red", quantity: 1 },
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-arctichunter" }
	},
	{
		ingredientPattern: "HHC,HHK",
		recipeGroup: 3,
		ingredients: {
			"H": { type: "item", code: "hide-pelt-*", quantity: 1, tags: ["size-huge"], returnedStack: { type: "item", code: "hide-pelt-medium" } },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  },
            "C": { type: "item", code: "cloth-red", quantity: 1 },
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-arctichunter" }
	},
    {
		ingredientPattern: "CCS,HHK",
        requiresTrait: "clothier",
		recipeGroup: 1,
		ingredients: {
			"H": { type: "item", code: "hide-pelt-*", quantity: 2, tags: ["size-small"] },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  },
			"C": { type: "item", code: "cloth-red", quantity: 1 },
			"S": { type: "item", code: "sewingkit", quantity: 1 },
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-arcticfisher" }
	},
    {
		ingredientPattern: "CCS,HHK",
        requiresTrait: "clothier",
		recipeGroup: 2,
		ingredients: {
			"H": { type: "item", code: "hide-pelt-*", quantity: 1, tags: ["size-medium"] },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  },
            "C": { type: "item", code: "cloth-red", quantity: 1 },
            "S": { type: "item", code: "sewingkit", quantity: 1 },
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-arcticfisher" }
	},
	{
		ingredientPattern: "CCS,HHK",
        requiresTrait: "clothier",
		recipeGroup: 3,
		ingredients: {
			"H": { type: "item", code: "hide-pelt-*", quantity: 1, tags: ["size-large"], returnedStack: { type: "item", code: "hide-pelt-small" }  },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  },
            "C": { type: "item", code: "cloth-red", quantity: 1 },
            "S": { type: "item", code: "sewingkit", quantity: 1 },
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-arcticfisher" }
	},
	{
		ingredientPattern: "CCS,HHK",
        requiresTrait: "clothier",
		recipeGroup: 3,
		ingredients: {
			"H": { type: "item", code: "hide-pelt-*", quantity: 1, tags: ["size-huge"], returnedStack: { type: "item", code: "hide-pelt-medium" } },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  },
            "C": { type: "item", code: "cloth-red", quantity: 1 },
            "S": { type: "item", code: "sewingkit", quantity: 1 },
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-arcticfisher" }
	},
    {
		ingredientPattern: "HHS,CCK",
        requiresTrait: "clothier",
		recipeGroup: 1,
		ingredients: {
			"H": { type: "item", code: "hide-pelt-*", quantity: 2, tags: ["size-small"] },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  },
			"C": { type: "item", code: "cloth-white", quantity: 1 },
			"S": { type: "item", code: "sewingkit", quantity: 1 },
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-embroideredfur" }
	},
    {
		ingredientPattern: "HHS,CCK",
        requiresTrait: "clothier",
		recipeGroup: 2,
		ingredients: {
			"H": { type: "item", code: "hide-pelt-*", quantity: 1, tags: ["size-medium"] },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  },
            "C": { type: "item", code: "cloth-white", quantity: 1 },
            "S": { type: "item", code: "sewingkit", quantity: 1 },
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-embroideredfur" }
	},
	{
		ingredientPattern: "HHS,CCK",
        requiresTrait: "clothier",
		recipeGroup: 3,
		ingredients: {
			"H": { type: "item", code: "hide-pelt-*", quantity: 1, tags: ["size-large"], returnedStack: { type: "item", code: "hide-pelt-small" }  },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  },
            "C": { type: "item", code: "cloth-white", quantity: 1 },
            "S": { type: "item", code: "sewingkit", quantity: 1 },
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-embroideredfur" }
	},
	{
		ingredientPattern: "HHS,CCK",
        requiresTrait: "clothier",
		recipeGroup: 3,
		ingredients: {
			"H": { type: "item", code: "hide-pelt-*", quantity: 1, tags: ["size-huge"], returnedStack: { type: "item", code: "hide-pelt-medium" } },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  },
            "C": { type: "item", code: "cloth-white", quantity: 1 },
            "S": { type: "item", code: "sewingkit", quantity: 1 },
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-embroideredfur" }
	},
    {
		ingredientPattern: "CC,PP",
		recipeGroup: 1,
		ingredients: {
            "C": { type: "item", code: "cloth-{color}", quantity: 1 },
            "P": { type: "item", code: "cloth-plain", quantity: 1 },
		},
        skipVariants: {
			color: ["mordant", "plain" ]
		},
		width: 2,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-kirtle{color}" }
	},
    {
		ingredientPattern: "GGG,_G_",
		recipeGroup: 1,
		ingredients: {
            "G": { type: "item", code: "drygrass", quantity: 2 },
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-grass" }
	},
    {
		ingredientPattern: "CS,C_",
        requiresTrait: "clothier",
		recipeGroup: 1,
		ingredients: {
            "C": { type: "item", code: "cloth-white", quantity: 1 },
            "S": { type: "item", code: "sewingkit", quantity: 1 },
		},
		width: 2,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-chemisesleeveless" }
	},
    {
		ingredientPattern: "TCT,_CS",
        requiresTrait: "clothier",
		recipeGroup: 1,
		ingredients: {
            "C": { type: "item", code: "cloth-white", quantity: 1 },
            "T": { type: "item", code: "flaxtwine", quantity: 1 },
            "S": { type: "item", code: "sewingkit", quantity: 1 },
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-chemiseshort" }
	},
    {
		ingredientPattern: "_CS,TCT",
        requiresTrait: "clothier",
		recipeGroup: 1,
		ingredients: {
            "C": { type: "item", code: "cloth-white", quantity: 1 },
            "T": { type: "item", code: "flaxtwine", quantity: 1 },
            "S": { type: "item", code: "sewingkit", quantity: 1 },
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-chemiseshouldershort" }
	},
    {
		ingredientPattern: "TCT,TCT,_S_",
        requiresTrait: "clothier",
		recipeGroup: 1,
		ingredients: {
            "C": { type: "item", code: "cloth-white", quantity: 1 },
            "T": { type: "item", code: "flaxtwine", quantity: 1 },
            "S": { type: "item", code: "sewingkit", quantity: 1 },
		},
		width: 3,
		height: 3,
		output: { type: "item", code: "clothes-upperbody-chemiselong" }
	},
    {
		ingredientPattern: "TST,TCT,_C_",
        requiresTrait: "clothier",
		recipeGroup: 1,
		ingredients: {
            "C": { type: "item", code: "cloth-white", quantity: 1 },
            "T": { type: "item", code: "flaxtwine", quantity: 1 },
            "S": { type: "item", code: "sewingkit", quantity: 1 },
		},
		width: 3,
		height: 3,
		output: { type: "item", code: "clothes-upperbody-chemisescoop" }
	},
    {
		ingredientPattern: "_C_,TCT,_S_",
        requiresTrait: "clothier",
		recipeGroup: 1,
		ingredients: {
            "C": { type: "item", code: "cloth-white", quantity: 1 },
            "T": { type: "item", code: "flaxtwine", quantity: 1 },
            "S": { type: "item", code: "sewingkit", quantity: 1 },
		},
		width: 3,
		height: 3,
		output: { type: "item", code: "clothes-upperbody-chemiseshoulderlong" }
	},
    {
		ingredientPattern: "BSB,CBC",
		requiresTrait: "clothier",
		ingredients: {
			"B": { type: "item", code: "cloth-blue", quantity: 1 },
			"C": { type: "item", code: "cloth-plain", quantity: 1 },
			"S": { type: "item", code: "sewingkit" }
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-minstrel-shirt"  }
	},
	{
		ingredientPattern: "BSB,CBC",
		requiresTrait: "clothier",
		ingredients: {
			"B": { type: "item", code: "cloth-blue", quantity: 1 },
			"C": { type: "item", code: "cloth-plain", quantity: 1 },
			"S": { type: "item", code: "sewingkit" }
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-minstrel-shirt"  }
	},
    {
		ingredientPattern: "BSB,BBB",
		requiresTrait: "clothier",
		ingredients: {
			"B": { type: "item", code: "cloth-blue", quantity: 1 },
			"S": { type: "item", code: "sewingkit" }
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-azure-embroidered-shirt"  }
	},
    {
		ingredientPattern: "B_B,BCB",
		ingredients: {
			"B": { type: "item", code: "cloth-brown", quantity: 1 },
			"C": { type: "item", code: "cloth-blue", quantity: 1 }
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-earth-toned-robe"  }
	},
    {
		ingredientPattern: "CCC,_C_",
		ingredients: {
			"C": { type: "item", code: "cloth-plain", quantity: 1 }
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-homespun-shirt"  }
	},
	{
		ingredientPattern: "C_C,_C_",
		ingredients: {
			"C": { type: "item", code: "cloth-plain", quantity: 2 }
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-peasent-shirt"  }
	},
	{
		ingredientPattern: "CCC,TC_",
		ingredients: {
			"C": { type: "item", code: "cloth-plain", quantity: 1 },
			"T": { type: "item", code: "flaxtwine" }
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-pastoral-shirt"  }
	},
    {
		ingredientPattern: "CCC,_CT",
		ingredients: {
			"C": { type: "item", code: "cloth-plain", quantity: 1 },
			"T": { type: "item", code: "flaxtwine" }
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-chateau-blouse"  }
	},
    {
		ingredientPattern: "PRP,RPR",
		ingredients: {
			"P": { type: "item", code: "cloth-plain", quantity: 1 },
			"R": { type: "item", code: "cloth-red", quantity: 1 }
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-scarlet-ornate-linen-tunic"  }
	},
    {
		ingredientPattern: "SB_,BRB,RBR",
		requiresTrait: "clothier",
		ingredients: {
			"R": { type: "item", code: "cloth-red", quantity: 1 },
			"B": { type: "item", code: "cloth-blue", quantity: 1 },
			"S": { type: "item", code: "sewingkit" }
		},
		width: 3,
		height: 3,
		output: { type: "item", code: "clothes-upperbody-reindeer-herder-collared-shirt"  }
	},
    {
		ingredientPattern: "HKH,HHH",
		recipeGroup: 1,
		ingredients: {
			"H": { type: "item", code: "hide-raw-*", quantity: 1, tags: ["size-small"] },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  }
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-rawhidemantle"  }
	},
	{
		ingredientPattern: "HKH,_H_",
		recipeGroup: 2,
		ingredients: {
			"H": { type: "item", code: "hide-raw-*", quantity: 1, tags: ["size-medium"] },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  }
		},
		width: 3,
		height: 2,
		output: { type: "item", code: "clothes-upperbody-rawhidemantle"  }
	},
	{
		ingredientPattern: "HKH",
		recipeGroup: 3,
		ingredients: {
			"H": { type: "item", code: "hide-raw-*", quantity: 1, tags: ["size-large"] },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  }
		},
		width: 3,
		height: 1,
		output: { type: "item", code: "clothes-upperbody-rawhidemantle"  }
	},
	{
		ingredientPattern: "KH",
		recipeGroup: 4,
		ingredients: {
			"H": { type: "item", code: "hide-raw-*", quantity: 1, tags: ["size-huge"] },
			"K": { type: "item", isTool: true, tags: ["tool-trimming"]  }
		},
		width: 2,
		height: 1,
		output: { type: "item", code: "clothes-upperbody-rawhidemantle"  }
	},
]
