{
  "$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"
}