website-htmx-rustelo/.ontoref/reflection/defaults.ncl
Jesús Pérez 3ccd15a14b init repo
2026-07-10 03:33:46 +01:00

28 lines
1.1 KiB
Text

let s = import "schema.ncl" in
let c = import "constraints.ncl" in
# Factory functions for reflection types.
# Pattern mirrors jpl_ontology/adrs/defaults.ncl: import schema + constraints, expose factories.
{
# make_mode ActionContract data → validates structural contract + semantic constraints.
# The Mode contract enforces DAG correctness (uniqueness + referential integrity).
# Cycle detection runs separately in ontoref-reflection::dag::validate.
make_mode = fun ActionContract => fun data =>
let result | (s.Mode ActionContract) = data in
let result | c.NonEmptySteps = result in
let result | c.ValidTrigger = result in
result,
# make_step ActionContract data → validates a single step against the schema.
make_step = fun ActionContract => fun data =>
data | (s.ActionStep ActionContract),
# Re-export raw types for consumers that apply contracts manually.
Mode = s.Mode,
ActionStep = s.ActionStep,
Dependency = s.Dependency,
OnError = s.OnError,
Guard = s.Guard,
Converge = s.Converge,
}