Without an owner, a subscription made for one player outlived them and kept
firing into the interface it was drawing. With an owner, it ends with the
player. Passing no owner behaves as before, so existing code needs no change.
Schema raised on a rule it promised to refuse. An "object" rule with
no fields raised instead of failing the check. This rule sat on the path that
screens the arguments of every remote served by Net.Handle.
Lifecycle announced departures it never announced as arrivals. A player
who left while the data gate still held them reached no service, yet every
service was told they were leaving. Services and
Architecture already described the correct
behaviour; the code now matches.
Every module opens the same way: what it is, a list of what it does, and a
note only where one is needed. Reasoning moved out of function bodies into
the headers.
Three pages claimed Twill has no request path. That is true only of
Replication: Net.Declare has accepted reply types since v1.0.0, and a
remote that replies is metered, ranked and screened like any other.
Monetization documents its bound of 50 remembered purchase ids.
The documentation describes what Twill is rather than who it is for:
installing is two folders, with no build step and no package manager.