# docs/adr — Architecture Decision Records

This directory contains Architecture Decision Records (ADRs) for `xml-xsd-engine`.

ADRs document **significant design decisions** — choices that future contributors need to understand to avoid re-litigating the same questions, and that explain why the code is the way it is.

---

## What is an ADR?

An ADR records:
- **Status** — Accepted, Deprecated, Superseded
- **Context** — the situation and forces that led to the decision
- **Decision** — what was decided and why
- **Consequences** — positive and negative outcomes; what becomes easier or harder

---

## Index

| # | Title | Status | Version |
|---|---|---|---|
| [0001](./0001-zero-dependencies.md) | Zero Runtime Dependencies | Accepted | v1.1.0 |
| [0002](./0002-dfa-validation.md) | DFA-Style Content Model Validation | Accepted (lite); full DFA v2.0 | v1.4.0 |
| [0003](./0003-streaming-first.md) | Streaming-First Architecture via Lazy Lexer | Accepted | v1.1.0 |
| [0004](./0004-namespace-resolution.md) | Centralized Namespace Resolution Engine | Accepted | v1.4.0 |

---

## Adding a new ADR

1. Create `docs/adr/NNNN-short-title.md` (next sequential number)
2. Use the template below
3. Add an entry to this README index
4. Reference it in the PR description

### Template

```markdown
# ADR NNNN — Title

| Field | Value |
|---|---|
| **Status** | Proposed / Accepted / Deprecated / Superseded by NNNN |
| **Date** | YYYY-MM-DD |
| **Deciders** | Core team / contributor name |
| **Supersedes** | ADR NNNN (if applicable) |

## Context

[Describe the situation, forces, and constraints that led to this decision]

## Decision

[Describe what was decided and the key reasoning]

## Consequences

### Positive
- ...

### Negative
- ...

## Alternatives Considered

| Alternative | Rejected Because |
|---|---|
| ... | ... |
```

