Demiton · Schema

entity_attribute contract v1

One key/value attribute on a project, worker, asset or other entity, such as a project's stage.

CompanyConstructionCivil EngineeringProject ManagementComplianceMCPArtificial IntelligenceOpen Contracting

Properties

Name Type Description
value string the resolved canonical value: the OC4IDS phase, employment state, opportunity outcome, and so on
evidence object the raw resolver signals reconciled to produce the value, kept for auditability
confidence number the resolver's confidence in the value; 1.0 on both resolvers today
shelf_type string the pattern instance `entity_attribute:{key}`; today the only carrier of the attribute identity and of the per-key supersede bucket
asserted_at string when the value was last asserted by the resolver (`valid_from`, defaulting to write time)
valid_until string the supersession stamp; the live row is `valid_until IS NULL`, and superseded values are retained as an audit trail
legal_entity integer the legal entity the assertion is scoped to when the producer knows it
attribute_key string the canonical attribute this row asserts — `stage`, `employment_status`, `outcome`, `value`, `closed_date`, `project_manager` observed; 19 keys declared in all
financial_period string the financial period the assertion is scoped to when the producer knows it
subject_entity_id integer the project, worker, asset or opportunity the attribute is about; the shared subject of the row
View JSON Schema on GitHub

JSON Schema

demiton-io-entity_attribute-v1-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/entity_attribute/v1.json",
  "title": "entity_attribute contract v1",
  "type": "object",
  "required": [
    "asserted_at",
    "attribute_key",
    "shelf_type",
    "subject_entity_id",
    "value"
  ],
  "properties": {
    "value": {
      "type": "string",
      "description": "the resolved canonical value: the OC4IDS phase, employment state, opportunity outcome, and so on",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "per the key (none today carries a unit)"
    },
    "evidence": {
      "type": "object",
      "description": "the raw resolver signals reconciled to produce the value, kept for auditability",
      "x-demiton-requiredness": "optional"
    },
    "confidence": {
      "type": "number",
      "description": "the resolver's confidence in the value; 1.0 on both resolvers today",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "ratio"
    },
    "shelf_type": {
      "type": "string",
      "description": "the pattern instance `entity_attribute:{key}`; today the only carrier of the attribute identity and of the per-key supersede bucket",
      "x-demiton-requiredness": "required"
    },
    "asserted_at": {
      "type": "string",
      "description": "when the value was last asserted by the resolver (`valid_from`, defaulting to write time)",
      "x-demiton-requiredness": "required",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "valid_until": {
      "type": "string",
      "description": "the supersession stamp; the live row is `valid_until IS NULL`, and superseded values are retained as an audit trail",
      "x-demiton-requiredness": "optional",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "legal_entity": {
      "type": "integer",
      "description": "the legal entity the assertion is scoped to when the producer knows it",
      "x-demiton-requiredness": "optional"
    },
    "attribute_key": {
      "type": "string",
      "description": "the canonical attribute this row asserts — `stage`, `employment_status`, `outcome`, `value`, `closed_date`, `project_manager` observed; 19 keys declared in all",
      "x-demiton-requiredness": "required"
    },
    "financial_period": {
      "type": "string",
      "description": "the financial period the assertion is scoped to when the producer knows it",
      "x-demiton-requiredness": "optional"
    },
    "subject_entity_id": {
      "type": "integer",
      "description": "the project, worker, asset or opportunity the attribute is about; the shared subject of the row",
      "x-demiton-requiredness": "required"
    }
  },
  "x-demiton-register-type": "entity_attribute",
  "x-demiton-contract-version": "1.0.3",
  "x-demiton-store": "tenant",
  "x-demiton-axes": [
    {
      "axis": "financial_period",
      "requirement": "optional",
      "role": "context"
    },
    {
      "axis": "legal_entity",
      "requirement": "optional",
      "role": "context"
    }
  ],
  "x-demiton-measures": [],
  "x-demiton-provenance": {
    "standards": [
      {
        "code": "AS/NZS ISO 19162:2020",
        "title": "Geographic information - Well-known text representation of coordinate reference systems (AU/NZ adoption)",
        "access": "public_summary",
        "region": "Australia",
        "edition": "2020",
        "checked_on": "2026-09-14"
      },
      {
        "code": "GDA2020 / MGA2020",
        "title": "Geocentric Datum of Australia 2020 and Map Grid of Australia 2020 (National Measurement (Recognized-Value Standard of Measurement of Position) Determination 2017)",
        "access": "public_summary",
        "region": "Australia",
        "edition": "2017 Determination (2026 Determination reported, unverified)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Privacy Act 1988 (Cth)",
        "title": "Privacy Act 1988 - Australian Privacy Principles",
        "access": "public_summary",
        "clause": "APPs 1-13",
        "region": "Australia",
        "edition": "compilation current at 2026-09",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Regulation (EU) 2016/679 (GDPR)",
        "title": "General Data Protection Regulation",
        "access": "public_summary",
        "region": "European Union",
        "edition": "2016/679",
        "checked_on": "2026-09-14"
      },
      {
        "code": "EPSG Geodetic Parameter Dataset",
        "title": "EPSG Geodetic Parameter Dataset (EPSG:7844 GDA2020, EPSG:4326 WGS 84)",
        "access": "full_text_verified",
        "region": "International",
        "edition": "v13.102",
        "checked_on": "2026-09-14"
      },
      {
        "code": "ISO 19162:2019",
        "title": "Geographic information - Well-known text representation of coordinate reference systems (with Amd 1:2023)",
        "access": "public_summary",
        "region": "International",
        "edition": "2019 + Amd 1:2023",
        "checked_on": "2026-09-14"
      },
      {
        "code": "OC4IDS",
        "title": "Open Contracting for Infrastructure Data Standard (projectStatus / project phase vocabulary)",
        "access": "full_text_verified",
        "region": "International",
        "edition": "0.9.5 (page title; version switcher says 0.9.4)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "RFC 7946",
        "title": "The GeoJSON Format",
        "access": "full_text_verified",
        "clause": "Section 4 (CRS is WGS 84)",
        "region": "International",
        "edition": "August 2016",
        "checked_on": "2026-09-14"
      },
      {
        "code": "NZGD2000 / NZTM2000",
        "title": "New Zealand Geodetic Datum 2000 and New Zealand Transverse Mercator 2000 (LINZ)",
        "access": "public_summary",
        "region": "New Zealand",
        "edition": "official since 1998; NZVD2016 vertical",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Privacy Act 2020 (NZ)",
        "title": "Privacy Act 2020 - Information Privacy Principles",
        "access": "public_summary",
        "clause": "IPPs 1-13",
        "region": "New Zealand",
        "edition": "2020 No 31",
        "checked_on": "2026-09-14"
      },
      {
        "code": "OSGB36 / ETRS89 (OSTN15)",
        "title": "British National Grid datum and ETRS89 with OSTN15 transformation (Ordnance Survey)",
        "access": "public_summary",
        "region": "United Kingdom",
        "edition": "OSTN15",
        "checked_on": "2026-09-14"
      },
      {
        "code": "UK GDPR and Data Protection Act 2018",
        "title": "UK General Data Protection Regulation with Data Protection Act 2018",
        "access": "public_summary",
        "region": "United Kingdom",
        "edition": "UK GDPR (retained) + DPA 2018",
        "checked_on": "2026-09-14"
      },
      {
        "code": "NAD83(2011) / NAVD 88",
        "title": "North American Datum of 1983 (2011) and North American Vertical Datum of 1988 (NGS)",
        "access": "public_summary",
        "region": "United States",
        "edition": "NAD83(2011) epoch 2010.00",
        "checked_on": "2026-09-14"
      }
    ]
  },
  "description": "One key/value attribute on a project, worker, asset or other entity, such as a project's stage.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/entity_attribute/",
  "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-entity_attribute-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.