           min_properties: pos_integer | nil,
           minimum: number | nil,
           multiple_of: number | nil,
+          not: Schema.t() | nil,
+          one_of: [Schema.t()] | nil,
           pattern: Regex.t() | nil,
           pattern_properties: map | nil,
           properties: map | nil,

  * `additional_items` disallow additional items, if set to false. The keyword
    can also contain a schema to specify the type of additional items.
  * `additional_properties` disallow additional properties, if set to true.
  * `const` specifies a constant.
  * `definitions` contains schemas for reuse.
  * `dependencies` allows the schema of the map to change based on the presence

  @type t :: %Schema{
          additional_items: Xema.t() | Schema.t() | boolean | nil,
          additional_properties: map | boolean | nil,
          all_of: [Schema.t()] | nil,
          any_of: [Schema.t()] | nil,
          const: any,
          definitions: map,
          dependencies: list | map | nil,
