I won't beat a dead horse but I like the idea of the name of the class expressing the class hierarchy and maintaining consistency with the frontend i.e.

 - `DomainObject` -> `Value`
 - `BooleanLiteral` -> `BooleanValue`