{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://ver.cy/schemas/dimension/1.0/dimension.schema.json",
  "title": "Vercy Dimension manifest",
  "type": "object",
  "required": ["format", "schemaVersion", "skillVersion", "revision", "id", "name", "preset", "createdAt", "purpose", "boundary", "owner", "canonical", "registries", "policies", "memory", "federation", "contextRouting", "storage", "compatibility", "lock"],
  "additionalProperties": false,
  "properties": {
    "format": {"const": "vercy-dimension"},
    "schemaVersion": {"const": "1.0.0"},
    "skillVersion": {"type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"},
    "revision": {"type": "integer"},
    "id": {"type": "string", "pattern": "^[a-z0-9][a-z0-9._:-]{2,127}$"},
    "name": {"type": "string", "minLength": 1},
    "preset": {"type": "string", "minLength": 1},
    "createdAt": {"type": "string", "format": "date-time"},
    "purpose": {"type": "string", "minLength": 1},
    "boundary": {"type": "object"},
    "owner": {"type": "object"},
    "canonical": {"type": "object"},
    "interfaces": {"type": "array"},
    "masterSystems": {"type": "array"},
    "registries": {"type": "object"},
    "policies": {"type": "object"},
    "memory": {"type": "string"},
    "federation": {"type": "string"},
    "contextRouting": {"type": "string"},
    "storage": {"type": "string"},
    "compatibility": {"type": "string"},
    "lock": {"type": "string"}
  }
}
