{
  "tool_id": "swim_pace_calculator",
  "slug": "swim-pace-calculator",
  "path": "/swim-pace-calculator/",
  "mode": "engine_module",
  "usage": "Client-side calculator. Open https://aifithub.io/swim-pace-calculator/ and fill in the inputs; results render in-browser. Also importable as ES module from https://aifithub.io/engines/swim-pace-calculator.js — call compute(input) with the JSON shape below.",
  "methodology": "https://aifithub.io/methodology/swim-pace-calculator/",
  "sample_input": {
    "tool": "swim_pace_calculator",
    "mode": "pace",
    "stroke_type": "freestyle",
    "distance_value": 1500,
    "distance_unit": "m",
    "laps": 0,
    "pool_length": 25,
    "pool_length_unit": "m",
    "time_seconds": 1800,
    "target_pace_seconds": 120,
    "target_pace_unit": "100m"
  },
  "input_schema": {
    "type": "object",
    "properties": {
      "tool": {
        "type": "string"
      },
      "mode": {
        "type": "string"
      },
      "stroke_type": {
        "type": "string"
      },
      "distance_value": {
        "type": "number"
      },
      "distance_unit": {
        "type": "string"
      },
      "laps": {
        "type": "number"
      },
      "pool_length": {
        "type": "number"
      },
      "pool_length_unit": {
        "type": "string"
      },
      "time_seconds": {
        "type": "number"
      },
      "target_pace_seconds": {
        "type": "number"
      },
      "target_pace_unit": {
        "type": "string"
      }
    },
    "required": [
      "tool",
      "mode",
      "stroke_type",
      "distance_unit",
      "pool_length_unit",
      "target_pace_unit"
    ]
  },
  "output_schema": {
    "type": "object",
    "properties": {
      "distanceMeters": {
        "type": "number"
      },
      "distanceYards": {
        "type": "number"
      },
      "totalTimeSeconds": {
        "type": "number"
      },
      "pacePer100mSeconds": {
        "type": "number"
      },
      "pacePer100ydSeconds": {
        "type": "number"
      },
      "swolfEstimate": {
        "type": "number"
      },
      "effortZone": {
        "type": "string"
      },
      "strokeType": {
        "type": "string"
      }
    }
  }
}
