Constructs a value delta, normalizing value to a string and validating
that non-CUSTOM operators receive a numeric value.
Delta construction data.
Localization key naming the delta's source (see label).
Short abbreviation for the delta's source.
The operator selecting how the delta combines with the value.
The delta's value (numeric, or a boolean flag).
Construction options.
The owning sohl.core.logic.SohlLogic.
Short abbreviation for the delta's source (used to find or replace it).
Name of the delta's source as a localization key; localize for display via label.
The operator selecting how this delta combines with the running value.
The delta's value as a string — numeric, or "true"/"false" for flags.
The serialization discriminator for this instance — the concrete class's static Kind. Written into the JSON by toJSON under the kind key and read back by sohl.utils.defaultFromJSON to select the constructor. Derived from the class, never stored per-instance.
The delta's source name localized for display.
name is a localization key by convention across the system
(SOHL.ValueDelta.INFO.*, SOHL.MOD.*, SOHL.MysticalAbility.*, …), so
anything surfacing it to a human must localize it here rather than
emitting the raw key (#1127) — the same treatment
sohl.entity.modifier.ValueModifier.disabledReason got in #948. Idempotent on
already-plain text: an unknown key localizes to itself, so an ad-hoc
delta named with prose passes through unchanged.
The value as a number — "true"→1, "false"→0, otherwise the parsed number (0 if NaN).
Deep-copy this entity, re-parenting the copy under parent with no other
changes. Shorthand for clone({}, { parent }).
The Logic to own the cloned entity.
The cloned entity.
Deep-copy this entity, optionally overriding fields and clone options.
Field overrides applied to the clone.
Clone options (e.g. a new parent).
The cloned entity.
A single change (delta) applied to a ValueModifier — an operator plus a value, tagged with source labels for auditability.
Remarks
The op selects how apply combines this delta with a running value (add, multiply, floor, ceiling, override, or custom). Boolean-like values (
"true"/"false") are supported for flag-style modifiers; every other operator requires a numeric value.