# Task Contract V1

- Object ID: `em:schema:sha256:e1f365c200c65de021618072ff3ed93a8e8efd0c6ec5f69433e1fe6c83d6dccd`
- Kind: `schema`
- Repository path: [`schemas/task-contract-v1.json`](https://github.com/yoheinakajima/epistemedia/blob/f92846570180dfa4511263f8ba98ecd18f7772c9/schemas/task-contract-v1.json)
- Content digest: `33ed6d90c163570f6f0635f269f94cb2b845138a672436d9f8f0449efab89856`

**Also filed under:** [Disclosure and Public Projection](https://epistemedia.org/topics/disclosure/), [Epistemic Mesh Protocol](https://epistemedia.org/topics/epistemic-mesh/), [Sovereign Realm Federation](https://epistemedia.org/topics/federation/), [Knowledge Objects](https://epistemedia.org/topics/knowledge-objects/)

## Source content

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://epistemedia.com/schemas/task-contract-v1.json",
  "title": "Epistemedia Task Contract v1",
  "type": "object",
  "required": ["id", "title", "status", "change_class", "objective", "authority", "acceptance"],
  "properties": {
    "id": {"type": "string", "pattern": "^EM-[0-9]{4,}$"},
    "title": {"type": "string", "minLength": 5},
    "status": {"enum": ["proposed", "blocked", "ready", "claimed", "in-progress", "verification", "completed", "cancelled", "superseded"]},
    "change_class": {"enum": ["maintenance", "ordinary-implementation", "research", "protocol-normative", "governance-normative", "disclosure-normative", "federation-normative"]},
    "objective": {"type": "string"},
    "depends_on": {"type": "array", "items": {"type": "string"}, "uniqueItems": true},
    "authority": {
      "type": "object",
      "required": ["allowed_paths"],
      "properties": {
        "allowed_paths": {"type": "array", "items": {"type": "string"}, "minItems": 1},
        "forbidden_paths": {"type": "array", "items": {"type": "string"}},
        "protected_paths": {"type": "array", "items": {"type": "string"}}
      },
      "additionalProperties": true
    },
    "acceptance": {"type": "array", "items": {"type": "string"}, "minItems": 1},
    "required_evaluation": {"type": "array", "items": {"type": "string"}},
    "evidence": {"type": "array", "items": {"type": "object"}},
    "limitations": {"type": "array", "items": {"type": "string"}},
    "supersedes": {"type": "string"}
  },
  "additionalProperties": false
}
