tiffany.systems

Laboratory › Developers › Schemas

Schemas

15 published schemas. Every document this site emits is validated against its schema during the build, and a failure stops the build — so these are enforced contracts, not documentation that drifted.

Draft 2020-12. Canonical URIs are their published URLs; the OpenAPI document references them by URL rather than copying them, so there is exactly one definition of each.

SchemaVersionDescribesDownload
ApiIndex 1.0.0 The entry point document. A client that knows only the base URL can discover every other public document from here. api-index.schema.json
ResearchBundle 1.0.0 A self-describing, portable scientific record. Designed to stay intelligible and checkable if tiffany.systems, its database and its search index all disappear. bundle.schema.json
Changes 1.0.0 Scientific state changes, newest first. This feed carries weakening changes — executed falsifiers, new limitations, supersessions, withdrawals — not only publications. changes.schema.json
ClaimHistory 1.0.0 Every version of one claim identity, oldest first. Supersession and withdrawal never remove a version from this list. claim-history.schema.json
ClaimIndex 1.0.0 A list of claim identities. The scientific index and the fixture index share this shape so a client cannot be surprised by which one it is reading — the classification field is what distinguishes them. claim-index.schema.json
ClaimView 1.0.0 One immutable claim version with everything a machine client needs to decide what it may and may not conclude: the record itself, its identity and digest, the evidence coverage map, the deterministic policy decisions, and the semantic diff against the previous version. claim-view.schema.json
Claim 1.0.0 One immutable version of one scientific claim. The claim, not the paper, is the unit of publication. claim.schema.json
Delegation 1.0.0 A grant of specific authority to a specific actor, bounded in scope, environment and time. No delegation exists today; the registry is empty and every rung of the ladder is held by nobody. A delegation grants operational permission only — it can never make content scientifically qualified. delegation.schema.json
ApiError 1.0.0 The envelope returned by an implemented Tiffany API endpoint when it fails. It does not govern requests to unknown or nonexistent paths: those never reach a Tiffany endpoint and are answered by the hosting layer, which may return its own native response. Fixed in advance so the shape cannot be invented differently later under pressure. error.schema.json
OperationEnvelope 1.0.0 One proposed machine operation against the canonical record model. This is a contract, not a live endpoint: nothing on this site accepts an envelope over the network, and no actor holds a delegation that would let one execute. Unknown fields fail closed, because a field the contract does not model may be the one carrying the claim. operation-envelope.schema.json
OperationResult 1.0.0 The deterministic outcome of evaluating an operation envelope. Machine-readable throughout: a stop reason is typed data, not a sentence in a log that something later has to parse. operation-result.schema.json
PortalResource 1.0.0 The canonical input contract for anything Tiffany offers or may one day offer. One record drives the human page and the machine document, so the two cannot disagree. Every optional field means UNKNOWN when absent and stays absent until an authorised input supplies it — the renderer never writes prose to cover a gap, and the ingestion validator rejects a record that asserts availability, capability or release without the object that would justify it. portal-resource.schema.json
QueryResult 1.0.0 The answer to one bounded, named question, precomputed at build time. There is no query language and no execution surface. query-result.schema.json
ResourceIndex 1.0.0 Every public resource record, with four status dimensions kept separate: development state, scientific status, release status and access. A client must not merge them — they answer different questions and frequently disagree, and a resource in discovery is neither a product awaiting release nor a product that failed. resource-index.schema.json
Status 1.0.0 What is published, what is sealed, what is deferred. Operational state only — nothing here is evidence about any claim. status.schema.json

Validate a response yourself

curl -s https://tiffany.systems/api/schema/claim-view.schema.json -o claim-view.schema.json
curl -s https://tiffany.systems/api/demo/claims/demo-0001/v2.json -o v2.json
# then validate with any draft 2020-12 validator

Compatibility

  • A new optional field is additive and does not change a schema version or the contract version.
  • A removed field, a retyped field or a narrowed enum is breaking: new schema version and new contract version.
  • additionalProperties: false throughout. A response will never carry a field the schema does not name — which is what stops something like a confidence score appearing by accident.
  • Old records stay interpretable under the schema version they name. A record carries its own schema field for exactly this reason.

Not published here

Schemas for credentials, entitlements, private audit events and internal infrastructure are not published, because those objects do not exist yet and publishing their shape would describe a system nobody has built. When they exist, only the parts a public client must understand will be published.

Three reference documents — /api/ontology.json, /api/policy.json and /api/deferred.json — have no envelope schema. They are self-describing: the definitions and rules they contain are the contract, and wrapping them in a schema would add a layer without adding a guarantee.

PreviousReference

NextErrors