{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"$id": "https://schema.stfform.at/stfexp.constraint.rotation.simple.schema.json",
	"title": "Twist Constraint",
	"description": "A rigging behavior that copies a percentage of the rotation from its source.",
	"stfImplementations": {
		"blender": {
			"representingType": "STF component on bpy.types.Object or bpy.types.Bone",
			"link": "https://codeberg.org/stf_format/stf_blender/src/branch/master/stfblender/stf_resources/stfexp/stfexp_constraint_rotation_simple.py"
		},
		"godot": {
			"representingType": "CopyTransformModifier3D",
			"link": "https://codeberg.org/stf_format/stf_godot/src/branch/master/addons/stf_godot/resources/stfexp/STFEXP_Constraint_Rotation_Simple.gd"
		},
		"unity": {
			"representingType": "RotationConstraint or application specific components",
			"link": "https://codeberg.org/stf_format/stf_unity/src/branch/master/Runtime/Resources/Resources_STFEXP/STFEXP_Constraint_Rotation_Simple.cs",
			"extra_links": {
				"Default Processor": "https://codeberg.org/stf_format/stf_unity/src/branch/master/Runtime/Processors/Processors_STFEXP/STFEXP_Constraint_Rotation_Simple_Processor.cs",
				"VRChat Constraint Processor": "https://codeberg.org/stf_format/stf_unity/src/branch/master/AVA/AVA_VRChat/Editor/Processors/VRC_STFEXP_Constraint_Rotation_Simple_Processor.cs",
				"VRM1 Constraint Processor": "https://codeberg.org/stf_format/stf_unity/src/branch/master/AVA/AVA_VRM1/Editor/Processors/VRM1_STFEXP_Constraint_Rotation_Simple_Processor.cs"
			}
		}
	},
	"allOf": [{ "$ref": "https://schema.stfform.at/stf.schema.json#/$defs/stf_component_resource" }],
	"properties": {
		"type": {
			"const": "stfexp.constraint.rotation.simple"
		},
		"weight": {
			"type": "number",
			"default": 0.5,
			"description": "How much of the source rotation to blend."
		},
		"source": {
			"$ref": "https://schema.stfform.at/stf.schema.json#resource_ref_path",
			"description": "Path to the node from which to copy the rotation. If not set, the parent of the parent will be assumed."
		}
	},
	"required": [
		"type"
	],
	"additionalProperties": false,
	"examples": [
		{
			"type": "stfexp.constraint.rotation.simple",
			"name": "Simple rotation constraint that uses the parent of the parent node as its source.",
			"weight": 0.5
		},
		{
			"type": "stfexp.constraint.rotation.simple",
			"name": "Simple rotation constraint with an explicitly defined source node.",
			"weight": 0.5,
			"referenced_resources": [
				"e6ae2ed1-fc53-43ee-ac53-05bf296d5fc1",
				"2ba8de1d-bec2-469a-9ef9-f415dd1e7c77"
			],
			"source": [
				0,
				"instance",
				1
			]
		}
	]
}