{
  "schema": "NEXT11_V340_FIGURE_FOUR_MULTI_GRIP_SOURCE_CONTRACT_AUDIT",
  "pass": true,
  "currentStep": "Generalize the source contract from one grip intent to an ordered grips[] collection.",
  "stopBoundary": "STOP BEFORE receiver-sector derivation, multi-grip solver execution, arm/wrist solving, or finger solving.",
  "rows": [
    {
      "keyframe": "right_figure_four_peak",
      "pass": true,
      "grips": [
        {
          "gripSide": "L",
          "axis": [
            "R_Foot",
            "R_Calf"
          ],
          "role": "foot_ankle",
          "hasTemporalSector": false
        },
        {
          "gripSide": "R",
          "axis": [
            "R_Calf",
            "R_Thigh"
          ],
          "role": "knee_proximal_shin",
          "hasTemporalSector": false
        }
      ]
    },
    {
      "keyframe": "left_figure_four_peak",
      "pass": true,
      "grips": [
        {
          "gripSide": "R",
          "axis": [
            "L_Foot",
            "L_Calf"
          ],
          "role": "foot_ankle",
          "hasTemporalSector": false
        },
        {
          "gripSide": "L",
          "axis": [
            "L_Calf",
            "L_Thigh"
          ],
          "role": "knee_proximal_shin",
          "hasTemporalSector": false
        }
      ]
    }
  ]
}