Some control values (strings, symbols, maybe others) should simply be passed thru, rather than converting them with map/nmap functions. PassSpec does just that, so deviceValue and value are always just passed thru as is.
First code examples:
returns PassSpec class, because when map and unmap are always the same, there is no need to create instances.
returns PassSpec class
inval |
returns inval |
returns nil, because there is no meaningful default value for a neutral non-mapping spec class.