KSLAnimatedProcess

@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class KSLAnimatedProcess(val name: String = "", val include: Boolean = true)(source)

Marks a process-valued property of a ProcessModel.Entity subclass as animatable, mirroring the @KSLControl idiom (Phase 10.1b). Applied to the val that holds a process("…"){ } result:

@KSLAnimatedProcess(name = "Triage")                  val visit  = process("Triage") { … }
@KSLAnimatedProcess(name = "Rework", include = false) val rework = process("Rework") { … } // not animated

A process's animation identity is the name string passed to process(...) (what ProcessActivated carries), which is decoupled from the Kotlin property name. So name carries that trace-matching string; when blank it defaults to the property name. include is the per-process capture/animation on/off switch.

Like @KSLControl, this has default (RUNTIME) retention so it is reflectable, and discovery reads it from the declaring class's properties without constructing an instance or running the model.

Properties

Link copied to clipboard
val include: Boolean = true

whether to animate/capture this process (default true)

Link copied to clipboard

the process name as it appears in the trace; blank ⇒ use the property name