{"openapi":"3.0.3","info":{"title":"Chuck Norris MPP","version":"0.1.0","description":"Chuck Norris jokes for $0.04 via MPP (tempo) or x402."},"servers":[{"url":"https://chuck-norris.club"}],"paths":{"/chuck/joke":{"post":{"summary":"Get a Chuck Norris joke","description":"Returns a random Chuck Norris joke. Paid: $0.04 per call via either rail — x402 (X-PAYMENT, scheme exact, Base mainnet USDC) or MPP (Authorization: Payment, tempo/charge). Unpaid requests receive HTTP 402 carrying both an x402 accepts[] block and a WWW-Authenticate: Payment challenge.","x-payment-info":{"mode":"fixed","price":"$0.04","method":"x402","intent":"charge"},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"A Chuck Norris joke (paid_via: x402 | mpp/tempo)"},"402":{"description":"Payment Required — x402 accepts[] block AND WWW-Authenticate: Payment challenge (pay with either)"}}}},"/chuck/joke/mpp":{"post":{"summary":"Get a Chuck Norris joke (tempo-only variant)","description":"Returns a random Chuck Norris joke. Paid: $0.04 per call via MPP (Authorization: Payment, tempo/charge). Unpaid requests receive HTTP 402 with a WWW-Authenticate: Payment challenge and no x402 block. The dual-rail route is POST /chuck/joke.","x-payment-info":{"mode":"fixed","price":"$0.04","method":"tempo","intent":"charge"},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"A Chuck Norris joke (paid_via: mpp/tempo)"},"402":{"description":"Payment Required — WWW-Authenticate: Payment challenge (tempo/charge)"}}}},"/chuck/joke/gen":{"get":{"summary":"Deterministically generate a joke (free)","description":"Free, no payment. Returns joke #seed from a finite ordered joke space compiled from a typed graph — a pure function of the seed (same seed → same joke). Params: seed (int), n (1–50).","x-payment-info":{"authMode":"none","mode":"free"},"parameters":[{"name":"seed","in":"query","schema":{"type":"integer"}},{"name":"n","in":"query","schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"Deterministically generated jokes + the graph path"}}}}}}