{"openapi":"3.1.0","info":{"title":"LAKA–WCAG Accessibility Grammar API","version":"1.0.0","summary":"Public read API for the LAKA–WCAG Accessibility Grammar, plus a rule-schema validator.","description":"Every WCAG 2.2 A/AA success criterion with an operational summary and primary source links; the LAKA model, its 50-cell base grid and 700 addressable analysis cells; schema-validated example rules; the source register; and POST /v1/validate, which checks a submitted rule document against the published JSON Schema. This API is a specification and reference — not a scanner, certification or audit.","contact":{"name":"Bow Tie Kreative","url":"https://bowtiekreative.com"}},"servers":[{"url":"https://wcag.bowtiekreative.com"}],"paths":{"/v1":{"get":{"summary":"Service index","operationId":"index","responses":{"200":{"description":"Service metadata and endpoint list"}}}},"/v1/health":{"get":{"summary":"Liveness and corpus counts","operationId":"health","responses":{"200":{"description":"Status and counts"}}}},"/v1/openapi.json":{"get":{"summary":"This document","operationId":"openapi","responses":{"200":{"description":"OpenAPI 3.1"}}}},"/v1/manifest":{"get":{"summary":"Package manifest and inventory","operationId":"manifest","responses":{"200":{"description":"Manifest"}}}},"/v1/model":{"get":{"summary":"The LAKA model","operationId":"model","responses":{"200":{"description":"Levels, internal variables, meta variables and the base grid"}}}},"/v1/criteria":{"get":{"summary":"List the WCAG 2.2 A/AA criteria","operationId":"listCriteria","parameters":[{"name":"level","in":"query","schema":{"enum":["A","AA"]}},{"name":"principle","in":"query","schema":{"enum":["Perceivable","Operable","Understandable","Robust"]}},{"name":"q","in":"query","schema":{"type":"string"},"description":"Free-text filter over id, name and summary"},{"name":"limit","in":"query","schema":{"type":"integer","default":100}},{"name":"offset","in":"query","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"A paged list","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/components/schemas/CriterionSummary"}}}}}}}}}},"/v1/criteria/{id}":{"get":{"summary":"One criterion","operationId":"getCriterion","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+$"},"example":"1.4.3"}],"responses":{"200":{"description":"The criterion","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Criterion"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"const":"not_found"},"id":{"type":"string"}}}}}}}}},"/v1/cells":{"get":{"summary":"List the 700 LAKA analysis cells","operationId":"listCells","parameters":[{"name":"level","in":"query","schema":{"enum":["Baseline","Minor Change","Major Change","Structural Change","Paradigm Change"]}},{"name":"variable","in":"query","schema":{"enum":["Object","Conditions","Actions","Tools","Resources","Outcomes","Feedback","Constraints","Value","Failure mode"]}},{"name":"lens","in":"query","schema":{"enum":["Magnitude","Rate","Direction","Scope","Depth","Duration","Frequency","Acceleration","Variability","Detectability","Reversibility","Propagation","Amplification","Accumulation"]}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":700}},{"name":"offset","in":"query","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"A paged list","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/components/schemas/Cell"}}}}}}}}}},"/v1/cells/{id}":{"get":{"summary":"One analysis cell","operationId":"getCell","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"L0-I01-M01"}],"responses":{"200":{"description":"The cell","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cell"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"const":"not_found"},"id":{"type":"string"}}}}}}}}},"/v1/rules":{"get":{"summary":"List the example rules","operationId":"listRules","responses":{"200":{"description":"Rule summaries"}}}},"/v1/rules/{id}":{"get":{"summary":"One example rule","operationId":"getRule","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"LAKA-WCAG-FOCUS-VISIBILITY"}],"responses":{"200":{"description":"The full rule document"},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"const":"not_found"},"id":{"type":"string"}}}}}}}}},"/v1/schema":{"get":{"summary":"The JSON Schema for a rule document","operationId":"schema","responses":{"200":{"description":"JSON Schema (draft 2020-12)"}}}},"/v1/evidence-template":{"get":{"summary":"The untested-evidence record template","operationId":"evidenceTemplate","responses":{"200":{"description":"Template"}}}},"/v1/sources":{"get":{"summary":"The primary source register","operationId":"sources","responses":{"200":{"description":"Sources"}}}},"/v1/docs":{"get":{"summary":"The package documents","operationId":"docs","responses":{"200":{"description":"Document list"}}}},"/v1/docs/{slug}":{"get":{"summary":"One document, as markdown","operationId":"getDoc","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"laka-foundation"}],"responses":{"200":{"description":"Markdown text","content":{"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"const":"not_found"},"id":{"type":"string"}}}}}}}}},"/v1/validation-report":{"get":{"summary":"The package structural validation report","operationId":"validationReport","responses":{"200":{"description":"Report"}}}},"/v1/validate":{"post":{"summary":"Validate a rule document against the schema","operationId":"validateRule","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"A rule document; see /v1/schema."}}}},"responses":{"200":{"description":"Validation outcome","content":{"application/json":{"schema":{"type":"object","properties":{"valid":{"type":"boolean"},"error_count":{"type":"integer"},"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"400":{"description":"The body was not a JSON object"}}}},"/v1/evaluate":{"post":{"summary":"Alias of /v1/validate","operationId":"evaluateRule","responses":{"200":{"description":"Validation outcome"}}}}},"components":{"schemas":{"CriterionSummary":{"type":"object","properties":{"id":{"type":"string","example":"1.4.3"},"name":{"type":"string"},"level":{"enum":["A","AA"]},"principle":{"enum":["Perceivable","Operable","Understandable","Robust"]},"operational_summary":{"type":["string","null"]},"href":{"type":"string"}}},"Criterion":{"allOf":[{"$ref":"#/components/schemas/CriterionSummary"},{"type":"object","properties":{"normative_source":{"type":"string"},"understanding_source":{"type":"string"},"applicability_status":{"type":"string"},"assessment_status":{"type":"string"},"related_rules":{"type":"array","items":{"type":"object"}}}}]},"Cell":{"type":"object","properties":{"id":{"type":"string","example":"L0-I01-M01"},"level":{"type":"string"},"internal_variable":{"type":"string"},"meta_variable":{"type":"string"},"base_instruction":{"type":"string"},"question":{"type":"string"},"measurement_guidance":{"type":"string"},"status":{"type":"string","example":"NOT_EVALUATED"}}}}}}