{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "ほげほげ",
  "type": "object",
  "properties": {},
  "required": []
}$schema
これには今現在(2019-04)最新のhttp://json-schema.org/draft-07/schema#バージョンを指定します。
title
そのスキーマの説明。
type
ルートに置かれるtypeは、その JSON のルートがどんな要素かを指定します。objectやarrayが指定できます。
properties
type:objectな時、どんなプロパティがあるかを指定していきます。例えば以下は、fooプロパティが置けるという意味になります。
{
  "properties": {
    "foo": {
      "description": "説明(オプション)",
      "type": "string"
    }
  }
}この各プロパティのタイプには
string
number
object
array
boolean
null があります。
required
type:objectな時、ここに羅列したプロパティは必ず設定しなければならないという意味になります。以下はfooを必須にする例です。
{
  "properties": {"foo": {}},
  "required": ["foo"]
}