found this gold nugget on API versioning by Stripe stripe.com/blog/api-ver.... Traditionally, you'd have multiple controller methods. Instead this uses a DSL to do mapping for downgrading/upgrading from a base schema.
stripe.com
APIs as infrastructure: future-proofing Stripe with versioning
APIs as infrastructure: future-proofing Stripe with versioning