We no longer map named arguments to positional parameters.
The word Application is entirely misleading for describing the various systems that form the execution context of your program, so instead we'll have the role Systemic to express the notion of some local system that we're running in the context of (operating system, kernel, architecture, physical machine, virtual machine, virtual OS, maybe even windowing system). We also split out the role Universal to be done by any object that needs a cosmically unique name. The version must be well formed in order to be suitable for naming. Other version-like info can go into a description instead (or, if it must be part of the name somehow, into the auth attribute). The crypto signature may or may not end up being optional for various kinds of entities. A physical architecture is not distributed over the network, so is unlikely to have a checksum.
Use strings in .truncate-to instead. .delta now becomes .later and .earlier, and they expect string keys as named arguments.
It now more's a Pair with key value / Supply, so that the receiver of the more has a little more information as to what to do with that Supply.
niecza and rakudo implemented the role as IO::FileTestable, and this seems to match the current way of naming roles.