{
  "schema_version": "0.1",
  "name": "river-call",
  "description": "River pot-odds / MDF calculator: required equity to call, minimum defense frequency, and bluffer’s needed fold frequency (alpha). Keeps alpha distinct from call break-even.",
  "homepage": "https://dev.luling.xyz/river-call/",
  "version": "0.1.0",
  "entrypoints": [
    {
      "name": "compute",
      "description": "Compute required equity, MDF, and alpha from pot and bet.",
      "method": "GET",
      "url": "https://dev.luling.xyz/river-call/?pot={pot}&bet={bet}&format=json",
      "parameters": {
        "pot": { "type": "number", "required": true, "description": "Pot size before the bet" },
        "bet": { "type": "number", "required": true, "description": "Bet size facing the caller" },
        "format": { "type": "string", "enum": ["json"], "description": "Return machine JSON" }
      },
      "response": {
        "status": "ok | error",
        "pot": "number",
        "bet": "number",
        "requiredEquity": "number (0–1)",
        "mdf": "number (0–1)",
        "alpha": "number (0–1) — bluffer’s needed fold frequency; NOT call break-even",
        "formulas": "object"
      }
    }
  ],
  "notes": [
    "requiredEquity = bet / (pot + 2·bet) — also the bluff-catch break-even vs a pure bluff",
    "mdf = pot / (pot + bet)",
    "alpha = bet / (pot + bet) = 1 − MDF — bluffer’s needed fold frequency only",
    "Static page: format=json is rendered by page JS; arithmetic is deterministic and trivial to reimplement."
  ]
}
