Section 14 of 102
13. Modules and Packages
Stable section ID: S05-CON-007-SECTION-14 · 32 content blocks
A BDL Module is a reusable unit containing related declarations.
Modules may define:
core language Types;
structural Types;
Interface families;
Cartridge families;
utility systems;
regional Profiles;
product libraries;
reusable assemblies;
project zones.
A BDL Package is a versioned collection of Modules, resources, schemas, signatures, and evidence references distributed as one controlled unit.
Every Module shall declare:
Module ID;
namespace;
version;
dependencies;
exported declarations;
applicable BDL versions;
status;
publisher;
integrity information.
Example:
module s05.structural.nodes version "1.2" {
export type UniversalNode;
export type NodeFace;
export relationship structural_connection;
}
Imports shall identify the required version or compatible range:
import s05.structural.nodes version "^1.2";
Circular Module dependencies shall be rejected unless the language specification explicitly defines a safe resolution mechanism.
Package contents shall be reproducible. A compiled result shall record the exact Module versions used rather than relying upon an unspecified “latest” version.