{
  "$schema": "http://json-schema.org/schema",
  "id": "architecture.feature",
  "title": "Architecture Feature Schematic",
  "type": "object",
  "description": "Creates a new, typed feature in the current project.",
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the feature.",
      "$default": {
        "$source": "argv",
        "index": 0
      },
      "x-prompt": "What should this feature be named?"
    },
    "fields": {
      "type": "string",
      "description": "The fields of the feature entity.",
      "$default": {
        "$source": "argv",
        "index": 1
      },
      "x-prompt": "What fields should the feature entity contain?"
    },
    "types": {
      "type": "string",
      "description": "The types of the fields of the feature entity.",
      "$default": {
        "$source": "argv",
        "index": 2
      },
      "x-prompt": "What types should the fields of this feature entity be?"
    },
    "gateway": {
      "type": "string",
      "description": "The type of the gateway. Ex: network, database",
      "$default": {
        "$source": "argv",
        "index": 3
      },
      "x-prompt": "What should the type for this gateway be?",
      "enum": ["database", "network"]
    },
    "network": {
      "type": "string",
      "description": "The type of the network. Ex: firebase, http",
      "$default": {
        "$source": "argv",
        "index": 4
      },
      "x-prompt": "What should the type for this network be?",
      "enum": ["firebase", "http", "odata", "graphql"]
    }
  },
  "required": [
    "name",
    "fields",
    "types",
    "gateway",
    "network"
  ]
}
