Top-level fields
id— case identifier (typedCaseId).solver— solver pack id and version.physics— discipline, regimes, compressibility, dimensionality.geometry— references and named selections.mesh— intent, targets, quality gates.materials— typed constitutive models.conditions— boundary and initial conditions, loads, constraints.controls— schemes, relaxation, tolerances, timestepping.postprocessing— recipes and figure-role bindings.validation—ValidationSpecwith QoIs and tolerances.study— optionalStudySpecfor sweeps.report— audience profile and standards-pack selection.metadata— owner, tags, classification.
physics
discipline is one of cfd | fea | thermal | multiphysics. regimes is an array of typed predicates the solver pack inspects to choose a capability decision. compressibility is incompressible | compressible | low-mach. The platform refuses to materialize a CaseSpec whose declared physics contradicts its boundary conditions.
ValidationSpec
An array of typed QoIs (name, units, scope, extraction method, tolerance), plus residual targets, benchmark comparisons, mesh or time-step evidence requirements, citations, and review criteria. The report builder requires every published claim to map back to a ValidationSpec entry.
StudySpec
Optional. Declares variants, controlled variables, QoIs, stop criteria, and aggregation. When present, the platform produces a typed StudyRecord linking all participating runs.
Patching CaseSpecs
All edits — agent or UI — flow through typed patches: set, unset, addItem, removeItem. Patches carry author, timestamp, and reason. Hand-editing a generated solver file does not patch the spec and will be overwritten on the next materialization.