{"name":"Rally App API","hint":"Source primaire eWRC via EWRC_API_BASE (proxy Tailscale recommandé).","workflow":["1. GET /races/results ou /races/upcoming → calendrier eWRC filtré","2. GET /races/events/:eventId/… → engagés, spéciales, classements"],"routes":[{"method":"GET","path":"/health","example":"/health"},{"method":"GET","path":"/ready","example":"/ready"},{"method":"GET","path":"/health/ewrc","example":"/health/ewrc"},{"method":"GET","path":"/races/results","query":{"offset":"0","search":"","resultsOnly":"true"},"example":"/races/results?resultsOnly=true"},{"method":"GET","path":"/races/upcoming","query":{"offset":"0","search":""},"example":"/races/upcoming"},{"method":"GET","path":"/races/events/:eventId/engages","example":"/races/events/99073/engages"},{"method":"GET","path":"/races/events/:eventId/special-stages","example":"/races/events/99073/special-stages"},{"method":"GET","path":"/races/events/:eventId/special-stages/:n/classification","query":{"type":"manche | cumul"},"example":"/races/events/99073/special-stages/1/classification?type=cumul"},{"method":"GET","path":"/races/events/:eventId/classification/final","example":"/races/events/99073/classification/final"}]}