LeverDescriptor

@Serializable
data class LeverDescriptor(val name: String, val domain: LeverDomain, val kind: LeverKind = LeverKind.SETTING, val modelLowerLimit: Double, val modelUpperLimit: Double, val lowerBound: Double, val upperBound: Double, val stateDependent: Boolean = false, val levels: List<String>? = null, val unit: String? = null)(source)

One declared lever: what a rule may write, and what the ith entry of an action vector means. Order is significant, as for observations.

It carries both limit pairs, and the distinction is the one a consumer most needs: the model's own physical envelope (modelLowerLimit, modelUpperLimit) and the experiment's narrowing (lowerBound, upperBound). An editor or a rule that presented the wrong pair would offer values this run has excluded, or refuse values it allows (§4.3.3).

Constructors

Link copied to clipboard
constructor(name: String, domain: LeverDomain, kind: LeverKind = LeverKind.SETTING, modelLowerLimit: Double, modelUpperLimit: Double, lowerBound: Double, upperBound: Double, stateDependent: Boolean = false, levels: List<String>? = null, unit: String? = null)

Properties

Link copied to clipboard
Link copied to clipboard

Whether this lever is held or done (§8.2.3). A consumer that plans a sequence of actions needs it: repeating a SETTING is idempotent and repeating a TRANSACTION is not, and no other field distinguishes them.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

True when 𝒳(s) narrows the bounds above at each epoch (§4.4.6). The reported numbers are then an ENVELOPE, not the feasible set, and a consumer that cannot handle a state-dependent set should refuse rather than take them for the action space.

Link copied to clipboard
val unit: String?

What this lever is measured in — "staff", "units", "$/hour". Optional by design (§4.2.4, G.9 row 7): requiring it would be ceremony, and the library cannot verify a unit against the model. What it does with one is check that a joint constraint does not sum levers measured in different things, and name it in every violation message — and, through this descriptor, let a ShapeAwarePolicyIfc refuse a surface whose units are not what the rule was written for.

Link copied to clipboard