{
  "name": "Test",
  "$metadata": {
    "varlog": "/var/log",
    "tmplog": "/tmp/log"
  },
  "$services": {
    "log": {
      "package": "Venus/Path",
      "argument": {
        "$metadata": "tmplog"
      }
    },
    "development_log": {
      "package": "Venus/Path",
      "extends": "log",
      "builder": [
        {
          "method": "new",
          "return": "self",
          "inject": "list"
        },
        {
          "method": "child",
          "argument": "development.log",
          "return": "result"
        }
      ]
    },
    "production_log": {
      "package": "Venus/Path",
      "extends": "log",
      "argument": {
        "$metadata": "varlog"
      },
      "builder": [
        {
          "method": "new",
          "return": "self",
          "inject": "hash"
        },
        {
          "method": "child",
          "argument": "production.log",
          "return": "result"
        }
      ]
    },
    "staging_log": {
      "package": "Venus/Path",
      "extends": "log",
      "builder": [
        {
          "method": "new",
          "return": "self",
          "inject": "hash"
        },
        {
          "method": "child",
          "argument": "staging.log",
          "return": "result"
        }
      ]
    },
    "testing_log": {
      "package": "Venus::Path",
      "builder": [
        {
          "method": "new",
          "argument": {
            "$service": "filetemp"
          },
          "return": "self"
        },
        {
          "method": "child",
          "argument": "testing.log",
          "return": "result"
        }
      ]
    },
    "filetemp": {
      "package": "File/Temp",
      "constructor": "newdir"
    }
  }
}