{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://rig.works/schemas/rig.sim.joint.schema.json",
  "title": "rig.sim.joint",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "fixed",
        "hinge",
        "distance",
        "spring",
        "slider",
        "ball"
      ]
    },
    "a": {
      "$ref": "./_defs.schema.json#/$defs/entity"
    },
    "b": {
      "$ref": "./_defs.schema.json#/$defs/entity"
    },
    "anchorA": {
      "$ref": "./_defs.schema.json#/$defs/vec3"
    },
    "anchorB": {
      "$ref": "./_defs.schema.json#/$defs/vec3"
    },
    "axis": {
      "$ref": "./_defs.schema.json#/$defs/vec3"
    },
    "min": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "max": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "stiffness": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "damping": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "breakForce": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "collideConnected": {
      "$ref": "./_defs.schema.json#/$defs/bool"
    },
    "mimic": {
      "$ref": "./_defs.schema.json#/$defs/entity"
    },
    "mimicMultiplier": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "mimicOffset": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "swingDegrees": {
      "type": "number",
      "minimum": 0
    },
    "position": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "velocity": {
      "$ref": "./_defs.schema.json#/$defs/float"
    }
  },
  "required": [
    "kind",
    "a",
    "b"
  ],
  "x-rig-maturity": "draft"
}
