action mail
provides a specification, parsing tools, and mail client utilities to obtain action entities
and/or action variables
from mails, messages, or other user input.
action entities
have true
or false
values. action variables
have string values.
action mail
s are intended to be used for accountless interactions
, however the parsing functionality can be used to extract and perform actions for fully authenticated users using any realtime communication channel.
An user is accountless
when interacting with an internet service without being expressly identified to/for that service.
An user could desire to be accountless
and at the same time be interested in a particular product offered by an internet service. They could even desire to purchase that particular product, but without going through the hassle of setting up an account, or exposing their favorite login with
provider for just another, simple, one-time buy event. They want a flea market-like economic transaction
, not to engage in a 12 year relationship with a prenuptial agreement and a tough divorce.
An action mail field content
is enclosed in {
and }
, or in [
and ]
, or in other characters that have a general delimiting semantic, customizable and specified by the service implementing action mails. The action mail field content
can consist of one or more action mail field token
s.
An action mail field token
can be an action mail entity
or an action mail variable
.
The action mail entity
expresses the truth or falseness of a concept, e.g. {send}
, {generate}
. action mail entities
can be negated by prefixing the token with common language words: don't
, no
, none
; e.g. {don't send}
. The negations can be extended and specified by the service implementing action mails.
The action mail variables
expect a string value after the colon, e.g. {name: one}
, {zip code: 012345}
. The value is generally left to be filled by the user, but it can contain predefined values. The parsing of the string value into types, i.e. numbers, is left to the service implementing action mails, e.g. { one: 123 }
is parsed as { one: '123' }
.
An action mail field
can have multiple entities
and/or variables
, using a spacer
to distinguish them, e.g. {send · name: one}
, {generate, don't send}
, with ·
and ,
acting as spacer
s. The spacer
s are customizable and specified by the service implementing action mails.
The leading and trailing whitespace is trimmed from action mail field entities
and variables
, e.g.
{ pay }
is parsed as { pay: true }
and
{ one: two }
is parsed as { one: 'two' }
.
""
{ "camelCaseKeys": false, "fielders": [ [ "{", "}" ] ], "groupsKey": "groups", "negations": [ "no", "not", "none", "don't", "do not" ], "spacer": "" }