prosaic-project 1.0.1

Folder-of-files project format and bundler for Prosaic templates.
Documentation
# prosaic-project

Folder-of-files project format and bundler for Prosaic templates.

`prosaic-project` loads, validates, tests, and bundles Prosaic template projects.
It is the library behind the `prosaic new`, `prosaic build`, and `prosaic test`
CLI subcommands.

## Install

```toml
[dependencies]
prosaic-project = "1.0.1"
```

## Project Layout

```text
my-project/
  prosaic.toml
  templates/
  partials/
  fixtures/
  tests/
```

The manifest configures engine settings, vocabulary dependencies, style
preferences, and optional style profiles. Templates and partials are TOML files;
fixtures are JSON context maps; tests are scenario files that render one or more
events through a session and assert the resulting prose.

## What It Provides

- `Project::load_from_dir` for loading the folder format.
- Validation for template parse errors, missing fixtures, and pipe/schema issues.
- `Project::into_engine` for materializing a configured `prosaic_core::Engine`.
- Scenario execution through `ScenarioRunner`.
- `build_bundle` for portable JSON manifests or generated Rust source.
- Starter scaffolds for blank, changelog, and vocabulary-pack projects.
- A catalog of reference `StyleProfile` presets.

## Example

```rust
use prosaic_project::{BuildTarget, Project, build_bundle};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let project = Project::load_from_dir("my-project")?;
    let issues = project.validate();
    assert!(issues.is_empty());

    let bundle = build_bundle(&project, BuildTarget::Json)?;
    assert!(bundle.json.is_some());
    Ok(())
}
```

## License

MIT OR Apache-2.0