Ok, after a decent amount of research all i can really find is:
https://digital-preservation.github.io/csv-schema/#toc4Not in love. Doesn't really handle nested arrays/ objects. Also doesn't generate human readable documentation.
Worried I may have to roll my own :(, but this feels like it is a solved problem.
Breaking it down into 3 sections:
1. Schema Definition
2. Documentation (Autogenerated from schema)
3. Deserialization that applies type constraints and validation
I'd be happy with the first 2 and to take care of deserialization myself. Something with all three rolled into one would be lovely.
The major requirement i haven't been able to find support for are nested objects or arrays in a csv.
Example header:
firstname, lastname, contact_0, contact_1, contact_2, address.address_1.1, address.address_2.1, address.zip.1, address.state.1, address.address_1.2, address.address_2.2, address.zip.2, address.state.2,