I have been using Haskell’s Servant library for the specification of a rather large API. There are over 100 or so endpoints, and some records with dozens of fields.