{
  "handle": "Criteria",
  "data_schema": {
    "type": "object",
    "required": [
      "criteria_id",
      "rule"
    ],
    "properties": {
      "criteria_id": {
        "type": "string",
        "description": "Unique identifier for this criteria"
      },
      "metric": {
        "type": "string",
        "description": "Quantity measured, where the rule is quantified."
      },
      "threshold": {
        "description": "Value compared against, where the rule is quantified."
      },
      "comparator": {
        "type": "string",
        "enum": [
          "<",
          "<=",
          "=",
          ">=",
          ">",
          "in",
          "not_in"
        ],
        "description": "How to compare against threshold"
      },
      "rule": {
        "type": "string",
        "description": "The standard being applied, quantified or not — 'under $50', 'must be reversible', 'must cite a source'."
      }
    }
  },
  "mechanism": "The specific standards used to judge the success of an {{artifact}}. e.g., 'must be under $50'. Used by the judgment.",
  "gloss": "Judgment standards",
  "_meta": {
    "ring": 1,
    "tier": 1,
    "path": [
      "Infrastructure",
      "Data Structures"
    ],
    "supersedes": [
      "sema:Criteria#mh:SHA-256:0400adf0f807511f10b40b026098056dbb7124915c2045cc85fb687fabc7f9ac"
    ],
    "related": [
      "Canonseal#27fc",
      "Doubleloop#23ac"
    ]
  },
  "invariants": [
    "Decidable: applying the rule to a candidate yields pass or fail without further judgment.",
    "Quantified criteria carry `metric`, `threshold` and `comparator` together; none of the three is meaningful alone."
  ],
  "sema_id": "sema:Criteria#mh:SHA-256:92ab804441f5ff5307c6e45905818372e6159c4bd64d264ac7fddd6705de8acb",
  "sema_ref": "Criteria#92ab",
  "sema_stub": "92ab",
  "dependencies": {
    "references": {
      "artifact": "sema:Artifact#mh:SHA-256:b533ad2674ec00c5e9a5f1e3920f1097e2bc1eea7263f89e8f46563fa319a0ee"
    }
  },
  "sema_layer": "Infrastructure",
  "sema_category": "Data Structures",
  "used_by": {
    "references": {
      "AcceptSpec": "sema:AcceptSpec#mh:SHA-256:37fa28b93d390f8c8eb171eaab54ff4f9e57a95ef67af024422f823545a291cc",
      "AdversarialSteel": "sema:AdversarialSteel#mh:SHA-256:90b1f6225005275367227017d930134959decfd97f52d7550de19cd8784c8702",
      "Canonseal": "sema:Canonseal#mh:SHA-256:27fcab38faefc506d3498d94e968d283d2a0a8bb70110996fca8d4a41a1c81ba",
      "Discover": "sema:Discover#mh:SHA-256:f6e09de2a5b38c031651d22539fafaa46e32869b06dae8009bde18cb249da69b",
      "Doubleloop": "sema:Doubleloop#mh:SHA-256:23acb8047086c489b2a8e7eb97c2468278f75b36eb62be16f9bc0844e5ac93c5",
      "EvaluatorOptimizer": "sema:EvaluatorOptimizer#mh:SHA-256:ae098f2db7c18e00fa1dea16a305133a0778bd157652d5ee42b65f3bf86eef83",
      "Judge": "sema:Judge#mh:SHA-256:704cbb71588d7a3bafa08b71c863005e31ec4400860b9cb8b094e660da9c7c6c",
      "RealizationProtocol": "sema:RealizationProtocol#mh:SHA-256:68fbd05d6135b73ef53db0366e69f4927e5f92f9dd88fa7b79c0a6022e4962ca",
      "Search": "sema:Search#mh:SHA-256:1da96800031333016d0be31b6721f15867df62aa9cd93d2a10102efb7d4841a7"
    },
    "accepts": {
      "Critique": "sema:Critique#mh:SHA-256:646b71acb10a6b7f0874f3d5c7977c44d253f29f9c1231c974d85c7fba131980",
      "OsmoticFilter": "sema:OsmoticFilter#mh:SHA-256:239a63d284e0676746b9ec3bd2e957eeec5d80d42e84b066e9b74f937cd5bd1e",
      "PURECheck": "sema:PURECheck#mh:SHA-256:574bfe492b148844233507d79302ba73135ad366d24b4b34f3de476ed903094e",
      "Rally": "sema:Rally#mh:SHA-256:9ee797cd797df62b9883ead618c35eb8d8a5e86c171630cdc8f8ecc6066d6a89"
    }
  }
}
