read

fun read(tree: Map<*, *>, warn: (String) -> Unit = {}): Manifest

Reads tree, the JSON object of a Manifest; fails on a missing field, another Manifest.FORMAT, a marker of requires this reader does not understand (ManifestFeatures), a context whose name breaks ContextName, or an access attribute whose name breaks AccessAttributeName.

A value it does not know of an enumeration, which a newer writer may have added, leaves out what it belongs to, told to warn: a command of an unknown creation, an aggregate of an unknown ownership, idSource or access attribute type, a subscription of an unknown kind, function kind or start. Each of them decides behaviour (how a command routes, whom an aggregate is scoped to and who may see it, how a subscription runs), so a reader never guesses it: it reads what it understands and leaves out what it does not. No enumeration of the format is merely descriptive.