This answers only "was a valid principal readable from this value". It does
NOT promise a later plain read returns what was validated — nothing can, for
an object built to lie. Anything that goes on to USE the fields must take
them from canonicalPrincipal's snapshot (as trustAutomationPrincipal and
assertExecutionPrincipal do) rather than from the argument.
This answers only "was a valid principal readable from this value". It does NOT promise a later plain read returns what was validated — nothing can, for an object built to lie. Anything that goes on to USE the fields must take them from
canonicalPrincipal's snapshot (astrustAutomationPrincipalandassertExecutionPrincipaldo) rather than from the argument.