class ModelConfiguration( configurationName: String? = null, isGlobalDefault: Boolean? = null, ) : JsonModelAuto { var configurationName by property(configurationName) var isGlobalDefault by property(isGlobalDefault) fun configurationNameProperty() = getProperty(ModelConfiguration::configurationName) fun isGlobalDefaultProperty() = getProperty(ModelConfiguration::isGlobalDefault) } class ModelConfigurationModel : ItemViewModel() { val configurationName = bind { item?.configurationNameProperty() } val isGlobalDefault = bind { item?.isGlobalDefaultProperty() } } // generated json (by pretty print) [ { "configurationName": "NewConfiguration", "isGlobalDefault": false, } ]