JSON.NET has no direct ability to support both requisites:
- custom name of the property holding the type name
- look for the property anywhere in the object
The first requisites is fulfilled by JsonSubTypes
The second one by specifying thh right MetadataPropertyHandling