There seems to be an override to the type in the json object for TerminologyCode which makes the type field always be @type. This is incorrect when using the standards compliant jackson config as it should become "_type".
The problem seems to be the Annotation in TerminologyCode.java:
@JsonTypeInfo(use=JsonTypeInfo.Id.NAME, defaultImpl=TerminologyCode.class)