{
  "$schema":"http://json-schema.org/draft-07/schema#",
  "$id":"https://aimlwebsite.pages.dev/schemas/aiml-0.1.json",
  "title":"AIML 0.1 experimental document",
  "type":"object","additionalProperties":false,
  "required":["version","source","blocks","actions"],
  "properties":{
    "version":{"const":"aiml/0.1"},
    "source":{"type":"object","additionalProperties":false,"required":["title","canonicalUrl","publisher","revision"],"properties":{"title":{"type":"string","minLength":1,"maxLength":200},"canonicalUrl":{"type":"string","pattern":"^https://[^\\s]+$"},"publisher":{"type":"string","minLength":1},"revision":{"type":"string","minLength":1}}},
    "blocks":{"type":"array","minItems":1,"maxItems":200,"items":{"type":"object","additionalProperties":false,"required":["id","type","text","sourceAnchor"],"properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,63}$"},"type":{"enum":["heading","paragraph","claim","quote","metric"]},"text":{"type":"string","minLength":1,"maxLength":12000},"sourceAnchor":{"type":"string","pattern":"^#[a-zA-Z][a-zA-Z0-9_-]*$"}}}},
    "actions":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["id","label","endpoint","method","confirmationRequired"],"properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,63}$"},"label":{"type":"string","minLength":1},"endpoint":{"type":"string","pattern":"^/api/[a-zA-Z0-9/_-]+$"},"method":{"enum":["GET","POST"]},"confirmationRequired":{"const":true}}}}
  }
}
