json = {
  "repositories": {
    "output": [
      {
        "$ref": "#ui.console"
      }
    ],
    "type": "array",
    "items": [
      {
        "$ref": "#repository"
      }
    ],
    "input": {
      "order": {
        "type": "string",
        "enum": [
          "asc",
          "desc"
        ],
        "value": "asc"
      },
      "sort": {
        "type": "string",
        "enum": [
          "created",
          "stars",
          "updated",
          "pushed"
        ],
        "value": "stars"
      },
      "q": {
        "type": "string",
        "value": "ohmygod"
      }
    },
    "request": {
      "get": {
        "config": {
          "method": "get",
          "url": "https://api.github.com/search/repositories",
          "payload": {
            "q": "{repositories.input.q.value}",
            "sort": "{repositories.input.sort.value}",
            "order": "{repositories.input.order.value}"
          }
        },
        "data": "{response.items}"
      }
    }
  },
  "repository": {
    "type": "object",
    "data": {},
    "properties": {
      "html_url": {
        "type": "string"
      },
      "stargazers_count": {
        "type": "number"
      },
      "owner": {
        "type": "object",
        "properties": {
          "login": {
            "type": "string"
          }
        }
      }
    },
    "request": {
      "get": {
        "config": {
          "method": "get",
          "url": "https://api.github.com/repos/{repository.data.full_name}",
          "payload": {}
        },
        "data": "{response}"
      },
      "post": {
        "type": "request",
        "config": {
          "method": "post",
          "url": "/repos/{repository.data.full_name}",
          "payload": {
            "full_name": "{repository.data.full_name}"
          }
        }
      }
    }
  },
  "$extend":{
    "$ref":"#/repository/properties",
    "foo":"bar"
  }
}

jref = require 'json-ref-lite'
jref.extend(json)
console.dir 

