A suggested way forward for property packs in England. One worked proposal — not a standard, and endorsed by nobody.
This is a suggestion, not a standard.
Everything here — the component register, the identifiers, the envelope, the licence boundaries, the version policy — is one worked proposal for how a residential property pack in England could be described. It is an indication of a possible trajectory, published early and openly so that it can be argued with, adopted in part, or replaced by something better.
No government department, regulator, accreditation body or trade association has endorsed it. Nothing here is required of anyone, and nothing here describes what a property pack will contain — only what one could contain, for the reasons set out alongside it.
Open schemas, vocabularies and registers describing one suggested shape for an
English residential property pack. Interchange format:
ukpp.pack.v1. Everything is published from
the repository,
which is where the reasoning behind each decision lives.
| Artefact | Address | Licence |
|---|---|---|
| Component register 27 components with permanent identifiers |
schema/v1/components.json |
CC-BY-4.0 |
| Provenance envelope Five verification states, five legal statuses |
schema/v1/envelope.schema.jsonschema/v1/envelope.ts |
CC-BY-4.0 |
| Handoff bundle The ukpp.pack.v1 interchange format |
schema/v1/bundle.schema.json |
CC-BY-4.0 |
| Question definition The shape of a question, not any bank's content |
schema/v1/question.schema.json |
CC-BY-4.0 |
| Rule result An explainable determination and its evidence |
schema/v1/rule-result.schema.jsonschema/v1/rule-result.ts |
CC-BY-4.0 |
| Notification and hook A reminder, and an outbound partner event |
schema/v1/notification.schema.jsonschema/v1/hook.schema.json |
CC-BY-4.0 |
| Reference validator and conformance fixtures Code, not published at an address |
schema/validator/schema/fixtures/ |
Apache-2.0 |
| Editorial commons Licensed and gated; intentionally empty so far |
commons/v1/ |
CC-BY-SA-4.0 |
The .ts files link to the GitHub blob view rather than to this
site: GitHub Pages serves .ts as video/mp2t, so a
browser offers to download them rather than display them. Each has a JSON
Schema twin served here as JSON.
Each $id is the literal path the file is served from. The version
sits in the directory rather than only in the identifier, so no build step
exists that could let the two drift apart, and a future v2 would
be a sibling directory rather than a rewrite. A format nobody can dereference
is a file, not a reference.
The 27 identifiers in the register — epc,
leasehold-terms, standard-searches and the rest
— are the part of this project most worth copying. Two products cannot
exchange a pack without agreeing on what the pieces are called. The vocabulary
is licensed CC-BY-4.0 rather than share-alike precisely so that anyone,
including a direct competitor, can emit these identifiers without friction.
That is the intended outcome, not a concession.
Because other people may come to depend on them, changing a published identifier is governed by the version policy rather than by ordinary review. Stability is a courtesy to anyone who adopts them. It is not a claim that this decomposition is correct.
The reference validator and the conformance fixtures exist, but no version has been tagged, and a claim of conformance has to name the version it is a claim about.
Once v1.0.0 is tagged, conformance means exactly one thing:
an implementation conforms to a version if the bundles it emits validate
against that version's published schemas, and it passes that version's
published conformance fixtures. That is a statement about interoperating
with this proposal. It is not a mark of quality, an
endorsement, a certification, or evidence that anything is compliant with any
legal requirement.
This project publishes no property records and no personal data, and it never will.
"Open source" and "open data" are routinely read as the same thing, and they are not. What is published here describes what a pack is. No user record, no uploaded document, no access log and no identity evidence is ever published here. Any service built on these artefacts holds that material privately; the artefacts describe its shape, never its contents.
The register carries two dates and they are different facts.
lastCheckedAt is when the regulatory position was last checked.
sourceUrlsResolvedAt is when the links were last confirmed to
resolve. They are separate fields holding separate values, because conflating
them is what quietly turns a maintained document into a stale one that still
looks maintained.