{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://thruput.se/agents/schemas/governance/principles.schema.json",
  "title": "Principles",
  "description": "The principles: entries whose parent is a rationale",
  "type": "object",
  "required": [
    "principles"
  ],
  "properties": {
    "principles": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Principle"
      }
    }
  },
  "$defs": {
    "Principle": {
      "description": "One principle",
      "$ref": "entry.schema.json#/$defs/Entry",
      "properties": {
        "id": {
          "$ref": "#/$defs/PrincipleId"
        },
        "parent": {
          "$ref": "rationales.schema.json#/$defs/RationaleId"
        },
        "solutions": {
          "$ref": "rationales.schema.json#/$defs/Solutions"
        }
      }
    },
    "PrincipleId": {
      "$ref": "id.schema.json"
    }
  },
  "examples": [
    {
      "principles": [
        {
          "id": "Example principle",
          "parent": "Example rationale",
          "body": "An example principle says how we code in one sentence."
        }
      ]
    }
  ]
}
