{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://xcim.org/schemas/wd-02/0.2/registry.schema.json",
  "title": "XCIM WD-02 Machine-Readable Registry 0.2",
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "registry_id",
        "registry_version",
        "codes"
      ],
      "properties": {
        "registry_id": {
          "const": "xcim-result-codes"
        },
        "registry_version": {
          "const": "0.2"
        },
        "codes": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "code",
              "category"
            ],
            "properties": {
              "code": {
                "type": "string",
                "pattern": "^XCIM_[A-Z_]+$"
              },
              "category": {
                "enum": [
                  "positive",
                  "neutral",
                  "negative"
                ]
              }
            }
          }
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "registry_id",
        "registry_version",
        "types"
      ],
      "properties": {
        "registry_id": {
          "const": "xcim-media-types"
        },
        "registry_version": {
          "const": "0.2"
        },
        "types": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "media_type",
              "object_type",
              "serialization"
            ],
            "properties": {
              "media_type": {
                "type": "string",
                "pattern": "^application/xcim-[a-z-]+\\+(jcs|json)$"
              },
              "object_type": {
                "type": "string",
                "pattern": "^[a-z][a-z0-9_]*$"
              },
              "serialization": {
                "enum": [
                  "JWS Flattened JSON Serialization",
                  "JSON",
                  "Ed25519 inline signature over domain-separated JCS"
                ]
              },
              "status": {
                "enum": [
                  "pending-D-016"
                ]
              }
            }
          }
        }
      }
    }
  ]
}
