// SPDX-License-Identifier: Prosperity-3.0.0 // Copyright Scientific Computing Studio // Source: https://git.scient.ing/education/coursebank //! Support for writing items and building assessments from them. //! //! The three modules here are what you interact with before an exam exists, and //! they divide by how much authority each one has. //! //! [`lint`] has none. Its 26 rules are advice with stable codes, every one //! silenceable with `--ignore`. It is deliberately separate from the validation in //! [`crate::model::bank`], which enforces what must be true and fails. Conflating //! the two produces a tool that either blocks you on style or lets real errors //! through. //! //! [`select`] draws an assessment from a blueprint. It places objective minimums //! before level quotas, because a coverage requirement is the constraint most //! likely to become unsatisfiable, and it prefers least-recently-used items so a //! bank rotates rather than converging on your favourites. //! //! [`jsonschema`] emits JSON Schema so an editor autocompletes the YAML. That is //! a better authoring experience than any validator: catching `cognitve_process` //! as you type beats reading it in a list afterward. pub mod jsonschema; pub mod lint; pub mod select;