feat: JsonProperty