Ok, I was wrong, in discovery you can create a property on any type. But that does not invalidate my argument that when the framework tries to access representation property on a manually created thing, the respective config param should be of the same type. Or??
In the code snippet you posted above you can see that it uses
String.valueOf(configuration.get(representationProperty))
So the comparison is always done on the String representation, regardless of which type the configuration parameter has.
Ok. Cool.