{
  "reason_codes": {
    "BMCS_CONDITION_UNRESOLVED": "A required precondition hasn't been checked or isn't met.",
    "BMCS_CONTRACT_NOT_DECLARED": "One or both ports have no compatibility contract.",
    "BMCS_DIGEST_MISMATCH": "The content doesn't match its declared sha256.",
    "BMCS_DIRECT": "The source already meets the target's requirements, with no conversion.",
    "BMCS_EXACT": "The source and target contracts are identical after normalization.",
    "BMCS_EXACT_CONTRACT": "The two contracts are identical.",
    "BMCS_INFERENCE_PATH": "The chosen path relies on an inference model.",
    "BMCS_LOSSY_PATH": "The chosen conversion loses information or maps it ambiguously.",
    "BMCS_OPERATOR_INPUT_INVALID": "A comparison operator received invalid or unsafe input.",
    "BMCS_OPERATOR_REQUIRES_SNAPSHOT": "This check needs pinned ontology or mapping data, which isn't available.",
    "BMCS_PROFILE_NOT_IMPORTED": "A port uses a profile that isn't listed in compatibility.profiles.",
    "BMCS_PROFILE_NOT_REVIEWED": "The profile hasn't finished scientific review.",
    "BMCS_PROFILE_UNRESOLVED": "The profile isn't in the installed bundle.",
    "BMCS_PROFILE_VALUE_INVALID": "A value doesn't meet a profile requirement.",
    "BMCS_REFERENCE_CYCLE": "Profiles or contracts extend each other in a loop.",
    "BMCS_REFINEMENT_WEAKENS_CONTRACT": "An accepted representation changes a common input invariant.",
    "BMCS_REFINEMENT_WITHOUT_BASE": "An accepted representation declares a contract without a common input contract.",
    "BMCS_REQUIRED_EVIDENCE_MISSING": "Information needed for the comparison is missing.",
    "BMCS_REQUIRED_MISSING": "The target requires a field that the source doesn't provide.",
    "BMCS_RESOURCE_LIMIT_EXCEEDED": "The document exceeds a validator safety limit.",
    "BMCS_RULE_SATISFIED": "A comparison rule passed.",
    "BMCS_SCHEMA_INVALID": "The document doesn't match its JSON Schema.",
    "BMCS_UNIT_CONVERSION": "A lossless unit conversion is available.",
    "BMCS_VALUE_MISMATCH": "A source value doesn't match what the target requires."
  },
  "standard": "https://biosimulant.com/standards/model-compatibility/v0.1"
}
