A structured communication intent, not a finished sentence: a type naming what happened,
plus the parameters a catalog needs to say it. The same message renders as a full log
line, a compact HUD number, an accessibility announcement, or a debug dump, all from one
event the simulation only has to produce once.
params must already be interpolation-ready by the time a message reaches
MessageFormatter.format - a game resolves any entity/item id to display text itself
(typically through its own EntityTextResolver) while building the message, the same way
it decides everything else about its own vocabulary. MWG only defines the shape.
A structured communication intent, not a finished sentence: a type naming what happened, plus the parameters a catalog needs to say it. The same message renders as a full log line, a compact HUD number, an accessibility announcement, or a debug dump, all from one event the simulation only has to produce once.
paramsmust already be interpolation-ready by the time a message reachesMessageFormatter.format- a game resolves any entity/item id to display text itself (typically through its ownEntityTextResolver) while building the message, the same way it decides everything else about its own vocabulary. MWG only defines the shape.