{
  "feature": "quaternion-rotations",
  "version": "1.0.0",
  "description": "Quaternion-based 3D rotations (gimbal-lock free)",
  "category": "integration",
  "tags": [
    "integration",
    "godot"
  ],
  "actors": [
    {
      "id": "game_engine",
      "name": "Godot Engine",
      "type": "system"
    }
  ],
  "outcomes": {
    "creation_from_euler": {
      "given": [
        "Convert Euler angles to quaternion is requested"
      ],
      "then": [
        {
          "action": "transition_state",
          "field": "status",
          "from": "idle",
          "to": "active"
        }
      ],
      "result": "Convert Euler angles to quaternion completed",
      "priority": 1
    },
    "creation_from_axis-angle": {
      "given": [
        "Rotate by axis and angle is requested"
      ],
      "then": [
        {
          "action": "transition_state",
          "field": "status",
          "from": "idle",
          "to": "active"
        }
      ],
      "result": "Rotate by axis and angle completed",
      "priority": 2
    },
    "quaternion_multiplication": {
      "given": [
        "Compose rotations is requested"
      ],
      "then": [
        {
          "action": "transition_state",
          "field": "status",
          "from": "idle",
          "to": "active"
        }
      ],
      "result": "Compose rotations completed",
      "priority": 3
    },
    "interpolation": {
      "given": [
        "Smooth rotation blending (SLERP) is requested"
      ],
      "then": [
        {
          "action": "transition_state",
          "field": "status",
          "from": "idle",
          "to": "active"
        }
      ],
      "result": "Smooth rotation blending (SLERP) completed",
      "priority": 4
    },
    "to_euler_conversion": {
      "given": [
        "Convert quaternion back to angles is requested"
      ],
      "then": [
        {
          "action": "transition_state",
          "field": "status",
          "from": "idle",
          "to": "active"
        }
      ],
      "result": "Convert quaternion back to angles completed",
      "priority": 5
    },
    "vector_rotation": {
      "given": [
        "Apply quaternion rotation to vector is requested"
      ],
      "then": [
        {
          "action": "transition_state",
          "field": "status",
          "from": "idle",
          "to": "active"
        }
      ],
      "result": "Apply quaternion rotation to vector completed",
      "priority": 6
    }
  },
  "rules": {
    "implementation": {
      "description": "Feature implemented in C++ engine core"
    },
    "platform_agnostic": {
      "description": "Works across desktop, web, mobile platforms"
    }
  },
  "related": [],
  "agi": {
    "goals": [
      {
        "id": "reliable_quaternion_rotations",
        "description": "Quaternion-based 3D rotations (gimbal-lock free)",
        "success_metrics": [
          {
            "metric": "success_rate",
            "target": ">= 99.5%",
            "measurement": "Successful operations divided by total attempts"
          },
          {
            "metric": "error_recovery_rate",
            "target": ">= 95%",
            "measurement": "Errors that auto-recover without manual intervention"
          }
        ],
        "constraints": [
          {
            "type": "availability",
            "description": "Must degrade gracefully when dependencies are unavailable",
            "negotiable": false
          }
        ]
      }
    ],
    "autonomy": {
      "level": "supervised"
    },
    "safety": {
      "action_permissions": [
        {
          "action": "creation_from_euler",
          "permission": "supervised"
        },
        {
          "action": "creation_from_axis-angle",
          "permission": "supervised"
        },
        {
          "action": "quaternion_multiplication",
          "permission": "autonomous"
        },
        {
          "action": "interpolation",
          "permission": "autonomous"
        },
        {
          "action": "to_euler_conversion",
          "permission": "autonomous"
        },
        {
          "action": "vector_rotation",
          "permission": "autonomous"
        }
      ]
    },
    "tradeoffs": [
      {
        "prefer": "reliability",
        "over": "throughput",
        "reason": "integration failures can cascade across systems"
      }
    ]
  },
  "extensions": {
    "tech_stack": {
      "language": "C++",
      "runtime": "Godot 4.x"
    }
  }
}