{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://waterandstone.com/schemas/guide-registry/v1.3.0",
  "title": "Mapparoo Guide Registry (v1.3.0)",
  "description": "Zod-compiled structural contract for one registry view (plan|build|gap). Cross-reference and honesty rules are enforced by the TypeScript semantic validator in @am/registry — JSON Schema alone is not the full contract (TDR App. B).",
  "$ref": "#/definitions/GuideRegistryV1_3",
  "definitions": {
    "GuideRegistryV1_3": {
      "type": "object",
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "1.3.0"
        },
        "meta": {
          "type": "object",
          "properties": {
            "project": {
              "type": "string",
              "minLength": 1
            },
            "view": {
              "type": "string",
              "enum": [
                "plan",
                "build",
                "gap"
              ]
            },
            "viewLabel": {
              "type": "string"
            },
            "updatedAt": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            "definition": {
              "type": "string",
              "minLength": 1
            },
            "acceptanceTest": {
              "type": "string"
            },
            "generatedNote": {
              "type": "string"
            },
            "derivedFrom": {
              "type": "object",
              "properties": {
                "planSnapshot": {
                  "type": "string",
                  "minLength": 1
                },
                "buildSnapshot": {
                  "type": "string",
                  "minLength": 1
                },
                "repoCommit": {
                  "type": "string"
                }
              },
              "required": [
                "planSnapshot",
                "buildSnapshot"
              ],
              "additionalProperties": false
            },
            "analysisCoverage": {
              "type": "object",
              "properties": {
                "summary": {
                  "type": "string",
                  "minLength": 1
                },
                "repoCommit": {
                  "type": "string"
                },
                "inspected": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "executed": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "notExecuted": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "limits": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "verification": {
                  "type": "object",
                  "properties": {
                    "eligible": {
                      "anyOf": [
                        {
                          "type": "number",
                          "enum": [
                            1,
                            2
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "attempted": {
                      "anyOf": [
                        {
                          "type": "number",
                          "enum": [
                            1,
                            2
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "achieved": {
                      "anyOf": [
                        {
                          "type": "number",
                          "enum": [
                            1,
                            2
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "outcome": {
                      "type": "string",
                      "enum": [
                        "not-attempted",
                        "unrecognized-stack",
                        "unrunnable-suite",
                        "environment-limitation",
                        "failing-test",
                        "build-failed",
                        "build-completed",
                        "tests-completed",
                        "unknown"
                      ]
                    },
                    "detail": {
                      "type": "string"
                    },
                    "evidenceId": {
                      "type": "string",
                      "pattern": "^ev-[a-z0-9-]+$"
                    }
                  },
                  "required": [
                    "eligible",
                    "attempted",
                    "achieved",
                    "outcome"
                  ],
                  "additionalProperties": false
                },
                "documents": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "path": {
                        "type": "string",
                        "minLength": 1
                      },
                      "hash": {
                        "type": "string",
                        "pattern": "^[0-9a-f]{64}$"
                      },
                      "ownerAffirmedBaseline": {
                        "type": "boolean"
                      },
                      "originalFormat": {
                        "type": "string",
                        "enum": [
                          "md",
                          "txt",
                          "csv",
                          "docx",
                          "pasted"
                        ]
                      },
                      "converted": {
                        "type": "boolean"
                      },
                      "conversionNotes": {
                        "type": "string"
                      },
                      "genreHint": {
                        "type": "string",
                        "enum": [
                          "narrative",
                          "ticket",
                          "transcript",
                          "mixed",
                          "unknown"
                        ]
                      },
                      "provenance": {
                        "type": "string",
                        "enum": [
                          "ordinary",
                          "owner_affirmed_baseline",
                          "declared_principles"
                        ]
                      },
                      "layoutHint": {
                        "type": "string",
                        "minLength": 1
                      }
                    },
                    "required": [
                      "path",
                      "hash"
                    ],
                    "additionalProperties": false
                  }
                },
                "reusedFrom": {
                  "type": "object",
                  "properties": {
                    "runId": {
                      "type": "string",
                      "minLength": 1
                    },
                    "at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "stages": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "index",
                          "sandbox",
                          "build"
                        ]
                      },
                      "minItems": 1
                    }
                  },
                  "required": [
                    "runId",
                    "at",
                    "stages"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "summary"
              ],
              "additionalProperties": false
            },
            "integrityNotices": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^in-[a-z0-9-]+$"
                  },
                  "source": {
                    "type": "string",
                    "enum": [
                      "document",
                      "repository"
                    ]
                  },
                  "location": {
                    "type": "string",
                    "minLength": 1
                  },
                  "quotedContent": {
                    "type": "string",
                    "minLength": 1
                  },
                  "assessment": {
                    "type": "string",
                    "enum": [
                      "attempted_instruction",
                      "plausibly_innocent"
                    ]
                  },
                  "confidence": {
                    "type": "string",
                    "enum": [
                      "confirmed",
                      "probable",
                      "needs-review"
                    ]
                  },
                  "isolated": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "source",
                  "location",
                  "quotedContent",
                  "assessment",
                  "confidence",
                  "isolated"
                ],
                "additionalProperties": false
              }
            },
            "verificationPassScope": {
              "type": "array",
              "items": {
                "type": "string",
                "pattern": "^g-[a-z0-9-]+$"
              }
            },
            "promiseClasses": {
              "type": "object",
              "properties": {
                "checkablePromiseCount": {
                  "type": "integer",
                  "minimum": 0
                },
                "distribution": {
                  "type": "object",
                  "properties": {
                    "checkable_promise": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "aspiration": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "task_claim": {
                      "type": "integer",
                      "minimum": 0
                    }
                  },
                  "required": [
                    "checkable_promise",
                    "aspiration",
                    "task_claim"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "checkablePromiseCount",
                "distribution"
              ],
              "additionalProperties": false
            },
            "journeyCount": {
              "type": "integer",
              "minimum": 0
            },
            "runType": {
              "type": "string",
              "enum": [
                "plan",
                "discovery",
                "audit",
                "recheck"
              ]
            }
          },
          "required": [
            "project",
            "view",
            "updatedAt",
            "definition",
            "analysisCoverage",
            "integrityNotices"
          ],
          "additionalProperties": false
        },
        "statusDimensions": {
          "type": "object",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "zones": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^z-[a-z0-9-]+$"
              },
              "title": {
                "type": "string",
                "minLength": 1
              },
              "sub": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "title"
            ],
            "additionalProperties": false
          },
          "minItems": 1
        },
        "components": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^c-[a-z0-9-]+$"
              },
              "concept": {
                "type": "string",
                "pattern": "^concept-[a-z0-9-]+$"
              },
              "name": {
                "type": "string",
                "minLength": 1
              },
              "short": {
                "type": "string",
                "minLength": 1
              },
              "zone": {
                "type": "string",
                "pattern": "^z-[a-z0-9-]+$"
              },
              "status": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "verification": {
                "type": "object",
                "properties": {
                  "eligible": {
                    "anyOf": [
                      {
                        "type": "number",
                        "enum": [
                          1,
                          2
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "attempted": {
                    "anyOf": [
                      {
                        "type": "number",
                        "enum": [
                          1,
                          2
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "achieved": {
                    "anyOf": [
                      {
                        "type": "number",
                        "enum": [
                          1,
                          2
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "outcome": {
                    "type": "string",
                    "enum": [
                      "not-attempted",
                      "unrecognized-stack",
                      "unrunnable-suite",
                      "environment-limitation",
                      "failing-test",
                      "build-failed",
                      "build-completed",
                      "tests-completed",
                      "unknown"
                    ]
                  },
                  "attribution": {
                    "type": "string",
                    "enum": [
                      "component",
                      "run-level",
                      "none"
                    ]
                  },
                  "association": {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "test-file",
                          "build-target",
                          "dependency-edge"
                        ]
                      },
                      "refs": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "minItems": 1
                      }
                    },
                    "required": [
                      "kind",
                      "refs"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "eligible",
                  "attempted",
                  "achieved",
                  "outcome",
                  "attribution"
                ],
                "additionalProperties": false
              },
              "what": {
                "type": "string",
                "minLength": 1
              },
              "why": {
                "type": "string"
              },
              "takesIn": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "produces": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "availability": {
                "type": "string"
              },
              "risks": {
                "type": "string"
              },
              "tech": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "codes": {
                "type": "string"
              },
              "refs": {
                "type": "string"
              },
              "provenance": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^ev-[a-z0-9-]+$"
                },
                "minItems": 1
              },
              "aux": {
                "type": "boolean"
              },
              "promiseClass": {
                "type": "string",
                "enum": [
                  "checkable_promise",
                  "aspiration",
                  "task_claim"
                ]
              },
              "principle": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "name",
              "short",
              "zone",
              "status",
              "what",
              "provenance"
            ],
            "additionalProperties": false
          },
          "minItems": 1
        },
        "edges": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^e-[a-z0-9-]+$"
              },
              "from": {
                "type": "string",
                "pattern": "^c-[a-z0-9-]+$"
              },
              "to": {
                "type": "string",
                "pattern": "^c-[a-z0-9-]+$"
              },
              "kind": {
                "type": "string",
                "enum": [
                  "run",
                  "plan"
                ],
                "default": "run"
              },
              "label": {
                "type": "string"
              },
              "both": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "from",
              "to"
            ],
            "additionalProperties": false
          }
        },
        "evidence": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^ev-[a-z0-9-]+$"
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "positive",
                      "absence"
                    ]
                  },
                  "sourceKind": {
                    "type": "string",
                    "enum": [
                      "document",
                      "repository"
                    ]
                  },
                  "path": {
                    "type": "string",
                    "minLength": 1
                  },
                  "documentHash": {
                    "type": "string",
                    "pattern": "^[0-9a-f]{64}$"
                  },
                  "commit": {
                    "type": "string",
                    "minLength": 1
                  },
                  "range": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "startLine": {
                            "type": "integer",
                            "exclusiveMinimum": 0
                          },
                          "endLine": {
                            "type": "integer",
                            "exclusiveMinimum": 0
                          }
                        },
                        "required": [
                          "startLine",
                          "endLine"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "string",
                        "minLength": 1
                      }
                    ]
                  },
                  "excerpt": {
                    "type": "string"
                  },
                  "excerptHash": {
                    "type": "string",
                    "minLength": 1
                  },
                  "absenceScope": {
                    "type": "object",
                    "properties": {
                      "queryId": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string",
                        "minLength": 1
                      },
                      "params": {
                        "type": "object",
                        "additionalProperties": {}
                      }
                    },
                    "required": [
                      "queryId",
                      "label"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "id",
                  "kind",
                  "sourceKind",
                  "path",
                  "range",
                  "excerpt",
                  "excerptHash"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^ev-[a-z0-9-]+$"
                  },
                  "kind": {
                    "type": "string",
                    "const": "execution_output"
                  },
                  "phase": {
                    "type": "string",
                    "enum": [
                      "install",
                      "build",
                      "tests"
                    ]
                  },
                  "commit": {
                    "type": "string",
                    "minLength": 1
                  },
                  "excerpt": {
                    "type": "string"
                  },
                  "excerptHash": {
                    "type": "string",
                    "minLength": 1
                  },
                  "summary": {
                    "type": "object",
                    "properties": {
                      "passed": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "failed": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "skipped": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "files": {
                        "type": "integer",
                        "minimum": 0
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "id",
                  "kind",
                  "phase",
                  "commit",
                  "excerpt",
                  "excerptHash"
                ],
                "additionalProperties": false
              }
            ]
          }
        },
        "flows": {
          "type": "object",
          "additionalProperties": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "steps": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "t": {
                      "type": "string"
                    },
                    "b": {
                      "type": "string"
                    },
                    "c": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "e": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "t",
                    "b"
                  ],
                  "additionalProperties": false
                },
                "minItems": 1
              }
            },
            "required": [
              "title",
              "steps"
            ],
            "additionalProperties": false
          }
        },
        "invariants": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 2,
            "maxItems": 2,
            "items": [
              {
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "glossary": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 2,
            "maxItems": 2,
            "items": [
              {
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "sources": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 2,
            "maxItems": 2,
            "items": [
              {
                "type": "string"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "reconciliations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "canonicalConcept": {
                "type": "string",
                "pattern": "^concept-[a-z0-9-]+$"
              },
              "planComponents": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^c-[a-z0-9-]+$"
                }
              },
              "buildComponents": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^c-[a-z0-9-]+$"
                }
              },
              "relation": {
                "type": "string",
                "enum": [
                  "equivalent",
                  "renamed",
                  "split",
                  "merged",
                  "partial-overlap",
                  "planned-only",
                  "implementation-only",
                  "modeling-difference"
                ]
              },
              "confidence": {
                "type": "string",
                "enum": [
                  "confirmed",
                  "probable",
                  "needs-review"
                ]
              },
              "note": {
                "type": "string"
              }
            },
            "required": [
              "canonicalConcept",
              "planComponents",
              "buildComponents",
              "relation",
              "confidence"
            ],
            "additionalProperties": false
          }
        },
        "gap": {
          "type": "object",
          "properties": {
            "summary": {
              "type": "object",
              "properties": {
                "verdict": {
                  "type": "string",
                  "minLength": 1
                },
                "counts": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "integer"
                  }
                },
                "severityRubric": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "verdict",
                "counts"
              ],
              "additionalProperties": false
            },
            "findings": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^g-[a-z0-9-]+$"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "planned-missing",
                      "unplanned-present",
                      "divergent",
                      "status-mismatch",
                      "invariant-violation",
                      "conforms",
                      "plan_contradiction",
                      "plan_unspecified"
                    ]
                  },
                  "severity": {
                    "type": "string",
                    "enum": [
                      "high",
                      "medium",
                      "low",
                      "info"
                    ]
                  },
                  "confidence": {
                    "type": "string",
                    "enum": [
                      "confirmed",
                      "probable",
                      "needs-review"
                    ]
                  },
                  "concept": {
                    "type": "string",
                    "pattern": "^concept-[a-z0-9-]+$"
                  },
                  "subjects": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "view": {
                          "type": "string",
                          "enum": [
                            "plan",
                            "build"
                          ]
                        },
                        "componentId": {
                          "type": "string",
                          "pattern": "^c-[a-z0-9-]+$"
                        }
                      },
                      "required": [
                        "view",
                        "componentId"
                      ],
                      "additionalProperties": false
                    },
                    "minItems": 1
                  },
                  "canvasComponents": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "pattern": "^c-[a-z0-9-]+$"
                    }
                  },
                  "summary": {
                    "type": "string",
                    "minLength": 1
                  },
                  "detail": {
                    "type": "string"
                  },
                  "founder": {
                    "type": "object",
                    "properties": {
                      "headline": {
                        "type": "string",
                        "minLength": 1
                      },
                      "whatHappened": {
                        "type": "string",
                        "minLength": 1
                      },
                      "consequence": {
                        "type": "string",
                        "minLength": 1
                      },
                      "decision": {
                        "type": "string",
                        "minLength": 1
                      },
                      "nextAction": {
                        "type": "string",
                        "minLength": 1
                      },
                      "effort": {
                        "type": "object",
                        "properties": {
                          "range": {
                            "type": "string",
                            "minLength": 1
                          },
                          "confidence": {
                            "type": "string",
                            "enum": [
                              "low",
                              "medium",
                              "high"
                            ]
                          }
                        },
                        "required": [
                          "range",
                          "confidence"
                        ],
                        "additionalProperties": false
                      },
                      "nextActionVerb": {
                        "type": "string",
                        "enum": [
                          "fix_now",
                          "fix_later",
                          "decide",
                          "no_action"
                        ]
                      }
                    },
                    "required": [
                      "headline",
                      "whatHappened",
                      "consequence",
                      "decision",
                      "nextAction",
                      "effort"
                    ],
                    "additionalProperties": false
                  },
                  "evidence": {
                    "type": "object",
                    "properties": {
                      "plan": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^ev-[a-z0-9-]+$"
                        }
                      },
                      "build": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^ev-[a-z0-9-]+$"
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "agentBrief": {
                    "type": "string"
                  },
                  "securityRelevant": {
                    "type": "boolean"
                  },
                  "parties": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "pattern": "^c-[a-z0-9-]+$"
                    },
                    "minItems": 1
                  },
                  "adversarialPass": {
                    "type": "string",
                    "enum": [
                      "passed",
                      "not_run"
                    ]
                  },
                  "corpusScope": {
                    "type": "object",
                    "properties": {
                      "documents": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "path": {
                              "type": "string",
                              "minLength": 1
                            },
                            "hash": {
                              "type": "string",
                              "pattern": "^[0-9a-f]{64}$"
                            }
                          },
                          "required": [
                            "path",
                            "hash"
                          ],
                          "additionalProperties": false
                        },
                        "minItems": 1
                      },
                      "terms": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "minItems": 1
                      },
                      "label": {
                        "type": "string",
                        "minLength": 1
                      }
                    },
                    "required": [
                      "documents",
                      "terms",
                      "label"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "id",
                  "type",
                  "severity",
                  "confidence",
                  "subjects",
                  "summary",
                  "evidence",
                  "securityRelevant"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "summary",
            "findings"
          ],
          "additionalProperties": false
        },
        "observedBehaviors": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^ob-[a-z0-9-]+$"
              },
              "summary": {
                "type": "string",
                "minLength": 1
              },
              "evidence": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^ev-[a-z0-9-]+$"
                },
                "minItems": 1
              }
            },
            "required": [
              "id",
              "summary",
              "evidence"
            ],
            "additionalProperties": false
          }
        },
        "productQuestions": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^pq-[a-z0-9-]+$"
              },
              "question": {
                "type": "string",
                "minLength": 1
              },
              "why": {
                "type": "string",
                "minLength": 1
              },
              "evidence": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^ev-[a-z0-9-]+$"
                },
                "minItems": 1
              }
            },
            "required": [
              "id",
              "question",
              "why",
              "evidence"
            ],
            "additionalProperties": false
          }
        },
        "aspirations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^asp-[a-z0-9-]+$"
              },
              "text": {
                "type": "string",
                "minLength": 1
              },
              "whatWouldMakeThisCheckable": {
                "type": "string",
                "minLength": 1
              },
              "components": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^c-[a-z0-9-]+$"
                }
              },
              "evidence": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^ev-[a-z0-9-]+$"
                },
                "minItems": 1
              }
            },
            "required": [
              "id",
              "text",
              "whatWouldMakeThisCheckable",
              "evidence"
            ],
            "additionalProperties": false
          }
        },
        "journeys": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^j-[a-z0-9-]+$"
              },
              "title": {
                "type": "string",
                "minLength": 1
              },
              "steps": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "title": {
                      "type": "string",
                      "minLength": 1
                    },
                    "componentIds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^c-[a-z0-9-]+$"
                      },
                      "minItems": 1
                    },
                    "evidenceIds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^ev-[a-z0-9-]+$"
                      },
                      "minItems": 1
                    },
                    "claimed": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "title",
                    "componentIds",
                    "evidenceIds"
                  ],
                  "additionalProperties": false
                },
                "minItems": 1
              }
            },
            "required": [
              "id",
              "title",
              "steps"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "schemaVersion",
        "meta",
        "statusDimensions",
        "zones",
        "components",
        "edges",
        "evidence"
      ],
      "additionalProperties": false
    }
  }
}
