{
  "factory": {
    "parent": "abstract-service",
    "description": "",
    "id": "abstract-service-rest",
    "label": "service,rest",
    "type": "entaxy.runtime.service",
    "category": "",
    "isAbstract": true
  },
  "entaxy.runtime.service": {
    "serviceType": "REST"
  },
  "fields": {
    "objectId": {
      "displayName": "Service Id"
    },
    "address": {
      "displayName": "Address",
      "type": "String",
      "required": true,
      "group": "main",
      "defaultValue": {
        "@CALCULATED": {
          "lazy": false,
          "expression": "${objectId}"
        }
      },
      "@TYPEINFO": {
        "validation": {
          "doFix": true,
          "fixRules": [
            {
              "forbid": {
                "symbols": "/",
                "start": true
              }
            }
          ]
        }
      }
    },
    "##publish": {
      "type": "Map",
      "required": true,
      "isHidden": true,
      "configurable": false,
      "defaultValue": {
        "name": {
          "@CALCULATED": {
            "expression": "${objectId}",
            "lazy": true
          }
        },
        "factory": {
          "@CALCULATED": {
            "expression": "${factoryId}",
            "lazy": false
          }
        },
        "label": {
          "@CALCULATED": {
            "expression": "${#FACTORY#.factory.label}",
            "lazy": false
          }
        },
        "scope": {
          "@CALCULATED": {
            "expression": "${scope}",
            "allowObjects": false,
            "lazy": false
          }
        }
      }
    }
  },
  "outputs": {
    "init": {
      "isDefault": true,
      "fields": {
      	"address": {},
        "##publish": {}
      }
    }
  }
}