KSLBundledModel

One model packaged inside a KSLModelBundle.

A bundled model is a triple of (stable identity, human-facing labels, a typed factory that knows how to build the underlying ksl.simulation.Model). Capability declarations (supportedApps) let consumers filter their model pickers without instantiating the model — they read from the bundle's static metadata.

Construction of a Model is deferred to builder(). Listing models in a picker, computing capability badges, and reading the descriptor JSON from an enriched JAR all happen without ever calling builder().build(...).

Properties

Link copied to clipboard
abstract val description: String

One- or two-sentence summary suitable for a tooltip or side panel.

Link copied to clipboard
abstract val displayName: String

Free-form human-readable name shown in pickers.

Link copied to clipboard
abstract val modelId: String

Stable identifier for this model within its enclosing bundle. Used as a directory name inside the JAR (under META-INF/ksl/models/) and as the cache filename for the lazy descriptor extractor; must therefore be filesystem-safe (lowercase ASCII letters, digits, and hyphens by convention; no slashes, no ..).

Link copied to clipboard

The app kinds this model claims to support. The four Swing apps use this to filter their pickers (e.g. the Experiment app shows only models whose supportedApps contains KSLAppKind.EXPERIMENT). Today this is an author honor system; a future kslpkg validate will cross-check the claim against the model's extracted descriptor.

Functions

Link copied to clipboard
abstract fun builder(): ModelBuilderIfc

Returns a typed factory for constructing the underlying ksl.simulation.Model.