@@ -6,10 +6,53 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
66
77---
88
9- ## [ 0.3.0] - 2026-01-07
9+ ## [ 0.3.0] - 2026-01-08
1010
1111### Added
1212
13+ #### Schema Tools Module (` aether-datafixers-schema-tools ` )
14+
15+ New module for schema analysis, validation, and migration coverage checking.
16+
17+ ** Schema Diffing (` schematools.diff ` ):**
18+ - ` SchemaDiffer ` — Fluent API for comparing two schemas
19+ - ` SchemaDiff ` — Immutable result with added/removed/common types
20+ - ` TypeDiff ` — Field-level changes for types present in both schemas
21+ - ` FieldDiff ` — Individual field change (ADDED, REMOVED, MODIFIED, UNCHANGED)
22+ - ` DiffKind ` — Enumeration of change types
23+ - Optional field-level diffing via ` includeFieldLevel(true) `
24+ - Type filtering via ` ignoreTypes(...) `
25+
26+ ** Migration Analysis (` schematools.analysis ` ):**
27+ - ` MigrationAnalyzer ` — Fluent API for analyzing migration paths
28+ - ` MigrationPath ` — Complete migration sequence with all steps
29+ - ` MigrationStep ` — Single version transition with optional DataFix and SchemaDiff
30+ - ` FixCoverage ` — Analysis result showing fix coverage for schema changes
31+ - ` CoverageGap ` — Represents a schema change without corresponding DataFix
32+ - Coverage gap reasons: TYPE_ADDED, TYPE_REMOVED, TYPE_MODIFIED, FIELD_ADDED, FIELD_REMOVED, FIELD_TYPE_CHANGED
33+ - Orphan fix detection (fixes without schema changes)
34+
35+ ** Schema Validation (` schematools.validation ` ):**
36+ - ` SchemaValidator ` — Fluent API for validating schemas
37+ - ` ValidationResult ` — Immutable collection of validation issues
38+ - ` ValidationIssue ` — Single issue with severity, code, message, location, context
39+ - ` IssueSeverity ` — ERROR, WARNING, INFO levels
40+ - ` StructureValidator ` — Validates schema structure (cycles, version ordering, parent chains)
41+ - ` ConventionChecker ` — Validates naming conventions for types, fields, classes
42+ - ` ConventionRules ` — Configurable naming rules (STRICT, RELAXED, NONE, or custom)
43+ - Schema class prefix/suffix validation (e.g., "Schema" prefix for Schema100, Schema200)
44+ - Fix class prefix/suffix validation (e.g., "Fix" suffix for PlayerNameFix)
45+ - Predefined patterns for snake_case, camelCase
46+ - Custom validators via ` customTypeValidator() ` and ` customFieldValidator() `
47+
48+ ** Type Introspection (` schematools.introspection ` ):**
49+ - ` TypeIntrospector ` — Utility for analyzing type structures
50+ - ` TypeStructure ` — Normalized, comparable representation of a Type
51+ - ` FieldInfo ` — Field metadata (name, path, optionality, type)
52+ - ` TypeKind ` — Classification (PRIMITIVE, LIST, OPTIONAL, PRODUCT, SUM, FIELD, etc.)
53+ - Recursive field extraction with hierarchical paths
54+ - Structural equality comparison
55+
1356#### CLI Module (` aether-datafixers-cli ` )
1457
1558New command-line interface for data migration without writing Java code.
@@ -47,6 +90,13 @@ New command-line interface for data migration without writing Java code.
4790- ` BootstrapLoadException ` — Bootstrap class loading failures
4891- ` FormatParseException ` — Input parsing failures
4992
93+ ### Documentation
94+
95+ - Added comprehensive Schema Tools documentation (diffing, analysis, validation, introspection)
96+ - Added CLI module documentation (commands, format handlers, examples)
97+ - Updated glossary with Schema Tools terminology
98+ - Updated installation guide with new modules
99+
50100---
51101
52102## [ 0.2.0] - 2026-01-07
0 commit comments