code: public function jsonSerialize()
      {
          $json = parent::jsonSerialize();
  
          if (null !== $this->id) {
              $json['id'] = $this->id;
          }
          if (null !== $this->hash) {
              $json['hash'] = $this->hash;
          }
          if (null !== $this->objectId) {
              $json['objectId'] = $this->objectId;
          }
          if (null !== $this->created) {
              $json['created'] = $this->created->format(\DateTime::ISO8601);
          }
          if (null !== $this->createdBy) {
              $json['createdBy'] = $this->createdBy;
          }
          if (null !== $this->updated) {
              $json['updated'] = $this->updated->format(\DateTime::ISO8601);
          }
          if (null !== $this->updatedBy) {
              $json['updatedBy'] = $this->updatedBy;
          }
          if (null !== $this->dirty) {
              $json['dirty'] = $this->dirty;
          }
          if (null !== $this->propertySets && !empty($this->propertySets)) {
              $json['propertySets'] = $this->propertySets;
          }
          if (null !== $this->discriminatorId) {
              $json['discriminatorId'] = $this->discriminatorId;
          }
  
          return $json;
      }
docs: Gets all data that should be available in a json representation.
  
  @return array an associative array of the available variables