Repository navigation
Publish the tennis data vocabulary page and JSON - #15
Open
bensynapse wants to merge 2 commits into
Open
bensynapse wants to merge 2 commits into
bensynapse wants to merge 2 commits into
Conversation
added 2 commits
November 6, 2026 12:33
Developers joining tennis data keep asking what a tier, round or level code means, and public datasets disagree with each other. The API already has closed vocabularies for all of these, spread across the spec. The generator now writes tennis-data-vocabulary.html and tennis-data-vocabulary.json from openapi.yaml: 22 vocabularies and 164 codes, each with its meaning and its own link. Every code in the spec must have a meaning in VOCABULARIES or the build fails, so a new code cannot ship undocumented. The page is linked from the hub, the topic menu, the sitemap and llms.txt.
The archive level codes are now read from the parameter text, so a new code fails the build. The page says Q is not an archive filter value and says where a field can be null or a list can grow. Stoppage events name a player only where the feed carries one. Neutral meanings for completed, Unresolved and ER.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
tennis-data-vocabulary.htmlandtennis-data-vocabulary.jsonto the docs. They say what each code the API returns means. The codes cover tournaments, rounds, surfaces, match results, event types, rankings, points and shots. That is 22 vocabularies and 164 codes, each with its own link.Why
People joining tennis data keep running into codes that public datasets define differently. Masters is
Min some andFin others, and ATP 500 and 250 share one letter. The spec already holds closed vocabularies for all of this, but spread across schemas. One page with a link per code gives a schema, a README or a column note something stable to cite.How
scripts/build_reference.pyreads the codes fromopenapi.yaml. Every code needs a meaning inVOCABULARIES, or the build fails and names it. The archive?level=codes are read from that parameter's description, because it has no enum.sitemap.xml(with lastmod) andllms.txt.--check.Checks
python3 scripts/build_reference.py --checkandsh scripts/truthcheck.shpass.