Research
··4 min readWhat we have set up: one register for the standards we build on
We keep one public register of the 78 external standards the Bundu, Mukoko and Nyuchi platform builds on, served from one address and pinned by hash. Here is what is built, what is only decided, and why we did it.

Every system that stores data has to answer a small, boring question: which rulebook are we following? If different parts of a platform answer differently, the data stops fitting together, and nobody notices until something breaks.
We noticed. This is what we did about it.
The drift we found
On 29 October 2026 we compared the list of standards in our written register with the list in the database that is meant to mirror it. They disagreed. The register named 70 standards and the database held 66. Four were missing from the database (bags, csvw, nist_sp_800_63_4 and sd_jwt_vc). The register's own page said the database held one document. The database still named an old repository that no longer existed under that name.
None of that was dramatic. It is the ordinary result of the same fact being written down in several places. We treat it as a defect, because a register that is allowed to drift is not a register.
The rule
The owner's rule, set on 29 October 2026, is short:
If a standard does not exist we build one and publish it. Otherwise we adopt the global standard.
Data that arrives from another source and does not match is converted at the edge. Only the standard form is stored or served: Climate and Forecast names, UCUM units, ISO codes, WIGOS station identifiers. A provider's own field names and units never become ours.
In practice that means a wind speed that arrives in knots is stored in metres per second with its unit written as the UCUM code m/s, not as a number whose unit lives in someone's head.
What is built today
These exist and you can check each one yourself (the next article says how):
- One home for the register.
bundu-labs/bundu-standardsis public. The register lives inregister/register.yaml, and two files are generated from it: a readableREGISTER.mdand a seed for the database. - 78 standards, 77 adopted and 1 proposed. Each has a version we are committing to, who stewards it, why we chose it and where the specification is. The one still proposed is
sd_jwt_vc. - A public address.
standards.bundu.orgshows the register as pages, one per standard, and as JSON. Each page carries schema.orgDefinedTermdata so other systems can read it. - Files pinned by hash. A repository that needs the register records a commit and the SHA-256 of each file, then refuses any download that does not match. Our data infrastructure repository does exactly this in its continuous integration, with no credential, because the register is public.
- A drift check. The database collection is seeded from the register, and a command compares the live collection with the register and reports any difference.
What changed this week
On 30 October we adopted eight standards that our weather and agriculture work needed and the register lacked: UCUM (units), SOSA/SSN (the shape of an observation), OGC SensorThings (serving station data), WMDR (what is recorded about an observing station), WIS2 (the global exchange of weather observations), OGC API Features, SDMX (statistical series) and the OCHA Common Operational Datasets (administrative place codes).
We read each one at its source before adopting it, and we corrected two links we had first written from memory. Two of them returned not found.
What is decided but not built yet
We would rather say this plainly than let it read as finished:
- The canonical data model still lives in another repository. Moving it into the standards repository is planned, not done.
- A scheduled job that runs the drift check automatically is planned, not running.
- The conversion of weather-station feeds to standard names and units is in review in the weather codebase. It is not yet in production.
- The site's own automated deployment is not switched on. The live site was deployed by hand.
Why this matters to people, not only to engineers
A farmer reading rainfall, a school running a weather station, a clinic reading a forecast: none of them should have to care which provider a number came from. They should get a rainfall figure in millimetres and a place that has one name. Standards are how a number keeps its meaning as it moves between systems, and how a community-run station and a national met service can end up in the same picture.
That is also why the register is public. Anyone can check which standards we follow, argue with a choice, or adopt the same list.
Where to look
Start at standards.bundu.org/register. The companion article, How to see what we have built, walks through it with commands you can paste.