Architecture#

These pages are for changing MatMelt rather than using it. They assume you have read Explanation, which covers why the design is what it is; here the subject is where things are and what holds them together.

Page

Covers

Module map

Every package and module, and the dependency rule between them

Value objects

The frozen dataclasses that travel between layers

The two contracts

The two ABCs, their registries, and what implementing them obliges you to

The orchestrator

One pass, function by function, and where failure is attributed

State and storage

The SQLite schema, the workspace on disk, and read-only observers

Design decisions

The locked defaults, and the decisions that reversed earlier ones

Contributing

Dev setup, the check battery, and how to add a stage or backend

The generated API reference — every module, class and method, from the docstrings — is API reference.