Optional references in provided interface implementations

I have a tilde reference in a command which I link to a command via the implementation file. However if I use this tilde reference I get an error in the implementation file if I don’t acknowledge the reference in the interface file, but I get an error in the interface file if I acknowledge it. How do I use a tilde reference when using a command via an interface?

Unfortunately, it is currently not possible to map a text value specified in an interface to a text value with an optional reference in an application model. This is a known issue that will be fixed in an upcoming platform release. For now you can use a hidden command as a workaround:


'Buy': command {
	'Product': text ~> .'Products'[]
} => ignore /* ..command implementation here.. */

'Buy for interface': command @hidden { // map to this command in your implementation.alan
	'Product': text
} => execute .'Buy' ( 'Product' = @ .'Product' )