{
  "handle": "Spec",
  "mechanism": "A rigorous definition of requirements for an {{artifact}}. It defines the shape, behavior, and {{constraint}}s that a target must satisfy. Distinct from {{plan}} (how to build) or {{goal}} (what to achieve), a Spec is the 'Definition of Done'.",
  "gloss": "Rigorous requirement definition",
  "invariants": [
    "Verifiability: Every requirement must be testable (binary pass/fail).",
    "Immutability: Once defined, the Spec acts as a fixed contract."
  ],
  "_meta": {
    "ring": 0,
    "tier": 1,
    "supersedes": [
      "sema:Spec#mh:SHA-256:436efd7df8ed376f693362923a024b4096265b9de32c7a980297b078112c75b5",
      "sema:Spec#mh:SHA-256:47f45e3174d8a28edf9c685f6ee8356386cb30cf24d3ba82ddb0738c0c9391cb",
      "sema:Spec#mh:SHA-256:16ecdeb3e4462a7aed4ab93d7f67dd4ace5b25249db1c8d2f0295fe62de3cd89"
    ],
    "path": [
      "Infrastructure",
      "Data Structures"
    ]
  },
  "data_schema": {
    "type": "object",
    "description": "Schema for Spec",
    "properties": {
      "requirements": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "The testable requirements the target must satisfy. Required: a Spec with none defines nothing."
      },
      "constraints": {
        "type": "object"
      }
    },
    "required": [
      "requirements"
    ]
  },
  "sema_ref": "Spec#c953",
  "sema_id": "sema:Spec#mh:SHA-256:c9537551b2bfa2639c15270994fdbb5a52a41d098f499c5ed5d61945a7c50da7",
  "sema_stub": "c953",
  "dependencies": {
    "references": {
      "artifact": "sema:Artifact#mh:SHA-256:b533ad2674ec00c5e9a5f1e3920f1097e2bc1eea7263f89e8f46563fa319a0ee",
      "constraint": "sema:Constraint#mh:SHA-256:70136d525260a10eedf156aad1fe6c50510eadb10a89d063c7a85575b15708fc",
      "goal": "sema:Goal#mh:SHA-256:986beec5f7aea2c89962d1e93806de83c61eee9bd7364d9ce1d20bd479fa5e70",
      "plan": "sema:Plan#mh:SHA-256:246db278c5db286fcd78d824d85054fafb3348565ef584599b63900000c43b32"
    }
  },
  "sema_layer": "Infrastructure",
  "sema_category": "Data Structures",
  "used_by": {
    "references": {
      "AcceptSpec": "sema:AcceptSpec#mh:SHA-256:37fa28b93d390f8c8eb171eaab54ff4f9e57a95ef67af024422f823545a291cc",
      "FrameSpec": "sema:FrameSpec#mh:SHA-256:3c202cc3416eadb2215857b542e4fc54660d5253fca9c2d42cb999929ad18c42",
      "MetamorphicTesting": "sema:MetamorphicTesting#mh:SHA-256:7129619c60f2d3773b9a985ae4365bf2dbdba782131b9c804e079142656dae9c",
      "SpecBinding": "sema:SpecBinding#mh:SHA-256:16e5d03844bf2b95629b6fedc9f9067d2611a701431dc6f933395e7f0911f2e5",
      "SpecIntentCheck": "sema:SpecIntentCheck#mh:SHA-256:29a260fbf62ec221bd2c12f0394f457ef5362687773a6f00ca9f51616d3bc2c5",
      "StyleSpec": "sema:StyleSpec#mh:SHA-256:ee8fe8b71b71c5612c93edeb3718786076458eab061989fc99ba0335909275b1",
      "Verification": "sema:Verification#mh:SHA-256:c8de453752e750eb54e0494e7a222377cea99a739b049087ab426cd968b38778"
    },
    "accepts": {
      "Build": "sema:Build#mh:SHA-256:e2c44670a03fffee712f69a847aae0b6959ba58f9c7a14513cd8759d3921d5e3"
    }
  }
}
