{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/entity_link_origin/v2.json",
  "title": "entity_link_origin contract v2",
  "type": "object",
  "required": [
    "computed_at",
    "link_source_system",
    "object_entity_id",
    "object_entity_type",
    "object_external_id",
    "relation",
    "subject_entity_id",
    "subject_entity_type"
  ],
  "properties": {
    "value": {
      "type": "string",
      "description": "The linked opportunity's estimated value (BC `Estimated_Value_LCY`, AUD by default).",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "currency of `value`"
    },
    "outcome": {
      "type": "string",
      "description": "The linked object's outcome at materialisation time (`won`/`lost`/`open`).",
      "x-demiton-requiredness": "optional"
    },
    "summary": {
      "type": "string",
      "description": "The composed human-readable sentence about the link.",
      "x-demiton-requiredness": "optional"
    },
    "relation": {
      "type": "string",
      "description": "The link direction/type, as declared by the org's `EntityLinkSpec.relation` (observed value `originated_from_opportunity`).",
      "x-demiton-requiredness": "required"
    },
    "closed_date": {
      "type": "string",
      "description": "The linked opportunity's close date.",
      "x-demiton-requiredness": "optional",
      "format": "date",
      "x-demiton-type": "date"
    },
    "computed_at": {
      "type": "string",
      "description": "When the origin fact was (re)materialised.",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "UTC",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "value_currency": {
      "type": "currency",
      "description": "Currency of `value`.",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "ISO 4217"
    },
    "object_entity_id": {
      "type": "number",
      "description": "The linked object's canonical spine entity id (observed: an opportunity).",
      "x-demiton-requiredness": "required"
    },
    "subject_entity_id": {
      "type": "number",
      "description": "The subject entity the fact is anchored to (observed: a `project`).",
      "x-demiton-requiredness": "required"
    },
    "link_source_system": {
      "type": "string",
      "description": "The system whose shared alias key joins the pair (observed value `D365_BUSINESS_CENTRAL`).",
      "x-demiton-requiredness": "required"
    },
    "object_entity_type": {
      "type": "string",
      "description": "The linked object's spine entity type (observed: `opportunity`).",
      "x-demiton-requiredness": "required"
    },
    "object_external_id": {
      "type": "string",
      "description": "The source system's natural key the two entities share — the join key the link is derived on.",
      "x-demiton-requiredness": "required"
    },
    "subject_entity_type": {
      "type": "string",
      "description": "The subject's spine entity type.",
      "x-demiton-requiredness": "required"
    }
  },
  "x-demiton-register-type": "entity_link_origin",
  "x-demiton-contract-version": "2.0.1",
  "x-demiton-store": "tenant",
  "x-demiton-axes": [],
  "x-demiton-measures": [],
  "x-demiton-provenance": {
    "standards": []
  },
  "description": "Where a record's link to an opportunity or customer came from in your CRM or ERP.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/entity_link_origin/",
  "x-demiton-register-catalog": "https://docs.demiton.io/concepts/register-catalog"
}