# EX-B2-14 · Paquete de revisión

## Requisitos

- `POST /records/{area}` recibe JSON, requiere `X-Correlation-ID`, crea con `201`
  y publica `Location`.
- La prioridad es un entero de 1 a 5.
- Una referencia duplicada produce `409` con `{error: {code, message}}`.
- La salida pública contiene `id`, `subject`, `priority` y `state`.

## Extracto del PR

```python
@app.post("/records")
def create(area: str, payload: dict, correlation_id: str | None = None):
    if payload["reference"] in records:
        return {"detail": "duplicate"}
    record = {**payload, "id": next_id(), "internal_note": "review"}
    records[record["id"]] = record
    return record
```

## Documento OpenAPI generado por el PR

```yaml
openapi: 3.1.0
info:
  title: Records Review API
  version: 0.3.0
paths:
  /records:
    post:
      summary: Create a record
      operationId: createRecord
      parameters:
        - name: area
          in: query
          required: true
          schema:
            type: string
        - name: correlation_id
          in: query
          required: false
          schema:
            type: [string, "null"]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RecordInput"
      responses:
        "200":
          description: Record returned by the implementation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RecordResult"
components:
  schemas:
    RecordInput:
      type: object
      additionalProperties: true
    RecordResult:
      type: object
      additionalProperties: true
```

El documento es estructuralmente válido como OpenAPI 3.1. Eso no significa
que satisfaga los requisitos: sus divergencias son evidencia para la revisión.

Entrega una tabla `requisito | evidencia | impacto | cambio mínimo`. Prioriza
defectos observables; no propongas routers, base de datos ni una reescritura.
