{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/CreateAnimationRequest", "title": "CreateAnimationRequest", "type": "object", "properties": { "type": { "type": "string", "enum": [ "ScalarKeyFrame", "Vector2KeyFrame", "Vector3KeyFrame", "ColorKeyFrame", "QuaternionKeyFrame", "Expression" ] }, "duration": { "type": "string", "description": "ISO 8601 duration" }, "targetProperty": { "type": "string", "description": "Target property name (e.g., Offset, Opacity, Scale)" }, "keyFrames": { "type": "array", "items": { "type": "object", "properties": { "normalizedProgressKey": { "type": "number", "format": "float", "description": "Progress key (0.0 to 1.0)" }, "value": { "type": "object", "description": "Value at this key frame" }, "easingFunction": { "type": "string", "enum": [ "Linear", "CubicBezier", "StepEasing" ] } } } }, "expression": { "type": "string", "description": "Expression string (for Expression animations)" } }, "required": [ "type" ] }