{"$schema":"http://json-schema.org/draft-07/schema","$id":"blockception.minecraft.behavior.animations","examples":[{"format_version":"1.10.0","animations":{"animation.example":{}}}],"allOf":[{"if":{"properties":{"format_version":{"type":"string","const":"1.8.0"}}},"then":{"$ref":"#/definitions/A"}},{"if":{"properties":{"format_version":{"type":"string","const":"1.10.0"}}},"then":{"$ref":"#/definitions/C"}}],"definitions":{"A_animationspec":{"anyOf":[{"title":"Animation Specification","description":"A single string that specifies which animation there are","type":"string"},{"type":"object","title":"Animation Specification","description":"A object specification on how to transition","maxProperties":1,"minProperties":1,"additionalProperties":{"$ref":"#/definitions/B"}}]},"A_particle_effect_spec":{"additionalProperties":false,"type":"object","required":["effect"],"properties":{"bind_to_actor":{"type":"boolean","description":"Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor)."},"effect":{"type":"string","description":"The name of a particle effect that should be played"},"locator":{"type":"string","description":"The name of a locator on the actor where the effect should be located"},"pre_effect_script":{"type":"string","description":"A molang script that will be run when the particle emitter is initialized"}}},"A_commands":{"type":"string","description":"The event or commands to execute"},"B":{"type":"string","title":"Molang / String","description":"Molang definition","format":"molang"},"A":{"type":"object","title":"Animation 1.8.0","description":"Animation for behaviors 1.8.0","required":["format_version","animations"],"additionalProperties":false,"properties":{"format_version":{"title":"1.8.0 Format Version","type":"string","pattern":"^1.8.0$","description":"A version that tells minecraft what type of data format can be expected when reading this file."},"animations":{"title":"Animations Schema","description":"The animation 1.8.0 specification","type":"object","propertyNames":{"pattern":"^animation\\.[a-z\\.]+"},"additionalProperties":{"type":"object","additionalProperties":false,"description":"TODO description: additionalItems","title":"Animation","properties":{"animation_length":{"type":"number","description":"TODO description: animation length","title":"Animation Length"},"loop":{"type":"boolean","description":"TODO description: loop","title":"Loop"},"timeline":{"title":"Timeline","description":"The time line","type":"object","propertyNames":{"pattern":"^(\\d+.\\d+|\\d+)$"},"additionalProperties":{"oneOf":[{"$ref":"#/definitions/A_commands"},{"type":"array","title":"Collection Timelime Items","items":{"$ref":"#/definitions/A_commands"}}]}}}}}}},"C_animationspec":{"anyOf":[{"title":"Animation Specification","description":"A single string that specifies which animation there are","type":"string"},{"type":"object","title":"Animation Specification","description":"A object specification on how to transition","maxProperties":1,"minProperties":1,"additionalProperties":{"$ref":"#/definitions/B"}}]},"C_particle_effect_spec":{"additionalProperties":false,"type":"object","required":["effect"],"properties":{"bind_to_actor":{"type":"boolean","description":"Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor)."},"effect":{"type":"string","description":"The name of a particle effect that should be played"},"locator":{"type":"string","description":"The name of a locator on the actor where the effect should be located"},"pre_effect_script":{"type":"string","description":"A molang script that will be run when the particle emitter is initialized"}}},"C_commands":{"type":"string","description":"The event or commands to execute"},"C":{"type":"object","title":"Animation 1.10.0","description":"Animation for behavior for 1.10.0","required":["format_version","animations"],"properties":{"format_version":{"title":"1.10.0 Format Version","type":"string","pattern":"^1.10.0$","description":"A version that tells minecraft what type of data format can be expected when reading this file."},"animations":{"title":"Animations Schema","description":"The animation 1.10.0 specification","type":"object","propertyNames":{"pattern":"^animation\\.[a-z\\.]+"},"additionalProperties":{"title":"Animation","type":"object","description":"A single animation definition for 1.10.0","additionalProperties":false,"properties":{"animation_length":{"type":"number","description":"The time in seconds this animation will last","title":"Animation Length"},"loop":{"type":"boolean","description":"Whenever this animation should loop once it reaches the end, will only happen if the animation is still active","title":"Loop"},"timeline":{"title":"Timeline","description":"A timeline specification, property names are timestamps","type":"object","propertyNames":{"pattern":"^(\\d+.\\d+|\\d+)$"},"additionalProperties":{"oneOf":[{"type":"string","$ref":"#/definitions/C_commands"},{"type":"array","title":"Collection Timelime Items","items":{"$ref":"#/definitions/C_commands"}}]}}}}}},"additionalProperties":false}}}