- |
  ## Domain Specific Language for types

  Fields may be tagged `typeDSL: true` in `jsonldPredicate`.  If so, the field is expanded using the
  following micro-DSL for schema salad types:

  * If the type ends with a question mark `?`, the question mark is stripped off and the type is expanded to a union with `null`
  * If the type ends with square brackets `[]` it is expanded to an array with items of the preceding type symbol
  * The type may end with both `[]?` to indicate it is an optional array.
  * Identifier resolution is applied after type DSL expansion.

  ### Type DSL example

  Given the following schema:

  ```
- $include: typedsl_res_schema.yml
- |
  ```

  Process the following example:

  ```
- $include: typedsl_res_src.yml
- |
  ```

  This becomes:

  ```
- $include: typedsl_res_proc.yml
- |
  ```
