# Public Catalog V1

- Object ID: `em:schema:sha256:f153d356c946382b279b2b8a72eb23974c0d5185357462a2fe8ae3b495c17911`
- Kind: `schema`
- Repository path: [`schemas/public-catalog-v1.json`](https://github.com/yoheinakajima/epistemedia/blob/f92846570180dfa4511263f8ba98ecd18f7772c9/schemas/public-catalog-v1.json)
- Content digest: `35a72fc173ec9c6da6108273987a68587c8aa95096c9ad18ca32ba6d816866d7`

**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/public-catalog-v1.json",
  "title": "Epistemedia Public Catalog v1",
  "type": "object",
  "required": ["catalog_id", "frontier", "commit", "compiler", "objects", "topics", "lenses", "policies"],
  "properties": {
    "catalog_id": {"type": "string", "pattern": "^em:catalog:sha256:[a-f0-9]{64}$"},
    "frontier": {"type": "string", "pattern": "^em:frontier:sha256:[a-f0-9]{64}$"},
    "commit": {"type": "string"},
    "compiler": {"type": "string"},
    "generated_at": {"type": "string", "format": "date-time"},
    "object_count": {"type": "integer", "minimum": 0},
    "topic_count": {"type": "integer", "minimum": 0},
    "objects": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["id", "kind", "path", "content_digest", "visibility"],
        "properties": {
          "id": {"type": "string"},
          "kind": {"type": "string"},
          "path": {"type": "string"},
          "title": {"type": "string"},
          "summary": {"type": "string"},
          "media_type": {"type": "string"},
          "content_digest": {"type": "string", "pattern": "^[a-f0-9]{64}$"},
          "visibility": {"const": "public"},
          "metadata": {"type": "object"}
        },
        "additionalProperties": true
      }
    },
    "topics": {"type": "array", "items": {"type": "object"}},
    "lenses": {"type": "object"},
    "policies": {"type": "object"}
  },
  "additionalProperties": true
}
