forked from EduCraft/curriculum-project-hub
b5bf9d60d1
manifest.toml [targets.*] upgraded from bare names to structured build configs.
Lesson.targets: Vec<String> → Vec<TargetConfig> { name, artifact, numbering }.
ArtifactKind { SingleFile, FileTree } mirrors Spec.Courseware.Artifact.
NumberingConfig.heading: Option<Vec<String>> — None means "use framework
default" (render package owns it), so absence is distinguishable from a value.
Empty [targets.x] body = all defaults, no diagnostics. Malformed config (bad
artifact value, non-array numbering.heading) → non-fatal SchemaViolation, target
kept with defaults. Enabled toml `preserve_order` so target declaration order is
real (the old Vec<String> never actually preserved order). target_names() helper
for call sites that only want names. 8 tests green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
13 lines
392 B
TOML
13 lines
392 B
TOML
[package]
|
|
name = "cph-model"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[dependencies]
|
|
cph-diag = { workspace = true }
|
|
serde = { workspace = true }
|
|
# `preserve_order` keeps `[targets.*]` tables in TOML document order, which is
|
|
# the declared order this crate exposes via `Lesson.targets` (ADR-0009).
|
|
toml = { workspace = true, features = ["preserve_order"] }
|