We ship a document-review API from a Go service at Landvex. Today the report is six named dimensions, each verified / deviation / unclear. There is no overall score, and I want to keep it that way.
What I’m not sure about: we may need a seventh question later, or we may need to split one of the six once we understand a document family better.
- Do you treat the dimensions as an extensible list in the JSON (clients must ignore unknown names), or as a closed struct that forces a v2?
- How do you stop an old client from inventing a summary score the moment it sees a list instead of six fixed fields?
- Any Go API design you regretted here — protobuf enums that couldn’t grow, or a map that became a junk drawer?
I’d rather version honestly than paint ourselves into a corner.