{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.mulocoin.online/manifest.schema.json",
  "title": "MuloCoin Trust Manifest",
  "description": "Machine-readable evidence manifest for the MuloCoin ($MULO) trust receipt. Every check links to its on-chain source.",
  "type": "object",
  "required": [
    "$schema",
    "formatVersion",
    "type",
    "generatedAt",
    "token",
    "checks",
    "summary",
    "generatedBy"
  ],
  "properties": {
    "$schema": { "type": "string", "const": "https://www.mulocoin.online/manifest.schema.json" },
    "formatVersion": { "type": "integer", "const": 1 },
    "type": { "type": "string", "const": "mulo_trust_manifest" },
    "generatedAt": { "type": "string", "format": "date-time" },
    "token": {
      "type": "object",
      "required": ["name", "symbol", "ticker", "mint", "standard", "decimals", "totalSupply", "creatorWallet", "graduationTargetSol", "links"],
      "properties": {
        "name": { "type": "string" },
        "symbol": { "type": "string" },
        "ticker": { "type": "string" },
        "mint": { "type": "string", "maxLength": 64 },
        "standard": { "type": "string" },
        "decimals": { "type": "integer" },
        "totalSupply": { "type": "number" },
        "creatorWallet": { "type": "string", "maxLength": 64 },
        "graduationTargetSol": { "type": "number" },
        "links": { "type": "object", "additionalProperties": { "type": "string", "format": "uri" } }
      }
    },
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["id", "label", "status", "value", "sources"],
        "properties": {
          "id": { "type": "string" },
          "label": { "type": "string" },
          "status": { "enum": ["pass", "pending", "fail", "unavailable"] },
          "value": { "type": "string" },
          "evidence": { "type": ["object", "null"] },
          "sources": {
            "type": "array",
            "items": {
              "type": "object",
              "required": ["name", "url"],
              "properties": {
                "name": { "type": "string" },
                "url": { "type": "string", "format": "uri" }
              }
            }
          }
        }
      }
    },
    "summary": {
      "type": "object",
      "required": ["passed", "pending", "failed", "unavailable", "total"],
      "properties": {
        "passed": { "type": "integer" },
        "pending": { "type": "integer" },
        "failed": { "type": "integer" },
        "unavailable": { "type": "integer" },
        "total": { "type": "integer" }
      }
    },
    "generatedBy": { "type": "string" }
  }
}