{
  "handle": "Prototype",
  "data_schema": {
    "type": "object",
    "required": [
      "prototype_id",
      "fidelity",
      "question"
    ],
    "properties": {
      "prototype_id": {
        "type": "string",
        "description": "Unique identifier"
      },
      "fidelity": {
        "type": "string",
        "enum": [
          "low",
          "medium",
          "high"
        ],
        "description": "How close to final product"
      },
      "artifact": {
        "description": "The prototype content or reference"
      },
      "learnings": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "What was learned from this prototype"
      },
      "question": {
        "type": "string",
        "description": "What building this is meant to settle. Known before construction, which is why it is required while `learnings` is not."
      }
    }
  },
  "mechanism": "An early sample, model, or release of a product built to test a concept or process or to act as a thing to be learned from. It is generally low-fidelity and disposable.",
  "gloss": "Testable early model",
  "_meta": {
    "tier": 1,
    "ring": 1,
    "path": [
      "Infrastructure",
      "Data Structures"
    ],
    "supersedes": [
      "sema:Prototype#mh:SHA-256:f849be90ab4568d076b595b2edb408b2795a6aced9f82dac8510f53449f68a09"
    ]
  },
  "sema_id": "sema:Prototype#mh:SHA-256:1c44945a19114ab1c2a5d380f3b7cdc9d4def36732496309e44c070214517d6b",
  "sema_ref": "Prototype#1c44",
  "sema_stub": "1c44",
  "sema_layer": "Infrastructure",
  "sema_category": "Data Structures",
  "invariants": [
    "Declares the question it was built to answer.",
    "Records the answer, or that none was reached, before it is retired or promoted."
  ],
  "failure_modes": [
    "Promoted by inertia: kept because it works well enough, so choices made for cheap learning become load-bearing.",
    "Built without a question: produces an artifact and no answer, which is the waste case rather than a cheap experiment."
  ],
  "used_by": {
    "references": {
      "Build": "sema:Build#mh:SHA-256:e2c44670a03fffee712f69a847aae0b6959ba58f9c7a14513cd8759d3921d5e3",
      "ProtoPack": "sema:ProtoPack#mh:SHA-256:1e06217c0c49682367975c2e8c34b203bede700056aeb6779d2500ba51db3971"
    }
  }
}
