{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://arch2.mlsysbook.ai/schemas/design-loop-card.v1.1.schema.json",
  "title": "Architecture 2.0 Design-Loop Card",
  "description": "Version 1.1 of the canonical machine contract for the twelve-field Architecture 2.0 design-loop card.",
  "type": "object",
  "required": ["schema_version", "design_loop_card"],
  "properties": {
    "schema_version": {
      "const": "1.1",
      "description": "Contract version. This is document metadata, not a thirteenth card field."
    },
    "design_loop_card": {
      "allOf": [
        {
          "$ref": "design-loop-card.v1.schema.json#/$defs/card"
        },
        {
          "properties": {
            "intent": {
              "properties": {
                "constraints": {"minItems": 1},
                "non_goals": {"minItems": 1}
              }
            },
            "design_space": {
              "properties": {
                "legal": {"minItems": 1},
                "invalid": {"minItems": 1},
                "deferred": {"minItems": 1}
              }
            }
          },
          "allOf": [
            {
              "if": {
                "properties": {
                  "conformance_level": {"minimum": 1}
                },
                "required": ["conformance_level"]
              },
              "then": {
                "properties": {
                  "representation": {
                    "properties": {
                      "reads": {"minItems": 1},
                      "writes": {"minItems": 1},
                      "uncertainties": {"minItems": 1}
                    }
                  },
                  "environment": {
                    "properties": {
                      "actions": {"minItems": 1},
                      "invalid_actions": {"minItems": 1},
                      "observations": {"minItems": 1}
                    }
                  },
                  "method_role": {
                    "required": ["actor_map"],
                    "properties": {
                      "actor_map": {
                        "minItems": 1,
                        "items": {
                          "properties": {
                            "reads": {"minItems": 1},
                            "writes": {"minItems": 1}
                          }
                        }
                      }
                    }
                  },
                  "feedback_budget": {
                    "properties": {
                      "evaluations": {"minimum": 1}
                    }
                  },
                  "evidence": {
                    "properties": {
                      "records": {"minItems": 1}
                    }
                  },
                  "negative_traces": {"minItems": 1}
                }
              }
            },
            {
              "if": {
                "properties": {
                  "conformance_level": {"minimum": 2}
                },
                "required": ["conformance_level"]
              },
              "then": {
                "properties": {
                  "evidence": {
                    "properties": {
                      "records": {
                        "items": {
                          "properties": {
                            "provenance": {
                              "required": ["source_uri"],
                              "properties": {
                                "parameter_hash": {
                                  "type": "string",
                                  "pattern": "^sha256:[0-9a-f]{64}$"
                                },
                                "source_uri": {
                                  "type": "string",
                                  "format": "uri-reference",
                                  "minLength": 1
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          ]
        }
      ]
    }
  },
  "additionalProperties": false
}
