all Properties
All properties defined in the class will be encoded unless either of the following is true:
property has been excluded using @Json.Excluded
property is not accessible
property is synthetic
property has a receiver parameter
Accessible in this case means having internal or public visibility.
File-level extension properties will also be included if annotated with @Json.Property.
If no properties are found then the class will be encoded as an empty object.