# OpenAPI Support Matrix

MoonContract 0.1.x 聚焦常见 REST JSON API，不声称实现完整 OpenAPI 或 JSON
Schema 规范。

## Supported

| Area | Support |
| --- | --- |
| Versions | OpenAPI 3.0.0–3.0.3 |
| Input | JSON；`moonbit-community/yaml` 支持的常用 YAML 子集 |
| Operations | GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS、TRACE |
| Parameters | path、query、header、cookie；标量和数组 |
| Bodies | `application/json` 和 `application/*+json` |
| Responses | 精确状态码和 `default` |
| References | components 下 schemas、parameters、requestBodies、responses 的本地 `$ref` |
| Schemas | string、integer、number、boolean、array、object |
| Constraints | required、nullable、enum、default、example、min/max、长度和数组数量 |
| Object policy | properties 和布尔 `additionalProperties` |

Query 数组支持重复键和逗号分隔形式。静态路由优先于参数路由，路径模板参数必须
占据完整路径段。

## Partial

- `format` 用于生成常见 date、date-time、email 和 uuid Mock，暂不执行严格格式校验。
- YAML 由上游简化解析器提供，不支持完整 YAML 1.2 特性。
- 非 JSON media type 会被忽略或诊断，不解析 multipart、form 或二进制正文。
- Schema 中未知关键字会被保留为未执行语义，不作为完整 JSON Schema 实现。

## Not Supported in 0.1.x

- OpenAPI 2.0 和 3.1。
- 外部文件或网络 `$ref`。
- `allOf`、`oneOf`、`anyOf`、`not`、discriminator 和 XML。
- callbacks、links、webhooks 和 OAuth 流程执行。
- 参数对象序列化、deepObject 和复杂 style/explode 组合。
- 状态化 Mock、代理、流量录制、TLS 和生产部署。

不支持的范围会在新增实现前更新此矩阵，并增加对应测试。

