flusso-schema 0.10.1

Config and schema loading for flusso: assembles flusso.toml and *.schema.yml into a validated Config.
Documentation
# flusso-schema

The front door to the configuration layer: load a flusso configuration into a validated model.

[`load`] takes the path to a `flusso.toml`, reads the source and sinks from it, resolves and
parses every `*.schema.yml` the file references, and hands back a single [`Config`].

The format-specific crates (`schema-config-toml`, `schema-index-yaml`) and the core model
(`schema-core`) sit underneath. Downstream code depends only on this crate and reaches the
core types through its re-exports.

# Example

```no_run
let config = schema::load("flusso.toml")?;

for (name, index) in &config.indexes {
    println!("{name}: table {} ({} fields)", index.schema.table, index.schema.fields.len());
}
# Ok::<(), schema::LoadError>(())
```

# 2-schema — config & schema loading

This group turns config **files** into the validated `Config`.

| Crate | Path | Role |
| --- | --- | --- |
| schema | [.]. | The front door: `load()` reads a `flusso.toml` + its `*.schema.yml` files into one validated `Config`, and re-exports the `schema-core` vocabulary. |
| schema-config-toml | [1-config-toml]1-config-toml | Parses `flusso.toml` → neutral entities. |
| schema-index-yaml | [1-index-yaml]1-index-yaml | Parses `*.schema.yml` → core types. |

Each parser crate works in two stages: parse (serde → neutral entities), then convert
(entities → model). The `flusso.toml` → `Config` conversion lives in `schema` itself — a
composition step — so the toml parser stays free of `Config`.

Part of [the flusso library crates](../README.md).