Skip to content

Language overview (crml_lang)

crml_lang defines the portable CRML language contract:

  • Document schemas (JSON Schema generated from Pydantic models)
  • YAML load/dump helpers
  • Validation (schema + semantic checks)
  • Engine-agnostic interchange models (e.g., result envelope)

Engines (like crml_engine) decide which modeling algorithms are supported and how to execute them.

See: CRML Specification (Overview)


Document types

CRML is document-oriented. Common document discriminators include:

  • crml_scenario: "1.0"
  • crml_portfolio: "1.0"
  • crml_control_catalog: "1.0"
  • crml_assessment: "1.0"
  • crml_control_relationships: "1.0"
  • crml_attack_catalog: "1.0"
  • crml_attack_control_relationships: "1.0"
  • crml_portfolio_bundle: "1.0"
  • crml_simulation_result: "1.0"

Schema docs live under: Language/Schemas