Demiton · Schema

platform_obligation contract v1

The Platform obligation register contract, version 1. JSON Schema (draft 2020-12); x-demiton-* keywords carry Demiton's own meaning and standard validators ignore them.

CompanyConstructionCivil EngineeringProject ManagementComplianceMCPArtificial IntelligenceOpen Contracting

Properties

Name Type Description
duty string the duty in one sentence
kind string ENGINE ROUTING, not published: how the duty is measured against a project's registers - a cadence (`periodic`), a window after an anchor event (`event_bound`), a retention period (`retention`) or a st
grade string how close to the primary source the reading was
anchor object ENGINE ROUTING, not published: for an `event_bound` row, the event its window runs from (`register`, `date_field`, `target_date_field`)
caveat string what bounds this obligation
source string which of the seven sources the instrument belongs to
disease string which of the five diseases this obligation guards against
measure string ENGINE ROUTING, not published: the computation that judges this row, `kind` unless a named strategy overrides it
trigger string the event that starts this obligation's clock: the obligation's `trigger`, a key of vocab/event_types.json. Empty when the window is not anchored to an event
register string ENGINE ROUTING, not published: the tenant register this obligation is evaluated against
severity integer the contract-risk tier (1-4)
duty_shape string the duty this row states across instruments: the obligation's `duty_shape`, a key of vocab/duty_shapes.json
source_url string the primary source for this exact duty
consequence string what missing the duty costs, as the source states it
window_unit string unit of `window_value`
dispute_type string ENGINE ROUTING, not published: which of the five SM026 dispute-type buckets this obligation was transcribed from - a narrower, internal taxonomy the anchor map is keyed on, distinct from `disease`
jurisdiction jurisdiction where this obligation applies: the ISO 3166-1/3166-2 code
research_row string the row id in Demiton's own research record this obligation was transcribed from
source_title string the instrument's title
standard_key string the obligation's stable key, e.g. `payment.schedule_due.au-qld`
window_value number the cadence or window length in `window_unit`
evidence_kind string how this obligation is evidenced once switched on
in_force_from string the date this version starts to apply (ISO); absent on the original version
instrument_id string the instrument this obligation belongs to, e.g. `bif_act_2017_qld`
source_clause string the clause, section or paragraph
trigger_event object the `trigger`'s entry in vocab/event_types.json, resolved beside it: register, date field, subject, and the match, requires_item and reference fields that say which records count
approval_class string what kind of sign-off this obligation's evidence needs: the obligation's `approval_class`, a member of vocab/approval_classes.json
in_force_until string the last date this version applies (ISO); derived from the next version's start, or the end of a repealed duty
register_match object ENGINE ROUTING, not published: equality predicate on `register` selecting the evidence
threshold_unit string unit of `threshold_value`, e.g. `percent`
applies_to_form string the contract form this obligation is written for; `statute` for a legislative rule, `any` when form-independent
protection_type string the engine that runs this obligation once switched on
threshold_value number for a `threshold` obligation: the limit, or the labelled default when `threshold_set_by` is `org`
in_force_from_by string the selecting date that decides `in_force_from`: a key of vocab/selecting_dates.json
threshold_set_by string `library` (the limit is the instrument's) or `org` (the contractor sets its own at switch-on, and it is never published)
evidence_register string for evidence_kind=record_in_demiton|register|not_collected: the shelf_type
in_force_until_by string the selecting date that decides `in_force_until`: a key of vocab/selecting_dates.json
obligation_version string which dated version of this key the row states: its `in_force.from` date, or `original` when the key has no dated version (SM052)
threshold_direction string for a `threshold` obligation: `max` (a ceiling) or `min` (a floor), the side of the line that is strict
window_source_field string the `contract_terms` field whose value overrides `window_value` when the contract states its own window (SM030 decision 5: strictest wins)
citation_access_date string when the primary source was read
evidence_system_type string for evidence_kind=register only: the system type that would fill it
View JSON Schema on GitHub

JSON Schema

demiton-io-platform_obligation-v1-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/platform_obligation/v1.json",
  "title": "platform_obligation contract v1",
  "type": "object",
  "required": [
    "applies_to_form",
    "citation_access_date",
    "consequence",
    "disease",
    "dispute_type",
    "duty",
    "evidence_kind",
    "grade",
    "instrument_id",
    "jurisdiction",
    "kind",
    "protection_type",
    "register",
    "severity",
    "source",
    "source_title",
    "source_url",
    "standard_key"
  ],
  "properties": {
    "duty": {
      "type": "string",
      "description": "the duty in one sentence",
      "x-demiton-requiredness": "required"
    },
    "kind": {
      "type": "string",
      "description": "ENGINE ROUTING, not published: how the duty is measured against a project's registers - a cadence (`periodic`), a window after an anchor event (`event_bound`), a retention period (`retention`) or a standing condition (`state`)",
      "enum": [
        "periodic",
        "event_bound",
        "retention",
        "state"
      ],
      "x-demiton-requiredness": "required"
    },
    "grade": {
      "type": "string",
      "description": "how close to the primary source the reading was",
      "enum": [
        "primary_read",
        "primary_via_secondary",
        "demiton_default",
        "inherited"
      ],
      "x-demiton-requiredness": "required"
    },
    "anchor": {
      "type": "object",
      "description": "ENGINE ROUTING, not published: for an `event_bound` row, the event its window runs from (`register`, `date_field`, `target_date_field`)",
      "x-demiton-requiredness": "optional"
    },
    "caveat": {
      "type": "string",
      "description": "what bounds this obligation",
      "x-demiton-requiredness": "optional"
    },
    "source": {
      "type": "string",
      "description": "which of the seven sources the instrument belongs to",
      "enum": [
        "contract",
        "law",
        "principal",
        "approvals",
        "counterparties",
        "workforce",
        "own_commitments"
      ],
      "x-demiton-requiredness": "required"
    },
    "disease": {
      "type": "string",
      "description": "which of the five diseases this obligation guards against",
      "enum": [
        "rework",
        "overrun",
        "forfeited_entitlements",
        "disputes",
        "non_compliance"
      ],
      "x-demiton-requiredness": "required"
    },
    "measure": {
      "type": "string",
      "description": "ENGINE ROUTING, not published: the computation that judges this row, `kind` unless a named strategy overrides it",
      "x-demiton-requiredness": "optional"
    },
    "trigger": {
      "type": "string",
      "description": "the event that starts this obligation's clock: the obligation's `trigger`, a key of vocab/event_types.json. Empty when the window is not anchored to an event",
      "x-demiton-requiredness": "optional"
    },
    "register": {
      "type": "string",
      "description": "ENGINE ROUTING, not published: the tenant register this obligation is evaluated against",
      "x-demiton-requiredness": "required"
    },
    "severity": {
      "type": "integer",
      "description": "the contract-risk tier (1-4)",
      "x-demiton-requiredness": "required"
    },
    "duty_shape": {
      "type": "string",
      "description": "the duty this row states across instruments: the obligation's `duty_shape`, a key of vocab/duty_shapes.json",
      "x-demiton-requiredness": "optional"
    },
    "source_url": {
      "type": "string",
      "description": "the primary source for this exact duty",
      "x-demiton-requiredness": "required"
    },
    "consequence": {
      "type": "string",
      "description": "what missing the duty costs, as the source states it",
      "enum": [
        "barred",
        "reduced_per_day",
        "costs_excluded",
        "liable_full_amount",
        "damages_only",
        "offence",
        "breach",
        "guidance"
      ],
      "x-demiton-requiredness": "required"
    },
    "window_unit": {
      "type": "string",
      "description": "unit of `window_value`",
      "enum": [
        "hours",
        "days",
        "business_days",
        "working_days",
        "months"
      ],
      "x-demiton-requiredness": "optional"
    },
    "dispute_type": {
      "type": "string",
      "description": "ENGINE ROUTING, not published: which of the five SM026 dispute-type buckets this obligation was transcribed from - a narrower, internal taxonomy the anchor map is keyed on, distinct from `disease`",
      "x-demiton-requiredness": "required"
    },
    "jurisdiction": {
      "type": "jurisdiction",
      "description": "where this obligation applies: the ISO 3166-1/3166-2 code",
      "x-demiton-requiredness": "required"
    },
    "research_row": {
      "type": "string",
      "description": "the row id in Demiton's own research record this obligation was transcribed from",
      "x-demiton-requiredness": "optional"
    },
    "source_title": {
      "type": "string",
      "description": "the instrument's title",
      "x-demiton-requiredness": "required"
    },
    "standard_key": {
      "type": "string",
      "description": "the obligation's stable key, e.g. `payment.schedule_due.au-qld`",
      "x-demiton-requiredness": "required"
    },
    "window_value": {
      "type": "number",
      "description": "the cadence or window length in `window_unit`",
      "x-demiton-requiredness": "optional"
    },
    "evidence_kind": {
      "type": "string",
      "description": "how this obligation is evidenced once switched on",
      "enum": [
        "built_in",
        "record_in_demiton",
        "register",
        "not_collected"
      ],
      "x-demiton-requiredness": "required"
    },
    "in_force_from": {
      "type": "string",
      "description": "the date this version starts to apply (ISO); absent on the original version",
      "x-demiton-requiredness": "optional"
    },
    "instrument_id": {
      "type": "string",
      "description": "the instrument this obligation belongs to, e.g. `bif_act_2017_qld`",
      "x-demiton-requiredness": "required"
    },
    "source_clause": {
      "type": "string",
      "description": "the clause, section or paragraph",
      "x-demiton-requiredness": "optional"
    },
    "trigger_event": {
      "type": "object",
      "description": "the `trigger`'s entry in vocab/event_types.json, resolved beside it: register, date field, subject, and the match, requires_item and reference fields that say which records count",
      "x-demiton-requiredness": "optional"
    },
    "approval_class": {
      "type": "string",
      "description": "what kind of sign-off this obligation's evidence needs: the obligation's `approval_class`, a member of vocab/approval_classes.json",
      "enum": [
        "geotechnical",
        "quality",
        "safety_environment",
        "variations_claims",
        "payments",
        "general"
      ],
      "x-demiton-requiredness": "optional"
    },
    "in_force_until": {
      "type": "string",
      "description": "the last date this version applies (ISO); derived from the next version's start, or the end of a repealed duty",
      "x-demiton-requiredness": "optional"
    },
    "register_match": {
      "type": "object",
      "description": "ENGINE ROUTING, not published: equality predicate on `register` selecting the evidence",
      "x-demiton-requiredness": "optional"
    },
    "threshold_unit": {
      "type": "string",
      "description": "unit of `threshold_value`, e.g. `percent`",
      "x-demiton-requiredness": "optional"
    },
    "applies_to_form": {
      "type": "string",
      "description": "the contract form this obligation is written for; `statute` for a legislative rule, `any` when form-independent",
      "x-demiton-requiredness": "required"
    },
    "protection_type": {
      "type": "string",
      "description": "the engine that runs this obligation once switched on",
      "enum": [
        "watch",
        "countdown",
        "check",
        "threshold"
      ],
      "x-demiton-requiredness": "required"
    },
    "threshold_value": {
      "type": "number",
      "description": "for a `threshold` obligation: the limit, or the labelled default when `threshold_set_by` is `org`",
      "x-demiton-requiredness": "optional"
    },
    "in_force_from_by": {
      "type": "string",
      "description": "the selecting date that decides `in_force_from`: a key of vocab/selecting_dates.json",
      "x-demiton-requiredness": "optional"
    },
    "threshold_set_by": {
      "type": "string",
      "description": "`library` (the limit is the instrument's) or `org` (the contractor sets its own at switch-on, and it is never published)",
      "enum": [
        "library",
        "org"
      ],
      "x-demiton-requiredness": "optional"
    },
    "evidence_register": {
      "type": "string",
      "description": "for evidence_kind=record_in_demiton|register|not_collected: the shelf_type",
      "x-demiton-requiredness": "optional"
    },
    "in_force_until_by": {
      "type": "string",
      "description": "the selecting date that decides `in_force_until`: a key of vocab/selecting_dates.json",
      "x-demiton-requiredness": "optional"
    },
    "obligation_version": {
      "type": "string",
      "description": "which dated version of this key the row states: its `in_force.from` date, or `original` when the key has no dated version (SM052)",
      "x-demiton-requiredness": "optional"
    },
    "threshold_direction": {
      "type": "string",
      "description": "for a `threshold` obligation: `max` (a ceiling) or `min` (a floor), the side of the line that is strict",
      "enum": [
        "max",
        "min"
      ],
      "x-demiton-requiredness": "optional"
    },
    "window_source_field": {
      "type": "string",
      "description": "the `contract_terms` field whose value overrides `window_value` when the contract states its own window (SM030 decision 5: strictest wins)",
      "x-demiton-requiredness": "optional"
    },
    "citation_access_date": {
      "type": "string",
      "description": "when the primary source was read",
      "x-demiton-requiredness": "required",
      "format": "date",
      "x-demiton-type": "date"
    },
    "evidence_system_type": {
      "type": "string",
      "description": "for evidence_kind=register only: the system type that would fill it",
      "enum": [
        "finance",
        "site_and_field",
        "document_store"
      ],
      "x-demiton-requiredness": "optional"
    }
  },
  "x-demiton-register-type": "platform_obligation",
  "x-demiton-contract-version": "1.4.1",
  "x-demiton-store": "platform",
  "x-demiton-axes": [],
  "x-demiton-measures": [],
  "x-demiton-provenance": {
    "standards": []
  },
  "description": "The Platform obligation register contract, version 1. JSON Schema (draft 2020-12); x-demiton-* keywords carry Demiton's own meaning and standard validators ignore them.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/platform_obligation/",
  "x-demiton-register-catalog": "https://docs.demiton.io/concepts/register-catalog"
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/demiton-io-platform_obligation-v1"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.