property-pack

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.

The published artefacts

ArtefactAddressLicence
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.json
schema/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.json
schema/v1/rule-result.ts
CC-BY-4.0
Notification and hook
A reminder, and an outbound partner event
schema/v1/notification.schema.json
schema/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.

What the component identifiers are for

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.

Conformance is not yet claimable

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.

Open source is not open data

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.

How the dates work

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.