# StatifierDatamodel v0.4.0 - Table of Contents > The datamodel document and what can be decided from it: the typed three-scope declaration, its named record and shape types, the path/type index, the read check, compatibility and coverage - pure functions, no dependency on the block editor, the compiler or the UI ## Pages - [StatifierDatamodel](readme.md) - [Changelog](changelog.md) - Architecture decisions - [ADR-0001: The datamodel document, re-homed: a typed three-scope declaration with named record and shape types, and the declared-path set as its projection](0001-datamodel-document.md) ## Modules - [StatifierDatamodel](StatifierDatamodel.md): The datamodel document and what can be decided from it, with no dependency on the block editor, the compiler, or the UI. - Document and index - [StatifierDatamodel.Document](StatifierDatamodel.Document.md): The document-level reads: the three questions a consumer asks of a raw, decoded datamodel document rather than of an index it already holds. - [StatifierDatamodel.Index](StatifierDatamodel.Index.md): The path/type index over a datamodel document (ADR-0001), and the projections that record promises. - Declared types - [StatifierDatamodel.Declarations](StatifierDatamodel.Declarations.md): The index over a datamodel document's `types` key (ADR-0001 decision 5): the named record and shape declarations, by name. - [StatifierDatamodel.Types](StatifierDatamodel.Types.md): Type expressions over a datamodel document, and ADR-0001 decision 8's read check. - Compatibility and coverage - [StatifierDatamodel.Compatibility](StatifierDatamodel.Compatibility.md): ADR-0001 decision 9: what a redefined declaration takes away from the one it replaces. - [StatifierDatamodel.Coverage](StatifierDatamodel.Coverage.md): ADR-0001 decision 10: which required fields of a shape a map does not fill.