{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://judgecat.app/protocol/cat/issuer-registry/v1","title":"CAT Protocol v1 issuer registry","type":"object","additionalProperties":false,"required":["schema","protocol","sequence","issuedAt","previousDigest","keys","proof"],"properties":{"schema":{"const":"https://judgecat.app/protocol/cat/issuer-registry/v1"},"protocol":{"type":"object","additionalProperties":false,"required":["acronym","name","version"],"properties":{"acronym":{"const":"CAT"},"name":{"const":"Court Attestation & Transparency"},"version":{"const":"1.0.0"}}},"sequence":{"type":"integer","minimum":1},"issuedAt":{"type":"string","format":"date-time"},"previousDigest":{"anyOf":[{"type":"string","pattern":"^sha256:[0-9a-f]{64}$"},{"type":"null"}]},"keys":{"type":"array","maxItems":32,"items":{"type":"object","additionalProperties":false,"required":["keyId","algorithm","publicKey","status","validFrom","validUntil","invalidFrom","revokedAt","reason","replacementKeyId"],"properties":{"keyId":{"type":"string","pattern":"^cat-key:[0-9a-f]{16}$"},"algorithm":{"const":"Ed25519"},"publicKey":{"type":"string","minLength":32,"maxLength":44},"status":{"enum":["active","retired","compromised","revoked"]},"validFrom":{"type":"string","format":"date-time"},"validUntil":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"invalidFrom":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"revokedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"reason":{"anyOf":[{"type":"string","maxLength":240},{"type":"null"}]},"replacementKeyId":{"anyOf":[{"type":"string","pattern":"^cat-key:[0-9a-f]{16}$"},{"type":"null"}]}}}},"proof":{"type":"object","additionalProperties":false,"required":["state","algorithm","digest","rootPublicKey","signature"],"properties":{"state":{"enum":["draft","signed"]},"algorithm":{"anyOf":[{"const":"Ed25519"},{"type":"null"}]},"digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$"},"rootPublicKey":{"anyOf":[{"type":"string","minLength":32,"maxLength":44},{"type":"null"}]},"signature":{"anyOf":[{"type":"string","minLength":80,"maxLength":96},{"type":"null"}]}}}}}