{
  "$id": "https://biosimulant.com/standards/model-compatibility/profiles/simulation/simulation-time/v0.1",
  "$schema": "https://biosimulant.com/standards/model-compatibility/v0.1/schemas/profile-definition.schema.json",
  "allowed": {},
  "applies_to": [
    "scalar",
    "array",
    "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": "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"
    }
  ],
  "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": "Simulation Time (Mechanistic and computational simulation): what a port must declare, and how two ports are compared.",
  "domain": "simulation",
  "domain_label": "Mechanistic and computational simulation",
  "extends": [],
  "fixed": {},
  "item_packs": [
    "semantic-core",
    "representation-core",
    "dimensioned-array",
    "temporal-lifecycle",
    "simulation-reproducibility",
    "uncertainty-quality",
    "provenance-origin"
  ],
  "label": "Simulation Time",
  "name": "simulation-time",
  "profile_id": "simulation/simulation-time@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": "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"
        ]
      }
    }
  ],
  "review": {
    "authors": [],
    "decisions": {},
    "domain_owner": null,
    "fixture_review": {},
    "intended_use": null,
    "limitations": [],
    "reviewed_at": null,
    "reviewer": null,
    "schema_reviewer": null,
    "sources": [],
    "status": "draft"
  },
  "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": "FOUNDATION",
  "transformation_policy": {
    "inference": "approval",
    "lossless": "allow",
    "lossy": "approval"
  },
  "version": "0.1.0"
}
