Action implementations for the messages tool — the boundary over
YmerNode.Messages.
The shape YmerNode.Mcp.Tools.Schedules.Actions takes: every required scalar
is guarded on its head, each guarded head is followed by a wrong-typed twin
that answers an error message, and the optional keys are typed as they are taken, a
nil taken as the key left out — on the wire the value gate refuses a JSON
null first, so that serves direct calls. thread on read is a string or a list
of strings, so it is checked as either. What a since means, and every answer's
shape, the context decides.