Error message
In the message, %s marks a value that the engine fills in when it raises the error.
The story
You handed rush something that was supposed to describe an API or a blueprint, and it was not in the right shape. Here is what rush expects. An API, or a blueprint, travels as a plain map. Each entry has a contract name as its key, and a sixty-four character hexadecimal hash as its value. That is exactly what blueprint.of gives you, and there is no special type to learn. The verbs api.compat, api.diff, blueprint.check and blueprint.explain all read their operands that way. So if you pass a list, a text, or a map where one value is not a proper hash, rush cannot read it back, and it stops, naming the operand and what went wrong. Picture comparing two versions of an API, and accidentally passing the first one as a list of names. The fix is to produce the operand with blueprint.of, or to build a map yourself with real hashes as values. Check the second slot of the message: it tells you which part broke the shape. Make the map honest, and the comparison will run.
Text from the Rush engine's error catalogue.
