Skip to content
docsv0.30.2

Mutates

What this operation can do AT WORST — the ceiling, declared by the operation about itself. It carries the vocabulary of {@see EffectProfile} unchanged, on purpose: that vocabulary is measured and this attribute is a SYNTAX for it, not a second opinion about it. What the attribute adds is where the declaration lives — next to the code that performs the effect, in the same place the human writes the intent and the agent reads it. A class carrying this is mutating. A class carrying {@see Reads} is not. A class carrying NEITHER does not become an operation at all — silence is not an answer here (greenhouse decisions/0212 §5).

Mutates::__construct()

public function __construct(Milpa\Command\Effect\Mutation $mutation = Milpa\Command\Effect\Mutation::Unknown, Milpa\Command\Effect\Externality $externality = Milpa\Command\Effect\Externality::Unknown, Milpa\Command\Effect\Reversibility $reversibility = Milpa\Command\Effect\Reversibility::Unknown, Milpa\Command\Effect\Authority $authority = Milpa\Command\Effect\Authority::Unknown, Milpa\Command\Effect\Subject $subject = Milpa\Command\Effect\Subject::Unknown, ?string $rollback = null, array $escalatesOn = [], array $descents = []):

Parameters

Parameters of __construct()
NameTypeDescription
$mutationMilpa\Command\Effect\Mutation
$externalityMilpa\Command\Effect\Externality
$reversibilityMilpa\Command\Effect\Reversibility
$authorityMilpa\Command\Effect\Authority
$subjectMilpa\Command\Effect\Subject
$rollback?string
$escalatesOnlist<string>Argument names whose value can RAISE this ceiling.
$descentslist<Descent>Declared descents from the ceiling, where they are proven — `new Descent(...)` is a valid attribute argument, so a proven descent is written right here rather than reconstructed later.

Mutates::profile()

public function profile(): Milpa\Command\Effect\EffectProfile

The same value object every consumer in the platform already reads.