+ + New event
+ or drop the captured record here
+
+
+
+
+
+
+
+
+
+ Our private events
+ Public contract
+
+
+
+
+
+
+
+
+
+
+
+ {{f.event}}
+ NO AUTOMAP
+
+
+
+
+
+ {{x.name}}
+ {{x.glyph}}
+
+
+
+
+
+
+
Other private events
+
+
+ {{e.name}}
+
+
+
+
+
+ PUBLIC
+ {{pub.name}}
+ {{ob.headHint}}
+
+
+
+
+
+ {{p.name}}
+ never set
+ {{p.glyph}}
+ {{p.type}}
+
+
+
+
Built by the projection {{projName}}. Each time one of its source events happens, the current shape is published to other applications as {{pub.name}}.
+
+
+
+
+
+
+
+
+
+
{{msg.text}}
+
+
+
+
Try it · given, when, then
+
What does it record if…
+
+
Then{{ti.title}}
+
+
+
{{e.name}} · {{e.why}}
+
for "{{e.for}}"
+
{{kv}}
+
+
+
⚠ {{n}}
+
+
+
+
+
+
+
The record, before → now
+
+
+
+ {{d.k}}{{d.before}}{{d.after}}
+
+
+
+
+
+
Given — last seen for this key
+
+
+
+
+
+
+
+
+
+
When — the {{sourceWord}} delivers
+
+
+
+
+
+
+
Given — what the other application already sent
+
+
+
+
from {{g.origin}}{{g.event}}
+
+
+
+
+
+
+
+
When — this arrives
+
+
+
+
+
+
+
+
+
+
Try it
+
What do other applications see?
+
Each source event updates the shape for its invoice and publishes it. Screenplay records the publication as a fact; it doesn't deliver it.
+
+
+
+
+
+
{{t.event}} for {{t.for}}
+
+
+
↗ publishes {{pub.name}}
+
{{r.t}}
+
+
+
not a source — nothing published
+
+
+
+
+
Given — our events
+
+
+
+
{{g.event}}for
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Source · where the outside data comes from
+
+
+
+
+
{{kindHelp}}
+
+
+ {{s.name}}
+
+
Fields in each record
+
+
+
+
+
+
+
+
+
+
+
Or paste a sample record
+
+
+
+
+
From these public events
+
+
+
+
+
+
Each event's fields overlay what was remembered for its key, so a later event only needs the fields it changes. Only an inbound translation may consume events from another application.
+
+
+
+
+
+
Captured record
+
Our shape of {{capName}}
+
Map steps run in order. Anything no step touches passes through unchanged — shown dashed.
+
+ Key
+
+
+
{{keyHelp}}
+
Map steps
+
+
+
+
+
+
+
+
+
+
Map step {{mi.n}}
+
+
+
+
+
+ Field
+
+
+
+
+ {{mi.srcLabel}}
+
+
+
+
Template
+
+
Write ${field} to insert a field. Uses: {{mi.refs}}
+
+
+
Their value → our value
+
+
+
+
+ ⇒
+
+
+
+
+
+
+
Screenplay doesn't yet say what happens to a value with no translation; Try it passes it through and warns.
+
+
+
+ By
+
+
Into, in order
+
+
+
{{t.n}}
+
+
+
+
+
+
+
+
+
+
+
+
+
Append · a private event
+
+
Recorded when
+
+
+
+
+
+
+
+
+
+
Tip: drop a field from the captured record onto the event's WHEN chip.
+
+
+
+ Field
+ From
+ To
+
+
+
+
+
+
Fields, literals, comparisons, and / or and parentheses — checked on the captured record as it is now, including the first time.
+
+
{{ei.whenHelp}}
+
Carries
+
+
+
+
+ =
+
+
+
+
+
+
+
+
The event lands on the captured key, {{keyText}}.
+
+
+
+
+
+
Public contract
+
+
Other applications depend on this shape. Changing it means a new generation of the event, not an edit in place.
+
+ Generation
+ Projection
+
+
Properties
+
+
+
+
+
+
+
+
+
+
+
Drag a private event onto the contract's header to map it by convention, or a field onto a property to map just that.
+
+
+
+
+
{{ol.kind}}
+
{{ol.from}}→{{ol.to}}
+
{{ol.text}}
+
+
+
+
+
+
+
+
+ set =
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
In domain words · written from the design
+
+
+ {{d.k}}
+
{{d.t}}
+
+
+
+
+
+
+
+
+
+
payments.play · kept in step with the design
+
+
+
{{l.n}}{{l.ind}}{{l.kw}}{{l.rest}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Prototypes/translation-editor/01-inbound-overview.png b/Prototypes/translation-editor/01-inbound-overview.png
new file mode 100644
index 000000000..b6b46250b
Binary files /dev/null and b/Prototypes/translation-editor/01-inbound-overview.png differ
diff --git a/Prototypes/translation-editor/02-source-api.png b/Prototypes/translation-editor/02-source-api.png
new file mode 100644
index 000000000..f7d5ec7ad
Binary files /dev/null and b/Prototypes/translation-editor/02-source-api.png differ
diff --git a/Prototypes/translation-editor/03-map-translate.png b/Prototypes/translation-editor/03-map-translate.png
new file mode 100644
index 000000000..ba9ee845e
Binary files /dev/null and b/Prototypes/translation-editor/03-map-translate.png differ
diff --git a/Prototypes/translation-editor/04-map-template.png b/Prototypes/translation-editor/04-map-template.png
new file mode 100644
index 000000000..7ab6d95ae
Binary files /dev/null and b/Prototypes/translation-editor/04-map-template.png differ
diff --git a/Prototypes/translation-editor/05-append-transition.png b/Prototypes/translation-editor/05-append-transition.png
new file mode 100644
index 000000000..7a1d5a574
Binary files /dev/null and b/Prototypes/translation-editor/05-append-transition.png differ
diff --git a/Prototypes/translation-editor/06-drop-field-on-when.png b/Prototypes/translation-editor/06-drop-field-on-when.png
new file mode 100644
index 000000000..6eea22dc4
Binary files /dev/null and b/Prototypes/translation-editor/06-drop-field-on-when.png differ
diff --git a/Prototypes/translation-editor/07-drop-record-new-event.png b/Prototypes/translation-editor/07-drop-record-new-event.png
new file mode 100644
index 000000000..21be1b283
Binary files /dev/null and b/Prototypes/translation-editor/07-drop-record-new-event.png differ
diff --git a/Prototypes/translation-editor/08-try-booked.png b/Prototypes/translation-editor/08-try-booked.png
new file mode 100644
index 000000000..83e4c2921
Binary files /dev/null and b/Prototypes/translation-editor/08-try-booked.png differ
diff --git a/Prototypes/translation-editor/09-try-first-time.png b/Prototypes/translation-editor/09-try-first-time.png
new file mode 100644
index 000000000..6d208ff9f
Binary files /dev/null and b/Prototypes/translation-editor/09-try-first-time.png differ
diff --git a/Prototypes/translation-editor/10-try-untranslated.png b/Prototypes/translation-editor/10-try-untranslated.png
new file mode 100644
index 000000000..10d0bdc86
Binary files /dev/null and b/Prototypes/translation-editor/10-try-untranslated.png differ
diff --git a/Prototypes/translation-editor/11-specification-breaks.png b/Prototypes/translation-editor/11-specification-breaks.png
new file mode 100644
index 000000000..e0a893cb0
Binary files /dev/null and b/Prototypes/translation-editor/11-specification-breaks.png differ
diff --git a/Prototypes/translation-editor/12-source-events.png b/Prototypes/translation-editor/12-source-events.png
new file mode 100644
index 000000000..47e897042
Binary files /dev/null and b/Prototypes/translation-editor/12-source-events.png differ
diff --git a/Prototypes/translation-editor/13-try-events.png b/Prototypes/translation-editor/13-try-events.png
new file mode 100644
index 000000000..404c2d7ca
Binary files /dev/null and b/Prototypes/translation-editor/13-try-events.png differ
diff --git a/Prototypes/translation-editor/14-screenplay-inbound.png b/Prototypes/translation-editor/14-screenplay-inbound.png
new file mode 100644
index 000000000..9de7ed2cd
Binary files /dev/null and b/Prototypes/translation-editor/14-screenplay-inbound.png differ
diff --git a/Prototypes/translation-editor/15-describe-inbound.png b/Prototypes/translation-editor/15-describe-inbound.png
new file mode 100644
index 000000000..d482d8f5e
Binary files /dev/null and b/Prototypes/translation-editor/15-describe-inbound.png differ
diff --git a/Prototypes/translation-editor/16-outbound-overview.png b/Prototypes/translation-editor/16-outbound-overview.png
new file mode 100644
index 000000000..60e056524
Binary files /dev/null and b/Prototypes/translation-editor/16-outbound-overview.png differ
diff --git a/Prototypes/translation-editor/17-outbound-automap.png b/Prototypes/translation-editor/17-outbound-automap.png
new file mode 100644
index 000000000..bb125f009
Binary files /dev/null and b/Prototypes/translation-editor/17-outbound-automap.png differ
diff --git a/Prototypes/translation-editor/18-outbound-line.png b/Prototypes/translation-editor/18-outbound-line.png
new file mode 100644
index 000000000..0e03b9e95
Binary files /dev/null and b/Prototypes/translation-editor/18-outbound-line.png differ
diff --git a/Prototypes/translation-editor/19-outbound-try.png b/Prototypes/translation-editor/19-outbound-try.png
new file mode 100644
index 000000000..fbd7287e8
Binary files /dev/null and b/Prototypes/translation-editor/19-outbound-try.png differ
diff --git a/Prototypes/translation-editor/20-screenplay-outbound.png b/Prototypes/translation-editor/20-screenplay-outbound.png
new file mode 100644
index 000000000..5c47d2583
Binary files /dev/null and b/Prototypes/translation-editor/20-screenplay-outbound.png differ