{
  "$schema":"https://json-schema.org/draft/2020-12/schema",
  "$id":"https://agla.local/schemas/agla-runtime-capabilities.schema.json",
  "title":"AGLA compilation runtime capability corpus",
  "type":"object",
  "additionalProperties":false,
  "required":["corpus_id","required_semantics","profiles"],
  "properties": {
    "corpus_id":{"type":"string","minLength":1},
    "required_semantics":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string"}},
    "profiles":{"type":"array","minItems":5,"items":{"$ref":"#/$defs/profile"}}
  },
  "$defs": {
    "profile": {
      "type":"object","additionalProperties":false,
      "required":["profile_id","implementation_state","capabilities","negotiation"],
      "properties": {
        "profile_id":{"enum":["LEAN_TEXT_MANUAL","IDE_CODING_AGENT","STRUCTURED_MULTI_AGENT","JSON_GRAPH_CAPABLE","OPTIONAL_GAME_ENGINE"]},
        "implementation_state":{"enum":["REFERENCE_ADAPTER_IMPLEMENTED","REFERENCE_STRUCTURED_ADAPTER_IMPLEMENTED_NO_ENGINE","CONTRACT_ONLY","UNAVAILABLE"]},
        "capabilities":{"type":"array","uniqueItems":true,"items":{"type":"string"}},
        "negotiation":{"type":"array","minItems":1,"items":{"$ref":"#/$defs/negotiation"}}
      }
    },
    "negotiation": {
      "type":"object","additionalProperties":false,
      "required":["feature","disposition","declared_loss","authority_effect"],
      "properties": {
        "feature":{"type":"string"},
        "disposition":{"enum":["PRESERVE","CONTRACT_WITH_DECLARED_LOSS","FALLBACK_TO_TEXT","SUSPEND_FOR_CAPABILITY","REJECT_UNSUPPORTED"]},
        "declared_loss":{"type":"array","items":{"type":"string"}},
        "authority_effect":{"const":"NONE"}
      }
    }
  }
}
