{
  "$id": "https://biosimulant.com/standards/model-compatibility/profiles/spatial/spatial-abundance-map/v0.1",
  "$schema": "https://biosimulant.com/standards/model-compatibility/v0.1/schemas/profile-definition.schema.json",
  "allowed": {},
  "applies_to": [
    "array",
    "artifact",
    "record"
  ],
  "comparison_rules": [
    {
      "missing": "unknown",
      "operator": "term-equivalent",
      "reason_code": "BMCS_VALUE_MISMATCH",
      "severity": "error",
      "source": "/contract/semantic/concept",
      "target": "/contract/semantic/concept"
    },
    {
      "missing": "unknown",
      "operator": "term-equivalent",
      "reason_code": "BMCS_VALUE_MISMATCH",
      "severity": "error",
      "source": "/contract/semantic/subject",
      "target": "/contract/semantic/subject"
    },
    {
      "missing": "unknown",
      "operator": "equal",
      "reason_code": "BMCS_VALUE_MISMATCH",
      "severity": "error",
      "source": "/contract/representation/kind",
      "target": "/contract/representation/kind"
    },
    {
      "missing": "unknown",
      "operator": "labels-equal",
      "reason_code": "BMCS_VALUE_MISMATCH",
      "severity": "error",
      "source": "/contract/dimensions/axes",
      "target": "/contract/dimensions/axes"
    },
    {
      "missing": "unknown",
      "operator": "equal",
      "reason_code": "BMCS_VALUE_MISMATCH",
      "severity": "error",
      "source": "/contract/representation/ordering",
      "target": "/contract/representation/ordering"
    },
    {
      "missing": "unknown",
      "operator": "equal",
      "reason_code": "BMCS_VALUE_MISMATCH",
      "severity": "error",
      "source": "/contract/measurement/quantity",
      "target": "/contract/measurement/quantity"
    },
    {
      "missing": "unknown",
      "operator": "unit-convertible",
      "reason_code": "BMCS_VALUE_MISMATCH",
      "severity": "error",
      "source": "/contract/measurement/unit",
      "target": "/contract/measurement/unit"
    },
    {
      "missing": "unknown",
      "operator": "equal",
      "reason_code": "BMCS_VALUE_MISMATCH",
      "severity": "error",
      "source": "/contract/measurement/scale",
      "target": "/contract/measurement/scale"
    },
    {
      "missing": "unknown",
      "operator": "context-compatible",
      "reason_code": "BMCS_VALUE_MISMATCH",
      "severity": "error",
      "source": "/contract/biological_context/species",
      "target": "/contract/biological_context/species"
    }
  ],
  "compatibility_notes": "Two ports match only when every field the target port requires is satisfied. If required information is missing, the result is UNKNOWN. Any conversion between ports must be a declared, versioned transformation.",
  "description": "Spatial Abundance Map (Spatial coordinates, fields, and maps): what a port must declare, and how two ports are compared.",
  "domain": "spatial",
  "domain_label": "Spatial coordinates, fields, and maps",
  "extends": [],
  "fixed": {},
  "item_packs": [
    "semantic-core",
    "representation-core",
    "dimensioned-array",
    "imaging-spatial",
    "biological-context",
    "graph-network",
    "temporal-lifecycle"
  ],
  "label": "Spatial Abundance Map",
  "name": "spatial-abundance-map",
  "profile_id": "spatial/spatial-abundance-map@0.1",
  "release_eligible": false,
  "requirements": [
    {
      "level": "required",
      "path": "semantic.concept",
      "schema": {
        "type": [
          "string",
          "number",
          "integer",
          "boolean",
          "array",
          "object",
          "null"
        ]
      }
    },
    {
      "level": "required",
      "path": "semantic.subject",
      "schema": {
        "type": [
          "string",
          "number",
          "integer",
          "boolean",
          "array",
          "object",
          "null"
        ]
      }
    },
    {
      "level": "required",
      "path": "representation.kind",
      "schema": {
        "type": [
          "string",
          "number",
          "integer",
          "boolean",
          "array",
          "object",
          "null"
        ]
      }
    },
    {
      "level": "required",
      "path": "dimensions.axes",
      "schema": {
        "type": [
          "string",
          "number",
          "integer",
          "boolean",
          "array",
          "object",
          "null"
        ]
      }
    },
    {
      "level": "required",
      "path": "representation.ordering",
      "schema": {
        "type": [
          "string",
          "number",
          "integer",
          "boolean",
          "array",
          "object",
          "null"
        ]
      }
    },
    {
      "level": "required",
      "path": "measurement.quantity",
      "schema": {
        "type": [
          "string",
          "number",
          "integer",
          "boolean",
          "array",
          "object",
          "null"
        ]
      }
    },
    {
      "level": "required",
      "path": "measurement.unit",
      "schema": {
        "type": [
          "string",
          "number",
          "integer",
          "boolean",
          "array",
          "object",
          "null"
        ]
      }
    },
    {
      "level": "required",
      "path": "measurement.scale",
      "schema": {
        "type": [
          "string",
          "number",
          "integer",
          "boolean",
          "array",
          "object",
          "null"
        ]
      }
    },
    {
      "level": "required",
      "path": "biological_context.species",
      "schema": {
        "type": [
          "string",
          "number",
          "integer",
          "boolean",
          "array",
          "object",
          "null"
        ]
      }
    }
  ],
  "review": {
    "authors": [],
    "decisions": {},
    "domain_owner": null,
    "fixture_review": {},
    "intended_use": null,
    "limitations": [],
    "reviewed_at": null,
    "reviewer": null,
    "schema_reviewer": null,
    "sources": [],
    "status": "candidate"
  },
  "scientific_claim": "This profile checks whether two model interfaces fit together. It doesn't show that a model is scientifically valid or clinically safe.",
  "stage": "WAVE_2",
  "transformation_policy": {
    "inference": "approval",
    "lossless": "allow",
    "lossy": "approval"
  },
  "version": "0.1.0"
}
