{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://tiffany.systems/api/schema/api-index.schema.json",
  "title": "ApiIndex",
  "description": "The entry point document. A client that knows only the base URL can discover every other public document from here.",
  "x-schema-version": "1.0.0",
  "type": "object",
  "additionalProperties": false,
  "required": ["schema", "name", "description", "contract_version", "scientific", "reference", "demonstration", "guarantees"],
  "properties": {
    "schema": {"const": "tiffany.systems/schema/index/1.0.0"},
    "name": {"type": "string"},
    "description": {"type": "string"},
    "contract_version": {"type": "string", "description": "The API contract version. Distinct from any scientific object, schema or ontology version."},
    "scientific": {"type": "object", "description": "Endpoints carrying published scientific records. Never fixtures."},
    "reference": {"type": "object", "description": "Vocabulary, policy, schemas, status and the deferred ledger."},
    "demonstration": {"type": "object", "description": "Fixture endpoints. Segregated by path and by classification."},
    "resources": {"type": "object", "description": "Typed records for what Tiffany offers, the capabilities they enable, and the published architecture."},
    "errors": {"type": "string"},
    "openapi": {"type": "string"},
    "documentation": {"type": "string"},
    "guarantees": {"type": "array", "minItems": 1, "items": {"type": "string"}}
  }
}
