{
  "tool_id": "workout_volume",
  "slug": "workout-volume-calculator",
  "path": "/workout-volume-calculator/",
  "mode": "engine_module",
  "usage": "Client-side calculator. Open https://aifithub.io/workout-volume-calculator/ and fill in the inputs; results render in-browser. Also importable as ES module from https://aifithub.io/engines/workout-volume-calculator.js — call compute(input) with the JSON shape below.",
  "methodology": "https://aifithub.io/methodology/workout-volume-calculator/",
  "sample_input": {
    "tool": "workout_volume",
    "exercises": [
      {
        "name": "Bench Press",
        "muscle_group": "chest",
        "sets": 4,
        "reps": 8,
        "weight": 185
      },
      {
        "name": "Incline DB Press",
        "muscle_group": "chest",
        "sets": 3,
        "reps": 10,
        "weight": 60
      },
      {
        "name": "Cable Fly",
        "muscle_group": "chest",
        "sets": 3,
        "reps": 12,
        "weight": 30
      }
    ]
  },
  "input_schema": {
    "type": "object",
    "properties": {
      "tool": {
        "type": "string"
      },
      "exercises": {
        "type": "array",
        "items": {
          "type": "object"
        }
      }
    },
    "required": [
      "tool",
      "exercises"
    ]
  },
  "output_schema": {
    "type": "object",
    "properties": {
      "exercises": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "muscleGroup": {
              "type": "string"
            },
            "sets": {
              "type": "number"
            },
            "reps": {
              "type": "number"
            },
            "weightKg": {
              "type": "number"
            },
            "volumeLoad": {
              "type": "number"
            }
          }
        }
      },
      "muscleGroups": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "muscleGroup": {
              "type": "string"
            },
            "totalSets": {
              "type": "number"
            },
            "totalVolumeLoad": {
              "type": "number"
            },
            "optimalMin": {
              "type": "number"
            },
            "optimalMax": {
              "type": "number"
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "totalVolumeLoad": {
        "type": "number"
      },
      "totalSets": {
        "type": "number"
      }
    }
  }
}
