{
  "schema": "aura3d.assets/1.0",
  "assetBasePath": "/aura-assets/",
  "outputDir": "public/aura-assets",
  "typegen": "src/aura-assets.ts",
  "assets": [
    {
      "id": "luma",
      "type": "model",
      "format": "glb",
      "source": "../../../engine/src/agent-api/assets/player-fixture.glb",
      "outputPath": "public/aura-assets/luma.047f5e5f.glb",
      "url": "/aura-assets/luma.047f5e5f.glb",
      "hash": "sha256-047f5e5fb3bb6d378bd1df16ca6137f2a596c99b3a1b5690b4020c05aaf6f319",
      "sizeBytes": 463988,
      "bounds": [
        0.066,
        0.026,
        0.017
      ],
      "boundsMetadata": {
        "min": [
          -0.033,
          -0.013,
          -0.009
        ],
        "max": [
          0.033,
          0.013,
          0.008
        ],
        "size": [
          0.066,
          0.026,
          0.017
        ],
        "center": [
          0,
          0,
          0
        ],
        "maxDimension": 0.066,
        "grounded": true
      },
      "materials": [
        "Grey",
        "Main",
        "Black"
      ],
      "materialMetadata": [
        {
          "name": "Grey",
          "visible": true,
          "readable": true,
          "opacity": 1,
          "alphaMode": "OPAQUE",
          "reasons": []
        },
        {
          "name": "Main",
          "visible": true,
          "readable": true,
          "opacity": 1,
          "alphaMode": "OPAQUE",
          "reasons": []
        },
        {
          "name": "Black",
          "visible": true,
          "readable": true,
          "opacity": 1,
          "alphaMode": "OPAQUE",
          "reasons": []
        }
      ],
      "animations": [
        "Dance",
        "Death",
        "Idle",
        "Jump",
        "No",
        "Punch",
        "Running",
        "Sitting",
        "Standing",
        "ThumbsUp",
        "Walking",
        "WalkJump",
        "Wave",
        "Yes"
      ],
      "animationMetadata": {
        "clipCount": 14,
        "clips": [
          {
            "index": 0,
            "name": "Dance",
            "channelCount": 12,
            "samplerCount": 12,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "UpperArm.L",
              "LowerArm.L",
              "UpperArm.R",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          },
          {
            "index": 1,
            "name": "Death",
            "channelCount": 18,
            "samplerCount": 18,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Foot.L",
              "Body",
              "Shoulder.L",
              "LowerArm.L",
              "Shoulder.R",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "Foot.R"
            ]
          },
          {
            "index": 2,
            "name": "Idle",
            "channelCount": 7,
            "samplerCount": 7,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          },
          {
            "index": 3,
            "name": "Jump",
            "channelCount": 18,
            "samplerCount": 18,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Foot.L",
              "Body",
              "Neck",
              "UpperArm.L",
              "LowerArm.L",
              "UpperArm.R",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "Foot.R"
            ]
          },
          {
            "index": 4,
            "name": "No",
            "channelCount": 7,
            "samplerCount": 7,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          },
          {
            "index": 5,
            "name": "Punch",
            "channelCount": 15,
            "samplerCount": 15,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "UpperArm.L",
              "LowerArm.L",
              "Shoulder.R",
              "UpperArm.R",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "Foot.R"
            ]
          },
          {
            "index": 6,
            "name": "Running",
            "channelCount": 18,
            "samplerCount": 18,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Foot.L",
              "Body",
              "Neck",
              "UpperArm.L",
              "LowerArm.L",
              "Shoulder.R",
              "UpperArm.R",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "Foot.R"
            ]
          },
          {
            "index": 7,
            "name": "Sitting",
            "channelCount": 10,
            "samplerCount": 10,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "LowerArm.L",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          },
          {
            "index": 8,
            "name": "Standing",
            "channelCount": 10,
            "samplerCount": 10,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "LowerArm.L",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          },
          {
            "index": 9,
            "name": "ThumbsUp",
            "channelCount": 15,
            "samplerCount": 15,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "LowerArm.L",
              "UpperArm.R",
              "LowerArm.R",
              "Middle1.R",
              "Thumb.R",
              "Thumb2.R",
              "Index.R",
              "Ring1.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          },
          {
            "index": 10,
            "name": "Walking",
            "channelCount": 20,
            "samplerCount": 20,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Foot.L",
              "Body",
              "Neck",
              "UpperArm.L",
              "LowerArm.L",
              "Shoulder.R",
              "UpperArm.R",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "PoleTarget.L",
              "Foot.R",
              "PoleTarget.R"
            ]
          },
          {
            "index": 11,
            "name": "WalkJump",
            "channelCount": 18,
            "samplerCount": 18,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Foot.L",
              "Body",
              "Neck",
              "UpperArm.L",
              "LowerArm.L",
              "Shoulder.R",
              "UpperArm.R",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "Foot.R"
            ]
          },
          {
            "index": 12,
            "name": "Wave",
            "channelCount": 18,
            "samplerCount": 18,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "Shoulder.R",
              "UpperArm.R",
              "LowerArm.R",
              "Middle1.R",
              "Middle2.R",
              "Thumb.R",
              "Thumb2.R",
              "Index.R",
              "Index2.R",
              "Ring1.R",
              "Ring2.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          },
          {
            "index": 13,
            "name": "Yes",
            "channelCount": 7,
            "samplerCount": 7,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          }
        ],
        "messages": [
          "Detected 14 embedded animation clips."
        ]
      },
      "humanoid": {
        "humanoid": true,
        "status": "humanoid",
        "confidence": "high",
        "skinCount": 2,
        "jointCount": 43,
        "matchedBones": [
          "hips",
          "spine",
          "head",
          "leftArm",
          "rightArm",
          "leftLeg",
          "rightLeg"
        ],
        "missingBones": [],
        "messages": [
          "Humanoid signals detected from skinned joints."
        ]
      },
      "skeleton": {
        "skinCount": 2,
        "jointCount": 43,
        "skins": [
          {
            "index": 0,
            "name": "skin-0",
            "jointCount": 43,
            "joints": [
              "Bone",
              "Foot.L",
              "Body",
              "Hips",
              "Abdomen",
              "Torso",
              "Neck",
              "Head",
              "Shoulder.L",
              "UpperArm.L",
              "LowerArm.L",
              "Palm2.L",
              "Middle1.L",
              "Middle2.L",
              "Thumb.L",
              "Thumb2.L",
              "Palm1.L",
              "Index.L",
              "Index2.L",
              "Palm3.L",
              "Ring1.L",
              "Ring2.L",
              "Shoulder.R",
              "UpperArm.R",
              "LowerArm.R",
              "Palm2.R",
              "Middle1.R",
              "Middle2.R",
              "Thumb.R",
              "Thumb2.R",
              "Palm1.R",
              "Index.R",
              "Index2.R",
              "Palm3.R",
              "Ring1.R",
              "Ring2.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "PoleTarget.L",
              "Foot.R",
              "PoleTarget.R"
            ],
            "skeleton": "Bone"
          },
          {
            "index": 1,
            "name": "skin-1",
            "jointCount": 43,
            "joints": [
              "Bone",
              "Foot.L",
              "Body",
              "Hips",
              "Abdomen",
              "Torso",
              "Neck",
              "Head",
              "Shoulder.L",
              "UpperArm.L",
              "LowerArm.L",
              "Palm2.L",
              "Middle1.L",
              "Middle2.L",
              "Thumb.L",
              "Thumb2.L",
              "Palm1.L",
              "Index.L",
              "Index2.L",
              "Palm3.L",
              "Ring1.L",
              "Ring2.L",
              "Shoulder.R",
              "UpperArm.R",
              "LowerArm.R",
              "Palm2.R",
              "Middle1.R",
              "Middle2.R",
              "Thumb.R",
              "Thumb2.R",
              "Palm1.R",
              "Index.R",
              "Index2.R",
              "Palm3.R",
              "Ring1.R",
              "Ring2.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "PoleTarget.L",
              "Foot.R",
              "PoleTarget.R"
            ],
            "skeleton": "Bone"
          }
        ],
        "messages": [
          "Detected 2 skins with 43 unique joints."
        ]
      },
      "morphTargets": {
        "targetCount": 3,
        "targetNames": [
          "Angry",
          "Surprised",
          "Sad"
        ],
        "meshes": [
          {
            "index": 2,
            "name": "Head",
            "targetNames": [
              "Angry",
              "Surprised",
              "Sad"
            ]
          }
        ],
        "messages": [
          "Detected 3 morph targets."
        ]
      },
      "provenance": {
        "sourcePath": "../../../engine/src/agent-api/assets/player-fixture.glb",
        "checkedAt": "2026-06-06T23:36:54.694Z"
      },
      "textures": [],
      "dependencies": [],
      "orientation": {
        "source": "unknown",
        "messages": [
          "No orientation metadata detected; facing direction cannot be proven."
        ]
      },
      "nodeNames": [
        "RootNode",
        "RobotArmature",
        "Bone",
        "Foot.L",
        "Foot.L",
        "Foot.L_end",
        "Body",
        "Torso",
        "Hips",
        "Abdomen",
        "Torso",
        "Neck",
        "Head",
        "Head",
        "Head_end",
        "Shoulder.L",
        "Shoulder.L",
        "UpperArm.L",
        "Arm.L",
        "LowerArm.L",
        "Palm2.L",
        "Middle1.L",
        "Middle2.L",
        "Middle2.L_end",
        "Thumb.L",
        "Thumb2.L",
        "Thumb2.L_end",
        "Palm1.L",
        "Index.L",
        "Index2.L",
        "Index2.L_end",
        "Palm3.L",
        "Ring1.L",
        "Ring2.L",
        "Ring2.L_end",
        "Shoulder.R",
        "Shoulder.R",
        "UpperArm.R",
        "Arm.R",
        "LowerArm.R",
        "Palm2.R",
        "Middle1.R",
        "Middle2.R",
        "Middle2.R_end",
        "Thumb.R",
        "Thumb2.R",
        "Thumb2.R_end",
        "Palm1.R",
        "Index.R",
        "Index2.R",
        "Index2.R_end",
        "Palm3.R",
        "Ring1.R",
        "Ring2.R",
        "Ring2.R_end",
        "UpperLeg.L",
        "Leg.L",
        "LowerLeg.L",
        "LowerLeg.L",
        "LowerLeg.L_end",
        "UpperLeg.R",
        "Leg.R",
        "LowerLeg.R",
        "LowerLeg.R",
        "LowerLeg.R_end",
        "PoleTarget.L",
        "PoleTarget.L_end",
        "Foot.R",
        "Foot.R",
        "Foot.R_end",
        "PoleTarget.R",
        "PoleTarget.R_end",
        "Hand.R",
        "Hand.L"
      ],
      "thumbnailUrl": "/aura-assets/luma.thumb.svg",
      "warnings": [
        "no texture references detected",
        "orientation metadata missing; facing direction cannot be validated until GLTF extras declare aura3d.orientation.forwardAxis"
      ]
    },
    {
      "id": "miko",
      "type": "model",
      "format": "glb",
      "source": "../../../../fixtures/threejs-parity/assets/character/robot-expressive.glb",
      "outputPath": "public/aura-assets/miko.047f5e5f.glb",
      "url": "/aura-assets/miko.047f5e5f.glb",
      "hash": "sha256-047f5e5fb3bb6d378bd1df16ca6137f2a596c99b3a1b5690b4020c05aaf6f319",
      "sizeBytes": 463988,
      "bounds": [
        0.066,
        0.026,
        0.017
      ],
      "boundsMetadata": {
        "min": [
          -0.033,
          -0.013,
          -0.009
        ],
        "max": [
          0.033,
          0.013,
          0.008
        ],
        "size": [
          0.066,
          0.026,
          0.017
        ],
        "center": [
          0,
          0,
          0
        ],
        "maxDimension": 0.066,
        "grounded": true
      },
      "materials": [
        "Grey",
        "Main",
        "Black"
      ],
      "materialMetadata": [
        {
          "name": "Grey",
          "visible": true,
          "readable": true,
          "opacity": 1,
          "alphaMode": "OPAQUE",
          "reasons": []
        },
        {
          "name": "Main",
          "visible": true,
          "readable": true,
          "opacity": 1,
          "alphaMode": "OPAQUE",
          "reasons": []
        },
        {
          "name": "Black",
          "visible": true,
          "readable": true,
          "opacity": 1,
          "alphaMode": "OPAQUE",
          "reasons": []
        }
      ],
      "animations": [
        "Dance",
        "Death",
        "Idle",
        "Jump",
        "No",
        "Punch",
        "Running",
        "Sitting",
        "Standing",
        "ThumbsUp",
        "Walking",
        "WalkJump",
        "Wave",
        "Yes"
      ],
      "animationMetadata": {
        "clipCount": 14,
        "clips": [
          {
            "index": 0,
            "name": "Dance",
            "channelCount": 12,
            "samplerCount": 12,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "UpperArm.L",
              "LowerArm.L",
              "UpperArm.R",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          },
          {
            "index": 1,
            "name": "Death",
            "channelCount": 18,
            "samplerCount": 18,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Foot.L",
              "Body",
              "Shoulder.L",
              "LowerArm.L",
              "Shoulder.R",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "Foot.R"
            ]
          },
          {
            "index": 2,
            "name": "Idle",
            "channelCount": 7,
            "samplerCount": 7,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          },
          {
            "index": 3,
            "name": "Jump",
            "channelCount": 18,
            "samplerCount": 18,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Foot.L",
              "Body",
              "Neck",
              "UpperArm.L",
              "LowerArm.L",
              "UpperArm.R",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "Foot.R"
            ]
          },
          {
            "index": 4,
            "name": "No",
            "channelCount": 7,
            "samplerCount": 7,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          },
          {
            "index": 5,
            "name": "Punch",
            "channelCount": 15,
            "samplerCount": 15,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "UpperArm.L",
              "LowerArm.L",
              "Shoulder.R",
              "UpperArm.R",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "Foot.R"
            ]
          },
          {
            "index": 6,
            "name": "Running",
            "channelCount": 18,
            "samplerCount": 18,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Foot.L",
              "Body",
              "Neck",
              "UpperArm.L",
              "LowerArm.L",
              "Shoulder.R",
              "UpperArm.R",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "Foot.R"
            ]
          },
          {
            "index": 7,
            "name": "Sitting",
            "channelCount": 10,
            "samplerCount": 10,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "LowerArm.L",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          },
          {
            "index": 8,
            "name": "Standing",
            "channelCount": 10,
            "samplerCount": 10,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "LowerArm.L",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          },
          {
            "index": 9,
            "name": "ThumbsUp",
            "channelCount": 15,
            "samplerCount": 15,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "LowerArm.L",
              "UpperArm.R",
              "LowerArm.R",
              "Middle1.R",
              "Thumb.R",
              "Thumb2.R",
              "Index.R",
              "Ring1.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          },
          {
            "index": 10,
            "name": "Walking",
            "channelCount": 20,
            "samplerCount": 20,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Foot.L",
              "Body",
              "Neck",
              "UpperArm.L",
              "LowerArm.L",
              "Shoulder.R",
              "UpperArm.R",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "PoleTarget.L",
              "Foot.R",
              "PoleTarget.R"
            ]
          },
          {
            "index": 11,
            "name": "WalkJump",
            "channelCount": 18,
            "samplerCount": 18,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Foot.L",
              "Body",
              "Neck",
              "UpperArm.L",
              "LowerArm.L",
              "Shoulder.R",
              "UpperArm.R",
              "LowerArm.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "Foot.R"
            ]
          },
          {
            "index": 12,
            "name": "Wave",
            "channelCount": 18,
            "samplerCount": 18,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "Shoulder.R",
              "UpperArm.R",
              "LowerArm.R",
              "Middle1.R",
              "Middle2.R",
              "Thumb.R",
              "Thumb2.R",
              "Index.R",
              "Index2.R",
              "Ring1.R",
              "Ring2.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          },
          {
            "index": 13,
            "name": "Yes",
            "channelCount": 7,
            "samplerCount": 7,
            "targetPaths": [
              "weights",
              "translation",
              "rotation"
            ],
            "targetNodes": [
              "Head",
              "Body",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R"
            ]
          }
        ],
        "messages": [
          "Detected 14 embedded animation clips."
        ]
      },
      "humanoid": {
        "humanoid": true,
        "status": "humanoid",
        "confidence": "high",
        "skinCount": 2,
        "jointCount": 43,
        "matchedBones": [
          "hips",
          "spine",
          "head",
          "leftArm",
          "rightArm",
          "leftLeg",
          "rightLeg"
        ],
        "missingBones": [],
        "messages": [
          "Humanoid signals detected from skinned joints."
        ]
      },
      "skeleton": {
        "skinCount": 2,
        "jointCount": 43,
        "skins": [
          {
            "index": 0,
            "name": "skin-0",
            "jointCount": 43,
            "joints": [
              "Bone",
              "Foot.L",
              "Body",
              "Hips",
              "Abdomen",
              "Torso",
              "Neck",
              "Head",
              "Shoulder.L",
              "UpperArm.L",
              "LowerArm.L",
              "Palm2.L",
              "Middle1.L",
              "Middle2.L",
              "Thumb.L",
              "Thumb2.L",
              "Palm1.L",
              "Index.L",
              "Index2.L",
              "Palm3.L",
              "Ring1.L",
              "Ring2.L",
              "Shoulder.R",
              "UpperArm.R",
              "LowerArm.R",
              "Palm2.R",
              "Middle1.R",
              "Middle2.R",
              "Thumb.R",
              "Thumb2.R",
              "Palm1.R",
              "Index.R",
              "Index2.R",
              "Palm3.R",
              "Ring1.R",
              "Ring2.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "PoleTarget.L",
              "Foot.R",
              "PoleTarget.R"
            ],
            "skeleton": "Bone"
          },
          {
            "index": 1,
            "name": "skin-1",
            "jointCount": 43,
            "joints": [
              "Bone",
              "Foot.L",
              "Body",
              "Hips",
              "Abdomen",
              "Torso",
              "Neck",
              "Head",
              "Shoulder.L",
              "UpperArm.L",
              "LowerArm.L",
              "Palm2.L",
              "Middle1.L",
              "Middle2.L",
              "Thumb.L",
              "Thumb2.L",
              "Palm1.L",
              "Index.L",
              "Index2.L",
              "Palm3.L",
              "Ring1.L",
              "Ring2.L",
              "Shoulder.R",
              "UpperArm.R",
              "LowerArm.R",
              "Palm2.R",
              "Middle1.R",
              "Middle2.R",
              "Thumb.R",
              "Thumb2.R",
              "Palm1.R",
              "Index.R",
              "Index2.R",
              "Palm3.R",
              "Ring1.R",
              "Ring2.R",
              "UpperLeg.L",
              "LowerLeg.L",
              "UpperLeg.R",
              "LowerLeg.R",
              "PoleTarget.L",
              "Foot.R",
              "PoleTarget.R"
            ],
            "skeleton": "Bone"
          }
        ],
        "messages": [
          "Detected 2 skins with 43 unique joints."
        ]
      },
      "morphTargets": {
        "targetCount": 3,
        "targetNames": [
          "Angry",
          "Surprised",
          "Sad"
        ],
        "meshes": [
          {
            "index": 2,
            "name": "Head",
            "targetNames": [
              "Angry",
              "Surprised",
              "Sad"
            ]
          }
        ],
        "messages": [
          "Detected 3 morph targets."
        ]
      },
      "provenance": {
        "sourcePath": "../../../../fixtures/threejs-parity/assets/character/robot-expressive.glb",
        "checkedAt": "2026-06-06T23:22:20.212Z"
      },
      "textures": [],
      "dependencies": [],
      "orientation": {
        "source": "unknown",
        "messages": [
          "No orientation metadata detected; facing direction cannot be proven."
        ]
      },
      "nodeNames": [
        "RootNode",
        "RobotArmature",
        "Bone",
        "Foot.L",
        "Foot.L",
        "Foot.L_end",
        "Body",
        "Torso",
        "Hips",
        "Abdomen",
        "Torso",
        "Neck",
        "Head",
        "Head",
        "Head_end",
        "Shoulder.L",
        "Shoulder.L",
        "UpperArm.L",
        "Arm.L",
        "LowerArm.L",
        "Palm2.L",
        "Middle1.L",
        "Middle2.L",
        "Middle2.L_end",
        "Thumb.L",
        "Thumb2.L",
        "Thumb2.L_end",
        "Palm1.L",
        "Index.L",
        "Index2.L",
        "Index2.L_end",
        "Palm3.L",
        "Ring1.L",
        "Ring2.L",
        "Ring2.L_end",
        "Shoulder.R",
        "Shoulder.R",
        "UpperArm.R",
        "Arm.R",
        "LowerArm.R",
        "Palm2.R",
        "Middle1.R",
        "Middle2.R",
        "Middle2.R_end",
        "Thumb.R",
        "Thumb2.R",
        "Thumb2.R_end",
        "Palm1.R",
        "Index.R",
        "Index2.R",
        "Index2.R_end",
        "Palm3.R",
        "Ring1.R",
        "Ring2.R",
        "Ring2.R_end",
        "UpperLeg.L",
        "Leg.L",
        "LowerLeg.L",
        "LowerLeg.L",
        "LowerLeg.L_end",
        "UpperLeg.R",
        "Leg.R",
        "LowerLeg.R",
        "LowerLeg.R",
        "LowerLeg.R_end",
        "PoleTarget.L",
        "PoleTarget.L_end",
        "Foot.R",
        "Foot.R",
        "Foot.R_end",
        "PoleTarget.R",
        "PoleTarget.R_end",
        "Hand.R",
        "Hand.L"
      ],
      "thumbnailUrl": "/aura-assets/miko.thumb.svg",
      "warnings": [
        "no texture references detected",
        "orientation metadata missing; facing direction cannot be validated until GLTF extras declare aura3d.orientation.forwardAxis"
      ]
    }
  ]
}
